psychobunny
58655e9a0b
fix: invalid API call when unfollowing a user
4 years ago
Opliko
2bc74cffe6
fix : #9127 , scope service worker to relative_path for the forum ( #9239 )
...
Adds a `Service-Worker-Allowed` header on `assets/src/service-worker.js` URL and uses `scope` option during registration to ensure the service worker is correctly scoped to the entire forum and only the forum.
4 years ago
Barış Soner Uşaklı
d1364c3130
Categories refactor ( #9233 )
...
* feat: wip categories pagination
* feat: add subCategoriesPerPage setting
* feat: add load more sub categories button to category page
* fix: openapi spec
* feat: show sub categories left on category page
hide button when no more categories left
* breaking: rename categories to allCategories on /search
categories contains the search results
* fix: spec
* refactor: remove cidsPerPage
* fix: tests
* feat: use component for subcategories
* fix: prevent negative subCategoriesLeft
4 years ago
Julian Lam
5131eb6b90
fix: `action:admin.settingsLoaded` to use new hooks lib
4 years ago
Julian Lam
b0f5d5a594
fix: crash on firing action hook that had no listeners registered
4 years ago
Julian Lam
1a04ec6419
fix: bug where `action:settings.sorted-list.loaded` fired early
...
The hook was fired before the elements had been added to the DOM.
Also, I updated it to use the new hooks lib.
4 years ago
Barış Soner Uşaklı
a29dd21de4
fix: don't translate message on every ajaxify
4 years ago
Julian Lam
4029ec3713
fix: multiple sorted-lists do not save to the correct set
4 years ago
Julian Lam
f8bf9e99c4
fix: pass module name to `static:script.init`, +comments
...
I feel it is difficult to know exactly what the original use-cases were for these hooks, so some comments may be helpful.
4 years ago
Julian Lam
4bb3b0323d
feat: guard password fields in login/register against accidental caps lock
4 years ago
Barış Soner Uşaklı
05be1c6603
feat: restore action:script.load, allow modifying loaded module via static:script.init
4 years ago
Julian Lam
8b09292e77
chore: add deprecation notice in comments for ajaxify.loadExtraScripts
4 years ago
Julian Lam
7da1b43f2b
fix: script failure if client-side page script does not exist
4 years ago
Julian Lam
8e93bf7362
feat(topic-events): client-side handling on topic event log
4 years ago
Julian Lam
df2fdd56ba
fix(topic-events): repeated invocations of Posts.addTopicEvents caused dupes to be added to DOM
4 years ago
Julian Lam
9559fad8ac
refactor(topic-events): expose addTopicEvents method in topic posts lib
...
+ allow it to accept an array of events, or fall back to ajaxify data otherwise
4 years ago
Julian Lam
882e6a159c
feat(topic-events): handle newest_to_oldest sort in topic events, WIP
4 years ago
Julian Lam
ab2e1ecb40
feat(topic-events): work in progress topic events logic and client-side implementation
4 years ago
Julian Lam
faf5960373
fix: bug where `action:ajaxify.end` was never called if there were no init scripts
4 years ago
Julian Lam
8e5687a4af
refactor(hooks): deprecate `action:script.load` client-side hook
...
Use `static:script.init` instead.
4 years ago
Julian Lam
efff8e2ae2
fix(hooks): bug where hook firing would fail if there were no listeners
4 years ago
Julian Lam
e7bd038db1
refactor(hooks): better error handling
...
Hook listeners can both throw and reject, and it will be handled appropriately (e.g. filters won't fail)
4 years ago
Julian Lam
1d77572117
feat(hooks): update action:ajaxify.end to use new hooks module
4 years ago
Julian Lam
412d285850
fix(hooks): fallback handling for core invocations of hooks.fire
...
+ .on() which is the same as .register()
4 years ago
Julian Lam
01c9b1847e
feat(hooks): client-side hooks module
...
Similar to server-side, comes with three hook types, filter, action, and static. Behaviour also mimics server-side.
4 years ago
Julian Lam
966c4117ec
refactor(api): post move to write API
4 years ago
Barış Soner Uşaklı
0fa4c11ea6
fix: don't chagne scrollTop if at the top of page
4 years ago
Julian Lam
e118e59ce0
refactor(api): post diffs to use write API
4 years ago
Barış Soner Uşaklı
1590cdf19f
fix : #9206 , fix double escaped arguments
4 years ago
Barış Soner Uşaklı
0a471b76b5
fix: use max
4 years ago
Barış Soner Uşaklı
c30b40abe7
fix: keep 60 topics minimum on topic list
4 years ago
Barış Soner Uşaklı
072a0e32d8
feat: #8813 , faster category search dropdown
...
when you have 4k+ categories manipulating DOM becomes very slow
clone the list and manipulate it outside of DOM, replace list on DOM when search is done
add utils.debounce so list is updated slower
4 years ago
Julian Lam
e5edbc6faf
feat: automatically attempt socket.io reconnection on ajaxify
...
Also, updated messaging and toaster to accurately reflect offline-mode state
4 years ago
Barış Soner Uşaklı
3121215e87
fix: #9127 , use assets path
4 years ago
Barış Soner Uşaklı
c1ecfd1ebf
feat: #9135 , don't try to reconnect forever
4 years ago
Barış Soner Uşaklı
20c1b684ed
fix : #9151 , dont use service worker for posts requests
4 years ago
Barış Soner Uşaklı
183cabe90f
fix : #9150 , fix selector so it doesn't add img-responsive to profile pics
4 years ago
Julian Lam
d90aa95808
feat: add confirmation modal when assigning admin:admins-mods privilege
4 years ago
Julian Lam
32e36f7b2e
feat(api): group ownership API route, switch client-side to use API route
4 years ago
Julian Lam
1cd2689cf6
refactor(api): deprecated groups update socket in favour of API lib
4 years ago
Julian Lam
e640a41a78
refactor(api): update group deletion calls to use write API
4 years ago
Barış Soner Uşaklı
2ef72a94c2
fix : #9136 , fix move topic/post timeout errors
4 years ago
Peter Jaszkowiak
2be396ff6e
fix: email testing and settings change from ACP
...
- changing email SMTP settings wouldn't apply the first time
- "Send Test Email" now will report emailer errors in most cases
4 years ago
Barış Soner Uşaklı
b369dc888b
fix : #9129 , event is fired on socket.io
4 years ago
psychobunny
b8d4709eec
fix(pwa): #9127 service-worker.js missing on subfolder installs
4 years ago
Barış Soner Uşaklı
b7b588f5c8
fix: trigger action:posts.edited
4 years ago
Barış Soner Uşaklı
feecd66506
fix: api usage
4 years ago
Barış Soner Uşaklı
a15ef53c70
feat: add new client side hooks
4 years ago
Barış Soner Uşaklı
3ed55799ab
fix : #9114 , fix client side groups update for memberPostCids
4 years ago
gasoved
3ba0575584
fix: don't check "select all" if there are no enabled checkboxes
4 years ago
Julian Lam
a30c8ab5c8
feat: clent-side modal for managing topic thumbs
...
closes #9087
4 years ago
Julian Lam
cb7e4cda2a
feat: helper method to get thumbs by pid
4 years ago
Julian Lam
41379e27c8
fix: hack uploader to handle a response from v3 write api
4 years ago
Julian Lam
ef10b6b70d
fix: missing file added
4 years ago
Barış Soner Uşaklı
ff2aa17bbc
fix: show errors when user delete fails
4 years ago
Barış Soner Uşaklı
dd9ed23631
fix: dont start logout timer if adminReloginDuration is disabled
4 years ago
Barış Soner Uşaklı
13d5a1440b
fix: reconnectin no longer fires on socket.io 3
4 years ago
Barış Soner Uşaklı
74274b60ed
feat: allow clicks on navigator, clean dupe code
4 years ago
Barış Soner Uşaklı
4a0d883359
breaking: #8808 , remove utils.slugify
4 years ago
Barış Soner Uşaklı
91c20ceca5
fix : #9065 , settings v2/v3 conflict
4 years ago
Barış Soner Uşaklı
a389a31b4a
fix: timeago in navigation
4 years ago
Barış Soner Uşaklı
163d1a39ce
fix: navigation fixes
4 years ago
Barış Soner Uşaklı
73d2f51d7a
fix: cache some jquery objects
4 years ago
Barış Soner Uşaklı
63d0839550
fix: add ev.cancelable
4 years ago
Barış Soner Uşaklı
790f4e4521
fix : #9046 , pretranslate string
4 years ago
Barış Soner Uşaklı
6669496dba
Navigator ( #9049 )
...
* feat: navigator changes
* fix: remove extra code
* feat: add lang keys
4 years ago
Barış Soner Uşaklı
5d00b0895b
fix: sso redirect on /login & /api/login
4 years ago
Barış Soner Uşaklı
698718f87c
feat: allow modifiying browser title on ajaxify
4 years ago
Barış Soner Uşaklı
7e867cf95e
fix : #7597 , fix progress bar of cover/profile uploads
...
send big cover images in chunks
4 years ago
Barış Soner Uşaklı
73746bb489
refactor: remove old hack
4 years ago
Barış Soner Uşaklı
6f68f4d20a
fix : #9032 , fix login redirect for sso plugins
4 years ago
Barış Soner Uşaklı
5f0f476b57
feat: #9005 , use timestamp in profile/cover images
...
delete current one if keepAllUserImages is turned off
fix typo in data
4 years ago
Barış Soner Uşaklı
954dc5b7be
feat: #8983 , update pin tooltip in topic
4 years ago
psychobunny
53abada5f0
Revert "feat: option to allow auto-joining of groups (optionally skip the "request membership" step)"
...
This reverts commit 685f3c6aa6
.
4 years ago
psychobunny
685f3c6aa6
feat: option to allow auto-joining of groups (optionally skip the "request membership" step)
4 years ago
psychobunny
54dc449fb9
fix(acp): #9008 undefined link for "no users browsing" state on dashboard
4 years ago
psychobunny
286243cd37
fix(acp): #9009 no-users-browsing untranslated on dashboard
4 years ago
Barış Soner Uşaklı
4c650aeead
feat: #8989 , convert widget nav to dropdown
4 years ago
Barış Soner Uşaklı
5080f35752
fix : #8991 , logout on password reset, dont verify email if password expired
...
dont allow same password on reset
4 years ago
Barış Soner Uşaklı
8adbf54ae6
fix: don't show topic search if no search privilege
4 years ago
Barış Soner Uşaklı
1269103fbb
fix : #8984 , post-queue ux
4 years ago
Barış Soner Uşaklı
d3c04afb98
fix : #8982 , copy color on tag rename, dont copy if target exists
...
refresh page on tag rename
4 years ago
Barış Soner Uşaklı
6e6a7a8f8a
fix : #8969 , export csv to file
4 years ago
Barış Soner Uşaklı
5c3deb4b0e
fix : #8973 , fix timestamp on ban modal
4 years ago
Barış Soner Uşaklı
c8554b78b9
fix : #8968 , don't show topic search if search is not enabled
4 years ago
Barış Soner Uşaklı
4c7374ea33
fix: flicker on tooltips if server call takes long time
4 years ago
gasoved
a56a657759
fix: missing select/clear all checkbox added to category privileges template ( #8967 )
4 years ago
Julian Lam
e1432caf92
feat: add cancel button to pin expiration modal
4 years ago
Julian Lam
15c6f32c93
refactor: pin/lock threadTools to use topicCommand, rewrote topicCommand to match categoryCommand signature
4 years ago
Barış Soner Uşaklı
7e6427bca7
fix: dont go back after delete account actions
4 years ago
Barış Soner Uşaklı
5ceda14874
Revert "fix: #8955 , popstate to purged topic should go to homepage"
...
This reverts commit 39dae0aaff
.
4 years ago
Julian Lam
39dae0aaff
fix : #8955 , popstate to purged topic should go to homepage
4 years ago
Barış Soner Uşaklı
c037779fa1
feat: add topicOwnerPost #8778
4 years ago
Barış Soner Uşaklı
6a819944d5
chore: remove console.log
4 years ago
Julian Lam
d584516947
fix : #8943 , session mismatch modal thrown on login (race condition)
4 years ago
Julian Lam
ac734b8335
fix : #8912
4 years ago
Barış Soner Uşaklı
db1c140ff9
refactor: remove unused require
4 years ago
gasoved
00e75de736
feat: select/clear all checkboxes in privilege table ( #8941 )
4 years ago
psychobunny
1c0e8c1663
fix: move meta.getServerTime call to admin namespace
4 years ago
Barış Soner Uşaklı
f20c12ee40
fix: add client side check for userslug #8939
4 years ago
Barış Soner Uşaklı
cf903e4e8f
fix : #8931 , fix lang string
4 years ago
Barış Soner Uşaklı
95a3f03009
fix : #8932 , fix client side error when updating username
4 years ago
Barış Soner Uşaklı
5fa098326f
fix: https://github.com/NodeBB/NodeBB/pull/8685
...
fix category link redirect on cold load
fix helpers.redirect if passed in url is external
fix ajaxify so it doesn't slice first character of external url
4 years ago
Julian Lam
046d0b1637
feat: allow pins to expire (if set) ( #8908 )
...
* fix: add back topic assert middleware for pin route
* feat: server-side handling of pin expiries
* refactor: togglePin to not require uid parameter [breaking]
* feat: automatic unpinning if pin has expiration set
* feat: client-side modal for setting pin expiration
* refactor: categories.getPinnedTids to accept multiple cids
... in preparation for pin expiry logic, direct access to *:pinned zsets is discouraged
* fix: remove references to since-removed jobs file for topics
* feat: expire pins when getPinnedTids is called
* refactor: make the togglePin change non-breaking
The 'action:topic.pin' hook now sends uid again, as before. However, if it is a system action (that is, a pin that expired), 'system' will be sent in instead of a valid uid
4 years ago
Barış Soner Uşaklı
46acbfdaf1
fix: show messages after app load
4 years ago
Barış Soner Uşaklı
6ef7e8675f
fix : #8915 , fix queue not being cleared after firing click events
...
if you clicked elements early then on every ajaxify.end the same elements were getting click events @julianlam
4 years ago
Julian Lam
00aee84bf7
refactor: use categoryCommand local method for pin/lock in category tools ( #8917 )
...
* refactor: use categoryCommand local method for main actions in category tools
* fix: wrong command passed in
4 years ago
Barış Soner Uşaklı
e9585b9be2
fix: group userTitles translation escapes
4 years ago
Barış Soner Uşaklı
62b62821c1
fix: navigation highlight
...
/top was getting hightlighted in navigation if you went into a /topic
4 years ago
Julian Lam
a0b7a82350
feat(api): account deletion routes for the Write API ( #8881 )
...
* feat(api): account deletion routes for the Write API
* refactor: rewrite client-side calls to account deletion to use api
* style: apply DRY
4 years ago
Opliko
6e43086558
resolve #8444 - Allow nested objects in translations ( #8793 )
...
* feat: #8444 Allow nested objects in translations
* feat: #8444 Allow nested objects in translations
* style: don't change formatting
* fix: don't use the first string match if key isn't finished
* feat: #8444 Allow nested objects in translations
* feat: #8444 Allow nested objects in translations
* style: don't change formatting
* fix: don't use the first string match if key isn't finished
* feat: add nested translations test
4 years ago
Barış Soner Uşaklı
1d6bcbebde
feat: https://github.com/NodeBB/NodeBB/issues/8147
4 years ago
Julian Lam
d83eb7f89e
refactor: client-side handlers for user invitations
...
DRY
4 years ago
gasoved
3ccebf112e
feat: invites regardless of registration type, invite privilege, groups to join on acceptance ( #8786 )
...
* feat: allow invites in normal registration mode + invite privilege
* feat: select groups to join from an invite
* test: check if groups from invitations have been joined
* fix: remove unused variable
* feat: write API versions of socket calls
* docs: openapi specs for the new routes
* test: iron out mongo redis difference
* refactor: move inviteGroups endpoint into write API
* refactor: use GET /api/v3/users/:uid/invites/groups
Instead of GET /api/v3/users/:uid/inviteGroups
* fix: no need for /api/v3 prefix when using api module
* fix: tests
* refactor: change POST /api/v3/users/invite
To POST /api/v3/users/:uid/invites
* refactor: make helpers.invite awaitable
* fix: restrict invite API to self-use only
* fix: move invite groups controller to write api, +tests
* fix: tests
Co-authored-by: Julian Lam <julian@nodebb.org>
4 years ago
Barış Soner Uşaklı
9dac9630df
fix: check tid in event handlers client side
4 years ago
Julian Lam
8518404e22
feat: allow groups to specify which cids to show member posts from ( #8875 )
...
* feat: allow groups to specify which cids to show member posts from
* docs: fix tests for openapi
* fix: test breakage caused by improper conditional
* feat: server-side checking of memberPostCids for validity
* feat: admin panel template update to select categories to include
* refactor: privilege helpers.isUserAllowedTo
... to helpers.isAllowedTo, allowing group names to be passed in
4 years ago
Julian Lam
769aba0aed
fix: refresh flags list on bulk action success
4 years ago
Julian Lam
f300c933a5
refactor: move session revocation route to write api
4 years ago
Barış Soner Uşaklı
9f7902efdf
fix: remove some unnecessary jquery wrappers
4 years ago
Barış Soner Uşaklı
978f1ee04f
fix: send back jquery object to keep backwards compat
4 years ago
Peter Jaszkowiak
e128264b66
refactor: change Benchpress.parse to .render ( #8856 )
...
It has been deprecated with no warning message for a while
Changing these over before enabling the warning message to reduce spam
4 years ago
Barış Soner Uşaklı
2e44639210
fix: guest header/footer cache
...
allow clearing individual caches
4 years ago
Barış Soner Uşaklı
f1f9b225b0
feat: #8824 , cache refactor ( #8851 )
...
* feat: #8824 , cache refactor
ability to disable caches
ability to download contents of cache
refactor cache modules to remove duplicated code
* fix: remove duplicate hit/miss tracking
check cacheEnabled in getUncachedKeys
4 years ago
Julian Lam
d263192271
feat: group exists API call in write api
4 years ago
Julian Lam
1446cec77f
feat: user exist route in write api
4 years ago
Barış Soner Uşaklı
78ee83324c
fix : #8838 , fix chat dropdown timestamps
...
use shorthand like notification dropdown
4 years ago
Julian Lam
1afd215050
feat: add back error handling for a number of api calls
4 years ago
Barış Soner Uşaklı
518d4fa170
fix: undefined call
4 years ago
Barış Soner Uşaklı
5a2b14b751
fix: client side crash when creating groups
4 years ago
psychobunny
d40779a4ba
feat(acp): autocomplete user search for welcome notifications
4 years ago
Barış Soner Uşaklı
715775a707
feat: #8817 , add login clientside hooks
...
same as logout
4 years ago
Julian Lam
a08fb8e53b
fix: removed superfluous assignment
4 years ago
Julian Lam
0b6ef61e40
fix: createNewPosts to build tpl with ajaxify.data
...
If the post template contains references to items outside of the scope of the post, then when the post is loaded via IS, the expected values are empty.
This was due to createNewPosts calling app.parseAndTranslate with a subset of the page payload. This works fine in Persona (and most other themes)
because they do not refer to properties outside of the post object, but it may be helpful to include the rest of the ajaxify data as well.
4 years ago
Julian Lam
bff53de03f
fix: handle ACP category enable/disable states after call success
4 years ago
Julian Lam
aa8faf58a0
refactor: remove /users/{uid}/settings/{setting} route
...
@baris Also, I am now allowing the following properties to be saved in User.saveSettings:
- categoryTopicSort
- topicPostSort
- setCategorySort
- setTopicSort
4 years ago
Barış Soner Uşaklı
9082062e90
fix: sort setting not using correct field name
4 years ago
Barış Soner Uşaklı
a512d99472
refactor: remove unnecessary wrapper
4 years ago
Barış Soner Uşaklı
a05905f196
performance improvements ( #8795 )
...
* perf: nconf/winston/render
cache nconf.get calls
modify middleware.pageView to call next earlier
don't call winston.verbose on every hook see https://github.com/winstonjs/winston/issues/1669
translate header/footer separately and cache results for guests
* fix: copy paste fail
* refactor: style and fire hook only log in dev mode
* fix: cache key, header changes based on template
* perf: change replace
* fix: add missing await
* perf: category
* perf: lodash clone
* perf: remove escapeRegexChars
4 years ago
Julian Lam
c26f2b6599
feat(writeapi): user settings API
4 years ago
Baris Usakli
1a4c0decb7
fix: reset button loading html
4 years ago
Barış Soner Uşaklı
e6440c0d21
fix : #8779 , fix move all
...
add new language keys
4 years ago
Barış Soner Uşaklı
3ee4936db6
fix: keep sortBy while searching
4 years ago
Barış Soner Uşaklı
85cfe49d65
fix: autocomplete.user on search page
4 years ago
Barış Soner Uşaklı
c107649b40
fix : #8732
4 years ago
Barış Soner Uşaklı
d9a16855d0
refactor: posts api
4 years ago
Barış Soner Uşaklı
272e73da53
refactor: post restore/delete/purge
4 years ago
Barış Soner Uşaklı
9738e20207
refactor: merge post.edit
...
fix: dont fadeout/fadeint if title/post didnt change
4 years ago
Barış Soner Uşaklı
2279e37261
refactor: deprecate socket.emit('users.search') use api route
4 years ago
Barış Soner Uşaklı
083c74e059
refactor: api categories
4 years ago
Barış Soner Uşaklı
51a60d3d46
fix: handler for group.join
4 years ago