Commit Graph

5437 Commits

Author SHA1 Message Date
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
2020-11-23 12:25:57 -05:00
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
2020-11-20 11:31:14 -05:00
Barış Soner Uşaklı
46acbfdaf1 fix: show messages after app load 2020-11-19 20:34:26 -05:00
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
2020-11-19 17:23:52 -05:00
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
2020-11-19 11:51:44 -05:00
Barış Soner Uşaklı
e9585b9be2 fix: group userTitles translation escapes 2020-11-18 23:07:38 -05:00
Barış Soner Uşaklı
62b62821c1 fix: navigation highlight
/top was getting hightlighted in navigation if you went into a /topic
2020-11-17 21:20:20 -05:00
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
2020-11-17 17:29:50 -05:00
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
2020-11-17 10:06:49 -05:00
Barış Soner Uşaklı
1d6bcbebde feat: https://github.com/NodeBB/NodeBB/issues/8147 2020-11-16 21:31:55 -05:00
Julian Lam
d83eb7f89e refactor: client-side handlers for user invitations
DRY
2020-11-16 15:19:20 -05:00
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>
2020-11-16 14:47:23 -05:00
Barış Soner Uşaklı
9dac9630df fix: check tid in event handlers client side 2020-11-15 10:36:30 -05:00
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
2020-11-13 14:15:37 -05:00
Julian Lam
769aba0aed fix: refresh flags list on bulk action success 2020-11-11 10:15:49 -05:00
Julian Lam
f300c933a5 refactor: move session revocation route to write api 2020-11-10 14:27:38 -05:00
Barış Soner Uşaklı
9f7902efdf fix: remove some unnecessary jquery wrappers 2020-11-08 20:26:43 -05:00
Barış Soner Uşaklı
978f1ee04f fix: send back jquery object to keep backwards compat 2020-11-08 20:02:27 -05:00
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
2020-11-08 08:17:49 -05:00
Barış Soner Uşaklı
2e44639210 fix: guest header/footer cache
allow clearing individual caches
2020-11-07 22:06:25 -05:00
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
2020-11-06 23:13:12 -05:00
Julian Lam
d263192271 feat: group exists API call in write api 2020-11-06 12:18:42 -05:00
Julian Lam
1446cec77f feat: user exist route in write api 2020-11-06 11:55:04 -05:00
Barış Soner Uşaklı
78ee83324c fix: #8838, fix chat dropdown timestamps
use shorthand like notification dropdown
2020-11-05 16:46:17 -05:00
Julian Lam
1afd215050 feat: add back error handling for a number of api calls 2020-11-04 14:11:54 -05:00
Barış Soner Uşaklı
518d4fa170 fix: undefined call 2020-11-04 08:57:19 -05:00
Barış Soner Uşaklı
5a2b14b751 fix: client side crash when creating groups 2020-11-03 16:54:44 -05:00
psychobunny
d40779a4ba feat(acp): autocomplete user search for welcome notifications 2020-11-03 14:10:39 -05:00
Barış Soner Uşaklı
715775a707 feat: #8817, add login clientside hooks
same as logout
2020-11-03 11:17:25 -05:00
Julian Lam
a08fb8e53b fix: removed superfluous assignment 2020-10-29 12:33:12 -04:00
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.
2020-10-29 12:29:29 -04:00
Julian Lam
bff53de03f fix: handle ACP category enable/disable states after call success 2020-10-29 07:16:41 -04:00
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
2020-10-28 17:21:54 -04:00
Barış Soner Uşaklı
9082062e90 fix: sort setting not using correct field name 2020-10-28 16:05:40 -04:00
Barış Soner Uşaklı
a512d99472 refactor: remove unnecessary wrapper 2020-10-27 14:51:49 -04:00
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
2020-10-26 10:43:18 -04:00
Julian Lam
c26f2b6599 feat(writeapi): user settings API 2020-10-22 14:07:50 -04:00
Baris Usakli
1a4c0decb7 fix: reset button loading html 2020-10-21 13:05:46 -04:00
Barış Soner Uşaklı
e6440c0d21 fix: #8779, fix move all
add new language keys
2020-10-20 20:53:45 -04:00
Barış Soner Uşaklı
3ee4936db6 fix: keep sortBy while searching 2020-10-19 22:16:34 -04:00
Barış Soner Uşaklı
85cfe49d65 fix: autocomplete.user on search page 2020-10-19 21:58:56 -04:00
Barış Soner Uşaklı
c107649b40 fix: #8732 2020-10-18 01:33:03 -04:00
Barış Soner Uşaklı
d9a16855d0 refactor: posts api 2020-10-17 22:59:12 -04:00
Barış Soner Uşaklı
272e73da53 refactor: post restore/delete/purge 2020-10-17 21:24:33 -04:00
Barış Soner Uşaklı
9738e20207 refactor: merge post.edit
fix: dont fadeout/fadeint if title/post didnt change
2020-10-17 15:07:04 -04:00
Barış Soner Uşaklı
2279e37261 refactor: deprecate socket.emit('users.search') use api route 2020-10-16 23:30:22 -04:00
Barış Soner Uşaklı
083c74e059 refactor: api categories 2020-10-16 22:41:38 -04:00
Barış Soner Uşaklı
51a60d3d46 fix: handler for group.join 2020-10-15 16:07:25 -04:00
Julian Lam
20bb9c7ec8 fix: csrf token only on non-GET routes 2020-10-14 14:02:03 -04:00
Barış Soner Uşaklı
3673accdb8 refactor: api module
only return promise if callback is undefined
dont append baseUrl if url already starts with api
correctly handle writeapi readapi response for data/error
remove unused onError
dont append empty ? to url for get routes
2020-10-14 11:05:50 -04:00