5360 Commits (4a63c20a72edb92379fc88769cc2e26da5c6abe3)

Author SHA1 Message Date
Aziz Khoury acca0b956e more secure isRelativeUrl (#8087) 5 years ago
Barış Soner Uşaklı 05c9fe2735 feat: #5272, allow changing user groups from manage users page 5 years ago
Baris Usakli 4d66978338 fix: #8073, configurable necroThreshold 5 years ago
Baris Usakli c2cd7de891 fix: #8069, dont show hidden groups in search 5 years ago
Barış Soner Uşaklı 3811e0a3df fix: #8042, dont show errors after clearing form 5 years ago
Baris Usakli 6c404b81fb fix: use the correct attribute name for widgets 5 years ago
Julian Lam 645d647248
feat: wip, better digest handling (+ eventual digest resend logic) (#7995)
* feat: wip, better digest handling (+ eventual digest resend logic)

- await emailer.send call in digest.send method
- save send success to a new sorted set digest:{interval}:byUid

* feat: continuing work on digest tools

- Added ACP page to view digest settings and delivery times per user

* feat: added paginator and stub buttons for resending digest

* feat: wrapping up digest revamp

- New language strings in ACP digest page
- Client-side ACP script for digest ACP page
- Websocket call for ACP page to execute digests
- Broke out logic to retrieve user digest settings to getUsersInterval

* fix: minor cleanup

* fix: #8010 and some style suggestions from baris

* fix: resolve confusing comment
5 years ago
Barış Soner Uşaklı 4b8897d9bc fix: lint 5 years ago
Aziz Khoury beea56b3c6 ie11 doesnt support Object.values (#7993) 5 years ago
Barış Soner Uşaklı 441dd86d29 fix: convert param to string in slugify
fixes adding users to privilege table
5 years ago
Barış Soner Uşaklı 95a372df85
fix: #7977, fix undefined url (#7978) 5 years ago
Barış Soner Uşaklı ca3be1f336
fix: #7974 (#7976) 5 years ago
Baris Usakli 485fbd2f14 feat: #7964, change all categories at once
allow passing cids to setCategoryWatchState and category.exists
5 years ago
Baris Usakli 554e67116f feat: remove ability to delete events from acp 5 years ago
Baris Usakli 5b458fc7ca fix: #7953, allow icon only group badges 5 years ago
Barış Soner Uşaklı c5f7b66c3a fix: new nav items will show group select 5 years ago
Barış Soner Uşaklı f402d7271a fix: move post and change owner 5 years ago
Barış Soner Uşaklı b19f0a686c fix: 404 on new groups with spaces 5 years ago
Barış Soner Uşaklı 2444ed5c88 feat: #7932, redirect to group details after creation
add private/hidden on group creation modal
5 years ago
Baris Usakli 95ab071254 fix: remove jquery 5 years ago
Barış Soner Uşaklı 9a7560049a feat: bypass cropper for gifs 5 years ago
Andrew Rodrigues 40f131a6bb
fix: potential for XSS here 5 years ago
Barış Soner Uşaklı e0fec86628 fix: dont crash if callback is undefined 5 years ago
Barış Soner Uşaklı 35a4ca2fe9 feat: add sm2x avatar class #7813 5 years ago
Barış Soner Uşaklı 781b3f1a9a fix: #7800, dont crash on resize 5 years ago
Barış Soner Uşaklı 1789ecb45c feat: increase search timeouts 5 years ago
Barış Soner Uşaklı ebe5ed22bb feat: make handleSearch public 5 years ago
Barış Soner Uşaklı 2a5fe2b8f4 fix: #7894, translate log in to view 5 years ago
Barış Soner Uşaklı 0843497dd4 fix: #7893, check private upload setting 5 years ago
Barış Soner Uşaklı 3887fc678b fix: #7824, update timeago settings on userlanguage change 5 years ago
Julian Lam 9b09ee0e93 feat: client-side taskbar.update method, deprecates .updateTitle() 5 years ago
Julian Lam 1796b65d34 feat: option to restrict group leaving, closes #7770 5 years ago
Barış Soner Uşaklı ad96b0e0db feat: preserver querystring when changing category sort 5 years ago
Barış Soner Uşaklı 21e81f961c fix: #7780 5 years ago
Barış Soner Uşaklı f31d30cd02 feat: add client side hook for quick search&normal search 5 years ago
Barış Soner Uşaklı 6f375482a0 refactor: async/await admin/controllers 6 years ago
Barış Soner Uşaklı 7162051905 fix: #7791 6 years ago
Julian Lam 0921230976 fix(style): updated code to follow new eslint recommendations
Squashed commit of the following:

commit f9ce878b269b3568f0d649309aae1af4dcfdfeef
Author: Julian Lam <julian@nodebb.org>
Date:   Tue Aug 13 14:30:46 2019 -0400

    fix(style): updated code to follow new eslint recommendations

commit 80dd370e413f22badb96ff2138e7991dfff6d836
Author: Julian Lam <julian@nodebb.org>
Date:   Tue Aug 13 14:14:58 2019 -0400

    fix(deps): update dependency sitemap to v4

    Squashed commit of the following:

    commit f4dd9cabb21e26fdc21f8413be822ea7c64251f8
    Author: Julian Lam <julian@nodebb.org>
    Date:   Tue Aug 13 11:33:05 2019 -0400

        fix: resolved breaking changes from sitemap v4 upgrade

    commit 9043415ee16dcc27a8dcc2e4479d1bc5e2d1b60e
    Merge: e3352b272 72590b346
    Author: Julian Lam <julian@nodebb.org>
    Date:   Tue Aug 13 11:09:55 2019 -0400

        Merge branch 'master' into renovate/sitemap-4.x

    commit e3352b272eb9400bdb00774973181397803765e4
    Author: Renovate Bot <bot@renovateapp.com>
    Date:   Mon Aug 12 07:59:05 2019 +0000

        fix(deps): update dependency sitemap to v4

commit 8e3c0cdcae22acc32d352be8bb72d60e7502dbc5
Author: Renovate Bot <bot@renovateapp.com>
Date:   Fri Aug 9 00:49:51 2019 +0000

    fix(deps): update dependency commander to v3

commit 2104449d38818f2fa4d44b3a58a0a168781acbfb
Author: Renovate Bot <bot@renovateapp.com>
Date:   Tue Aug 13 15:00:27 2019 +0000

    fix(deps): update dependency mongodb to v3.3.0

commit d2937f446a21131c070ae5d0ff33d67cfe465b8c
Author: Barış Soner Uşaklı <barisusakli@gmail.com>
Date:   Tue Aug 13 10:36:48 2019 -0400

    feat: async/await admin/controllers

commit 1b97e8b199f960dc24e5722702f27499ae049914
Author: Misty (Bot) <deploy@nodebb.org>
Date:   Tue Aug 13 09:28:39 2019 +0000

    Latest translations and fallbacks

commit 69a48957a2f0d23c4d194b664bda3a0431179c01
Author: Barış Soner Uşaklı <barisusakli@gmail.com>
Date:   Mon Aug 12 21:56:09 2019 -0400

    feat: async/await

commit b9b2a7e593a452de4bef6d0ab6abe368a3bdb8dd
Author: Barış Soner Uşaklı <barisusakli@gmail.com>
Date:   Mon Aug 12 20:58:29 2019 -0400

    feat: async/await refactor

    controllers/accounts

commit a8d43a175974a0c8ae3dc132bf51a7ed9a4c6305
Author: Baris Usakli <barisusakli@gmail.com>
Date:   Mon Aug 12 14:49:40 2019 -0400

    feat: async/await controllers/accounts

commit 2f25aae57bf9dbe98d655276770e56bed9ec023b
Author: Barış Soner Uşaklı <barisusakli@gmail.com>
Date:   Sun Aug 11 23:09:50 2019 -0400

    fix: #7831, fix pagination

    convert to async/await

commit c9e83f2374572264855a04156278eef256b0a20c
Author: Barış Soner Uşaklı <barisusakli@gmail.com>
Date:   Sun Aug 11 00:14:35 2019 -0400

    fix: remove empty line

commit 30be91b26c4dd7583412c4e8d56e9c1688e48a44
Author: Barış Soner Uşaklı <barisusakli@gmail.com>
Date:   Sun Aug 11 00:13:41 2019 -0400

    fix: remove useless catchs and empty line

commit 2e4a71c0b6104738f15ffbfe3246105b922fdfb3
Author: Renovate Bot <bot@renovateapp.com>
Date:   Sat Aug 10 06:51:50 2019 +0000

    chore(deps): update dependency eslint-config-airbnb-base to v14
6 years ago
Julian Lam 3d3fa8655d feat: new client-side hooks for chat minimize and close
closes #7805
6 years ago
Julian Lam af968c6ae5 feat: fire updateRemainingLength hook for chats 6 years ago
Barış Soner Uşaklı 666e0eaff9 fix: #7798, fix nested post selection 6 years ago
Julian Lam 4fb271c684
System chat messages (#7771)
* fix: removed duplicate checkContent call in addMessage

addMessage is called in one place (sendMessage), and the checks
are already contained there. addMessage is the lower level call
and so should be called only from within core itself.

* feat: #7330 chat system messages for join, leave, rename

* fix: add back content checking in .addMessage();

* fix: tests, and added .addSystemMessage() method

Tests were relying on message indices that changed due to the
new system messages.

* feat: add tests for system chat messages

* refactor: rewrite half of src/messaging/rooms.js, fix tests

* feat: #7743 messaging/room.js

* fix: tests for messaging/room.js, #7743

* fix: trying to fix tests

* fix: omg :rage2:
6 years ago
Baris Usakli 9f78bd7a12 fix: sitemap ajaxify 6 years ago
Barış Soner Uşaklı 53e1b349ae
Change post owner (#7752)
* feat: #7749, allow array of keys for setObject

* feat: sortedSetRemoveBulk

* feat: test for bulk remove

* feat: #7083, ability to change post ownership

* feat: #7083, fix tid:<tid>:posters

* feat: #7083, front end

* fix: #7752, psql methods

* fix: add missing await

* fix: maybe psql
6 years ago
Barış Soner Uşaklı 2b70e86f21 fix: #7751, make necro separator a partial 6 years ago
Barış Soner Uşaklı 4170abfd6b feat: add utils.promiseParallel 6 years ago
Julian Lam 16aae51726 fix: private upload img replacement should happen before img wrapping 6 years ago
Julian Lam 49e3a368f8 fix: #7423 private uploads are linked to login page, for guests 6 years ago
Barış Soner Uşaklı bd640a1107
Topic await errors (#7727)
* feat: derp await

* feat: restore user.getSettings

* feat: cleanup

* feat: make tid const

* feat: cleanup

* fix: tests

* feat: deprecate filter:controllers.topic.get

* feat: rewrite post-index logic

* feat: change calculation to match others

* fix: use .async

* feat: remove try/catch wrapper
6 years ago
Julian Lam a0c0ef1ba4
feat: ACP analytics API route (#7725)
* feat: added API route for retrieving analytics via REST API

* feat: sets is now optional, can pass in multiple sets

* fix: moved expand and added json button to panel header

* fix: matching api params to socket method

* fix: update json api button url on graph change

* fix: updated default counts based on passed in units
6 years ago
Baris Usakli ee4d78cae3 feat: closes #7718 6 years ago
Julian Lam af17c6e31c fix: remove debug code that should not have made it in 6 years ago
Julian Lam 69fae1a7e4 fix: output span in buildAvatar helper instead of div
In not-so-rare circumstances, the avatar generated is wrapped in
an anchor so that when clicked, it goes to the user profile.

Unfortunately, html 4 spec doesn't like block level elements
inside anchors (since an anchor is an inline element), and even
though we define html5 doctype, browsers still reorder the div
and anchor, beats me as to why.

So I can trick the browser by using a span. The css already styles
it as inline-block so no further fixes are required.
6 years ago
Barış Soner Uşaklı a39f0ef592 fix: #5570, create per category user post zsets 6 years ago
Aziz Khoury 13efbc9967 feat: change widget-* to data-widget-* (#7703)
* change widget-* to data-widget-*, original pr#5444 but backward compatible

* lint
6 years ago
Barış Soner Uşaklı e1c05e59c9 fix: restrict drag drop to pin icon, closes #7702
https://github.com/NodeBB/NodeBB/issues/6081
6 years ago
Barış Soner Uşaklı b53a60c278 feat: show best & latest posts on profile 6 years ago
Julian Lam 289dada5f7 fix(deps): update to eslint@6 6 years ago
Barış Soner Uşaklı 25ea634787 fix: #7659 add option to change cookie link url 6 years ago
Julian Lam 2523889990
refactor: replace avatar conditional code with buildAvatar helper (#7681)
* feat: helper for building avatars

* feat: benchpress truefalse globals, componentPrefix in buildAvatar

* refactor: remove componentPrefix

* feat: changes to buildAvatar helper

- removed extra .avatar-xl class in generics.less
- added support for component override
- "size" can be a number now

* fix: prevent overflow of alt text in avatars

* fix: update doc on buildAvatar helper
6 years ago
Aziz Khoury a6436716ea feat: hooks can now return promise or call callbacks
* hooks can now return promise or call callbacks, either way works

* cleanups

* moar cleanups and fix callback 1st null arg

* rm unnessesary spread
6 years ago
Barış Soner Uşaklı 5fa5e999f8
Plugin metrics (#7626)
* feat: add enable/disable checkbox for plugin usage

* feat: submit plugin data to packages.nodebb.org

only submit in production mode
submit once every 24 hours
dont submit for plugins that have "private": true in plugin.json
enabled on new installs
disabled on existing installs

* fix: hash not working after first send

fix statusCode

* fix: remove url

* feat: show compatibilty

* feat: add install question for submit plugin usage
6 years ago
Julian Lam c7f95ccecc
feat: design revamp of ACP events page (#7664)
* feat: design revamp of ACP events page

- minor UX changes
- new filter controls, filters moved to sidebar
- form usable without js
- start/end filters NOT programmed yet

* feat: events ACP limit by date and perPage

* feat: pre-fill applied filters on template render

* fix: missing translation for ACP events perPage filter

* fix: added some comments to explain setHours behaviour

* fix: stop - start + 1

* fix: socket tests

* fix: +inf, not just inf

* fix: tests, because I am an idiot
6 years ago
Barış Soner Uşaklı 8aef689f05 fix: no need for moderate bit for global mods and admins 6 years ago
Barış Soner Uşaklı 035f624758
Remove implicit mod privs. closes #6345 (#7648)
* feat: add upgrade script to give mods privs

* feat: give all privileges when making a moderator

* feat: remove implicit privs

* feat: give global mods default privs

* feat: more priv fixes

* feat: use lodash

* fix: remove implicit mod priv from topic delete

* fix: more privs

* fix: posts.canEdit

* fix: canDelete and canEdit

* fix: tests, remove console.log

* feat: shorter functions

* feat: add tests

* fix: uids

* fix: redis random test fail
6 years ago
Barış Soner Uşaklı ebb32e7891 fix: attribute name so it works for both templates 6 years ago
Barış Soner Uşaklı 0721bee146 feat: on category search reveal children and parents 6 years ago
Barış Soner Uşaklı 6cebc7f069 feat: #7627, close chat on ajaxify on mobile 6 years ago
Barış Soner Uşaklı e65ddc98b5 fix: https://github.com/barisusakli/nodebb-plugin-dbsearch/issues/53 6 years ago
Julian Lam a97e97b9c3 fix: incorrect pathname format for app.previousUrl 6 years ago
Barış Soner Uşaklı 106d52a47f fix: #7598, use notice element instead of alert 6 years ago
Julian Lam 7e5cb72a59 fix: #7618 save pathname into app.previousUrl ins. of entire url 6 years ago
Julian Lam a41769e61c
feat: update meta tags on ajaxify (#7580), fixes #7544
* feat: wip -- refresh meta tags on ajaxify

* feat: wrapped up meta tags update on ajaxify feature

* fix: removed commented-out line

* fix: removed another commented-out line
6 years ago
Barış Soner Uşaklı dfab231afd
Copy group privs (#7610)
* feat: ability to copy a groups privileges

ability to copy a group's privileges to all categories, or children of current category

* feat: switch to dropdown

added copy from category to groups

* fix: indents
6 years ago
yossizahn 1703233f48 fix: #7586, switchTimeagoLanguage shouldn't discriminate against languages w/o shorthands 6 years ago
Barış Soner Uşaklı bf6fc502c4 fix: #7564 6 years ago
Barış Soner Uşaklı c940a73359 fix: #7539 6 years ago
Barış Soner Uşaklı 9385c8e3ee feat: #7319 6 years ago
Barış Soner Uşaklı 32cf07d732 fix: #7464 6 years ago
Barış Soner Uşaklı f86d74d8b9 fix: #7424 6 years ago
Barış Soner Uşaklı 09681e6ccf fix: #7562 6 years ago
Julian Lam c38db4f765 feat: #7515
This reverts commit 81f8cfe3da.
6 years ago
Barış Soner Uşaklı 81f8cfe3da Revert "feat: #7515"
This reverts commit ac889db16b.
6 years ago
Barış Soner Uşaklı ac889db16b feat: #7515 6 years ago
Julian Lam 3871a02ccc fix: resolve CORS error on uploading via URL
On uploading a new profile picture via URL, a CORS error presents
itself during the .toDataUrl() call due to misconfigured CORS
handling in the library. The change here allows cropper.js to
check crossorigin attribute in image and handle appropriately.

Also, the error handling is improved so the error is caught on
Firefox, as it sends a different error message than on Chrome.
6 years ago
Barış Soner Uşaklı 2ee2cd528f feat: #7501 6 years ago
Barış Soner Uşaklı e906bea470 fix: escape search snippet closes #7506 6 years ago
Barış Soner Uşaklı 1f3554ff00 fix: #7503 6 years ago
Andrew Rodrigues 78e0b9834c fix: #7485 6 years ago
Andrew Rodrigues 24dcae2193 feat: manual password expiry. closes #7471 6 years ago
Julian Lam c289b904e6 fix: #7473 6 years ago
Andrew Rodrigues c37b2f2ed3 fix: #7378 6 years ago
Andrew Rodrigues dcdd41c7ce fix: #7454 6 years ago
Andrew Rodrigues 962b7f73d3 fix: #7472 6 years ago
Baris Usakli 7211dde7b9 feat: #7358 6 years ago
Baris Usakli 777ca03264 fix: #7432 6 years ago
Julian Lam d3a10628e7 fix: broken 50% border radius on emails, failing tests 6 years ago
Julian Lam 3a7f1c192b fix: failing tests from revamped-emails branch 6 years ago
Barış Soner Uşaklı 03305db845 fix: #7395 6 years ago
Julian Lam f32a992237
feat: revamp email templates to be more style agnostic (#7375)
* feat: re-designed digest

Updated design, logic no longer shows "no topics", just doesn't
show the list at all, teaser re-retrieved for digest so that it
always grabs a teaser even if there is no reply, changed default
email background to a light grey.

* fix: minor padding issues in digest

* fix: banned template

* fix: invitation.tpl

* fix: removed unused notif_chat and notif_post email templates

* fix: notification template

* fix: registration_accepted template

* fix: reset tpl

* fix: test tpl

* fix: email verify tpl

* fix: reset notify tpl

* fix: welcome tpl

* fix: additional minor font fixes

* fix: removed unused email header image assets

* fix: internationalised 'your daily digest' string

* fix: broken url in digest 🤦

* feat: added RTL support for emailer

/cc @PostMidnight
6 years ago
Barış Soner Uşaklı fc830c0f41 feat: lower search timeout 6 years ago
Barış Soner Uşaklı 8a0e1280d6 feat: quick search 6 years ago
Julian Lam 158f68eb47 fix: search.api not working on subfolder 6 years ago
Baris Usakli d2b8396764 feat: make topic search a function 6 years ago
Barış Soner Uşaklı c01d43e01d feat: quick search 6 years ago
Barış Soner Uşaklı d5ece9a4c3 fix: don't refresh page when enabling/disabling categories 6 years ago
Julian Lam ab0e547d23 fix: autocomplete not triggered if chat switched 6 years ago
Julian Lam 6c2f48f189 fix: #7366 6 years ago
Barış Soner Uşaklı 45c322aeb0 fix: #7357 6 years ago
Julian Lam e8f3c25676 fix: re-introducing indeterminate checkbox state to ACP privs 6 years ago
Julian Lam 0fffcb3855 fix: #7231, missing success alert on group name change in ACP 6 years ago
Julian Lam 96b6ce1f3c fix: eslint failure from daadcc4889 6 years ago
Andrew Rodrigues d864da1a2e
fix: move `action:alert.update` to after translator 6 years ago
Andrew Rodrigues daadcc4889
feat: add `action:alert.new`, `action:alert.update` hooks 6 years ago
Barış Soner Uşaklı fc6767e140 fix: #7098 6 years ago
Barış Soner Uşaklı e59b907d7c fix: #7229 6 years ago
Barış Soner Uşaklı 12c5899099 fix: #7339 6 years ago
Barış Soner Uşaklı 8e3bf58106 fix: #7338 6 years ago
Barış Soner Uşaklı c72da5595a fix: #6806
3 new global privileges
view:users
view:tags
view:groups
6 years ago
Barış Soner Uşaklı ae779ea4f9 fix: #7334 6 years ago
Barış Soner Uşaklı 9d1fcf4e36 fix: closes #7217 6 years ago
Barış Soner Uşaklı f6cfbbb520 fix: don't crash if body doesn't have `skin-` 6 years ago
Barış Soner Uşaklı c7abf07a3d fix: #7324
added disableToType option
6 years ago
Barış Soner Uşaklı 0366cfd8ec fix: allow regular groups to local login 6 years ago
Barış Soner Uşaklı 5353960ae7 fix: #7316 6 years ago
Julian Lam 8aebe88417 fix: #7306 6 years ago
Julian Lam 02a8ed9b11 feat: textcomplete over jquery-textcomplete, closes #7309 6 years ago
Julian Lam 7fb3c16882 fix: #7296, local login privilege available to registered-users only 6 years ago
Barış Soner Uşaklı d03220cdaf fix: #7094 6 years ago
Julian Lam 63061ffd37 feat: new hook filter:user.logout
- used for setting "next" for post logout redirection
6 years ago
Julian Lam cee47f78b2 fix: #7289 timeago shorthand toggle fails on non-existant language
- Exposing timeagoCodes to frontend
- Timeago language and shorthand toggling will fall back to 'en'
  if the requested language does not exist
6 years ago
Julian Lam 5ee173c2f6 fix: #7276 improper request for client-noskin.css 6 years ago
Barış Soner Uşaklı ac655564bb fix: post queue notifs
fix moderators not showing up immediately when adding them
6 years ago
Julian Lam 51b5fb9826 fix: added missing translation and error state for password change 6 years ago
Julian Lam 3859d417ce fix: #7236, header search stops working after header update 6 years ago
Julian Lam af4fd5979f Revert "fix: #7216, hide taskbar on chat modal invocation on mobile"
This reverts commit a70db885cf.
6 years ago
Julian Lam a70db885cf fix: #7216, hide taskbar on chat modal invocation on mobile 6 years ago
Barış Soner Uşaklı 428f587cbe fix: #7208 6 years ago
Barış Soner Uşaklı 28459d04c6 fix: #7187 6 years ago
Julian Lam 954af0f0d2 fix: #7176, FUOC on app.reskin() 6 years ago
Baris Usakli 8da3b2a487 fix: #7142
due to no refresh on login socket listeners were added more than once,
so remove them before adding the listeners
6 years ago
Barış Soner Uşaklı 8566205214 Merge branch 'master' of https://github.com/NodeBB/NodeBB 6 years ago
Barış Soner Uşaklı 03299736dc fix: #7179
don't consider pinned topics in widget areas
6 years ago
Julian Lam 629b35546c fix: #7167, composer and chat not closing on logout 6 years ago
Barış Soner Uşaklı 43e7cc0afb fix: shorter function 6 years ago
Barış Soner Uşaklı 2da0a65765 fix: #7162 6 years ago
Julian Lam 8e9de540b4 fix: #7136 socket.disconnect() now called on invalid session 6 years ago
Julian Lam 4873a339c1 fix: RTL not respected when changed in user settings, related to #7146 6 years ago
Julian Lam d81e0a5f5b fix: #7146 Better RTL handling on (de-)authentication
- RTL is applied (or unapplied) on login and logout depending on
  user language/guest-detected language.
- config is automatically saved into res.locals.config whenever
  loadConfig is called
- On login/logout, buildHeader is called instead of getting config
- On logout, req.uid is deleted instead of set to 0
6 years ago
Julian Lam 900f0a0b78 fix: #7118, invoking autoLocale middleware on logout
Also:
- firing client-side hook on header update
- updating bootbox locale on header update
6 years ago
Andrew Rodrigues 7fb29f4272 fix: closes #6784 (#7137)
* fix: closes #6784

* #6784 also fix homepage + subfolder installs

* #6784 fixes suburls as well (ex. /tags/x and /groups/y)

* #6784 more elegant solution @pitaj

and the last time I touch this function, lol

* #6784 regis, final answer

I lied in that last commit
6 years ago
Barış Soner Uşaklı ab81cca735 fix: 7100 6 years ago
Barış Soner Uşaklı 7e828404f6 fix: #7116
dont save relative_path in db for group covers
6 years ago
Barış Soner Uşaklı 29a85aecc7 fix: #7138 6 years ago
Baris Usakli b47f939bfc fix: lint 6 years ago
Baris Usakli 69e0dbbf4a fix: #7091, #7093 6 years ago
Baris Usakli 0c1ac4d6a2 feat: #7032 6 years ago
Barış Soner Uşaklı 4650a76036 fix: #7124 6 years ago
Barış Soner Uşaklı 9f5062682d fix: unread badge
- only increase unread badge if topic or category is watched
- fix logic for "there are new posts/topics" on /unread and /recent
6 years ago
Barış Soner Uşaklı eb7ae54f81
Category watch state (#7109)
* feat: wip, category watch change

* feat: pass data to client

* feat: allow changing state

* fix: account page categories

* fix: show in unread if topic is followed or category is watched

* feat: add default watch state to acp

* feat: save user category watch state

* feat: update unread recent pages

* fix: remove dupe code

* fix: flip conditions

* fix: handle empty arrays

* fix: ignore/watch on others profile

* feat: upgrade script for category states

if there are any users ignoring categories set their state in new zset and delete cid:<cid>:ignorers

* fix: upgrade

* fix: tests

* fix: redis count

* fix: more tests
6 years ago
Barış Soner Uşaklı f103390aa5 fix: #7103
update counter when user navigates to /unread
fix new topic alert on /unread
moved unread code from footer to unread
6 years ago
Barış Soner Uşaklı 74d0e88df3 fix: don't explode if there is no css el 6 years ago
Barış Soner Uşaklı 555c092f65 fix: dont send empty strings 6 years ago
Julian Lam ed46c5e24b fix: refreshing settings page on save if language changed 6 years ago
Julian Lam 5f3d1c76c8
fix: #7038, autoLocale logic not playing nicely with no-refresh auths (#7059)
* fix: #7038, autoLocale logic not playing nicely with no-refresh auths

- on login, req.query.lang is deleted (since it seems to be left over)
- on logout, the middleware.autoLocale is executed, which resets
  req.query.lang
- middleware.autoLocale is new, just refactored existing logic in
  webserver.js into new middleware method.

* style: tests, use lodash

* fix: timeago strings not switching languages on login or out
6 years ago
Barış Soner Uşaklı 2604cf6356 fix: #7074 6 years ago
Julian Lam 6df5668e64 fix: #7063, logout code should do hard page nav to / or data.next 6 years ago
Barış Soner Uşaklı 41357abb59 Merge branch 'master' of https://github.com/NodeBB/NodeBB 6 years ago
Barış Soner Uşaklı f581c052ee feat: #7023
- add category selector to privileges and category create modals
- allow category selector to work for multiple selectors on same page
6 years ago
Julian Lam 28a1fa780a fix: skin not changing after login or logout, #7038 6 years ago
Baris Usakli cd02e03f7b don't crash if meta.config is undefined 6 years ago
Peter Jaszkowiak ba619c7ec8 style(eslint): match operator-linebreak preferences 6 years ago
Peter Jaszkowiak 89c025d102 feat: close #7002, console message if mismatched origins 6 years ago
Barış Soner Uşaklı 58d4376f7e fix: #7030 6 years ago
Barış Soner Uşaklı e78aea1e86 close #7024
show error instead showing crop modal
6 years ago
Barış Soner Uşaklı ed1bf9a16f add more info to advanced db page 6 years ago
Barış Soner Uşaklı 27c016d68d fix alert 6 years ago
Julian Lam f6b92c1d3e fix: #7013, add cache buster to js-enabled.css 6 years ago
Baris Usakli e3bf21a3a0 closes #6993 6 years ago
Barış Soner Uşaklı 5c48793543 handle quoted strings 6 years ago
Barış Soner Uşaklı dc670a7bb5 closes #6983
after first pass of timeago, title contains "21 lis 2018, 10:30" which is invalid for new Date(), check before passing it to format
6 years ago
Barış Soner Uşaklı 625516e046 if there is no search el return
aka if theme doesnt support it
6 years ago
Barış Soner Uşaklı 63c0a9a3b7 closes #6928 6 years ago
Barış Soner Uşaklı 169a6680d5 #6928 6 years ago
Julian Lam 98c14e0e68 fix: removal of scroll anchoring code in favour of browser handling
closes #6150
6 years ago
Baris Usakli 1454fdceff closes #6874 6 years ago
Barış Soner Uşaklı f4a00f0b5f only init unread topics for loggedin users
dont call isFollowed
6 years ago
Barış Soner Uşaklı 33986f38e3 closes #6954 6 years ago
Barış Soner Uşaklı 1ce15e69ab dont require search and moustrap on topic page until needed 6 years ago
Barış Soner Uşaklı c0a75d735b fix requires 6 years ago
Barış Soner Uşaklı c02d584b53 reduce initial js payload/requests 6 years ago
Baris Usakli 0fd5210d37 really fix pagination on mobile 6 years ago
Baris Usakli 2624e302ab fix navigator on mobile 6 years ago
Baris Usakli c1ab753bc3 use paginationBlock 6 years ago
Baris Usakli c343b93a37 optimize ajaxify
- do not call $.timeago twice on topic load and for widgets
- do not use toLocaleString for each timeago string, use a single
Intl.DateTimeFormat instance instead
- do not call format for empty timeago strings, ie a post that isnt
edited doesnt have a timeago string
- do not call isTouchDevice for every element
- remove app.replaceSelfLinks, this is superceded with /me route
- store references to jquery objects in navigator instead of creating
them on every scroll
6 years ago
Barış Soner Uşaklı ac549f8bc7 closes #6957 6 years ago
Barış Soner Uşaklı f0dead7aba more tooltip work 6 years ago
Barış Soner Uşaklı 4b6b3d5436 set duration to 0 6 years ago
Barış Soner Uşaklı 85c832fcc6 add tooltip 6 years ago
Barış Soner Uşaklı fe8832ad5c dont update if index didnt change 6 years ago
Barış Soner Uşaklı 7b5c4f343a drag nav 6 years ago
Barış Soner Uşaklı de14102ee7 Merge branch 'master' of https://github.com/NodeBB/NodeBB 6 years ago
Barış Soner Uşaklı d9452bf3d4 fix: custom navigation item not showing groups 6 years ago
Julian Lam b3f96d28aa fix(acp): hard-to-discover dropdown selector in ACP
Made the dropdown an MDL button fab with better positioning via
a p.lead so that it is more easily discoverable and obvious that
it is a button that can be pressed.

Fixes #6899
6 years ago
Barış Soner Uşaklı 69bb3293ee misc fixes
handle spider uids properly
6 years ago
Barış Soner Uşaklı b6771836cf closes #6937 6 years ago
Barış Soner Uşaklı 973b5fcfe0 closes #6932 6 years ago
Baris Usakli 3e2dffa6d0 fix search in if in query param isn't passed in 6 years ago
Julian Lam f7bd398eb1 style(eslint): newlines in public/src as well 6 years ago
Julian Lam aef1c155cc hey husky wtf you doin' 6 years ago
Julian Lam da10ca084b fix: #6921, allow square brackets in usernames 6 years ago
renovate[bot] 64b9dabff8 chore(deps): update dependency eslint-config-airbnb-base to v13 (#6599)
* chore(deps): update dependency eslint-config-airbnb-base to v13

* chore: #6599, linting 😬
6 years ago
Julian Lam 501b3a79ca
Refactor skins to be built on server-side (#6849)
* WIP

* using bootswatch from npm instead of bootswatch CDN url

* feat: on-demand client css building for skins

* added ability for client-side to select a skin

* updated loading and saving logic of bootstrapSkin on client side user settings

* fix: broken test for #6849
6 years ago
Julian Lam 84433f29ab
Do not require a full refresh on login/logout (#6841)
* no-refresh login as well, plus lots of fixes for missing config on login

* replace config with new set on logout as well

* passing new payload data into new action:app.loggedIn hook, and old action:app.loggedOut hook

* fixed issues with socket.io not properly representing uid on server

* some light refactoring and cleanup

* minor cleanup, fixed spa logout not working after login

* have reconnection handler for socket.io wait 2s to confirm disconnection before reporting -- stops flicker if reconnecting immediately

* Dynamically replace chat and slideout menu on updateHeader()

... instead of just the menu items.

* more efficient calls to Benchpress and translator /cc @pitaj

* fix: chats and notification handlers not working after login

* fix: accidentally calling cb multiple times
6 years ago
Baris Usakli 3c611d85ed closes #6912
- on category setParent dialog do not show children of current category
- break recursion if category parentCid is equal to child cid to prevent
infinite loop
- dont allow setting the parentCid of a category to one of it's children
6 years ago
Barış Soner Uşaklı 6f47446171 closes #6910 6 years ago
Barış Soner Uşaklı 61c7aa4b19 closes #6885 6 years ago
Barış Soner Uşaklı fee3ec308a use showSelect 6 years ago
Barış Soner Uşaklı c27be9db5a
Recent refactor (#6879)
* wip

* fix inf scroll

* remove duplicated code

* remove dupe code in /unread

* use topicList

* update tag page to use topicList

* fix tests

* combine ifs

* remove more dupe code

* disable timeout
6 years ago
Barış Soner Uşaklı 56c1eac1a5 fix translations on dashboard 6 years ago
Barış Soner Uşaklı 69253d9a7f use chart.js legend 6 years ago
Barış Soner Uşaklı 8abef4c101 bg colors 6 years ago
Barış Soner Uşaklı b916dc562f fix bg colors 6 years ago
Barış Soner Uşaklı 804451cc37 update axis ids 6 years ago
Barış Soner Uşaklı c2191167ee fail colors 6 years ago
Barış Soner Uşaklı 5b842c98ac fix typo 6 years ago
Barış Soner Uşaklı 9f36ce3997 #6862 6 years ago
Barış Soner Uşaklı 11c2a65b5a fix config values not showing client side if they were set to 0 6 years ago
Andrew Rodrigues e2ecbae06c add body class when cookie consent warning is open 6 years ago
Andrew Rodrigues c9fc65d901 more efficient selectors (apparently) 6 years ago
Baris Usakli 881185ae59 closes #6857 6 years ago
Barış Soner Uşaklı 9c022afae1
Parse int (#6853)
* Store config fields as JSON in the db

Fewer parseInts

* Remove unnecessary parseInts

* remove some dupe code add tests

* remove console.log

* remove more parseInts

* WIP: read meta.configs defaults from defaults.json

remove more parseInts

* more work

* add log for failing test

* update admin pwd

* fix tests, dont require posts/cache before configs are initialized

* handle saves

* Test boolean conditions

* remove more parseInts

* Fix boolean values

* remove lots more parseInts

* removed json parsing

* renamed var to number

* categories dont have timestamp
6 years ago
Julian Lam 762dac6a4a closes #6825 6 years ago
Julian Lam c95ad2c46a closes nodebb/nodebb-theme-persona#339 6 years ago
Barış Soner Uşaklı 702be3f6de https://github.com/NodeBB/nodebb-theme-persona/issues/363 6 years ago
Baris Usakli 6dc84deca9 allow admins mods to watch/ignore categories for other users 6 years ago
André Zanghelini 523a2dc54c Add settings page to control watched categories (#6648)
* Add settings page to control watched categories

* Fix passing undefined to pushUnreadCount
6 years ago
Barış Soner Uşaklı 49ba5af5fa
closes #6810 (#6813) 6 years ago
Barış Soner Uşaklı 95ace13599 add loading=false 6 years ago
Barış Soner Uşaklı ef55598822 filter messages that are already inserted to DOM 6 years ago
Barış Soner Uşaklı 3554a0a725 closes #6791, if fileSize isn't passed in don't perform check 6 years ago
Barış Soner Uşaklı cf75c79611
Unread changes closes #6781 (#6783)
* WIP

* more unread work

* faster teaser block handling

if user doesn't have anyone blocked don't check

* much faster filtering of blocked posts

* add missing uid

* add tidsByFilter to return

* dont load all pids to find previous non-blocked teaser

* fix unread filters

they no longer use unread/new unread/watched etc they are query strings now

* shorter nav item code

* add unreplied to filters

fix icons not clearing to 0
dont increment unread counters if there is a reply in a topic where you ignored the topic creator
6 years ago
Barış Soner Uşaklı df4f5f6f27
closes #6784 6 years ago
Barış Soner Uşaklı 71ccd67665 closes #6722
calculate size of base64 image from buffer, still not perfect but better than string.length
6 years ago
Barış Soner Uşaklı 669a5135e1 closes #6768 6 years ago
Barış Soner Uşaklı d880a7ade0 closes #6771 6 years ago
André Zanghelini f3956299eb Add tooltip in taskbar icons (#6693)
* Add tooltip in taskbar icons

* Translate taskbar title when creating taskbar
6 years ago
smyther f120015b54 Fix for user being able to open multiple "delete posts" modals (#6770)
* Implement fix for multiple fork cards showing

* Fix for admin being able to open multiple 'delete posts' modals

* Fix linting issue
6 years ago
smyther 0c9907367a Implement fix for multiple fork cards showing (#6757) 6 years ago
Barış Soner Uşaklı ebaea9b6c1 closes #6743 6 years ago
Julian Lam c2c925cacd closes #6678 6 years ago
Julian Lam 5c04ec2d63 removed client-side chat message length check in favour of server-side check, firing new hook on messaging.checkContent for hooks to intercept 6 years ago
Julian Lam 9d202d9be9 closes #424 7 years ago
Julian Lam 70f04bd1c2 fixed client-side console error on vote 7 years ago
Andrew Rodrigues 12940b577b closes #6703 7 years ago
Julian Lam a77630c6be closes #6697 7 years ago
Barış Soner Uşaklı c0156640e3 add back alert 7 years ago
Barış Soner Uşaklı 14d810c113 show error if cropper fails 7 years ago
Baris Usakli 976b85ccaa closes #6676 7 years ago
Julian Lam ea2bd33bfa fixes #6608, restored template values in widget containers 7 years ago
Julian Lam 5243ee559a set initial focus on register page 7 years ago
Julian Lam 609f711db0 added logic to handle Chats.switchChat being called with no arguments 7 years ago
Barış Soner Uşaklı d06f795856 fix scroll on back 7 years ago
Julian Lam 352bef0a7f eliminate waitSeconds in rjs config 7 years ago
Barış Soner Uşaklı ec33a12dad closes #6644 7 years ago
djls45 4f0a24cfed Preserve case of respondee's slug when responding to their post. 7 years ago
Julian Lam b7fc8493b7 closes #6635 7 years ago
Julian Lam 266eacac7c closes #6655 7 years ago
Julian Lam a07b45fd0f closes #6642 7 years ago
Julian Lam 7a53fa9469 Added block and unblock button to profile dropdown menu, #6560 7 years ago
Barış Soner Uşaklı 4ed079555e Merge remote-tracking branch 'refs/remotes/origin/master' into blocks 7 years ago
Julian Lam fb42862ec7 check password validity in user delete socket call 7 years ago
Baris Usakli 584f88e092 blocks WIP 7 years ago
Timothy Fike e8a3c23d42 Fix verion regex Fixes #6620 (#6625) 7 years ago
Barış Soner Uşaklı 57b7c7ede4 closes #6607 7 years ago
Barış Soner Uşaklı 742ddd358b escape url 7 years ago
Barış Soner Uşaklı ccad95cf73 closes #6579 7 years ago
Barış Soner Uşaklı 017b10d5d6 closes #6544 7 years ago
Barış Soner Uşaklı 4293403451 #6535, use templateToRender clientside if its avaiable 7 years ago
Barış Soner Uşaklı c91b96c133 use data.roomName 7 years ago
Julian Lam 99dc3feeb2 Edit history is now a category-level privilege
Closes #6425
7 years ago
Barış Soner Uşaklı 779d03cf57 move timestamp to server 7 years ago
Barış Soner Uşaklı d040544773 fix clicking topics after merge modal is closed 7 years ago
Julian Lam a3e724e134 resolve window opener being set if ajaxify overrides on external link 7 years ago
Barış Soner Uşaklı b2d5551960 remove deprecated method 7 years ago
Barış Soner Uşaklı a1e933537b remove deprecated method 7 years ago
Barış Soner Uşaklı 45cc30a91b remove deprecated code
unread counts are loaded on cold load
7 years ago
Barış Soner Uşaklı d60d03d00f closes #6542 7 years ago
Barış Soner Uşaklı d5e85c2eb3 closes #6476, closes #6546 7 years ago
Barış Soner Uşaklı f0a538bd4a closes #6536 7 years ago
Barış Soner Uşaklı b0dad9bd7f closes #6369 7 years ago
Barış Soner Uşaklı 81328806a0 closes #6511 7 years ago
Julian Lam 3688840f1f using modal-unfocused instead, so regular modals still appear on-top of composer
_now_ it closes #6532
7 years ago
Julian Lam 8164a52fc4 no longer using bringModalToTop, in favour of taskbar modal focused class
re: #6532
7 years ago
Julian Lam 32edfb6c5a updating chat logic to save uuid in data-uuid attr instead of uuid attr 7 years ago
Barış Soner Uşaklı 11bb2f1560 closes #6528 7 years ago
Barış Soner Uşaklı 6940612688 closes #6410 7 years ago
Barış Soner Uşaklı a7267df404 closes #6464 7 years ago
Barış Soner Uşaklı fc56347c22 closes #6520 7 years ago
Barış Soner Uşaklı 667630ff5d closes #6450 7 years ago