Compare commits

...

1673 Commits

Author SHA1 Message Date
Julian Lam
0df3ea8661 refactor: client-side to use flag notes API 2021-07-16 13:51:37 -04:00
Julian Lam
b6c84222c2 test: fix breaking test on mongo 2021-07-16 12:29:39 -04:00
Julian Lam
6bcc0d0ddc chore: remove debug line 2021-07-16 11:33:23 -04:00
Julian Lam
e219cf0226 feat: flag notes API + tests 2021-07-16 11:28:52 -04:00
Julian Lam
b5da3f136b fix: flag tests to use Write API instead of sockets 2021-07-14 16:39:55 -04:00
Julian Lam
8a02c66ed5 feat: tests for new flags API
added missing files for schema update
2021-07-14 15:41:01 -04:00
Julian Lam
66946be9f0 feat: new routes for flags API
+ flag get
+ flag creation, migration from socket method
+ flag update, migration from socket method
* fixed bug where you could not unassign someone from a flag
2021-07-14 15:21:25 -04:00
psychobunny
acb11cc764 fix: use hooks module instead of window trigger 2021-07-14 14:54:17 -04:00
Misty (Bot)
c4be0078ed Latest translations and fallbacks 2021-07-14 09:06:19 +00:00
Renovate Bot
021013159e chore(deps): update dependency lint-staged to v11.0.1 2021-07-13 11:01:05 +00:00
Misty (Bot)
f9a89adc97 Latest translations and fallbacks 2021-07-13 09:06:01 +00:00
Barış Soner Uşaklı
4a56388ec3 feat: store topic tags in topic hash (#9656)
* feat: store topic tags in topic hash

breaking: remove color info from tags (use css)

* fix: remove unused tag modal

* fix: tag search
2021-07-12 19:25:04 -04:00
Renovate Bot
0d3f74b762 fix(deps): update dependency autoprefixer to v10.3.1 2021-07-12 19:43:49 +00:00
psychobunny
522291726d style: lint 2021-07-12 13:55:16 -04:00
psychobunny
e0db904b0e feat: new hook action:topics.loading (in the same format as action:posts.loading) 2021-07-12 13:10:57 -04:00
psychobunny
8ae4c30029 feat: schedule deprecation for action:category.loaded and action:category.loading. Use action:topics.loaded/ing instead
(or action:ajaxify.end if you are using it to check cid on page load)
2021-07-12 13:05:06 -04:00
psychobunny
07f25d8c47 fix: made TopicList.onTopicsLoaded private [breaking] 2021-07-12 12:57:59 -04:00
Misty (Bot)
62cd5f669b Latest translations and fallbacks 2021-07-12 09:07:04 +00:00
Renovate Bot
b6a8471205 fix(deps): update dependency nodebb-plugin-markdown to v8.14.2 2021-07-10 15:55:34 +00:00
Renovate Bot
72c9650fd3 fix(deps): update dependency autoprefixer to v10.3.0 2021-07-10 13:29:39 +00:00
Renovate Bot
f14df0d443 fix(deps): update socket.io packages to v4.1.3 2021-07-10 11:54:11 +00:00
Misty (Bot)
98b685d9c5 Latest translations and fallbacks 2021-07-10 09:05:51 +00:00
Renovate Bot
31dae04f3b fix(deps): update dependency nodebb-plugin-composer-default to v6.5.34 2021-07-10 01:59:49 +00:00
Julian Lam
0960a81468 fix: tests 2021-07-09 12:24:32 -04:00
Julian Lam
415416d2a7 fix: translate language keys if passed in to formatApiResponse 2021-07-09 12:24:32 -04:00
Julian Lam
7036c3751e feat: internationalize API error messages 2021-07-09 12:24:32 -04:00
Julian Lam
a54a3ee1ca fix: return proper API-style response if exception caught by error handler on v3 routes [breaking] 2021-07-09 12:24:32 -04:00
Renovate Bot
ae14016efc fix(deps): update dependency nodebb-theme-persona to v11.0.26 2021-07-08 16:39:05 +00:00
Barış Soner Uşaklı
ff78969c2c fix: lint 2021-07-08 11:25:54 -04:00
Barış Soner Uşaklı
55d7e55867 fix: tests 2021-07-08 11:22:36 -04:00
Barış Soner Uşaklı
6ed7e937ce refactor: fix wording 2021-07-08 11:07:52 -04:00
Barış Soner Uşaklı
47c8c69264 fix: keep query string on redirects 2021-07-08 11:06:20 -04:00
Barış Soner Uşaklı
5fd190f7c4 feat: #9651, change category desc to multiline 2021-07-08 10:01:22 -04:00
Misty (Bot)
7da8f12173 Latest translations and fallbacks 2021-07-08 09:05:51 +00:00
Renovate Bot
8b41684ee3 fix(deps): update dependency nodebb-plugin-markdown to v8.14.1 2021-07-07 16:09:03 -04:00
Misty (Bot)
46be2046ef chore: incrementing version number - v1.17.2
(cherry picked from commit 9f90bdcd59)
Signed-off-by: Misty (Bot) <deploy@nodebb.org>
2021-07-07 18:44:41 +00:00
Misty (Bot)
5c9c0605a7 chore: update changelog for v1.17.2 2021-07-07 18:44:41 +00:00
Barış Soner Uşaklı
8e0561f226 perf: cache Topics.getTopicsTags 2021-07-07 11:42:19 -04:00
Barış Soner Uşaklı
10ddfff38f perf: bypass getMultipleUserSettings 2021-07-07 09:58:06 -04:00
Julian Lam
e03782f218 fix(docs): #9648 2021-07-07 09:33:26 -04:00
Renovate Bot
f17625fb34 fix(deps): update dependency mongodb to v3.6.10 2021-07-06 22:00:03 +00:00
Renovate Bot
99c230372a chore(deps): update coverallsapp/github-action action to v1.1.3 2021-07-06 21:08:13 +00:00
Misty (Bot)
5fe074c133 Latest translations and fallbacks 2021-07-06 09:06:41 +00:00
Renovate Bot
c11927c5f5 fix(deps): update dependency nodebb-theme-persona to v11.0.25 2021-07-05 12:22:15 -04:00
Barış Soner Uşaklı
c9348efbdc feat: add merge/fork hooks 2021-07-05 10:02:42 -04:00
Misty (Bot)
d9ea704731 Latest translations and fallbacks 2021-07-05 09:06:33 +00:00
Renovate Bot
5ff9319f9d fix(deps): update dependency sortablejs to v1.14.0 2021-07-04 20:55:55 +00:00
Misty (Bot)
f7f008a779 Latest translations and fallbacks 2021-07-03 09:05:52 +00:00
Renovate Bot
725e70e9d7 chore(deps): update dependency eslint to v7.30.0 2021-07-03 01:10:47 +00:00
Renovate Bot
c7feea566f fix(deps): update dependency nodebb-theme-persona to v11.0.24 2021-07-02 19:32:59 +00:00
Misty (Bot)
7b20cd304b Latest translations and fallbacks 2021-07-02 09:06:36 +00:00
Misty (Bot)
b3658329da Latest translations and fallbacks 2021-07-01 09:05:51 +00:00
Julian Lam
b896484351 fix: #9634, re-jig top bar of Admin > Manage > Users 2021-06-30 17:43:16 -04:00
gasoved
97c8569a79 fix: hide private user data in api/v3/users/[uid] 2021-06-30 17:02:38 -04:00
Barış Soner Uşaklı
d9e2190a6b fix: numThumb upgrade script 2021-06-30 11:08:55 -04:00
Barış Soner Uşaklı
fee782c436 fix: acp dashboard sometimes not loading on cold load 2021-06-30 10:38:15 -04:00
Renovate Bot
edefac9645 chore(deps): update dependency coveralls to v3.1.1 2021-06-29 10:58:40 +00:00
Misty (Bot)
4d6421bb76 Latest translations and fallbacks 2021-06-29 09:06:33 +00:00
Julian Lam
849049765b fix: #9636, sanitize all attributes in meta and link tags 2021-06-28 13:17:22 -04:00
Julian Lam
09bac6bd7e fix: convert some hooks to use hooks module
re: julianlam/nodebb-plugin-markdown#130
2021-06-28 11:33:56 -04:00
Misty (Bot)
a76eab1ca2 Latest translations and fallbacks 2021-06-28 09:08:49 +00:00
Misty (Bot)
e6f30d2a36 Latest translations and fallbacks 2021-06-27 09:05:55 +00:00
Misty (Bot)
366b36a560 Latest translations and fallbacks 2021-06-26 09:05:52 +00:00
Renovate Bot
3611b04e0e fix(deps): update dependency nodebb-plugin-composer-default to v6.5.33 2021-06-25 22:26:37 +00:00
Renovate Bot
e40f648ff5 fix(deps): update dependency nodebb-plugin-markdown to v8.14.0 2021-06-25 14:35:29 -04:00
Julian Lam
acdbd04913 fix: #9627 2021-06-25 13:56:21 -04:00
Anton Grigoryev
db65360c0d fix(post-queue): moderatedCids is an array of numbers (#9631) 2021-06-24 19:04:37 -04:00
Renovate Bot
cf6fcc2107 fix(deps): update dependency nodebb-plugin-markdown to v8.13.1 2021-06-23 21:55:45 +00:00
Barış Soner Uşaklı
561ce7d30a fix: #9629, translate content property of meta tags 2021-06-23 11:03:59 -04:00
Barış Soner Uşaklı
9a9250338a Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-06-23 09:53:28 -04:00
Barış Soner Uşaklı
2fe30b6fa0 feat: #9628, allow setting custom icon names 2021-06-23 09:53:26 -04:00
Misty (Bot)
eacd00e9a4 Latest translations and fallbacks 2021-06-23 09:05:47 +00:00
Barış Soner Uşaklı
52596902a6 feat: #9617 update fa link 2021-06-22 13:16:59 -04:00
renovate[bot]
90e3f5acda fix(deps): update dependency nodebb-plugin-composer-default to v6.5.32 (#9626)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-06-22 13:08:26 -04:00
Barış Soner Uşaklı
909db3ae71 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-06-22 12:36:00 -04:00
Barış Soner Uşaklı
ab6f062ff9 fix: prevent crash in expandObjBy #9618 2021-06-22 12:35:53 -04:00
renovate[bot]
2060dc61bc fix(deps): update dependency nodebb-plugin-composer-default to v6.5.30 (#9624)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-06-22 12:22:03 -04:00
Barış Soner Uşaklı
1bf263c4a2 9622 (#9625)
* fix: #9622

dont allow regular user to remove system tags

* refactor: add guest/spider check to isPrivileged

string/trim tag
2021-06-22 12:21:52 -04:00
Barış Soner Uşaklı
0d975bc4fb fix: dont show system tags in whitelist dropdown to regular users 2021-06-22 12:21:40 -04:00
Barış Soner Uşaklı
84e065752f fix: #9622 (#9623)
dont allow regular user to remove system tags
2021-06-22 11:09:32 -04:00
Misty (Bot)
50e1a1a7ca Latest translations and fallbacks 2021-06-22 09:05:52 +00:00
Barış Soner Uşaklı
73f40e96a5 fix: #9620, fix notif delay 2021-06-21 11:17:57 -04:00
Barış Soner Uşaklı
c92fc19b5c fix: #9619, add group chat filter to /notifications 2021-06-21 10:02:18 -04:00
Renovate Bot
2700f7175e chore(deps): update dependency eslint to v7.29.0 2021-06-18 22:04:36 +00:00
Barış Soner Uşaklı
3cd9434b56 fix: scope 2021-06-18 12:36:04 -04:00
Barış Soner Uşaklı
1eda538da5 fix: #9615, catch exceptions in renderOverride 2021-06-18 12:24:07 -04:00
Barış Soner Uşaklı
46a454f194 feat: add bodyClass to 500 page 2021-06-18 09:55:08 -04:00
gasoved
8168c6c407 fix: purge uploaded images accordingly #9606 (#9611)
* fix: purge uploaded images accordingly

* fix: tests

* fix: relative paths
2021-06-18 09:21:23 -04:00
Misty (Bot)
ab5e2a4163 Latest translations and fallbacks 2021-06-18 09:08:51 +00:00
Renovate Bot
09aebbdafe fix(deps): update dependency postcss to v8.3.5 2021-06-17 04:38:56 +00:00
Barış Soner Uşaklı
7b4c0a1683 fix: keep query params when switching chat 2021-06-16 09:49:29 -04:00
Julian Lam
a2400f6baf fix: accidental unnecessarily strict conditional that effectively rendered SSO state checking opt-in instead of opt-out 2021-06-14 14:13:39 -04:00
Renovate Bot
520050da19 fix(deps): update dependency postcss to v8.3.4 2021-06-14 16:39:46 +00:00
Julian Lam
f9728aff2c feat: clear reset tokens on successful login 2021-06-14 11:50:36 -04:00
Renovate Bot
c7006ec6b4 fix(deps): update dependency postcss to v8.3.3 2021-06-14 10:37:32 +00:00
Misty (Bot)
dc613835e1 Latest translations and fallbacks 2021-06-14 09:06:31 +00:00
Renovate Bot
82b33dc40a fix(deps): update dependency ioredis to v4.27.6 2021-06-13 10:25:12 +00:00
Misty (Bot)
8f58c97c6d Latest translations and fallbacks 2021-06-12 09:07:24 +00:00
Julian Lam
5c42b3eab0 test: fixed broken tests from #9605, removed token clean on token usage as it is superceded by token clean on generation (+ associated test) 2021-06-11 15:43:03 -04:00
Julian Lam
f6c14d6b62 fix: introduce artificial delay + delay fudging on invalid email during reset token generation 2021-06-11 14:47:13 -04:00
Julian Lam
229f96f872 fix: #9605, expire all active reset tokens for a uid if that uid generates a new one 2021-06-11 14:39:00 -04:00
Julian Lam
f4eb336ad3 fix(deps): bump persona 2021-06-11 11:16:21 -04:00
Barış Soner Uşaklı
8c952aa381 fix: lint 2021-06-11 09:57:40 -04:00
Barış Soner Uşaklı
be19f27f40 feat: add filter:categories.categorySearch 2021-06-11 09:47:23 -04:00
Misty (Bot)
3cc3ef6e70 Latest translations and fallbacks 2021-06-11 09:10:52 +00:00
Renovate Bot
88f21e9143 fix(deps): update dependency postcss to v8.3.2 2021-06-11 04:27:05 +00:00
Misty (Bot)
db5f988324 Latest translations and fallbacks 2021-06-10 09:11:16 +00:00
Renovate Bot
71b4d6345b fix(deps): update dependency postcss to v8.3.1 2021-06-10 02:44:19 +00:00
Barış Soner Uşaklı
cc0cf99fed feat: allow nested properties on category page (#9601)
* feat: allow nested properties on category page

* fix: remove debug

* fix: remove debug
2021-06-09 17:40:36 -04:00
Misty (Bot)
8f00abc838 Latest translations and fallbacks 2021-06-09 09:11:00 +00:00
Barış Soner Uşaklı
39e1359142 fix: schema 2021-06-08 11:54:52 -04:00
Barış Soner Uşaklı
8ea58432c9 feat: show ip on acp manage users
update url on search
show matching ip when searching by ip
add ip to export csv
2021-06-08 11:50:52 -04:00
Barış Soner Uşaklı
6695927ea9 fix: pagination on acp users search 2021-06-08 10:00:51 -04:00
Misty (Bot)
1709139200 Latest translations and fallbacks 2021-06-08 09:11:28 +00:00
psychobunny
2db77b0cd2 docs: add undoTimeout 2021-06-07 14:51:55 -04:00
psychobunny
e588948ff5 feat: add undoTimeout to moving posts as well #9599 2021-06-07 14:46:37 -04:00
psychobunny
05cc7ccb60 feat: make undoTimeout configurable, closes #9599 2021-06-07 14:44:12 -04:00
Julian Lam
93d94564c1 fix: #9596, incorrect placeholder string in some translations 2021-06-07 12:21:44 -04:00
Mats
2b42e7edb0 chore: lint 2021-06-07 10:54:07 -04:00
Mats
6f73261186 fix: extra ')' 2021-06-07 10:54:07 -04:00
Mats
d07229aa6b chore: fix indentation 2021-06-07 10:54:07 -04:00
Mats
edcba61aa9 fix: disallow editing of other users' notes
Feel free to close this if it is intentional, but as you are not allowed to delete other users notes I expect you shouldn't be able to edit them. Editing another users post also changes ownership, allowing you to then delete it.

I also added `error:` to the errormessage so that they display properly.
2021-06-07 10:54:07 -04:00
Barış Soner Uşaklı
ca72aa93d7 Locks bug failing test (#9595)
* test: failing test for issue

* fix: #9593, don't lock if email is identical to username

* fix: lock calls after first call

* fix: add back email check

* test: remove invalid test

Co-authored-by: Julian Lam <julian@nodebb.org>
2021-06-07 10:26:00 -04:00
Renovate Bot
9f74caf65c fix(deps): update dependency ioredis to v4.27.5 2021-06-05 19:54:30 +00:00
Renovate Bot
fac0bcbd35 chore(deps): update dependency eslint to v7.28.0 2021-06-05 01:22:05 +00:00
Julian Lam
816856b0c6 feat: introduce boolean res.locals flag to bypass session reroll (used by session-sharing)
The session reroll logic is still standard practice, but in some cases, it is not necessary or causes UX issues. An issue opened in session sharing (julianlam/nodebb-plugin-session-sharing#95) brought this to attention in that parsing the cookie to log in the user caused a reroll (as expected), but caused the session open on other tabs to be mismatched. If "re-validate" was turned on, it basically meant that it was not possible to use NodeBB with multiple tabs.

Session sharing now sets `reroll` to `false` if re-validate is enabled.
2021-06-04 11:37:06 -04:00
renovate[bot]
6632b2b6c3 fix(deps): update dependency connect-redis to v6 (#9590)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-06-04 10:56:53 -04:00
Mats
c448ba6f5a Fixes flag note editing, deletion, and template update (#9581)
* Fixes flag note editing, deletion, and template update

Flag note datetime should be int.
Corrects argument order for note reloading.

* Chore: add missing radix

* fix: empty append bug

This line results in an error message popping up when clicking the flag notes text box, as the 'appendNote' case fires with no text. I can't tell that it serves any function.
2021-06-04 10:46:35 -04:00
Barış Soner Uşaklı
286644d0b8 fix: #9592, check session 2021-06-04 09:41:23 -04:00
Renovate Bot
4ffd234ff9 fix(deps): update dependency ioredis to v4.27.4 2021-06-04 09:37:59 +00:00
Barış Soner Uşaklı
3717df610a fix: don't crash if session doesn't exist 2021-06-03 17:11:25 -04:00
Barış Soner Uşaklı
66cae54ee3 fix: lint 2021-06-01 11:26:18 -04:00
Barış Soner Uşaklı
57e46e41e3 feat: allow modifying default category privileges 2021-06-01 11:21:15 -04:00
Renovate Bot
8672329218 chore(deps): update dependency smtp-server to v3.9.0 2021-06-01 12:45:35 +00:00
Misty (Bot)
21c992242e Latest translations and fallbacks 2021-05-30 09:08:41 +00:00
Renovate Bot
886d65f686 chore(deps): update dependency eslint-plugin-import to v2.23.4 2021-05-29 22:29:44 +00:00
Misty (Bot)
866a53088b Latest translations and fallbacks 2021-05-29 09:09:00 +00:00
Renovate Bot
062928d2e2 fix(deps): update dependency nodebb-theme-persona to v11.0.21 2021-05-28 18:38:16 +00:00
Julian Lam
16e0bca570 fix: improper use of filename extensions 2021-05-28 14:05:30 -04:00
Renovate Bot
c3b0e2fa99 chore(deps): update dependency eslint-plugin-import to v2.23.3 2021-05-28 14:05:30 -04:00
Barış Soner Uşaklı
d8d6c98970 fix: return null 2021-05-28 12:32:52 -04:00
Barış Soner Uşaklı
ac7b093f99 feat: add filter:notifications.create 2021-05-28 12:31:49 -04:00
Mats
f9b248b87f fix: updates navigation menu user icon 2021-05-28 11:17:56 -04:00
Barış Soner Uşaklı
3fb7444580 fix: returnOriginal deprecation
https://github.com/mongodb/node-mongodb-native/pull/2808
2021-05-28 11:12:21 -04:00
Misty (Bot)
e6c3840a4d Latest translations and fallbacks 2021-05-28 09:09:58 +00:00
Andrew Rodrigues
ca9ca876f5 chore: up rewards 2021-05-27 10:25:58 -04:00
Barış Soner Uşaklı
3d5fef6e80 feat: pass req.query to getUnreadData 2021-05-27 10:02:54 -04:00
Misty (Bot)
b9482e3c87 Latest translations and fallbacks 2021-05-27 09:08:12 +00:00
Renovate Bot
d8c64479d7 fix(deps): update dependency mongodb to v3.6.9 2021-05-26 23:45:05 +00:00
Julian Lam
d2960aeb09 feat: added GET user route for api v3 2021-05-26 12:35:37 -04:00
Julian Lam
48b8e3bb3f fix: error when trying to trim an object 2021-05-26 12:32:06 -04:00
Renovate Bot
3aeac357b2 fix(deps): update dependency autoprefixer to v10.2.6 2021-05-26 16:31:50 +00:00
Misty (Bot)
0aad131204 chore: incrementing version number - v1.17.1
(cherry picked from commit 902da54029)
Signed-off-by: Misty (Bot) <deploy@nodebb.org>
2021-05-26 15:40:54 +00:00
Misty (Bot)
1e6ed0adbc chore: update changelog for v1.17.1 2021-05-26 15:40:53 +00:00
Misty (Bot)
925883bf4c Latest translations and fallbacks 2021-05-26 09:08:53 +00:00
Barış Soner Uşaklı
9ebfdeb7ee fix: #9580, proper 404 when ajaxifying 2021-05-25 12:44:17 -04:00
Barış Soner Uşaklı
09f5179216 fix: lint 2021-05-25 12:04:34 -04:00
Barış Soner Uşaklı
77dde41f7b feat: keep query string when redirecting category 2021-05-25 11:57:10 -04:00
Renovate Bot
963a9fe600 fix(deps): update dependency sharp to v0.28.3 2021-05-24 17:32:24 +00:00
Renovate Bot
0e37bbfd2c chore(deps): update dependency grunt to v1.4.1 2021-05-24 16:55:54 +00:00
Renovate Bot
60170ad68c chore(deps): update dependency jsdom to v16.6.0 2021-05-23 22:51:00 +00:00
Misty (Bot)
609e579442 Latest translations and fallbacks 2021-05-22 09:09:27 +00:00
Renovate Bot
298af98d52 chore(deps): update dependency eslint to v7.27.0 2021-05-22 09:04:13 +00:00
Renovate Bot
075dab27fa fix(deps): update dependency ioredis to v4.27.3 2021-05-22 05:20:23 +00:00
renovate[bot]
10290f54ae fix(deps): update dependency nodebb-theme-vanilla to v12.0.8 (#9574)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-21 14:39:50 -04:00
renovate[bot]
6493578749 fix(deps): update dependency mongodb to v3.6.8 (#9573)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-21 14:39:41 -04:00
Misty (Bot)
99472e7652 Latest translations and fallbacks 2021-05-21 09:08:15 +00:00
Renovate Bot
ad4afd599c fix(deps): update dependency postcss to v8.3.0 2021-05-21 08:45:18 +00:00
Renovate Bot
403bcfac10 fix(deps): update dependency nodebb-theme-persona to v11.0.20 2021-05-20 21:41:50 +00:00
Renovate Bot
8d7e442065 fix(deps): update dependency nodebb-plugin-composer-default to v6.5.29 2021-05-20 19:46:44 +00:00
Barış Soner Uşaklı
951e71a0e5 fix: #9567 fix tests 2021-05-20 11:20:19 -04:00
Barış Soner Uşaklı
5215c30ade fix: #9567, use regular 404 2021-05-20 10:41:47 -04:00
Mats
e6ef094079 Re-enable "change username" button after failed attempt (#9568)
* Re-enable "change username" button after failed attempt

* chore: proper indentation
2021-05-20 10:24:16 -04:00
Misty (Bot)
0a5f165371 Latest translations and fallbacks 2021-05-20 09:12:29 +00:00
Barış Soner Uşaklı
3d6bdeb3df feat: add req.query to flags.list/getCount 2021-05-19 10:01:33 -04:00
Misty (Bot)
573a6e11e3 Latest translations and fallbacks 2021-05-19 09:11:31 +00:00
Renovate Bot
f29e4e87ef fix(deps): update dependency mongodb to v3.6.7 2021-05-18 20:39:49 +00:00
Barış Soner Uşaklı
d35c64b1a2 feat: add filter:flags.getFlagIdsWithFilters 2021-05-18 10:54:43 -04:00
Misty (Bot)
d81ce3e566 Latest translations and fallbacks 2021-05-18 09:07:32 +00:00
Renovate Bot
9b7653cccb fix(deps): update dependency textcomplete to ^0.18.0 2021-05-18 01:38:50 +00:00
Barış Soner Uşaklı
f5847f4f02 feat: #9559, set order help text 2021-05-17 20:18:33 -04:00
renovate[bot]
ca7c77bc1d fix(deps): update socket.io packages to v4.1.2 (#9563)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-17 19:22:44 -04:00
renovate[bot]
2d0564cb78 fix(deps): update dependency nodebb-plugin-dbsearch to v5.0.2 (#9562)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-05-17 19:22:38 -04:00
Barış Soner Uşaklı
1ec9739629 switch to request-promise-native (#9561)
* refactor: cli/upgrade async/await

async/await cli/upgrade-plugins
remove unused payload.files

* fix: add missing await

* refactor: use request-promise-native
2021-05-17 17:24:23 -04:00
Barış Soner Uşaklı
ac86937c88 refactor: cli/upgrade async/await (#9558)
* refactor: cli/upgrade async/await

async/await cli/upgrade-plugins
remove unused payload.files

* fix: add missing await
2021-05-17 17:08:00 -04:00
Barış Soner Uşaklı
1ce595083a fix: ioredis upgrade fix, maybe 2021-05-17 13:59:11 -04:00
Barış Soner Uşaklı
4afca6900b feat: add filter:user.getWatchedCategories 2021-05-17 12:12:16 -04:00
Julian Lam
1d9cfe1e96 fix: bug where interstitial errors were not properly passed to the front-end via req.flash 2021-05-17 10:50:58 -04:00
Barış Soner Uşaklı
518157d9fa feat: pass req.query to getUserDataByUserSlug 2021-05-17 10:26:32 -04:00
Renovate Bot
bf4aa50c8c fix(deps): update dependency nodebb-theme-slick to v1.4.7 2021-05-17 01:44:58 +00:00
Renovate Bot
4164b3229b fix(deps): update dependency nodebb-plugin-composer-default to v6.5.28 2021-05-14 22:19:53 +00:00
Barış Soner Uşaklı
0551642a35 fix: #9553, use same fields for user search results in acp 2021-05-14 13:00:56 -04:00
Barış Soner Uşaklı
e8c5c18af1 fix: lint 2021-05-14 11:21:49 -04:00
Barış Soner Uşaklı
94c12e3771 feat: #9508, add cluster support 2021-05-14 10:56:03 -04:00
Misty (Bot)
728db64485 Latest translations and fallbacks 2021-05-14 09:10:04 +00:00
Renovate Bot
1623ba4f41 chore(deps): update dependency eslint-plugin-import to v2.23.0 2021-05-14 04:55:39 -04:00
Barış Soner Uşaklı
a3d6c56ec3 feat: #9551 2021-05-13 12:16:53 -04:00
Misty (Bot)
70852c24de Latest translations and fallbacks 2021-05-13 09:07:39 +00:00
Renovate Bot
4a01313de3 chore(deps): update commitlint monorepo to v12.1.4 2021-05-13 08:03:26 +00:00
Barış Soner Uşaklı
ffa8016355 fix: lint 2021-05-12 10:41:38 -04:00
Barış Soner Uşaklı
fad5988ed6 fix: tests 2021-05-12 10:38:11 -04:00
Barış Soner Uşaklı
074ee859c4 fix: tests 2021-05-12 10:28:35 -04:00
Barış Soner Uşaklı
1f3e660108 feat: add template to hook 2021-05-12 10:22:51 -04:00
Barış Soner Uşaklı
a2442ee914 feat: add filter:account.getPostsFromUserSet 2021-05-12 10:20:45 -04:00
Renovate Bot
b82774c51d chore(deps): update commitlint monorepo to v12.1.3 2021-05-12 10:24:12 +00:00
Misty (Bot)
2e6a01a7c8 Latest translations and fallbacks 2021-05-12 09:08:37 +00:00
Renovate Bot
155a7fb6e7 fix(deps): update socket.io packages to v4.1.1 2021-05-12 01:08:58 +00:00
Peter Jaszkowiak
dd81dd03e0 fix(#9508): switch to ioredis (#9545)
* switch to ioredis

also need this fix in redisearch:

redis-search.js:98
```
  redisClient.multi(cmds).exec(function(err, ids) {
    if (err) {
      return callback(err);
    }
    var errRes = ids[resultIndex];
    if (errRes[0]) {
      return callback(errRes[0]);
    }
    callback(null, errRes[1]);
  });
```

* dbsearch compatible with ioredis

* fixed dbsearch?
2021-05-11 14:18:45 -04:00
Renovate Bot
53335677e3 fix(deps): update socket.io packages to v4.1.0 2021-05-11 11:10:02 +00:00
Misty (Bot)
f645a96d18 Latest translations and fallbacks 2021-05-11 09:09:16 +00:00
Renovate Bot
4bc07a087a fix(deps): update dependency sharp to v0.28.2 2021-05-11 01:43:41 +00:00
Renovate Bot
7770c2a131 fix(deps): update dependency postcss to v8.2.15 2021-05-11 00:24:39 +00:00
Renovate Bot
3145c7d5f1 fix(deps): update dependency nodebb-theme-persona to v11.0.19 2021-05-10 22:51:45 +00:00
Renovate Bot
7e2ea4df2c fix(deps): update dependency nodebb-plugin-mentions to v2.13.11 2021-05-10 21:03:43 +00:00
Julian Lam
8cc61f1197 feat: automatically attempt reconnection on window focus 2021-05-10 13:59:17 -04:00
Barış Soner Uşaklı
0096cf178a refactor: bubble other errors 2021-05-10 11:34:54 -04:00
Julian Lam
a9bb108802 fix: wrong error message checked 2021-05-10 11:33:20 -04:00
Julian Lam
ec6d1e2321 fix: #9507 session reroll causes socket.io to become confused (#9534)
* fix: #9507 session reroll causes socket.io to become confused

* fix: added return

* fix: simpler logic for error handling

* fix: overly sensitive catch
2021-05-10 11:22:37 -04:00
Julian Lam
6ef0c8e950 docs: update API docs to better outline authentication options 2021-05-10 11:20:28 -04:00
Renovate Bot
2ac5a08559 fix(deps): update dependency nodebb-plugin-markdown to v8.12.10 2021-05-10 15:18:49 +00:00
Misty (Bot)
b4c31f78ec Latest translations and fallbacks 2021-05-10 09:13:56 +00:00
Misty (Bot)
7f7d5a8f79 Latest translations and fallbacks 2021-05-09 09:07:05 +00:00
Misty (Bot)
230bbf01fc Latest translations and fallbacks 2021-05-08 09:08:16 +00:00
Renovate Bot
d1418210ca chore(deps): update dependency eslint to v7.26.0 2021-05-08 07:15:39 +00:00
Renovate Bot
ee3634cc5c fix(deps): update dependency nodebb-plugin-markdown to v8.12.9 2021-05-07 22:34:23 +00:00
Renovate Bot
1bf57d40f2 chore(deps): update dependency lint-staged to v11 2021-05-07 16:26:19 -04:00
Renovate Bot
461e187b03 chore(deps): update dependency mocha to v8.4.0 2021-05-07 11:06:33 -04:00
Barış Soner Uşaklı
f6b583bb9d feat: #9533, allow redirect in build hooks 2021-05-07 09:32:06 -04:00
Misty (Bot)
d8a8864cee Latest translations and fallbacks 2021-05-07 09:14:07 +00:00
Barış Soner Uşaklı
2c22b06feb fix: isObjectField(s) empty field 2021-05-06 12:44:01 -04:00
Renovate Bot
ff98f85488 fix(deps): update socket.io packages to v4.0.2 2021-05-06 15:22:36 +00:00
Misty (Bot)
3cfd8f7671 Latest translations and fallbacks 2021-05-06 09:12:28 +00:00
Renovate Bot
22ec1ea5a6 fix(deps): update dependency postcss to v8.2.14 2021-05-05 21:50:38 +00:00
Misty (Bot)
45a4bb4174 Latest translations and fallbacks 2021-05-05 09:10:08 +00:00
Misty (Bot)
32d67666cd Latest translations and fallbacks 2021-05-04 09:09:22 +00:00
gasoved
ce5fea2abd fix: do not register SW for Safari until upstream fixes #9193 2021-05-03 11:55:01 -04:00
gasoved
cb1dd0a3db fix: infinite scroll with small number of items #9524 (#9525) 2021-05-03 11:23:28 -04:00
Misty (Bot)
9950602eff Latest translations and fallbacks 2021-05-02 09:07:08 +00:00
Renovate Bot
0389dd968f fix(deps): update dependency sitemap to v7 2021-05-02 03:59:18 -04:00
Barış Soner Uşaklı
7c1e163d82 Revert "feat: add _hooks metadata object to all hooks that have object-type params"
This reverts commit 46899ccadb.
2021-04-30 12:16:30 -04:00
Julian Lam
db48b9527d fix: #9519 unable to properly ajaxify to home on subfolder installs if anchor did not have a trailing slash 2021-04-30 12:02:15 -04:00
Julian Lam
46899ccadb feat: add _hooks metadata object to all hooks that have object-type params 2021-04-30 11:23:07 -04:00
Barış Soner Uşaklı
9895e682ac Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-04-30 10:06:26 -04:00
Barış Soner Uşaklı
d8e4fd4cdd feat: add filter:categories.copySettingsFrom 2021-04-30 10:06:19 -04:00
Renovate Bot
19f1cbfc4a fix(deps): update dependency nodebb-widget-essentials to v5.0.4 2021-04-29 23:13:52 +00:00
Barış Soner Uşaklı
084c985117 feat: guard against multiple resolves 2021-04-29 10:47:23 -04:00
Misty (Bot)
8789716ae4 Latest translations and fallbacks 2021-04-29 09:18:19 +00:00
Barış Soner Uşaklı
5fe97b9c2e revert: sync hooks 2021-04-28 15:00:43 -04:00
Renovate Bot
33d91fdef8 fix(deps): update dependency nodebb-theme-persona to v11.0.18 2021-04-28 11:28:56 +00:00
Misty (Bot)
ac1a272321 Latest translations and fallbacks 2021-04-28 09:14:04 +00:00
Renovate Bot
c0d54a06f6 fix(deps): update dependency connect-redis to v5.2.0 2021-04-27 15:01:38 +00:00
Barış Soner Uşaklı
6ed8890c2e fix: #9512, fix chat icon if no privileges 2021-04-27 10:00:52 -04:00
Misty (Bot)
55e3f5c1db Latest translations and fallbacks 2021-04-27 09:13:53 +00:00
Renovate Bot
831e5c2682 fix(deps): update dependency postcss to v8.2.13 2021-04-26 22:23:13 +00:00
Julian Lam
d08d0c42e9 docs: update API authentication verbiage 2021-04-26 16:14:06 -04:00
Barış Soner Uşaklı
b40fc4b64d feat: #9511 send notifications on accept/reject 2021-04-26 14:50:44 -04:00
psychobunny
2bfa63aecf feat: hidden class to FOUC 2021-04-26 11:17:46 -04:00
Barış Soner Uşaklı
a478dc7ee8 feat: add filter:middleware.autoLocale 2021-04-26 10:35:34 -04:00
Renovate Bot
32c20806bc chore(deps): update dependency eslint to v7.25.0 2021-04-24 01:47:50 +00:00
Barış Soner Uşaklı
308252f566 fix: #9503, dont error in markUnread if room doesnt exist
this prevents deleting the user if they are the only person in the chat room
2021-04-23 14:46:54 -04:00
Barış Soner Uşaklı
9e07efc126 fix: use socket.request.headers 2021-04-23 12:41:58 -04:00
Barış Soner Uşaklı
ed534f34f5 fix: buildReqObject headers for socket.io calls 2021-04-23 12:37:59 -04:00
Misty (Bot)
3b98d83a6b Latest translations and fallbacks 2021-04-23 09:11:53 +00:00
Renovate Bot
38454df9a3 fix(deps): update dependency postcss to v8.2.12 2021-04-22 20:39:23 +00:00
Renovate Bot
a30deef3ed chore(deps): update dependency grunt to v1.4.0 2021-04-22 18:46:26 +00:00
Barış Soner Uşaklı
1029a06a87 test: fix tests 2021-04-22 11:50:05 -04:00
Barış Soner Uşaklı
01956af43a feat: remove sync hooks support 2021-04-22 11:35:36 -04:00
Barış Soner Uşaklı
4e490f6058 test: fix redis tests 2021-04-22 11:28:10 -04:00
Barış Soner Uşaklı
92de49be00 test: add test for undefined fields in getObjectsFields 2021-04-22 11:14:47 -04:00
Misty (Bot)
75f7972b88 chore: incrementing version number - v1.17.0
(cherry picked from commit 6b4ef46ead)
Signed-off-by: Misty (Bot) <deploy@nodebb.org>
2021-04-22 00:37:32 +00:00
Misty (Bot)
4c441a1b0b chore: update changelog for v1.17.0 2021-04-22 00:37:32 +00:00
Barış Soner Uşaklı
1db8920b18 refactor: make debug handler async 2021-04-21 19:29:46 -04:00
gasoved
8b79c7f139 fix: regress. rescheduling shouldn't add to sets that pinning removed… (#9477)
* fix: regress. rescheduling shouldn't add to sets that pinning removed from

* test: remove the also from tests
2021-04-21 19:19:04 -04:00
Renovate Bot
427e4f4724 fix(deps): update dependency html-to-text to v7.1.1 2021-04-21 18:39:19 +00:00
Renovate Bot
35a4d0be08 fix(deps): update dependency redis to v3.1.2 2021-04-21 12:22:27 +00:00
Misty (Bot)
56f6b98b80 Latest translations and fallbacks 2021-04-21 09:11:54 +00:00
Renovate Bot
e3d5d8d76c fix(deps): update dependency validator to v13.6.0 2021-04-20 13:40:30 +00:00
Misty (Bot)
a90f123b50 Latest translations and fallbacks 2021-04-20 09:12:07 +00:00
Renovate Bot
1b84627171 fix(deps): update dependency nodebb-plugin-composer-default to v6.5.27 2021-04-19 19:45:37 +00:00
Misty (Bot)
eca6a8aa2e Latest translations and fallbacks 2021-04-19 09:11:29 +00:00
Barış Soner Uşaklı
9b71b087ec feat: lang strings 2021-04-18 21:57:07 -04:00
Barış Soner Uşaklı
435067aa5f test: remove logs 2021-04-18 21:57:07 -04:00
Barış Soner Uşaklı
2ea468daa3 test: clear cache between runs, require middleware later in helpers 2021-04-18 21:57:07 -04:00
Barış Soner Uşaklı
d15e27107e test: log 2021-04-18 21:57:07 -04:00
Barış Soner Uşaklı
354e0a822d test: remove equals 2021-04-18 21:57:07 -04:00
Barış Soner Uşaklı
2f401d7d74 test: test times 2021-04-18 21:57:07 -04:00
psychobunny
4dd3844680 fix: logic is hard 2021-04-18 21:57:07 -04:00
psychobunny
bc0ca61c6a fix: run in series 2021-04-18 21:57:07 -04:00
Barış Soner Uşaklı
80ef108220 test: log 2021-04-18 21:57:07 -04:00
psychobunny
2e9efc0e8a fix: wrong variable for cache 2021-04-18 21:57:07 -04:00
psychobunny
13fa983e61 fix: accidentally committed this 2021-04-18 21:57:07 -04:00
psychobunny
eb240c905f fix: tests 2021-04-18 21:57:07 -04:00
psychobunny
fa0c92a7c4 fix: eslint 2021-04-18 21:57:07 -04:00
psychobunny
ea22cd302a fix: use req.ip instead, since guests can upload as well 2021-04-18 21:57:07 -04:00
psychobunny
a9978fcfd2 feat: rate limit file uploads 2021-04-18 21:57:07 -04:00
Misty (Bot)
0a3a22db9d Latest translations and fallbacks 2021-04-18 09:07:58 +00:00
Misty (Bot)
f44ec97f3b Latest translations and fallbacks 2021-04-17 09:06:53 +00:00
Misty (Bot)
c484ed4858 Latest translations and fallbacks 2021-04-16 09:09:34 +00:00
Barış Soner Uşaklı
36f119a96a fix: #9492, keep query params on redirect 2021-04-15 12:43:28 -04:00
Misty (Bot)
0cfccee3bd Latest translations and fallbacks 2021-04-15 09:12:07 +00:00
Renovate Bot
286a63e3de fix(deps): update dependency redis to v3.1.1 2021-04-14 23:50:20 +00:00
Renovate Bot
51d58ce6d4 fix(deps): update dependency nodebb-theme-persona to v11.0.17 2021-04-14 17:42:20 -04:00
Renovate Bot
16a1ba5700 fix(deps): update dependency nodebb-theme-vanilla to v12.0.7 2021-04-14 17:42:02 -04:00
psychobunny
93598982f9 fix: stripTags for editing sorted list items as well 2021-04-14 17:01:25 -04:00
psychobunny
b5ce8d257c style: eslint 2021-04-14 16:52:55 -04:00
gasoved
8faa6e4515 feat: filter flags by username #8489 (#9451)
* feat: filter flags by username #8489

* feat: toggle flag filter text
2021-04-14 16:50:30 -04:00
Julian Lam
1fee6a702a fix: #9487, session data gathered during a session is lost upon login
e.g. returnTo, tids_viewed, etc.
2021-04-14 16:42:27 -04:00
Julian Lam
f4c5050a16 fix: failure on session reroll 🍣 test 2021-04-14 16:32:59 -04:00
Julian Lam
a3a7ab3ae1 test: added test for session id reroll on login 2021-04-14 11:38:17 -04:00
Misty (Bot)
47348d2c9f Latest translations and fallbacks 2021-04-14 09:09:29 +00:00
Julian Lam
697ed3bf37 feat: roll session identifier on login, as security best practice
see: https://owasp.org/www-community/attacks/Session_fixation
2021-04-13 21:32:48 -04:00
Julian Lam
e845c34b52 fix: registration interstitials not handling promise rejections properly 2021-04-13 21:32:48 -04:00
psychobunny
75073c0ed3 fix: stripHTMLTags for sorted list entries 2021-04-13 13:08:14 -04:00
psychobunny
e50408b461 fix: restore original behavior for up/downvoting when logged out 2021-04-13 10:19:45 -04:00
Misty (Bot)
b93a2717fd Latest translations and fallbacks 2021-04-13 09:09:13 +00:00
Barış Soner Uşaklı
4494728cf8 feat: allow different slugs 2021-04-12 17:12:26 -04:00
psychobunny
60eed8d89f fix: let recent replies respect oldest/newest sort settings 2021-04-11 19:53:40 -04:00
Renovate Bot
0f249aa729 chore(deps): update dependency jsdom to v16.5.3 2021-04-11 21:46:53 +00:00
Barış Soner Uşaklı
6907837fce fix: #9483, fix events count display 2021-04-11 16:13:31 -04:00
Renovate Bot
31cec2de95 fix(deps): update dependency postcss to v8.2.10 2021-04-11 18:16:19 +00:00
Misty (Bot)
e2105ca8fa Latest translations and fallbacks 2021-04-11 09:07:16 +00:00
Misty (Bot)
c66032d169 Latest translations and fallbacks 2021-04-10 09:07:50 +00:00
Renovate Bot
60c0c16f13 chore(deps): update dependency eslint to v7.24.0 2021-04-09 23:58:22 +00:00
Barış Soner Uşaklı
161081e960 fix: escape flag reason 2021-04-09 14:20:42 -04:00
Renovate Bot
fe087806cc fix(deps): update dependency nodebb-plugin-mentions to v2.13.9 2021-04-09 16:42:00 +00:00
Julian Lam
95d5359cbe fix: copy change on plugin activate to instruct admins to rebuild as well as restart
re: nodebb/nodebb-plugin-poll#122
2021-04-09 10:10:16 -04:00
Misty (Bot)
f40ee34c5b Latest translations and fallbacks 2021-04-09 09:11:44 +00:00
Barış Soner Uşaklı
fd3bc605c6 feat: remove sort again 2021-04-08 15:56:26 -04:00
Barış Soner Uşaklı
2dc3283f19 fix: updateCategoryTagsCount 2021-04-08 15:55:06 -04:00
Barış Soner Uşaklı
f9df6431c9 revert: revert tag sort 2021-04-08 15:19:35 -04:00
Barış Soner Uşaklı
036f935fa9 fix: #9473 (#9476) 2021-04-08 13:02:40 -04:00
Barış Soner Uşaklı
1af34b43e3 fix: #9474, load hooks on page load 2021-04-08 12:28:34 -04:00
gasoved
397baf0254 refactor: widgets (#9471) 2021-04-07 15:22:16 -04:00
Barış Soner Uşaklı
ae385d8336 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-04-07 14:23:44 -04:00
Barış Soner Uşaklı
d09cdc0436 fix: spec 2021-04-07 14:23:39 -04:00
Julian Lam
f65d2162f8 feat: update hook
Hook payload updated to pass login strategy (if overridden, this value will be something other than 'local'), and explicitly pass error if the login failed.
2021-04-07 14:21:51 -04:00
Barış Soner Uşaklı
f32ea1737a fix: #9466, don't call leaveRoom in maintenance mode 2021-04-07 14:10:15 -04:00
gasoved
a0dd90804c fix: exempt ST from being del/res via last main posts (#9468) 2021-04-07 08:58:52 -04:00
renovate[bot]
4264b236b3 fix(deps): update dependency mongodb to v3.6.6 (#9467)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-04-06 18:41:45 -04:00
Barış Soner Uşaklı
784600d930 fix: #9462, on install copy default favicon 2021-04-06 18:22:59 -04:00
Barış Soner Uşaklı
05f2236193 feat: add reverse of recent to getSortedTopics 2021-04-06 12:43:32 -04:00
Barış Soner Uşaklı
c5ae8a70e1 fix: #9463 2021-04-06 11:47:08 -04:00
Barış Soner Uşaklı
4041e786b2 fix: #9465 2021-04-06 11:43:56 -04:00
Misty (Bot)
81f2fb201e Latest translations and fallbacks 2021-04-06 09:10:29 +00:00
Misty (Bot)
42c4f963f9 chore: incrementing version number - v1.17.0-beta.5 2021-04-05 22:02:41 +00:00
Renovate Bot
34cbc9e264 fix(deps): update dependency sharp to v0.28.1 2021-04-05 14:40:24 +00:00
Renovate Bot
a8330b6db3 fix(deps): update dependency nodebb-theme-persona to v11.0.16 2021-04-05 13:56:09 +00:00
Misty (Bot)
e0f23c9031 Latest translations and fallbacks 2021-04-05 09:07:48 +00:00
Renovate Bot
f155f3260f chore(deps): update dependency husky to v6 2021-04-04 05:11:15 -04:00
Misty (Bot)
22474753c4 Latest translations and fallbacks 2021-04-04 09:07:05 +00:00
Renovate Bot
c02310b80f fix(deps): update dependency nodebb-theme-vanilla to v12.0.6 2021-04-02 21:39:44 +00:00
Renovate Bot
316c71d7e5 fix(deps): update dependency nodebb-theme-persona to v11.0.15 2021-04-02 21:00:51 +00:00
Julian Lam
9c52fd2e74 fix: #9450 express session saved even if saveUninitialized explicitly passed in 2021-04-02 11:07:16 -04:00
Misty (Bot)
7754c1f66e Latest translations and fallbacks 2021-04-02 09:10:28 +00:00
Renovate Bot
b4d0138850 chore(deps): update commitlint monorepo to v12.1.1 2021-04-02 04:01:39 +00:00
Barış Soner Uşaklı
cb53a64cde fix: acp crash 2021-04-01 14:05:24 -04:00
Misty (Bot)
e963715e94 Latest translations and fallbacks 2021-04-01 09:12:02 +00:00
Renovate Bot
e7776f8db8 fix(deps): update socket.io packages to v4.0.1 2021-04-01 02:55:44 +00:00
Renovate Bot
fd9ff334b4 fix(deps): update dependency redis to v3.1.0 2021-04-01 01:36:04 +00:00
Barış Soner Uşaklı
285aa36556 feat: allow exists methods to work with arrays and single id 2021-03-31 13:20:35 -04:00
Barış Soner Uşaklı
d16b45fd2d feat: pass all data to filter:category.get 2021-03-31 11:15:50 -04:00
Barış Soner Uşaklı
dbb59228f2 feat: add action:posts.loaded 2021-03-30 21:09:42 -04:00
Barış Soner Uşaklı
536591f842 fix: #9447, include query params in previousUrl 2021-03-30 20:10:14 -04:00
renovate[bot]
8d9afbc606 fix(deps): update dependency nodebb-plugin-composer-default to v6.5.26 (#9446)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-30 18:52:13 -04:00
psychobunny
1ad1787eaa fix: thumb count not updated when uploading multiple thumbs at a time 2021-03-30 18:02:58 -04:00
Barış Soner Uşaklı
6406e52705 chore: fix indent 2021-03-30 17:52:01 -04:00
gasoved
aa0137b1c4 feat: rescheduling (editing ST) (#9445) 2021-03-30 17:51:23 -04:00
Renovate Bot
6f51c46052 fix(deps): update dependency postcss to v8.2.9 2021-03-30 21:50:24 +00:00
Misty (Bot)
75a4d37e2e Latest translations and fallbacks 2021-03-30 09:09:20 +00:00
renovate[bot]
fecfcd81c1 fix(deps): update dependency nodebb-theme-persona to v11.0.14 (#9443)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-29 23:20:39 -04:00
renovate[bot]
e5cc6e4020 fix(deps): update dependency nodebb-theme-persona to v11.0.13 (#9437)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-29 21:00:29 -04:00
Barış Soner Uşaklı
f7f46e7c65 feat: upgrade sharp (#9442) 2021-03-29 21:00:12 -04:00
Misty (Bot)
4c66c7f9b2 Latest translations and fallbacks 2021-03-29 09:08:14 +00:00
Renovate Bot
5e2e7a582d chore(deps): update dependency jsdom to v16.5.2 2021-03-28 23:10:20 +00:00
psychobunny
01f63e5d58 fix: change email button stays disabled if user submitted an invalid email 2021-03-28 13:03:15 -04:00
psychobunny
cfdef77b28 fix: use app.logout() to clear session after deleting user
I think this was originally changed when we added logging in/out without refreshing, but didn't change this back after reverting that feature
2021-03-28 11:59:17 -04:00
psychobunny
9e1f72a435 feat: optional urlMethod param for loginStrategies 2021-03-27 22:21:27 -04:00
Peter Jaszkowiak
2a03012e2c fix: ./nodebb help with commander@7 (#9434)
hopefully this one last as long as the last one did
2021-03-27 12:14:27 -04:00
Renovate Bot
dfdb005099 fix(deps): update dependency nodebb-theme-slick to v1.4.6 2021-03-27 15:20:26 +00:00
Renovate Bot
27de58f2f8 fix(deps): update dependency nodebb-theme-persona to v11.0.11 2021-03-27 14:09:11 +00:00
Misty (Bot)
a72cc99012 Latest translations and fallbacks 2021-03-27 09:06:03 +00:00
Renovate Bot
382f75bc9d fix(deps): update dependency benchpressjs to v2.4.3 2021-03-27 06:21:13 +00:00
Renovate Bot
d600cd94fe chore(deps): update dependency eslint to v7.23.0 2021-03-27 03:15:06 +00:00
Barış Soner Uşaklı
728ac5ff72 perf: increase batch size for notifs, run parallel 2021-03-26 17:47:57 -04:00
Renovate Bot
24236718d5 fix(deps): update dependency nodebb-plugin-composer-default to v6.5.25 2021-03-26 18:36:10 +00:00
Misty (Bot)
40ed7a3b1e Latest translations and fallbacks 2021-03-26 09:10:27 +00:00
Barış Soner Uşaklı
344575dde1 feat: add hooks to language loading (#9426)
and flushNamespace method
2021-03-25 20:21:47 -04:00
Barış Soner Uşaklı
edf80cfb3b fix: hide titleRaw for deleted topics as well 2021-03-25 18:32:11 -04:00
Barış Soner Uşaklı
b06f0ea20e feat: doggy.gif 2021-03-25 15:38:35 -04:00
gasoved
a3e95e798f feat: allow adding sorted-list items from forms outside of modal 2021-03-25 15:26:42 -04:00
Barış Soner Uşaklı
3403635ce6 chore: benchpress 2.4.1 2021-03-25 13:32:28 -04:00
Misty (Bot)
60e3131c81 Latest translations and fallbacks 2021-03-25 09:12:03 +00:00
Renovate Bot
89973d8050 fix(deps): update dependency nodebb-theme-vanilla to v12.0.5 2021-03-25 05:13:37 +00:00
Renovate Bot
dec344462d fix(deps): update dependency nodebb-plugin-composer-default to v6.5.24 2021-03-25 02:10:16 +00:00
Barış Soner Uşaklı
a1ee1a2a76 chore: remove log 2021-03-24 19:21:01 -04:00
Barış Soner Uşaklı
c5dda64fa8 fix: #9410, fix post queue
items in the cache were parsed over and over again
2021-03-24 19:19:49 -04:00
Renovate Bot
f78b4ba693 fix(deps): update dependency nodebb-theme-persona to v11.0.10 2021-03-24 22:07:29 +00:00
renovate[bot]
e35d074110 fix(deps): update dependency nodebb-plugin-composer-default to v6.5.23 (#9422)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-24 15:57:33 -04:00
Barış Soner Uşaklı
9052db930f fix: privilege tables 2021-03-24 15:05:42 -04:00
gasoved
077330b764 feat: scheduled topics (#9399)
* feat: scheduled topics

* refactor: linting fixes

* fix: tests

* fix(test): race condition

* fix: make a single request
2021-03-24 14:28:02 -04:00
Barış Soner Uşaklı
67b09cba5f fix: #9420, paginate after loading notifications 2021-03-24 12:41:37 -04:00
Renovate Bot
124cb9d977 fix(deps): update dependency nodebb-theme-persona to v11.0.8 2021-03-24 12:25:36 -04:00
Renovate Bot
1dddcb490e fix(deps): update dependency benchpressjs to v2.4.2 2021-03-24 12:52:35 +00:00
Misty (Bot)
66e986960d Latest translations and fallbacks 2021-03-24 09:11:18 +00:00
Julian Lam
d9e2029074 fix: hooks for alert animate, no more fadein/fadeout for reconnect alert 2021-03-23 13:42:18 -04:00
Renovate Bot
d511216c82 fix(deps): update dependency nodebb-plugin-mentions to v2.13.8 2021-03-23 16:16:27 +00:00
Renovate Bot
29ff5bb93f fix(deps): update dependency connect-mongo to v4.4.1 2021-03-23 12:37:51 +00:00
Misty (Bot)
831ecc6af0 Latest translations and fallbacks 2021-03-23 09:10:52 +00:00
Renovate Bot
c5734063d1 fix(deps): update dependency nodebb-theme-persona to v11.0.7 2021-03-22 14:34:18 -04:00
Misty (Bot)
280e163690 Latest translations and fallbacks 2021-03-22 09:09:52 +00:00
Barış Soner Uşaklı
e42b152f16 fix: #9414, use posts:view_deleted 2021-03-21 21:38:08 -04:00
Renovate Bot
77f551a4cc chore(deps): update dependency husky to v5.2.0 2021-03-21 23:07:28 +00:00
Misty (Bot)
ab38f745a0 Latest translations and fallbacks 2021-03-21 09:06:46 +00:00
Barış Soner Uşaklı
a94d96514e feat: show link if category is a link 2021-03-20 18:32:21 -04:00
Barış Soner Uşaklı
2ceda70a97 fix: preserve order when changing parent 2021-03-20 15:51:34 -04:00
Barış Soner Uşaklı
3c4e93a3c1 fix: #9411 2021-03-20 15:51:17 -04:00
Barış Soner Uşaklı
cef58d1d6f fix: #9412 2021-03-20 15:10:36 -04:00
Barış Soner Uşaklı
d00268c9b8 refactor: style, no need to convert length to string 2021-03-20 14:50:21 -04:00
Misty (Bot)
91992240bd chore: incrementing version number - v1.17.0-beta.4 2021-03-20 01:48:29 +00:00
renovate[bot]
870e6c2c28 fix(deps): update dependency nodebb-theme-vanilla to v12.0.4 (#9409)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-19 21:17:40 -04:00
renovate[bot]
24be86420c fix(deps): update dependency nodebb-theme-slick to v1.4.5 (#9408)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-19 21:01:43 -04:00
renovate[bot]
b50739c175 fix(deps): update dependency nodebb-theme-persona to v11.0.6 (#9407)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-19 20:25:18 -04:00
Barış Soner Uşaklı
93c595d95e fix: #9406, update flag post tools 2021-03-19 19:39:24 -04:00
Julian Lam
d8ff9851a3 fix: typo in switch..case 2021-03-19 15:46:58 -04:00
Misty (Bot)
026ceaf3ec Latest translations and fallbacks 2021-03-19 09:07:47 +00:00
Misty (Bot)
d56bca65aa Latest translations and fallbacks 2021-03-18 09:09:57 +00:00
renovate[bot]
9359cae9cd fix(deps): update dependency nodebb-plugin-spam-be-gone to v0.7.9 (#9405)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-17 18:27:32 -04:00
Julian Lam
289bfc0b43 chore: bump composer-default 2021-03-17 17:10:59 -04:00
Barış Soner Uşaklı
801570e4cf fix: #9404, show signatures if the target user has signature privilege 2021-03-17 13:31:31 -04:00
Barış Soner Uşaklı
ee69c1f80e fix: selector 2021-03-17 13:26:37 -04:00
Barış Soner Uşaklı
75553b246c fix: sorting when filtering by uid 2021-03-17 13:14:55 -04:00
Julian Lam
98b72ca572 fix: allow local (and overridden) login strategies to pass Error objects back 2021-03-17 12:10:57 -04:00
Misty (Bot)
17693dd5ca Latest translations and fallbacks 2021-03-17 09:10:04 +00:00
Renovate Bot
47b2b97fef fix(deps): update dependency nodebb-theme-persona to v11.0.5 2021-03-17 05:36:51 +00:00
Barış Soner Uşaklı
dd12c83fa0 feat: make info page full width 2021-03-16 23:26:07 -04:00
Barış Soner Uşaklı
6aa60b63b5 fix: category search not using uid 2021-03-16 22:59:58 -04:00
Barış Soner Uşaklı
262e059fa6 fix: inf scroll with subfolder install 2021-03-16 19:40:26 -04:00
renovate[bot]
2f70ac5a91 fix(deps): update dependency nodebb-plugin-composer-default to v6.5.21 (#9401)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-16 19:24:28 -04:00
Barış Soner Uşaklı
56523aa148 revert: change toPid truthy 2021-03-16 18:02:21 -04:00
Renovate Bot
fcd887fd52 fix(deps): update dependency mongodb to v3.6.5 2021-03-16 18:39:57 +00:00
Barış Soner Uşaklı
2041b8084f fix: flicker on dashboard 2021-03-15 23:24:16 -04:00
Barış Soner Uşaklı
d14ba1f4e1 chore: up themes 2021-03-15 19:47:15 -04:00
Barış Soner Uşaklı
90d64fe1df fix: #9398, crash on post flag 2021-03-15 17:55:14 -04:00
Barış Soner Uşaklı
8d3ec23483 chore: remove node 10 2021-03-15 15:35:33 -04:00
Barış Soner Uşaklı
a8f7b24452 fix: #9395, pass all data from client to Topics.reply (#9396)
* fix: #9395, pass all data from client to Topics.reply

so plugins can set custom fields
refactor and use setDefaultPostData

* fix: circular json error

* refactor: change params
2021-03-15 15:34:05 -04:00
Julian Lam
33fbfdfe40 chore: bump composer-default to 6.5.20 2021-03-15 14:40:49 -04:00
Barış Soner Uşaklı
4ac38ab2bc fix: lint 2021-03-15 14:32:15 -04:00
Barış Soner Uşaklı
eb360351e5 fix: #9394, fix guest handles 2021-03-15 14:03:35 -04:00
Julian Lam
d1685600d3 refactor: deprecate action:script.load, use filter:script.load instead 2021-03-15 13:56:12 -04:00
Misty (Bot)
6a354db491 Latest translations and fallbacks 2021-03-15 09:10:50 +00:00
renovate[bot]
1631f159ef fix(deps): update dependency nodebb-plugin-composer-default to v6.5.19 (#9391)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-14 18:22:23 -04:00
Barış Soner Uşaklı
03e306349c fix: #9387, don't try to load undefined images 2021-03-14 15:57:08 -04:00
Barış Soner Uşaklı
5c59354c58 fix: #9389, allow admins to add themselves to private groups 2021-03-14 15:20:14 -04:00
Barış Soner Uşaklı
482641e30e fix: #9386, add missing translation string 2021-03-14 14:05:17 -04:00
Misty (Bot)
6e8b1bb9ad chore: incrementing version number - v1.17.0-beta.3 2021-03-14 16:37:13 +00:00
Barış Soner Uşaklı
ef3ec96af2 chore: add multiparty dep 2021-03-14 12:29:12 -04:00
renovate[bot]
8d40176028 fix(deps): update dependency nodebb-plugin-composer-default to v6.5.17 (#9384)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-14 11:41:06 -04:00
Barış Soner Uşaklı
4327a09d76 feat: allow optional fields argument on db.getObject(s) (#9385) 2021-03-14 11:40:54 -04:00
Misty (Bot)
754965b572 Latest translations and fallbacks 2021-03-14 09:06:43 +00:00
Barış Soner Uşaklı
f316c4d4b8 refactor: remove uncessary check 2021-03-14 00:39:11 -05:00
Barış Soner Uşaklı
e789fe8d2a fix: #9383, don't show deleted topic titles in inf scroll 2021-03-13 22:54:32 -05:00
Julian Lam
cc489708ee fix: #9378, crash on verifyToken if API Token settings not saved (null case error) 2021-03-13 21:25:27 -05:00
Renovate Bot
27facadb6a fix(deps): update dependency nodebb-theme-persona to v11.0.3 2021-03-13 22:46:40 +00:00
Misty (Bot)
0c1945dc5b chore: incrementing version number - v1.17.0-beta.2 2021-03-13 20:13:43 +00:00
Barış Soner Uşaklı
35700d1634 fix: closes #9382, fix digest topic links 2021-03-13 14:46:08 -05:00
Barış Soner Uşaklı
1e1127bd20 fix: spec 2021-03-13 14:35:26 -05:00
Barış Soner Uşaklı
668508cc37 feat: closes #9380, add category filtering and topic tools to tag page 2021-03-13 13:34:49 -05:00
Barış Soner Uşaklı
34b9aaedee feat: allow sync function (#9379)
* feat: allow sync function

* fix: remove async
2021-03-13 12:03:06 -05:00
Barış Soner Uşaklı
e725beaa4a Revert "feat: allow filter functions that return promises or the data directly"
This reverts commit e6c52cf26c.
2021-03-13 11:39:34 -05:00
Barış Soner Uşaklı
e6c52cf26c feat: allow filter functions that return promises or the data directly 2021-03-13 11:27:53 -05:00
Barış Soner Uşaklı
53f67ff396 fix: regression from filter hook change 2021-03-13 10:12:30 -05:00
Barış Soner Uşaklı
e539ff4f95 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-03-13 09:16:33 -05:00
Barış Soner Uşaklı
617f4730a0 fix: crash if unreadTopics is undefined 2021-03-13 09:16:26 -05:00
Renovate Bot
adaddde624 fix(deps): update dependency socket.io-redis to v6.1.0 2021-03-13 13:39:01 +00:00
Renovate Bot
a98e92b4ea fix(deps): update dependency nodebb-plugin-composer-default to v6.5.16 2021-03-13 11:59:23 +00:00
Misty (Bot)
df0518f934 Latest translations and fallbacks 2021-03-13 09:07:04 +00:00
Renovate Bot
28ed579b69 chore(deps): update dependency jsdom to v16.5.1 2021-03-13 06:13:26 +00:00
Barış Soner Uşaklı
5b0d068ccd Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-03-12 22:45:23 -05:00
Barış Soner Uşaklı
f45c0aab51 fix: dont crash if login el doesnt exist 2021-03-12 22:45:15 -05:00
Renovate Bot
775c3b9188 chore(deps): update dependency eslint to v7.22.0 2021-03-13 01:37:15 +00:00
Barış Soner Uşaklı
52082e1296 feat: add resolve flag to post tools 2021-03-12 16:38:05 -05:00
Julian Lam
2a939aad8d fix: regression via c1b3079d93
Also refactored privilege render logic so that it no longer needs a server-side hack to render column count
2021-03-12 14:22:16 -05:00
Julian Lam
4cbd13fd9c feat: hide revert button in ACP > Privileges until privileges change 2021-03-12 13:25:58 -05:00
Julian Lam
8472513093 fix: change notification updateCount to use client-side hooks 2021-03-12 09:25:06 -05:00
Renovate Bot
3ce731d84b chore(deps): update dependency mocha to v8.3.2 2021-03-12 13:27:28 +00:00
Misty (Bot)
6b4cd7557c Latest translations and fallbacks 2021-03-12 09:08:44 +00:00
Barış Soner Uşaklı
46270f9f20 feat: bring back static hook timeout 2021-03-11 22:56:14 -05:00
renovate[bot]
56b0bfd518 fix(deps): update dependency nodebb-plugin-markdown to v8.12.7 (#9371)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-11 22:20:27 -05:00
Barış Soner Uşaklı
39b0e0fb91 fix: tests 2021-03-11 22:12:05 -05:00
Barış Soner Uşaklı
d05d7091ae refactor: remove async.each/reduce from hooks for better stack traces 2021-03-11 21:44:37 -05:00
Barış Soner Uşaklı
0d3979efd0 refactor: use hooks.fire 2021-03-11 21:43:11 -05:00
renovate[bot]
8923d34ce7 fix(deps): update dependency nodebb-theme-vanilla to v12.0.2 (#9369)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-11 19:20:11 -05:00
renovate[bot]
fa71c483d0 fix(deps): update dependency nodebb-theme-persona to v11.0.2 (#9368)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-11 19:20:03 -05:00
Barış Soner Uşaklı
9382fc6dc5 fix: #9370, show correct teaser index if sorting is newest to oldest 2021-03-11 19:17:42 -05:00
Barış Soner Uşaklı
1982edfde3 refactor: fix variable name 2021-03-11 18:47:50 -05:00
Barış Soner Uşaklı
3c60ccfd4d feat: upgrade connect-mongo, closes https://github.com/NodeBB/NodeBB/pull/9367 2021-03-11 13:44:14 -05:00
renovate[bot]
13f3c5040a fix(deps): update socket.io packages to v4 (#9363)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-11 13:38:47 -05:00
Julian Lam
f71cb0e427 feat: pass interstital errors to individual partials as well as to registerComplete 2021-03-11 11:22:32 -05:00
Barış Soner Uşaklı
63de46c532 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-03-11 10:39:39 -05:00
Barış Soner Uşaklı
8ef38cb252 test: add missing test 2021-03-11 10:39:36 -05:00
Misty (Bot)
31872aaceb chore: incrementing version number - v1.17.0-beta.1 2021-03-11 14:52:08 +00:00
Misty (Bot)
5ec22c6845 Latest translations and fallbacks 2021-03-11 09:09:47 +00:00
Barış Soner Uşaklı
5eb3132dae feat: add filter:plugins.firehook 2021-03-10 21:43:37 -05:00
Julian Lam
98bf4064e7 refactor: account edit logic and template, closes #9364 2021-03-10 13:01:56 -05:00
Barış Soner Uşaklı
f6fa94a8ce Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-03-10 08:01:51 -05:00
Barış Soner Uşaklı
ebccc7940b fix: don't copy if src doesn't exist 2021-03-10 08:01:43 -05:00
Misty (Bot)
62bf211894 Latest translations and fallbacks 2021-03-10 09:08:35 +00:00
Barış Soner Uşaklı
754283d37b feat: copy default favicon if it doesn't exist 2021-03-09 23:22:05 -05:00
Barış Soner Uşaklı
a9b33ed39f Delete favicon.ico 2021-03-09 23:21:18 -05:00
psychobunny
771a8955a4 fix: #9362 best not to check file exists on every page load; copying favicon to uploads/system folder instead 2021-03-09 22:46:43 -05:00
psychobunny
ad5654952a fix: #9362 2021-03-09 22:32:34 -05:00
Julian Lam
678e8f0fde fix: regression where login redirect for admin routes didn't go to local=1 2021-03-09 20:50:01 -05:00
Renovate Bot
680cf5ef2a fix(deps): update dependency postcss to v8.2.8 2021-03-10 00:04:31 +00:00
Renovate Bot
2645bf555a fix(deps): update dependency nodebb-theme-persona to v10.5.17 2021-03-09 22:34:29 +00:00
Barış Soner Uşaklı
70a653d0a5 test: double filter test 2021-03-09 14:02:28 -05:00
Barış Soner Uşaklı
f4f61b92b4 fix: lint 2021-03-09 13:26:23 -05:00
Barış Soner Uşaklı
0e67ab01ca test: admin/manage/users tests 2021-03-09 13:14:59 -05:00
Barış Soner Uşaklı
2085a7d163 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-03-09 13:14:00 -05:00
Barış Soner Uşaklı
17184bface feat: add missing translation keys 2021-03-09 13:13:58 -05:00
Julian Lam
4b5450853d feat: allow missing (or non-array) middlewares argument in route helper methods 2021-03-09 10:53:06 -05:00
Renovate Bot
5945907429 fix(deps): update dependency connect-mongo to v4.3.1 2021-03-09 11:49:45 +00:00
Misty (Bot)
4a9b3af278 Latest translations and fallbacks 2021-03-09 09:08:28 +00:00
Barış Soner Uşaklı
e74df53997 feat: pass modified params, only affects filter hooks 2021-03-08 18:08:47 -05:00
Barış Soner Uşaklı
e787e6ea22 fix: if no in passed use "titles" to match header search 2021-03-08 17:59:56 -05:00
Barış Soner Uşaklı
696c489524 feat: add back topic id input 2021-03-08 17:50:58 -05:00
Julian Lam
166d65a1ba fix: add back middleware.authenticateOrGuest 2021-03-08 14:52:49 -05:00
Julian Lam
e3b2c00db1 fix: request authentication called twice in account routes 2021-03-08 14:47:55 -05:00
Julian Lam
7da061f0d7 refactor: automatically authenticate all requests setup through route helpers (#9357)
* refactor: automatically authenticate all requests setup through route helpers

* fix: removed connect-ensure-login dependency

* fix: bug with some middlewares not defined outside route helper methods
2021-03-08 14:03:22 -05:00
Renovate Bot
f388086ab9 fix(deps): update dependency connect-mongo to v4.3.0 2021-03-08 13:39:45 +00:00
Renovate Bot
fd926d6121 chore(deps): update dependency jsdom to v16.5.0 2021-03-08 01:35:19 +00:00
Misty (Bot)
4c73c26dd8 Latest translations and fallbacks 2021-03-07 09:06:34 +00:00
Barış Soner Uşaklı
3095478904 chore: bump composer 2021-03-06 15:42:34 -05:00
Barış Soner Uşaklı
8a4c361ece fix: #9354, don't close quicksearch results if mouse is down on them 2021-03-06 15:42:04 -05:00
Renovate Bot
651c629ff3 chore(deps): update dependency mocha to v8.3.1 2021-03-06 11:01:19 +00:00
Misty (Bot)
2826e29494 Latest translations and fallbacks 2021-03-06 09:06:53 +00:00
Barış Soner Uşaklı
3aa26c4df2 fix: #9339, only log email errors once per digest, notification push
show notice in acp
2021-03-05 19:03:16 -05:00
Barış Soner Uşaklı
3f42d40c78 fix: winston.info 2021-03-05 18:19:49 -05:00
Barış Soner Uşaklı
0021c6019e refactor: async listen testSocket 2021-03-05 18:18:16 -05:00
Julian Lam
c5e257888a fix: #9351 bad logic when inserting rows to privilege tables, also a missing tfoot 🦶 2021-03-05 15:09:37 -05:00
Julian Lam
c265016944 fix: app.parseAndTranslate to always return promise 2021-03-05 14:27:32 -05:00
Renovate Bot
4f4cdacc46 fix(deps): update dependency autoprefixer to v10.2.5 2021-03-05 18:23:23 +00:00
Julian Lam
bfd512b99b feat: expose username validation logic to user lib, new hook filter:username.check 2021-03-05 11:20:19 -05:00
Misty (Bot)
67bb63bd09 Latest translations and fallbacks 2021-03-05 09:13:54 +00:00
psychobunny
e5133a78f8 feat: add $.deserialize to client side 2021-03-04 20:48:29 -05:00
psychobunny
66196d2caf feat: allow for settings.save/settings.load on client side
w/ optional data-socket-get / data-socket-set params on form element for custom calls
2021-03-04 20:48:29 -05:00
Julian Lam
e755067387 docs: fixed typo 2021-03-04 13:56:45 -05:00
Barış Soner Uşaklı
902a88c25e feat: remove promise-pollyfil 2021-03-04 13:27:02 -05:00
Barış Soner Uşaklı
48bc23c065 refactor: remove startsWith/endsWith 2021-03-04 13:18:29 -05:00
Julian Lam
b5a6a3149d refactor: app.parseAndTranslate to return promise if no callback passed 2021-03-04 12:46:54 -05:00
Julian Lam
c1b3079d93 feat: category privilege API routes
closes #9342
2021-03-04 12:46:31 -05:00
Julian Lam
1e579428e7 fix: bug where fallback window trigger was not firing if there were no hook listeners attached
... so in essence the backwards compatibility was not working at all.

closes nodebb/nodebb-plugin-composer-default#147
2021-03-04 11:10:06 -05:00
Julian Lam
c8b78654d9 fix: bad assignment 2021-03-04 10:58:27 -05:00
Julian Lam
fbe9215b17 fix: #9348 incorrect redirect via connect-ensure-login 2021-03-04 10:16:21 -05:00
Misty (Bot)
b2c1b4ac45 Latest translations and fallbacks 2021-03-04 09:11:42 +00:00
Renovate Bot
72db3754d1 fix(deps): update dependency postcss to v8.2.7 2021-03-04 01:52:48 +00:00
Renovate Bot
017af7cbfd fix(deps): update dependency nodebb-plugin-composer-default to v6.5.13 2021-03-04 00:25:31 +00:00
Barış Soner Uşaklı
0af9d26fe5 feat: change uploadCroppedPicture to use updateProfile as well 2021-03-03 17:14:55 -05:00
Barış Soner Uşaklı
a598abcd8e feat: use updateProfile for picture change
so it triggers action:user:updateProfile
2021-03-03 17:11:13 -05:00
Julian Lam
f806befd2f fix: bug where loginSeconds setting was ignored for local login 2021-03-03 16:06:58 -05:00
Renovate Bot
dd6082a081 fix(deps): update dependency jquery to v3.6.0 2021-03-02 20:36:06 +00:00
Julian Lam
1155b0c42f feat: allow payload to be passed to emailer test method 2021-03-02 12:30:37 -05:00
Julian Lam
00a68a9548 feat: add additional flag hooks [breaking]
`action:flags.create` on initial flag creation
`action:flags.notify` on notification to admins and moderators
`action:flags.addReport` on flag report addition (called during initial flag create, too)
2021-03-02 10:09:30 -05:00
Renovate Bot
ec0912ccb6 fix(deps): update dependency connect-mongo to v4.2.2 2021-03-02 10:08:26 +00:00
Renovate Bot
8791b44e5f chore(deps): update dependency husky to v5.1.3 2021-03-02 05:54:09 +00:00
Barış Soner Uşaklı
069ac60f62 feat: add uid of user who created flag to action:flags.create 2021-03-01 19:02:00 -05:00
Julian Lam
7d391d4789 feat: new client-side hook filter:api.options to allow plugins to modify api requests 2021-03-01 10:57:43 -05:00
Renovate Bot
5f061b9419 chore(deps): update dependency husky to v5.1.2 2021-03-01 04:36:50 +00:00
renovate[bot]
536bae70b7 fix(deps): update dependency nodebb-plugin-spam-be-gone to v0.7.8 (#9337)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-28 21:25:52 -05:00
preetykumar
2826c6986c Update taskbar.js (#9314)
* Update taskbar.js

add aria-label to make the link text discernible to screen readers.

* place quotes around attribute value

Co-authored-by: Peter Jaszkowiak <p.jaszkow@gmail.com>
2021-02-28 17:57:19 -05:00
Peter Jaszkowiak
b9fd2c87f3 chore: bump deps (#9335)
* chore: bump deps

* fix: husky git hooks
2021-02-28 17:54:56 -05:00
Barış Soner Uşaklı
b58bacaf80 fix: remove old dep 2021-02-28 12:58:49 -05:00
Barış Soner Uşaklı
3bf8ee10d3 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-02-28 12:54:08 -05:00
Barış Soner Uşaklı
2737f6531b fix: notif pruning 2021-02-28 12:54:06 -05:00
Misty (Bot)
21377cfa2b Latest translations and fallbacks 2021-02-28 09:06:40 +00:00
Renovate Bot
42f7cd52ac chore(deps): update commitlint monorepo to v12 2021-02-27 19:49:36 -05:00
Renovate Bot
5951843712 chore(deps): update dependency eslint to v7.21.0 2021-02-28 00:29:31 +00:00
Misty (Bot)
35a3cc3461 Latest translations and fallbacks 2021-02-27 09:06:13 +00:00
Barış Soner Uşaklı
ca8176312f fix: notification prune test 2021-02-26 22:37:57 -05:00
Barış Soner Uşaklı
02f08111cf feat: keep notifs for one month, load 50 notifications instead of 30 2021-02-26 22:22:12 -05:00
Renovate Bot
2674de01dd fix(deps): update dependency nodebb-plugin-composer-default to v6.5.12 2021-02-27 00:30:04 +00:00
Julian Lam
2b7d0b5a47 fix: user icon text overflow in some cases 2021-02-26 16:12:15 -05:00
Julian Lam
114e3a1e76 fix: use components for toggleNavbar instead 2021-02-26 15:03:24 -05:00
Julian Lam
9bf94ad50f fix: allow interstitial callbacks to be functional (no cb required) 2021-02-26 09:58:54 -05:00
Barış Soner Uşaklı
cdf5d18f54 fix: don't publish before pubClient is connected 2021-02-26 08:17:45 -05:00
Renovate Bot
510eb1f981 fix(deps): update socket.io packages to v3.1.2 2021-02-26 03:44:26 +00:00
Renovate Bot
217d3afd18 fix(deps): update dependency nodebb-theme-persona to v10.5.16 2021-02-26 01:58:38 +00:00
Julian Lam
86b0c57d7a feat: also pass in uid to filter:email.prepare 2021-02-25 17:11:57 -05:00
Julian Lam
27ea3dcb2f feat: new hook filter:email.prepare 2021-02-25 17:10:56 -05:00
Julian Lam
bf90d15881 feat: new hook static:email.send
deprecates filter:email.send
2021-02-25 15:05:58 -05:00
Barış Soner Uşaklı
0dad568cbe perf: faster category tags upgrade script 2021-02-25 11:31:09 -05:00
Misty (Bot)
21634e2681 Latest translations and fallbacks 2021-02-25 09:09:24 +00:00
Renovate Bot
e820934192 fix(deps): update dependency nodebb-plugin-emoji-android to v2.0.5 2021-02-25 08:17:47 +00:00
Barış Soner Uşaklı
95033ef756 perf: use setObjectBulk 2021-02-24 21:38:00 -05:00
Barış Soner Uşaklı
a07509f770 perf: make upgrade script faster 2021-02-24 21:16:43 -05:00
Barış Soner Uşaklı
48f1e265f4 fix: remove unused async 2021-02-24 20:54:03 -05:00
Barış Soner Uşaklı
0959b1248b perf: make upgrade script faster
use bulkAdd/remove
2021-02-24 20:38:57 -05:00
Barış Soner Uşaklı
14a6c349c2 feat: show time info for upgrade scripts 2021-02-24 20:10:18 -05:00
Barış Soner Uşaklı
293b7c2650 refactor: privileges, export modules directly (#9325)
fix unused/commented out methods in admin privileges
2021-02-24 18:10:34 -05:00
Julian Lam
984c9dd915 fix: in setupPageRoute helper, buildHeader after plugin hooks have fired
To allow for a plugin to call doLogin and have it properly reflect in the header
2021-02-24 17:23:32 -05:00
Julian Lam
73dc64d9ff feat: add dashboard sub-pages to ACP menu 2021-02-24 15:28:19 -05:00
Julian Lam
655e2c67ad fix: timeago missing on table update 2021-02-24 12:52:05 -05:00
Julian Lam
0804d54759 spec: schema docs for new ACP dashboard subpage routes 2021-02-24 12:51:20 -05:00
Julian Lam
2f89b0d791 feat: recent logins sessions table in dashbaord subpage 2021-02-24 12:51:20 -05:00
Julian Lam
e1ed514b10 feat: topics dashboard details subpage 2021-02-24 12:51:20 -05:00
Julian Lam
c57c77030e feat: update user list in dashboard/users on graph update 2021-02-24 12:51:20 -05:00
Julian Lam
3fa2e3cef2 refactor: have Graph.init and Graph.update return promises 2021-02-24 12:51:20 -05:00
Julian Lam
f8e1a74c26 fix: wrong qs param, allow string to be passed to util.getDaysArray 2021-02-24 12:51:20 -05:00
Julian Lam
cc93822436 feat: show list of recent users in dashboard/users 2021-02-24 12:51:20 -05:00
Julian Lam
6fdcae7320 feat: req.query parsing and dynamically loading data instead 2021-02-24 12:51:20 -05:00
Julian Lam
f561799f74 refactor: abstract out some client side dashboard code into modules, analytics subpages for users, topics, and logins 2021-02-24 12:51:20 -05:00
Julian Lam
079a13d41a feat: new hooks for notifications get/getCount 2021-02-24 12:45:49 -05:00
Misty (Bot)
aed8b123bc Latest translations and fallbacks 2021-02-24 09:11:37 +00:00
Julian Lam
d0136074b6 feat: allow hook unregistration, and temporary page-based hooks
Temporary hooks automatically unregister themselves on the next ajaxify, making them perfect for in-page events.
2021-02-23 15:18:00 -05:00
Barış Soner Uşaklı
de6d156533 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-02-23 08:38:25 -05:00
Barış Soner Uşaklı
7ae7626c1b Revert "feat: add logout to invalid session"
This reverts commit beb1427387.
2021-02-23 08:38:23 -05:00
Misty (Bot)
49c369528d Latest translations and fallbacks 2021-02-23 09:09:21 +00:00
Peter Jaszkowiak
0d59fe3d2b fix(#9315): api v3 post, put, del JSON
also allow `app.alertError` to be called without an argument
also fix `./nodebb build --dev` to actually build in dev mode
2021-02-22 21:19:46 -05:00
Renovate Bot
c5231f10ff fix(deps): update dependency sharp to v0.27.2 2021-02-23 00:03:37 +00:00
Renovate Bot
2551295ce0 chore(deps): update dependency husky to v5.1.1 2021-02-22 21:07:20 +00:00
Julian Lam
dbe5f7027b fix: wrong call to sortedSetAdd 2021-02-22 13:31:54 -05:00
Julian Lam
16d3c45782 feat: report login statistics from analytics data, instead of its own zset 2021-02-22 13:23:25 -05:00
Julian Lam
9a9f366d3b feat: track login sessions for admin dashboard reporting 2021-02-22 11:38:26 -05:00
Julian Lam
020f0b8322 fix: session not persisting to database in some scenarios
In some edge cases (e.g. SSO plugin redirecting the user immediately), with modern browsers, the request is never "completed" for speed. This causes a condition where the session object never persists to the database, even though it has changed. This added line forces a db persist on a successful login.

Context: https://github.com/expressjs/session/pull/484
2021-02-22 11:18:30 -05:00
Julian Lam
504fd107c7 feat: track successful logins in analytics 2021-02-22 11:16:43 -05:00
Renovate Bot
dc06fe2215 chore(deps): update dependency husky to v5.1.0 2021-02-22 05:04:27 +00:00
Misty (Bot)
0bc74e7056 Latest translations and fallbacks 2021-02-21 09:06:35 +00:00
Julian Lam
beaac0a1ab fix: allow hidden inputs in user settings page 2021-02-20 15:01:50 -05:00
Misty (Bot)
cf1939e16d Latest translations and fallbacks 2021-02-20 09:06:30 +00:00
Renovate Bot
8596dcc4b5 fix(deps): update dependency nodebb-theme-vanilla to v11.4.5 2021-02-19 22:37:55 +00:00
Renovate Bot
753ab0a089 fix(deps): update dependency nodebb-theme-persona to v10.5.15 2021-02-19 21:26:10 +00:00
Misty (Bot)
b61257efc2 chore: incrementing version number - v1.17.0-beta.0 2021-02-19 19:43:25 +00:00
Julian Lam
74c14c0fa4 Revert "chore: incrementing version number - v1.16.3-beta.0"
This reverts commit 477157cc2b.
2021-02-19 14:32:38 -05:00
Misty (Bot)
477157cc2b chore: incrementing version number - v1.16.3-beta.0 2021-02-19 19:12:34 +00:00
Julian Lam
c96fd3b19b feat: pass user picture object into change_picture_modal 2021-02-19 13:39:22 -05:00
Julian Lam
28f6931e16 refactor: move picture change client-side logic to its own rjs module 2021-02-19 11:54:48 -05:00
Barış Soner Uşaklı
beb1427387 feat: add logout to invalid session 2021-02-19 11:51:28 -05:00
Barış Soner Uşaklı
cfc237c2b7 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-02-19 11:39:58 -05:00
Barış Soner Uşaklı
a592ebd1ff feat: category search test 2021-02-19 11:39:10 -05:00
Julian Lam
d3a9e76ae2 test(user): added additional tests for icon background colour 2021-02-19 11:38:48 -05:00
Julian Lam
955021247e feat(user): icon background selector in change picture modal 2021-02-19 11:38:48 -05:00
Julian Lam
fbccf6e22f refactor(user): all plugins to change list of icon background colours
One notable change is line 200, where a conditional was changed. The conditional used to check for `user.hasOwnProperty('picture')` and was added so that icons would only be included in the response if the picture was requested. This doesn't seem to apply as picture could be set regardless (see default avatar logic above), so I explicitly check `requestedFields` now.
2021-02-19 11:38:48 -05:00
Julian Lam
b4c0b32b26 fix: use root context if buildAvatar context is undefined 2021-02-19 11:38:48 -05:00
Barış Soner Uşaklı
ed3d9dcbbf feat: pass post object to filter:post.tools 2021-02-19 11:32:17 -05:00
Renovate Bot
ed503b8051 fix(deps): update dependency nodebb-theme-persona to v10.5.14 2021-02-19 12:22:10 +00:00
Misty (Bot)
e23bf9f94d Latest translations and fallbacks 2021-02-19 09:08:52 +00:00
Misty (Bot)
f9fc884867 Latest translations and fallbacks 2021-02-18 09:08:51 +00:00
Barış Soner Uşaklı
fa91525a6d fix: use bootbox module 2021-02-17 21:24:24 -05:00
Barış Soner Uşaklı
0e07f3c9ba feat: allow defining a list of system tags 2021-02-17 14:44:04 -05:00
Barış Soner Uşaklı
bbaaead09c feat: add category search test, #9307 2021-02-17 13:03:14 -05:00
Barış Soner Uşaklı
25c8f02634 fix: #9307, use _.flatten 2021-02-17 12:48:11 -05:00
Julian Lam
2fef462782 fix: awaiting res.render in send404 controller
>
> A plugin wanted to use `response:rotuer.page` to 404 a specific page on some condition. res.render returns early in send404 and so must be awaited otherwise multiple responses will be sent
2021-02-17 11:57:12 -05:00
Julian Lam
65c57c730c docs: added comment re: #9305 2021-02-17 10:52:04 -05:00
ahwayakchih
34096b73ef fix: do not overwrite config.port from URL, if it's already set
If URL was set to something like `http://example.com:8080`, and port
was set to 4567, keep listening on port 4567 and keep linking through
URL that was specified.
This allows to listen on port 4567, while having NGINX (or any proxy)
set to listen on port 8080 and route traffic to port 4567.
So NodeBB can be "hidden" behind proxy while URL can still contain
non-standard port, i.e., port different than 80 and 443.
2021-02-17 10:51:08 -05:00
Julian Lam
8686fbfa3f fix: switch back to getSortedSetRange
/cc @barisusakli
2021-02-17 10:41:57 -05:00
Misty (Bot)
ce3f581434 Latest translations and fallbacks 2021-02-17 09:08:43 +00:00
Renovate Bot
ddd8fa31d6 fix(deps): update dependency nodebb-theme-persona to v10.5.12 2021-02-17 06:48:03 +00:00
Barış Soner Uşaklı
9ce6f8ad93 feat: add tag filter to getSortedTopics 2021-02-16 23:12:10 -05:00
Barış Soner Uşaklı
5286f20862 refactor: remove dupe code 2021-02-16 22:10:26 -05:00
Julian Lam
4c078084dc test: fix spec for topic thumbs 2021-02-16 12:40:25 -05:00
Julian Lam
1d9ade4c36 test: added missing properties to topicObject 2021-02-16 12:29:11 -05:00
Julian Lam
b31f6dd24a test: added missing test file 2021-02-16 12:22:35 -05:00
Julian Lam
ad54b174a4 test: topic reordering tests 2021-02-16 12:18:25 -05:00
Julian Lam
7223074f1d feat: ability to re-order topic thumbnails 2021-02-16 11:54:09 -05:00
Julian Lam
db027170a8 feat: add close button to topic thumbnail modal 2021-02-16 11:54:09 -05:00
Misty (Bot)
2821b917d0 Latest translations and fallbacks 2021-02-16 09:09:26 +00:00
Barış Soner Uşaklı
91734a6484 fix: settings v3 2021-02-15 20:52:01 -05:00
Barış Soner Uşaklı
0738dae895 feat: #9304, add category/topic/username to post queue notification emails 2021-02-15 16:15:04 -05:00
Misty (Bot)
59885a9e2e Latest translations and fallbacks 2021-02-15 09:08:41 +00:00
Barış Soner Uşaklı
8f0386d9ac feat: add failing test for list append/prepend with list (#9303)
* feat: add failing test for list append/prepend with list

* feat: mongo/psql

* feat: improve test
2021-02-14 11:12:56 -05:00
Misty (Bot)
b5b92768e2 Latest translations and fallbacks 2021-02-14 09:06:43 +00:00
Renovate Bot
4ee3a8e876 fix(deps): update dependency benchpressjs to v2.4.1 2021-02-14 05:26:21 +00:00
Julian Lam
782bef5eec fix: another topic thumb test fix 2021-02-13 12:06:18 -05:00
Julian Lam
1ae8dda8a8 chore: extra console.log 2021-02-13 11:57:10 -05:00
Julian Lam
7ebb6d3056 fix: thumbs.associate logic fix + tests 2021-02-13 11:52:12 -05:00
Renovate Bot
7f8fd4b0f6 fix(deps): update dependency nodebb-theme-persona to v10.5.10 2021-02-13 10:51:56 +00:00
Misty (Bot)
3ad25e8ff6 Latest translations and fallbacks 2021-02-13 09:06:41 +00:00
Renovate Bot
9ec0b2ed68 chore(deps): update dependency eslint to v7.20.0 2021-02-13 08:40:39 +00:00
Barış Soner Uşaklı
7665adf7d1 fix: missing awaits, possible test fix 2021-02-13 01:43:52 -05:00
Barış Soner Uşaklı
9a6cf3d967 fix: #9301, dont call sitemapstream if there are no entries in categories/pages/topics.xml 2021-02-12 23:18:16 -05:00
Julian Lam
50664487b9 test: additional tests for topic thumbs 2021-02-12 20:43:38 -05:00
Barış Soner Uşaklı
807b0d4348 fix: properly incase its the same path 2021-02-12 20:18:47 -05:00
Barış Soner Uşaklı
76bcc0c99c fix: numThumbs count on associate 2021-02-12 20:17:43 -05:00
Julian Lam
1490b32d1b fix: missing cache deletion calls for post-queue cache
/cc @barisusakli
2021-02-12 19:57:26 -05:00
Julian Lam
3e6640efb2 refactor: thumbs.associate accepts both relative path and url in path arg 2021-02-12 17:11:32 -05:00
Julian Lam
36e8d251c8 fix: use of removed URL to get post data 2021-02-12 17:10:59 -05:00
Julian Lam
a4b4a5566d feat: link to post-queue from topic event 2021-02-12 15:15:20 -05:00
Julian Lam
8fd78ce512 feat: post-queue topic event 2021-02-12 15:10:47 -05:00
Julian Lam
3f35fd335d feat: add post-queue cache 2021-02-12 15:10:30 -05:00
Julian Lam
36f2021186 refactor: move post queue retrival code to posts.getQueuedPosts 2021-02-12 12:25:27 -05:00
Julian Lam
b81508c4e2 fix: init topic events from webserver.js 2021-02-12 11:50:43 -05:00
Julian Lam
6074a0fbbf refactor: call topic events init from within file itself 2021-02-12 10:26:50 -05:00
Julian Lam
cc275e1016 Revert "feat: newsletter opt-in/out in UCP, closes #21"
This reverts commit 3c7cd9a6c4.
2021-02-12 10:12:38 -05:00
Julian Lam
3c7cd9a6c4 feat: newsletter opt-in/out in UCP, closes #21 2021-02-12 10:11:08 -05:00
Misty (Bot)
48a3c4bd2e Latest translations and fallbacks 2021-02-12 09:08:08 +00:00
Renovate Bot
73f07958d8 chore(deps): update dependency mocha to v8.3.0 2021-02-11 23:56:24 +00:00
Barış Soner Uşaklı
3595473485 feat: load user posts/topics via xhr on infinitescroll 2021-02-11 16:47:51 -05:00
Barış Soner Uşaklı
b753c69cfe fix: check null topics 2021-02-11 14:51:17 -05:00
Barış Soner Uşaklı
58cd797e4c fix: guard against null topics 2021-02-11 14:48:29 -05:00
Barış Soner Uşaklı
fc90f32ec0 fix: tests, new categories go to top now 2021-02-11 12:58:59 -05:00
Barış Soner Uşaklı
c953b1b3d1 fix: #9292, messageobj.content already parsed 2021-02-11 12:55:00 -05:00
Barış Soner Uşaklı
4b2bf12fd1 feat: #9294, put new categories at top 2021-02-11 12:35:10 -05:00
Julian Lam
9d17f397c0 fix(remountable-routes): more fixes to remountable routes
fix: ensure proper admin privilege checking on remounted `/admin` mount

fix: guard against plugins sending back missing mounts

fix: no need to make addRemountableRoutes awaitable
2021-02-11 11:45:24 -05:00
Julian Lam
16c1d6e937 style(remountable-routes): abstract removable routes code to a separate local fn 2021-02-11 11:45:24 -05:00
Julian Lam
1f28713f1a refactor(remountable-routes): rename src/routes/accounts.js to src/routes/user.js to better match the route prefix 2021-02-11 11:45:24 -05:00
Julian Lam
bc68e990af fix(remountable-routes): bug with user routes remounting to itself 2021-02-11 11:45:24 -05:00
Julian Lam
9021f071d4 feat(remountable-routes): allow category and account routes to be remounted 2021-02-11 11:45:24 -05:00
Julian Lam
f01af62b53 feat(remountable-routes): allow /admin and /post to be remountable 2021-02-11 11:45:24 -05:00
Julian Lam
92758ec50d refactor(remountable-routes): allow certain route prefixes to be mounted elsewhere 2021-02-11 11:45:24 -05:00
Renovate Bot
5dd748c633 fix(deps): update dependency nodebb-theme-persona to v10.5.9 2021-02-11 08:48:52 -05:00
Misty (Bot)
3a61ac2119 Latest translations and fallbacks 2021-02-11 09:09:52 +00:00
Barış Soner Uşaklı
765db86d4e fix: clear category cache on copy parent 2021-02-10 22:13:35 -05:00
Barış Soner Uşaklı
ed3e9ce2e2 fix: delete category cache key on category create 2021-02-10 22:10:54 -05:00
Barış Soner Uşaklı
c61cc37bba fix: typo 2021-02-10 17:56:46 -05:00
Barış Soner Uşaklı
cf4002bcc9 perf: cache base_url 2021-02-10 17:41:39 -05:00
Barış Soner Uşaklı
5ce2820799 perf: single call to get digest topics, dont send duplicate topics 2021-02-10 17:37:22 -05:00
Julian Lam
86e911ba4b fix(deps): require xregexp 5.0.1 2021-02-10 17:05:53 -05:00
Renovate Bot
513cd1c325 fix(deps): update dependency xregexp to v5 2021-02-10 17:05:53 -05:00
Renovate Bot
54b4dc1dfa fix(deps): update dependency nodebb-theme-persona to v10.5.8 2021-02-10 17:04:04 -05:00
Renovate Bot
4d92af5a6b fix(deps): update dependency postcss to v8.2.6 2021-02-10 20:23:00 +00:00
Misty (Bot)
949f043a96 Latest translations and fallbacks 2021-02-10 09:10:53 +00:00
Barış Soner Uşaklı
90d5c9da44 perf: single db call to add all uids 2021-02-10 00:58:07 -05:00
Barış Soner Uşaklı
a5fa212fc7 fix: wait for event.log to finish before killing process 2021-02-09 23:03:02 -05:00
Barış Soner Uşaklı
0185ea1b4f perf: make digests a little bit faster
and use batch.processArray
dont load data for users who have no email or have not confirmed their emails
2021-02-09 15:27:08 -05:00
Barış Soner Uşaklı
b6493f896f fix: tests, only generate csrf_token on 404 gets 2021-02-09 12:40:29 -05:00
Barış Soner Uşaklı
2c52fbd1b9 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-02-09 12:40:08 -05:00
Barış Soner Uşaklı
1c9acef6dd chore: up composer 2021-02-09 12:27:25 -05:00
renovate[bot]
c2459fd50e fix(deps): update dependency nodebb-theme-persona to v10.5.7 (#9288)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-09 12:26:48 -05:00
Barış Soner Uşaklı
94f72d6093 fix: #9287, generate csrf_token on 404 2021-02-09 12:23:55 -05:00
Julian Lam
783786cf8c fix: do not blindly escape a notification's bodyLong
For 7+ years we were escaping this value, but it is in many cases already sanitized (as it may be a post content). For those cases when it is not, I now run it through parse.raw.

Instead of escaping, it now strips p, img, and a tags.
2021-02-09 11:16:40 -05:00
Misty (Bot)
0092df2c02 Latest translations and fallbacks 2021-02-09 09:07:34 +00:00
Renovate Bot
b312725fd3 fix(deps): update dependency nodebb-plugin-composer-default to v6.5.10 2021-02-09 06:15:04 +00:00
Renovate Bot
4599144f31 fix(deps): update dependency nodebb-theme-persona to v10.5.6 2021-02-09 02:45:52 +00:00
renovate[bot]
eb9f058fa1 fix(deps): update dependency nodebb-widget-essentials to v5.0.3 (#9284)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-08 20:14:29 -05:00
Barış Soner Uşaklı
670cde78da feat: add invalid event name to error message 2021-02-08 18:36:41 -05:00
Peter Jaszkowiak
cc9d6fd08b chore: eslint max-len 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
5c2f0f0557 chore: eslint no-restricted-syntax 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
115d19e289 chore: eslint prefer-rest-params, prefer-spread 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
23f212a4c0 chore: eslint prefer-destructuring 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
8d1462ffd8 chore: eslint object-curly-newline 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
62869bae3d chore: eslint function-paren-newline 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
dab3b23575 chore: eslint no-var, vars-on-top 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
b56d9e12b5 chore: eslint prefer-arrow-callback 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
707b55b6a5 chore: eslint prefer-template 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
4ee0f1459d chore: eslint import/newline-after-import 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
9f6a682ca9 chore: eslint no-script-url 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
dad01e3051 chore: eslint no-bitwise 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
58528d1a3e chore: eslint rules matching existing styles 2021-02-08 18:06:44 -05:00
Renovate Bot
d89ccf261b chore(deps): update dependency husky to v5 2021-02-08 16:32:40 -05:00
Renovate Bot
6e14014bfa fix(deps): update dependency nodebb-plugin-composer-default to v6.5.9 2021-02-08 16:32:32 -05:00
Julian Lam
16610b2dca fix: pass jquery object in to action:notifications.loaded hook 2021-02-08 16:29:45 -05:00
Julian Lam
7edc8f458d feat: new notifications load/loaded hooks on client side
refactored `toggleTimeagoShorthand` code to be inside of a hook listener
2021-02-08 15:26:03 -05:00
Barış Soner Uşaklı
0cca6893f3 fix: #9275, 2021-02-08 14:57:28 -05:00
Barış Soner Uşaklı
cfa0d42390 fix: don't use global bootbox obj 2021-02-08 14:37:55 -05:00
Renovate Bot
674a31d12f fix(deps): update dependency nodebb-plugin-composer-default to v6.5.8 2021-02-08 19:17:53 +00:00
Barış Soner Uşaklı
550cd995e8 fix: remove console.log 2021-02-08 12:11:13 -05:00
Barış Soner Uşaklı
622ff9cd6a Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-02-08 12:06:58 -05:00
renovate[bot]
d39235858d fix(deps): update dependency nodebb-theme-slick to v1.4.3 (#9278)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-08 12:06:21 -05:00
Barış Soner Uşaklı
fca17cb713 fix: move service worker back to relative_path/service-worker.js 2021-02-08 12:05:57 -05:00
renovate[bot]
1f28e8c31f fix(deps): update dependency nodebb-theme-vanilla to v11.4.4 (#9279)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-08 12:01:27 -05:00
renovate[bot]
a7b46adc56 fix(deps): update dependency nodebb-theme-persona to v10.5.5 (#9277)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-08 12:00:13 -05:00
renovate[bot]
83a0b6b800 fix(deps): update dependency connect-redis to v5.1.0 (#9276)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-08 11:56:16 -05:00
Barış Soner Uşaklı
ab0ef44289 fix: spec 2021-02-08 11:46:42 -05:00
Barış Soner Uşaklı
a4878a5b22 fix: markread selector 2021-02-08 11:36:36 -05:00
Renovate Bot
030ecffa15 chore(deps): update dependency lint-staged to v10.5.4 2021-02-08 15:19:34 +00:00
Misty (Bot)
429cff93ee Latest translations and fallbacks 2021-02-08 09:08:48 +00:00
Barış Soner Uşaklı
3090a2aee4 fix: position when scrolling up
if sorting is newest to oldest scrollTop wont be changed if you are at the top of the page
2021-02-07 23:19:58 -05:00
Barış Soner Uşaklı
7eebcbdbbc perf: only load thumbs for topics that actually have thumbs 2021-02-07 19:13:21 -05:00
renovate[bot]
dc14528427 fix(deps): update dependency nodebb-theme-persona to v10.5.4 (#9270)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-07 18:10:53 -05:00
renovate[bot]
2fda677457 fix(deps): update dependency nodebb-theme-vanilla to v11.4.3 (#9272)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Barış Soner Uşaklı <baris@nodebb.org>
2021-02-07 18:10:43 -05:00
Renovate Bot
2b12905df1 fix(deps): update dependency nodebb-theme-slick to v1.4.2 2021-02-07 22:59:56 +00:00
Renovate Bot
fb2f114336 fix(deps): update dependency nodebb-theme-lavender to v5.2.1 2021-02-07 21:03:03 +00:00
Barış Soner Uşaklı
47299ea587 Categories refactor (#9257)
* 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

* feat: new category filter/search WIP

* feat: remove categories from /tag

* fix: dont load all categories when showing move modal

* feat: allow adding custom categories to list

* breaking: dont load entire category tree on post queue

removed unused code
add hooks to filter/selector
add options to filter/selector

* feat: make selector modal work again

* feat: replace old search module

* fix: topic move selector

* feat: dont load all categories on create category modal

* fix: fix more categorySelectors

* feat: dont load entire category tree on group details page

* feat: dont load all categories on home page and user settings page

* feat: add pagination to /user/:userslug/categories

* fix: update schemas

* fix: more tests

* fix: test

* feat: flags page, dont return entire category tree

* fix: flag test

* feat: categories manage page

dont load all categories
allow changing root category
clear caches properly

* fix: spec

* feat: admins&mods page

dont load all categories

* fix: spec

* fix: dont load all children when opening dropdown

* fix: on search results dont return all children

* refactor: pass all options, rename options.cids to options.selectedCids

* fix: #9266

* fix: index 0

* fix: spec

* feat: #9265, add setObjectBulk

* refactor: shoter updateOrder

* feat: selectors on categories/category

* fix: tests and search filter

* fix: category update test

* feat: pagination on acp categories page

show order in set order modal

* fix: allow drag&drop on pages > 1 in /admin/manage/categories

* fix: teasers for deep nested categories

fix sub category display on /category page

* fix: spec

* refactor: use eslint-disable-next-line

* refactor: shorter
2021-02-07 15:09:52 -05:00
renovate[bot]
2cfab3678e fix(deps): update dependency nodebb-theme-slick to v1.4.1 (#9262)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-07 13:35:59 -05:00
renovate[bot]
2147d386be fix(deps): update socket.io packages to v3.1.1 (#9253)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-07 13:35:22 -05:00
Renovate Bot
1fa0d4f45c fix(deps): update dependency postcss to v8.2.5 2021-02-06 20:50:42 +00:00
Misty (Bot)
73c9c1c25a Latest translations and fallbacks 2021-02-06 09:06:44 +00:00
Renovate Bot
42e365d913 fix(deps): update dependency nodebb-plugin-emoji-android to v2.0.1 2021-02-06 02:39:33 +00:00
Renovate Bot
4fd6027bca fix(deps): update dependency nodebb-plugin-markdown to v8.12.6 2021-02-06 00:31:14 +00:00
Barış Soner Uşaklı
e40af441c9 fix: cache key collision 2021-02-05 16:29:56 -05:00
Renovate Bot
8a2fe3d916 fix(deps): update dependency nodebb-plugin-mentions to v2.13.7 2021-02-05 21:11:01 +00:00
Julian Lam
a6fa351b72 feat: pass req.session into buildReqObject 2021-02-05 14:31:31 -05:00
Julian Lam
4f97639009 feat: new hook action:login.continue 2021-02-05 14:31:31 -05:00
Julian Lam
5c21c33e58 fix: tests breakage due to 67e3fb6498 2021-02-05 14:31:31 -05:00
Renovate Bot
2326e9a6a7 fix(deps): update dependency nodebb-theme-vanilla to v11.4.2 2021-02-05 19:10:09 +00:00
Renovate Bot
9245ffaf16 fix(deps): update dependency nodebb-theme-persona to v10.5.3 2021-02-05 18:07:01 +00:00
Julian Lam
67e3fb6498 fix: register returnTo logic to match login route
Login route saves the previous page by checking for the X-Return-To header. This header is automatically set by ajaxify.
Login takes this value and saves it to `req.session`.

Up until now, `/register` saved the previous URL in a hidden input, and redirected based on that value, but it occasionally conflicted with req.session.returnTo. It was also confusing because it did not match how login handled the values.

This commit updates the route handling so it works identically to `/login`.
2021-02-05 11:49:48 -05:00
Misty (Bot)
9576bec6c3 Latest translations and fallbacks 2021-02-05 09:08:37 +00:00
Julian Lam
492cbc6227 fix: tests
/cc @pitaj
2021-02-04 14:34:57 -05:00
Peter Jaszkowiak
5e5d37c38f fix(#9252): pass site domain to nodemailer (#9254) 2021-02-04 12:08:14 -05:00
Misty (Bot)
4939837d5b Latest translations and fallbacks 2021-02-04 09:08:15 +00:00
Julian Lam
f79aeef889 fix: posts.uploads.sync dissociates uploaded thumbs of the main pid 2021-02-03 17:02:33 -05:00
Julian Lam
28b3013424 test: added more topic thumbnail tests
... to test for post upload tracking logic
2021-02-03 16:34:39 -05:00
Julian Lam
74be1a5963 chore: fallbacks 2021-02-03 15:26:45 -05:00
Julian Lam
68da1c558f fix: update grammar on unban text 2021-02-03 15:22:44 -05:00
Julian Lam
c729adeb08 fix: privileges page - tweak icon position and width, group name wrapping 2021-02-03 15:22:44 -05:00
gasoved
970bd06fd2 refactor: improvements 2021-02-03 15:22:44 -05:00
gasoved
53e0d4d2e0 feat: banned-users group 2021-02-03 15:22:44 -05:00
Renovate Bot
389690c3fa fix(deps): update dependency nodebb-plugin-dbsearch to v4.2.0 2021-02-03 18:14:07 +00:00
Renovate Bot
13e12c9565 fix(deps): update dependency nodebb-plugin-composer-default to v6.5.7 2021-02-03 11:40:44 -05:00
Renovate Bot
0aa8e03f34 fix(deps): update dependency json2csv to v5.0.6 2021-02-03 16:16:27 +00:00
Julian Lam
4af9c2fcdd fix: autofocus on search field in ACP > Manage > Plugins 2021-02-03 10:08:14 -05:00
Julian Lam
44019e2805 fix(deps): bump theme deps for #9244 2021-02-03 09:49:58 -05:00
gasoved
cabec378f4 fix: openapi test specs 2021-02-03 09:49:28 -05:00
gasoved
7c9674de6c fix: include admins 2021-02-03 09:49:28 -05:00
gasoved
a2a7557cc0 refactor: update dom after diff deletion better 2021-02-03 09:49:28 -05:00
gasoved
eaf9d2e44a fix: include admins, limit to category mods, correct privilege name 2021-02-03 09:49:28 -05:00
gasoved
4447a64eaa refactor: removed 3 lines 2021-02-03 09:49:28 -05:00
gasoved
72b050b4a8 test: post diff deletion tests 2021-02-03 09:49:28 -05:00
gasoved
eb642f40b9 feat: #9109, ability to delete a post's diffs 2021-02-03 09:49:28 -05:00
Misty (Bot)
a87416971b Latest translations and fallbacks 2021-02-03 09:07:44 +00:00
Renovate Bot
56e4e56b57 fix(deps): update dependency mongodb to v3.6.4 2021-02-02 23:10:49 +00:00
Julian Lam
bd5839639d fix: http 200 test for api routes 2021-02-02 12:08:31 -05:00
Julian Lam
501441b736 feat: add .delete() method to api module 2021-02-02 10:27:34 -05:00
psychobunny
58655e9a0b fix: invalid API call when unfollowing a user 2021-02-02 10:16:03 -05:00
Misty (Bot)
526df41db1 Latest translations and fallbacks 2021-02-02 09:07:11 +00:00
Barış Soner Uşaklı
833c73e81b fix: example 2021-02-01 22:21:19 -05:00
Barış Soner Uşaklı
cc560ca3f9 feat: doc add description 2021-02-01 22:08:56 -05:00
Barış Soner Uşaklı
8e85a28d85 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-02-01 22:08:51 -05:00
Renovate Bot
0441144968 fix(deps): update dependency nodebb-theme-persona to v10.5.1 2021-02-01 22:03:58 -05:00
Barış Soner Uşaklı
ed11e17129 feat: add doc for query param 2021-02-01 22:03:44 -05:00
Barış Soner Uşaklı
fffdc4e0ca feat: #9234, add pagination to /api/recent/posts/:term? 2021-02-01 21:38:26 -05:00
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.
2021-02-01 19:40:14 -05:00
renovate[bot]
897d29ecd6 fix(deps): update dependency nodebb-theme-vanilla to v11.4.0 (#9238)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-01 17:52:25 -05:00
renovate[bot]
8e2deab4ad fix(deps): update dependency nodebb-theme-slick to v1.4.0 (#9237)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-01 17:50:09 -05:00
renovate[bot]
4f842a79f2 fix(deps): update dependency nodebb-theme-persona to v10.5.0 (#9236)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-02-01 17:33:51 -05:00
Renovate Bot
47fd1634b6 fix(deps): update dependency nodebb-theme-lavender to v5.2.0 2021-02-01 21:29:50 +00:00
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
2021-02-01 15:19:32 -05:00
Barış Soner Uşaklı
4c12e0aaf8 fix: update docs 2021-02-01 15:16:36 -05:00
Julian Lam
d6f60f4502 fix: broken test after sorted-lists logic change 2021-02-01 14:51:16 -05:00
Julian Lam
d5d24594e8 feat: allow sorted-lists on multiple pages
If multiple sorted-lists were on separate pages, saving one page would erase the sorted-lists saved on the other page. This was caused by naive deletion of the sorted-lists index on settings save.

At the same time, a bug was found where if fewer items were passed in, only that many items were removed from the database, leaving leftover orphan data in the database.

The logic now:

- Only removes sorted-lists if they are passed in (and empty)
- Deletes all sorted list items, not just the items passed in.
2021-02-01 11:47:26 -05:00
Barış Soner Uşaklı
9834f72fc7 fix: clear all locks on restart 2021-02-01 11:31:47 -05:00
Barış Soner Uşaklı
f6cd2862bd feat: #9232, add profile picture into exported zip 2021-02-01 11:31:30 -05:00
Julian Lam
5131eb6b90 fix: action:admin.settingsLoaded to use new hooks lib 2021-01-31 16:59:03 -05:00
Julian Lam
b0f5d5a594 fix: crash on firing action hook that had no listeners registered 2021-01-31 16:59:03 -05:00
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.
2021-01-31 16:59:03 -05:00
Julian Lam
a8be6fb8fb fix: regression where filter:settings.set no longer received sorted-lists 2021-01-31 16:59:03 -05:00
Barış Soner Uşaklı
5bc1f5b4e8 fix: #9231, fix redis pubsub connection
regression from fdfbc90255
2021-01-31 12:37:28 -05:00
Renovate Bot
3696a19970 chore(deps): update dependency eslint to v7.19.0 2021-01-31 07:07:45 +00:00
Barış Soner Uşaklı
a29dd21de4 fix: don't translate message on every ajaxify 2021-01-30 15:01:43 -05:00
Misty (Bot)
195e688bac Latest translations and fallbacks 2021-01-30 09:06:05 +00:00
Renovate Bot
1e10ebfb68 fix(deps): update dependency nodebb-plugin-dbsearch to v4.1.3 2021-01-29 23:33:20 +00:00
Julian Lam
05c53394f3 fix: tests 2021-01-29 17:05:45 -05:00
Julian Lam
7419922040 fix: improper override of req.body.username in login logic 2021-01-29 17:03:44 -05:00
Julian Lam
b820d23401 feat: new hook filter:login.override, deprecate action:auth.overrideLogin 2021-01-29 16:59:57 -05:00
Julian Lam
473d5f4aba fix: full settings hash not passed through to action:settings.set
The sorted lists were being filtered out
2021-01-29 15:18:57 -05:00
Julian Lam
eb96046e97 Revert "refactor: use Map to track sorted lists in Settings.set()"
This reverts commit 65de2e76b4.
2021-01-29 15:07:09 -05:00
Julian Lam
65de2e76b4 refactor: use Map to track sorted lists in Settings.set() 2021-01-29 15:00:14 -05:00
Baris Usakli
a5bf9779fd fix: #9223, don't overwrite stmp settings 2021-01-29 14:22:08 -05:00
Renovate Bot
0e2b329bb7 fix(deps): update dependency nodebb-plugin-composer-default to v6.5.6 2021-01-29 19:00:52 +00:00
Julian Lam
4029ec3713 fix: multiple sorted-lists do not save to the correct set 2021-01-29 13:39:00 -05:00
Renovate Bot
6c3b1fde87 fix(deps): update dependency autoprefixer to v10.2.4 2021-01-29 18:37:56 +00:00
Misty (Bot)
406faf4c66 Latest translations and fallbacks 2021-01-29 09:10:35 +00:00
Renovate Bot
05901fcd3a fix(deps): update dependency nodebb-plugin-markdown to v8.12.5 2021-01-28 23:47:56 +00:00
Julian Lam
3052256db3 chore: deprecation notices for plugins using plugin old hook methods 2021-01-28 17:15:51 -05:00
Julian Lam
15ba0abb34 docs: update deprecation-removal version for plugin hook helper methods in 1.18.0 2021-01-28 16:23:03 -05:00
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.
2021-01-28 16:15:04 -05:00
Julian Lam
4bb3b0323d feat: guard password fields in login/register against accidental caps lock 2021-01-28 15:00:26 -05:00
Barış Soner Uşaklı
e8429f509b fix: handle delete and update for categories:name zset 2021-01-28 10:18:09 -05:00
Misty (Bot)
53a6dca3c6 Latest translations and fallbacks 2021-01-28 09:10:07 +00:00
Renovate Bot
a9b3fb373b fix(deps): update dependency nodebb-theme-persona to v10.4.1 2021-01-28 05:36:58 +00:00
Barış Soner Uşaklı
34c42c6fa3 feat: ability to search categories, #8813 2021-01-27 22:51:22 -05:00
Barış Soner Uşaklı
faeb637353 fix: tests remove old routes 2021-01-27 20:30:33 -05:00
Barış Soner Uşaklı
d41ce87334 fix: removed object routes 2021-01-27 17:44:48 -05:00
Barış Soner Uşaklı
a1c014462c revert: bring back backwards compat 2021-01-27 17:41:07 -05:00
Barış Soner Uşaklı
647d3ba810 fix: removed methods 2021-01-27 17:36:58 -05:00
Barış Soner Uşaklı
05be1c6603 feat: restore action:script.load, allow modifying loaded module via static:script.init 2021-01-27 17:21:08 -05:00
Renovate Bot
a90773a61d fix(deps): update dependency sharp to v0.27.1 2021-01-27 22:02:21 +00:00
Julian Lam
fb84c78544 chore: remove deprecated User.emailConfirm [breaking]
Use `User.email.confirmByCode` instead.
2021-01-27 16:21:53 -05:00
Julian Lam
5a775e09dc chore: remove deprecated plugin hook filter:privileges:isUserAllowedTo [breaking]
Use `filter:privileges:isAllowedTo` instead.
2021-01-27 16:20:45 -05:00
Julian Lam
d41de481a4 chore: remove deprecated plugin hook methods [breaking]
Call plugins.hooks.fire() instead.
2021-01-27 16:18:19 -05:00
Julian Lam
cc0d562e9a chore: more removals of thumb specific backwards-compatibility [breaking] 2021-01-27 16:17:14 -05:00
Julian Lam
8b09292e77 chore: add deprecation notice in comments for ajaxify.loadExtraScripts 2021-01-27 16:10:19 -05:00
Julian Lam
5f9f241e37 chore: remove deprecated filter:admin/header.build hook [breaking]
Use `filter:middleware.renderAdminHeader` instead.
2021-01-27 16:10:19 -05:00
Julian Lam
84dfdfe659 chore: remove deprecated v2 style responses for thumbs upload route [breaking] 2021-01-27 16:10:13 -05:00
Julian Lam
2ad0d0d0d8 chore: remove deprecated getObject routes [breaking]
`/api/post/pid/:pid`, `/api/topic/tid/:tid`, `/api/category/cid/:cid` have now been removed in favour of routes in the Write API (`/api/v3/(posts|topics|categories)/:id`)
2021-01-27 16:07:00 -05:00
Julian Lam
7b090c588b fix: incorrect return for Thumbs.get() if thumbs were disabled 2021-01-27 14:33:40 -05:00
Julian Lam
7da1b43f2b fix: script failure if client-side page script does not exist 2021-01-27 14:32:15 -05:00
Julian Lam
ca14c0e2a6 fix(deps): bump persona to get timeline style 2021-01-27 14:00:14 -05:00
Julian Lam
aa8b84bb56 fix(topic-events): topicEvents.init() test 2021-01-27 13:16:49 -05:00
Julian Lam
dc84559d0b feat(topic-events): topic events GET route in write API 2021-01-27 13:16:49 -05:00
Julian Lam
449c379d22 feat(topic-events): server-side tests for topic events 2021-01-27 13:16:49 -05:00
Julian Lam
0d4a377558 feat(topic-events): clear out topic events when a topic is purged 2021-01-27 13:16:49 -05:00
Julian Lam
8e93bf7362 feat(topic-events): client-side handling on topic event log 2021-01-27 13:16:49 -05:00
Julian Lam
df2fdd56ba fix(topic-events): repeated invocations of Posts.addTopicEvents caused dupes to be added to DOM 2021-01-27 13:16:49 -05:00
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
2021-01-27 13:16:49 -05:00
Julian Lam
cec3fc934d refactor(topic-events): break out some logic in events.get into local modifyEvent method
+ events.log now returns a complete event object
2021-01-27 13:16:49 -05:00
Julian Lam
882e6a159c feat(topic-events): handle newest_to_oldest sort in topic events, WIP 2021-01-27 13:16:49 -05:00
Julian Lam
2293a07a06 feat(topic-events): generic css for timeline-event 2021-01-27 13:16:49 -05:00
Julian Lam
611d1f872d feat(topic-events): support for uids in topic event payloads 2021-01-27 13:16:49 -05:00
Julian Lam
425eca145b refactor(topic-events): fire topic event logging in topics/tools instead, pass uid into payload 2021-01-27 13:16:49 -05:00
Julian Lam
ab2e1ecb40 feat(topic-events): work in progress topic events logic and client-side implementation 2021-01-27 13:16:49 -05:00
Julian Lam
faf5960373 fix: bug where action:ajaxify.end was never called if there were no init scripts 2021-01-27 12:23:02 -05:00
Julian Lam
8e5687a4af refactor(hooks): deprecate action:script.load client-side hook
Use `static:script.init` instead.
2021-01-27 12:23:02 -05:00
Julian Lam
efff8e2ae2 fix(hooks): bug where hook firing would fail if there were no listeners 2021-01-27 12:23:02 -05:00
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)
2021-01-27 12:23:02 -05:00
Julian Lam
8ff07bc196 fix: update js concatenation logic to bundle scripts.rjs into minfile regardless of build environment
The slowdown is fairly insignificant (< .1s), and the only change is the minified file is identical across environments, which is better from a debugging standpoint
2021-01-27 12:23:02 -05:00
Julian Lam
1d77572117 feat(hooks): update action:ajaxify.end to use new hooks module 2021-01-27 12:23:02 -05:00
Julian Lam
412d285850 fix(hooks): fallback handling for core invocations of hooks.fire
+ .on() which is the same as .register()
2021-01-27 12:23:02 -05:00
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.
2021-01-27 12:23:02 -05:00
Misty (Bot)
42c0f9ac52 Latest translations and fallbacks 2021-01-27 09:11:26 +00:00
Misty (Bot)
39bc741bca Latest translations and fallbacks 2021-01-26 09:10:04 +00:00
Julian Lam
f975063b7d fix: #7125, allow list for page route, configurable via plugin hook 2021-01-25 16:01:10 -05:00
Julian Lam
8b72479f62 fix: remove 'filters' and 'categories' from flag details API return [breaking]
These options were originally used when the flag filters were shown in the sidebar. This has seen been removed, and so the information is now superfluous
2021-01-25 12:13:09 -05:00
Julian Lam
1603566bcc fix: filtering logic of flags [breaking]
When combining filters, the old logic assumed that every filter was
exclusive, unless that filter contained multiple items, in which
case it was added to a list of "or" filters that returned all
matching flags.

A fault was discovered in that if you passed in multiple "or"
states, it did not return flags with the expected filtering.

e.g. open flags, closed flags, flags of cid 1, flags of cid 2

This could return open flags of cid 3, since all of the filters
were "OR"'d.

This logic change updates the behaviour so disparate OR sets are
intersected (ANDed).
2021-01-25 11:29:00 -05:00
Julian Lam
942d924779 fix: error on flag list if no flag filters were saved in session 2021-01-25 11:19:16 -05:00
Julian Lam
6b1c97db79 feat: feature flag for auto-resolving a user's flags on ban [breaking]
The default behaviour has now been changed to 'off'. Going forward, a user's flags will no longer automatically resolve on ban.
2021-01-25 11:07:29 -05:00
Misty (Bot)
a396b1099c Latest translations and fallbacks 2021-01-25 09:09:10 +00:00
Julian Lam
35c92d0cff fix: mod cid filter accidentally saved in session 2021-01-24 14:23:00 -05:00
Julian Lam
ce7c74b2e1 fix: more tests for #9217 2021-01-24 14:11:47 -05:00
Julian Lam
f2a5cd0b67 fix: tests for #9217 2021-01-24 14:05:11 -05:00
Julian Lam
27cae0d5d8 fix: missing return for #9217 2021-01-24 14:01:16 -05:00
Julian Lam
b2b1450e5d fix: #9217, render 400 error page on bad access to /register 2021-01-24 13:59:16 -05:00
Misty (Bot)
06e2ef1a8e Latest translations and fallbacks 2021-01-24 09:06:49 +00:00
Misty (Bot)
65849d9b93 Latest translations and fallbacks 2021-01-23 09:06:25 +00:00
Barış Soner Uşaklı
78896fc623 fix: redis check compat tests 2021-01-23 00:04:48 -05:00
Barış Soner Uşaklı
fdfbc90255 feat: async/await redis connection 2021-01-22 23:59:52 -05:00
Barış Soner Uşaklı
33bf1b0e2c feat: async/await psql connection 2021-01-22 22:10:34 -05:00
Barış Soner Uşaklı
672959c13f feat: add group name to csv event 2021-01-22 13:14:14 -05:00
Julian Lam
a186ea0fe3 fix: registration completion overriding returnTo if it was already set 2021-01-22 10:01:42 -05:00
Julian Lam
280285cda9 feat: allow interstitial callbacks to be async functions [breaking]
This change is breaking in the sense that if you have written
interstitial callbacks before that are async functions _with_ a
callback, those are no longer allowed. You will not need to call
next() as that argument will no longer be passed in to async
functions.
2021-01-22 10:01:42 -05:00
Misty (Bot)
d1f78cb8c0 Latest translations and fallbacks 2021-01-22 09:09:56 +00:00
Renovate Bot
5b2f0be080 fix(deps): update dependency postcss to v8.2.4 2021-01-21 14:43:12 -05:00
Renovate Bot
d99cb1cf83 fix(deps): update dependency autoprefixer to v10.2.3 2021-01-21 19:22:52 +00:00
Renovate Bot
4232d97b57 fix(deps): update dependency postcss-clean to v1.2.0 2021-01-21 16:24:03 +00:00
Barış Soner Uşaklı
525fbeeb4d Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-01-20 20:17:12 -05:00
Barış Soner Uşaklı
5c1b742979 fix: add missing user delete event types 2021-01-20 20:16:32 -05:00
psychobunny
1c42060241 fix: missing option for user-deleteAccount on ACP Events page 2021-01-20 20:16:24 -05:00
Misty (Bot)
ea7f838170 chore: incrementing version number - v1.16.2
(cherry picked from commit 023e4cfcee)
Signed-off-by: Misty (Bot) <deploy@nodebb.org>
2021-01-21 00:43:53 +00:00
Misty (Bot)
d3883d4bd9 chore: update changelog for v1.16.2 2021-01-21 00:43:53 +00:00
renovate[bot]
b5cb2f8b9c fix(deps): update dependency bootbox to v5 (#8751)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-01-20 16:50:41 -05:00
Misty (Bot)
a55051de2f Latest translations and fallbacks 2021-01-20 09:09:28 +00:00
Barış Soner Uşaklı
7fb583dcfd Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-01-18 19:31:14 -05:00
Barış Soner Uşaklı
c608b0e8a3 fix: https://github.com/NodeBB/nodebb-plugin-webhooks/issues/3 2021-01-18 19:31:07 -05:00
Julian Lam
d85ad10d34 fix: restored sanity checks for post move socket calls 2021-01-18 15:47:15 -05:00
Julian Lam
966c4117ec refactor(api): post move to write API 2021-01-18 15:31:14 -05:00
Barış Soner Uşaklı
0fa4c11ea6 fix: don't chagne scrollTop if at the top of page 2021-01-18 14:52:52 -05:00
Julian Lam
e118e59ce0 refactor(api): post diffs to use write API 2021-01-18 14:26:22 -05:00
Barış Soner Uşaklı
c2e2370655 feat: add filter:email.cancel to allow plugins to cancel sending emails 2021-01-18 13:34:28 -05:00
Barış Soner Uşaklı
1590cdf19f fix: #9206, fix double escaped arguments 2021-01-17 20:22:46 -05:00
Julian Lam
f5fcd232f6 fix: regression caused by 77ab46686d
Access checks were added for topic GET route, but occasionally a post_uuid is passed in, which is available to everyone, and so checks should be skipped
2021-01-17 15:43:29 -05:00
Barış Soner Uşaklı
4fb907875e fix: don't crash if fullname is not a string
https://community.nodebb.org/topic/15291/upgrade-error-fullname-substr-is-not-a-function
2021-01-17 13:10:28 -05:00
Barış Soner Uşaklı
1374e0eeba refactor: change var to const 2021-01-16 12:54:11 -05:00
Barış Soner Uşaklı
7a790d1830 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-01-16 09:40:00 -05:00
Barış Soner Uşaklı
00ba89b6d6 fix: #9204, bypass groupname length check for system group in upgrade script 2021-01-16 09:37:32 -05:00
Renovate Bot
f16cdc9f0a fix(deps): update dependency nodebb-theme-persona to v10.3.19 2021-01-16 06:15:50 +00:00
Renovate Bot
a6f5de8690 chore(deps): update dependency husky to v4.3.8 2021-01-16 04:51:15 +00:00
Renovate Bot
afbef95f7d chore(deps): update dependency eslint to v7.18.0 2021-01-16 03:42:58 +00:00
Barış Soner Uşaklı
9938a139fe fix: add missing await 2021-01-15 14:42:19 -05:00
Barış Soner Uşaklı
ceb1566834 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-01-15 14:41:57 -05:00
Barış Soner Uşaklı
25ab99b91d refactor: single remove call 2021-01-15 14:41:45 -05:00
Misty (Bot)
43ff8e4197 chore: incrementing version number - v1.16.2-beta.0 2021-01-15 15:31:56 +00:00
Misty (Bot)
a972b5a77a Latest translations and fallbacks 2021-01-15 09:08:26 +00:00
Renovate Bot
3d1224e18d fix(deps): update socket.io packages to v3.1.0 2021-01-15 03:20:58 +00:00
Julian Lam
ab11435ed5 feat: grant plugins the ability to specify options to the SSO handler
... to be handled in the plugin itself (overriding the passport prototype's authorizationParams method)

+ new hook filter:auth.options
2021-01-13 16:57:48 -05:00
Julian Lam
9b289eca9d fix: ssoState passed to strategies even if not called for 2021-01-13 16:25:19 -05:00
Barış Soner Uşaklı
3d36208877 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-01-13 11:37:22 -05:00
Barış Soner Uşaklı
0a471b76b5 fix: use max 2021-01-13 11:37:15 -05:00
Barış Soner Uşaklı
c30b40abe7 fix: keep 60 topics minimum on topic list 2021-01-13 11:35:18 -05:00
Julian Lam
fdf0347240 style: update codeclimate config to be less sensitive to duplicate code blocks
After conversing with Dave from CodeClimate, he suggested these changes to adjust CodeClimate's detection so that it does not alert as frequently for code blocks that are similar, but functionally different. I also added a line to enforce the rule of threes, since CC often alerted only when two blocks were identical.
2021-01-13 10:26:43 -05:00
Misty (Bot)
fc3a0bd427 Latest translations and fallbacks 2021-01-13 09:08:53 +00:00
Julian Lam
77ab46686d fix: access checks for tags and thumbs get route 2021-01-12 17:38:35 -05:00
Julian Lam
c0fb1cb59c fix: #9194 global mods unable to pin or unpin topics 2021-01-12 14:02:12 -05:00
Barış Soner Uşaklı
286aa243f5 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-01-12 11:19:15 -05:00
Barış Soner Uşaklı
ef16cd2e6f fix: #9192, exit after logging error 2021-01-12 10:46:55 -05:00
Misty (Bot)
a26bfb3fda Latest translations and fallbacks 2021-01-12 09:08:47 +00:00
Renovate Bot
1901ecb244 fix(deps): update dependency nodebb-theme-slick to v1.3.8 2021-01-12 04:36:38 +00:00
gasoved
69419571a9 fix: make sure inviter user exists 2021-01-11 17:00:17 -05:00
Julian Lam
a407a51da6 fix: #9178 missing language strings (and fallbacks) for post-queue 2021-01-11 14:47:09 -05:00
Barış Soner Uşaklı
a82f943c76 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-01-11 14:35:48 -05:00
Barış Soner Uşaklı
89e6c75d58 fix: #9185, fix string boolean values 2021-01-11 14:35:23 -05:00
Julian Lam
e817d5beda fix: test for topicThumbs 2021-01-11 14:31:47 -05:00
Julian Lam
66da6bcd1c fix: #9184 proper relative_path usage in topic thumbs.get 2021-01-11 13:28:04 -05:00
Misty (Bot)
d90c7ff43b Latest translations and fallbacks 2021-01-11 09:08:27 +00:00
Misty (Bot)
6c855bf48e Latest translations and fallbacks 2021-01-10 09:08:11 +00:00
Misty (Bot)
96280d76af Latest translations and fallbacks 2021-01-09 09:07:47 +00:00
Julian Lam
b742229e59 fix: #9169, re-adding v2-style behaviour so as to not break the API... yet 2021-01-08 15:12:33 -05:00
Barış Soner Uşaklı
aa95cc7d60 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-01-08 14:19:37 -05:00
Barış Soner Uşaklı
eaf62d39fd fix: #9177, handled multiple deleted users properly 2021-01-08 14:19:25 -05:00
Julian Lam
4ede18ce5f fix: broken test caused by errant .pop(), missing await 2021-01-08 14:15:54 -05:00
Julian Lam
c07e1e16af feat: add unread-count badge if navigator contains /flags route 2021-01-08 14:15:54 -05:00
Julian Lam
6a1311b4bc refactor: flags lib to have a separate getFlagIdsWithFilters method
added quick filter for unresolved flags
2021-01-08 14:15:54 -05:00
Julian Lam
6cb5888c13 fix: unescape header navigation originalRoute [breaking] 2021-01-08 14:15:54 -05:00
Julian Lam
03a0e72fae refactor: split out logic dedicated to calculating unread counts, to a separate local method 2021-01-08 14:15:54 -05:00
Barış Soner Uşaklı
5cae95eb9f Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-01-08 13:33:00 -05:00
Barış Soner Uşaklı
d83d40cf9b fix: missing error message 2021-01-08 12:01:44 -05:00
Renovate Bot
36069da2f8 fix(deps): update dependency sortablejs to v1.13.0 2021-01-08 04:53:57 +00:00
Renovate Bot
5b3c48fd02 fix(deps): update dependency autoprefixer to v10.2.1 2021-01-08 03:17:34 +00:00
Manuel Valle
e14b67786c Solve Custom home page route error bug (#9180)
When you select Custom Route as home you get a 404 error "/custom not found" error.
This because 'homePageRoute' property was used instead of 'homePageCustom'
2021-01-07 21:44:02 -05:00
Barış Soner Uşaklı
8ece64ab82 fix: test for https://github.com/NodeBB/NodeBB/pull/9180 2021-01-07 21:42:19 -05:00
Barış Soner Uşaklı
7069735aa2 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-01-07 20:58:53 -05:00
Barış Soner Uşaklı
da54697075 fix: #9176, limit description size 2021-01-07 20:58:45 -05:00
Julian Lam
9534d95619 fix: broken test due to change in response code 2021-01-07 15:11:45 -05:00
Julian Lam
0da2843281 feat(api): schema definition for new credential checking route 2021-01-07 15:11:45 -05:00
Julian Lam
97d678fd2a fix: return a user object, not an array of user objects (in v3 login check route) 2021-01-07 15:11:45 -05:00
Julian Lam
8c86f5bcec fix: bad execution flow in utilities.login 2021-01-07 15:11:45 -05:00
Julian Lam
87a7d85e89 fix: missing breadcrumbs in schema 2021-01-07 15:11:45 -05:00
Julian Lam
534224133b fix: random loadFiles added by errant vscode autocompletion 2021-01-07 15:11:45 -05:00
Julian Lam
8bbb320867 feat: handle HTTP 429 as a response code 2021-01-07 15:11:45 -05:00
Julian Lam
56f929ed4f feat: add write API route for checking login credentials 2021-01-07 15:11:45 -05:00
Julian Lam
1cf0032d9f feat: allow override of local fns in login controller, 400 instead of 500 for wrong login type [breaking] 2021-01-07 15:11:45 -05:00
Renovate Bot
d3e041e292 chore(deps): update dependency husky to v4.3.7 2021-01-07 04:36:33 +00:00
Barış Soner Uşaklı
6cbb77afda fix: add missing breadcrumb on /user/<slug>/categories 2021-01-06 22:00:56 -05:00
Barış Soner Uşaklı
f0dd302c77 perf: use only required calls 2021-01-06 21:25:32 -05:00
Peter Jaszkowiak
a51c5698c7 fix: --help usage info
yargs (via nconf) would exit when detecting a help flag

also improves the speed of `./nodebb help build`
2021-01-06 20:43:07 -05:00
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
2021-01-06 17:04:18 -05:00
Misty (Bot)
e3cd7a2343 chore: incrementing version number - v1.16.1
(cherry picked from commit 7fb032b396)
Signed-off-by: Misty (Bot) <deploy@nodebb.org>
2021-01-06 19:17:56 +00:00
Misty (Bot)
b6d71710a0 chore: update changelog for v1.16.1 2021-01-06 19:17:56 +00:00
Julian Lam
171017c38c fix: #9130, remove timestamp prefix from thumbnail names in API response 2021-01-06 12:15:32 -05:00
Barış Soner Uşaklı
8c31afae7d feat: #9173, show installed plugin versions in ./nodebb plugins 2021-01-06 11:52:19 -05:00
Misty (Bot)
afe6d84710 Latest translations and fallbacks 2021-01-06 09:09:57 +00:00
Renovate Bot
e445ae5a7a fix(deps): update dependency autoprefixer to v10.2.0 2021-01-06 04:23:40 +00:00
Julian Lam
b9ba44edd7 fix: #9166 missing relative path in topic thumbs modal and topic list 2021-01-05 13:40:36 -05:00
Renovate Bot
fd045c67c9 fix(deps): update socket.io packages to v3.0.5 2021-01-05 13:38:31 +00:00
Barış Soner Uşaklı
0d7dfeeb86 chore: increase test timeout 2021-01-04 17:09:14 -05:00
Barış Soner Uşaklı
1968bf50f1 fix: #9163, fix total connection count on ACP
sockets.sockets is a JS map in 3.x
2021-01-04 16:58:29 -05:00
Renovate Bot
87e333b44f fix(deps): update dependency nodebb-theme-persona to v10.3.16 2021-01-04 20:20:22 +00:00
Renovate Bot
4524f825d4 fix(deps): update dependency benchpressjs to v2.4.0 2021-01-04 18:52:33 +00:00
Misty (Bot)
5fcf3ea61b chore: incrementing version number - v1.16.1-beta.0 2021-01-04 14:40:53 +00:00
Misty (Bot)
ebf1624a90 Latest translations and fallbacks 2021-01-02 09:07:42 +00:00
Renovate Bot
18ae7cf719 chore(deps): update dependency eslint to v7.17.0 2021-01-02 03:44:22 +00:00
Misty (Bot)
d1700c40e2 Latest translations and fallbacks 2020-12-31 09:09:40 +00:00
Andrew Rodrigues
4d6ddf6dbf feat: added note that you can now upload videos 2020-12-31 00:17:10 -05:00
Julian Lam
e5edbc6faf feat: automatically attempt socket.io reconnection on ajaxify
Also, updated messaging and toaster to accurately reflect offline-mode state
2020-12-30 13:59:00 -05:00
Renovate Bot
189be9e0be fix(deps): update dependency nodebb-theme-persona to v10.3.15 2020-12-30 02:16:52 +00:00
Julian Lam
041d45c3d2 fix: genericise .necro-post, bump persona to latest 2020-12-29 16:34:05 -05:00
Julian Lam
edb8da1ef9 feat(api): closes #9123 category and topic routes migrated to Write API 2020-12-29 10:32:01 -05:00
Julian Lam
77a5adb616 fix(tests): handle nested allOf blocks 2020-12-29 10:32:01 -05:00
Julian Lam
9ecfac9b68 feat(api): #9123, migrate rest of the getObject controllers to Write API 2020-12-29 10:32:01 -05:00
Julian Lam
cdff8d286a chore(api): add deprecation notices re: #9123 2020-12-29 10:32:01 -05:00
Julian Lam
e267f29584 feat(api): #9123, migrate /api/post/pid/:pid to Write API 2020-12-29 10:32:01 -05:00
Misty (Bot)
1002c14aa2 Latest translations and fallbacks 2020-12-29 09:08:10 +00:00
Barış Soner Uşaklı
33290850ee fix: #9126, skip base64 and long values 2020-12-28 12:10:48 -05:00
Barış Soner Uşaklı
3121215e87 fix: #9127, use assets path 2020-12-28 12:03:27 -05:00
Barış Soner Uşaklı
c1ecfd1ebf feat: #9135, don't try to reconnect forever 2020-12-28 11:44:14 -05:00
Julian Lam
a555f02415 fix: inability for admins with setting privilege to save plugin settings 2020-12-28 11:09:40 -05:00
Julian Lam
fb3f3f729f refactor(openapi): update TopicObject component to reference TopicObjectSlim in its schema 2020-12-28 10:48:58 -05:00
Julian Lam
895e3d939e fix: #9149, server-side handling of disableChatMessageEditing 2020-12-28 10:20:52 -05:00
Julian Lam
d27815a8c0 fix: #9149, incorrect client-side disableChatMessageEditing value for admins/gmods 2020-12-28 09:51:28 -05:00
Barış Soner Uşaklı
20c1b684ed fix: #9151, dont use service worker for posts requests 2020-12-27 21:18:41 -05:00
Misty (Bot)
f1ec4961d9 Latest translations and fallbacks 2020-12-27 09:06:08 +00:00
Misty (Bot)
29fcdc4c22 Latest translations and fallbacks 2020-12-26 09:06:53 +00:00
Barış Soner Uşaklı
183cabe90f fix: #9150, fix selector so it doesn't add img-responsive to profile pics 2020-12-25 23:19:45 -05:00
Renovate Bot
1dd1d3b064 fix(deps): update dependency nodebb-widget-essentials to v5.0.2 2020-12-25 02:43:17 +00:00
Misty (Bot)
d85e351f43 Latest translations and fallbacks 2020-12-24 09:08:02 +00:00
Julian Lam
2874036024 fix: tests 2020-12-23 17:48:54 -05:00
Julian Lam
223f0a5515 feat(acp): admin tags privilege 2020-12-23 17:44:17 -05:00
Julian Lam
d90aa95808 feat: add confirmation modal when assigning admin:admins-mods privilege 2020-12-23 14:18:14 -05:00
Julian Lam
fb46a8d975 feat(acp): admins-mods privilege 2020-12-23 14:18:14 -05:00
Julian Lam
5b8558e9a5 feat: allow dashes in privilege group names 2020-12-23 14:18:14 -05:00
Julian Lam
3aa5beb832 feat: allow multiple privileges to be defined for a given admin socket call 2020-12-23 14:18:14 -05:00
renovate[bot]
f55dddb2be fix(deps): update dependency nodebb-widget-essentials to v5.0.1 (#9144)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-23 12:49:34 -05:00
Barış Soner Uşaklı
fcc1e24ad0 feat: rename admin middleware header hook 2020-12-23 10:47:51 -05:00
Renovate Bot
6d980d26d7 fix(deps): update dependency nodebb-plugin-composer-default to v6.5.5 2020-12-23 10:03:55 -05:00
Misty (Bot)
c62a6b6ca8 Latest translations and fallbacks 2020-12-23 09:07:52 +00:00
Julian Lam
da191341e8 feat(acp): added new admin privilege for groups management 2020-12-22 21:45:51 -05:00
Julian Lam
3959a7bd9c fix(api): failing test due to missing file 2020-12-22 14:43:22 -05:00
Julian Lam
80ee3dfbd1 fix(api): tests 2020-12-22 14:39:48 -05:00
Barış Soner Uşaklı
931105e6cb fix: dont show deleted posts in navigator 2020-12-22 14:29:25 -05:00
Julian Lam
32e36f7b2e feat(api): group ownership API route, switch client-side to use API route 2020-12-22 14:26:31 -05:00
Julian Lam
98550d61d7 feat(api): add schema for groups update route 2020-12-22 13:22:01 -05:00
Julian Lam
4fc1337762 feat(api): added schema for email unsubscribe token 2020-12-22 13:22:01 -05:00
Julian Lam
501a7b7774 fix: bug in api path existence test
It was only checking for the path, but not ensuring that the method was also defined
2020-12-22 13:22:01 -05:00
Julian Lam
1cd2689cf6 refactor(api): deprecated groups update socket in favour of API lib 2020-12-22 13:22:01 -05:00
Julian Lam
e640a41a78 refactor(api): update group deletion calls to use write API 2020-12-22 13:22:01 -05:00
Renovate Bot
4919e5968d fix(deps): update dependency sharp to v0.27.0 2020-12-22 14:52:37 +00:00
Misty (Bot)
4ac13160b5 Latest translations and fallbacks 2020-12-22 09:09:07 +00:00
Barış Soner Uşaklı
2ef72a94c2 fix: #9136, fix move topic/post timeout errors 2020-12-21 11:19:51 -05:00
Julian Lam
34ccabe3ab fix: bad assignment logic in middleware.renderHeader 2020-12-21 10:02:28 -05:00
Julian Lam
75b1bbd09f feat: explicitly add filter:admin/header.build hook
As it is not fired during middleware.processRender
2020-12-21 09:59:19 -05:00
Julian Lam
05d8b3c339 chore: add deprecation notice to topic thumb tpl value 2020-12-21 09:59:19 -05:00
Renovate Bot
2610dfcf56 chore(deps): update dependency eslint to v7.16.0 2020-12-19 02:07:07 +00:00
Renovate Bot
37b35f7de0 fix(deps): update dependency nodebb-theme-persona to v10.3.12 2020-12-19 00:18:08 +00:00
Julian Lam
da4f91186b fix: #9113, wrong path separator used in thumbs.get 2020-12-18 16:50:31 -05:00
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
2020-12-18 16:39:09 -05:00
Julian Lam
713f029dc8 fix: removing ability to specify deprecated topic 'thumb' on topic creation 2020-12-18 15:25:37 -05:00
Barış Soner Uşaklı
b369dc888b fix: #9129, event is fired on socket.io 2020-12-18 14:53:21 -05:00
Julian Lam
bbd97ccb48 fix: subfolder handling in tests 2020-12-18 14:01:41 -05:00
Julian Lam
5f038dffbd test: changed test a bit to see what is going on 2020-12-18 14:01:41 -05:00
Julian Lam
6062039de2 fix: .flat() not defined in v10, added debug router to exclusion list 2020-12-18 14:01:41 -05:00
Julian Lam
f416dc177a fix: all tests, wrap up work 2020-12-18 14:01:41 -05:00
Julian Lam
9c2de86a6e fix: two more routes 2020-12-18 14:01:41 -05:00
Julian Lam
cb32e32ae3 feat: fix more tests, add more routes, update api test suite 2020-12-18 14:01:41 -05:00
Julian Lam
14c51e3c60 feat: add registration/complete route, fix some other tests 2020-12-18 14:01:41 -05:00
Julian Lam
b9a61d2d45 fix: api tests 2020-12-18 14:01:41 -05:00
Julian Lam
600807fbe1 fix: don't return deleted: 0 for ephemeral groups 2020-12-18 14:01:41 -05:00
Julian Lam
9de35ec5a3 feat: add missing schemas for various ACP settings routes 2020-12-18 14:01:41 -05:00
Julian Lam
438fa5c88f fix: send fewer items to client-side for ACP settings/email page 2020-12-18 14:01:41 -05:00
Julian Lam
c079051b19 fix: errors in write-api schema 2020-12-18 14:01:41 -05:00
Julian Lam
8e5a413e4e chore: minor reordering of lines 2020-12-18 14:01:41 -05:00
Julian Lam
990f107736 fix: broken tests from last round of fixes 2020-12-18 14:01:41 -05:00
Julian Lam
a962935743 fix: bad error message for request body api test 2020-12-18 14:01:41 -05:00
Julian Lam
d6de925348 feat: add missing schema for category update and deletion
Deleted CategoryObj component, since CategoryObject is used more
2020-12-18 14:01:41 -05:00
Julian Lam
7fc329de2f fix: modify backreference test to not check router.all() calls 2020-12-18 14:01:41 -05:00
Julian Lam
eef052c1bf fix: add missing token generation route to write api spec 2020-12-18 14:01:41 -05:00
Julian Lam
d85181e031 feat: add schema for api ping routes 2020-12-18 14:01:41 -05:00
Julian Lam
878ee06715 refactor: schema backreference test to use map instead of reduce, properly check write-api routes 2020-12-18 14:01:41 -05:00
Julian Lam
df8d62ba06 feat: normalize paths before comparison 2020-12-18 14:01:41 -05:00
Julian Lam
dbe85630e3 feat: additional test to ensure any new routes added to express have a corresponding schema doc
re: #9103
2020-12-18 14:01:41 -05:00
Barış Soner Uşaklı
a2152dd100 feat: update html-to-text closes https://github.com/NodeBB/NodeBB/pull/8810 2020-12-18 11:18:49 -05:00
renovate[bot]
55a55ea284 chore(deps): update actions/setup-node action to v2 (#9115)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-18 11:01:44 -05:00
psychobunny
b8d4709eec fix(pwa): #9127 service-worker.js missing on subfolder installs 2020-12-18 10:03:36 -05:00
Renovate Bot
db4c68639d fix(deps): update dependency nodebb-theme-persona to v10.3.11 2020-12-17 20:32:37 -05:00
Barış Soner Uşaklı
b7b588f5c8 fix: trigger action:posts.edited 2020-12-17 20:30:13 -05:00
Misty (Bot)
6d01fd5028 chore: incrementing version number - v1.16.0
(cherry picked from commit 67ccc21760)
Signed-off-by: Misty (Bot) <deploy@nodebb.org>
2020-12-17 23:59:27 +00:00
Misty (Bot)
1437c62f3a chore: update changelog for v1.16.0 2020-12-17 23:59:27 +00:00
renovate[bot]
fff0cea685 fix(deps): update dependency nodebb-plugin-composer-default to v6.5.4 (#9120)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-17 10:55:36 -05:00
Barış Soner Uşaklı
feecd66506 fix: api usage 2020-12-16 12:00:14 -05:00
Barış Soner Uşaklı
a15ef53c70 feat: add new client side hooks 2020-12-16 11:12:13 -05:00
Barış Soner Uşaklı
4404e32ed9 fix: #9117, lower query before search 2020-12-16 10:41:45 -05:00
Misty (Bot)
e99fe307b6 Latest translations and fallbacks 2020-12-16 09:11:01 +00:00
Barış Soner Uşaklı
ab96f526d6 feat: remove max age since cache is cleared when thumbs change 2020-12-15 19:15:10 -05:00
Barış Soner Uşaklı
3ed55799ab fix: #9114, fix client side groups update for memberPostCids 2020-12-15 16:32:24 -05:00
Barış Soner Uşaklı
acbf27ceea Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-12-14 21:49:14 -05:00
Barış Soner Uşaklı
2dee3cbe1a fix: test 2020-12-14 21:46:44 -05:00
renovate[bot]
30688b1b88 fix(deps): update dependency nodebb-theme-slick to v1.3.7 (#9112)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-14 21:28:41 -05:00
renovate[bot]
877f4673b0 fix(deps): update dependency nodebb-theme-lavender to v5.0.17 (#9111)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-14 21:26:50 -05:00
Barış Soner Uşaklı
2d5a224b06 perf: don't load thumbs if disabled globally, cache thumb results 2020-12-14 21:24:46 -05:00
Renovate Bot
ff18cdfa39 fix(deps): update dependency nodebb-theme-vanilla to v11.3.10 2020-12-15 01:43:47 +00:00
renovate[bot]
5d71834846 fix(deps): update dependency validator to v13.5.2 (#9094)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-14 20:35:45 -05:00
renovate[bot]
f37dbeedd5 fix(deps): update dependency nodebb-theme-vanilla to v11.3.9 (#9091)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-14 20:07:43 -05:00
gasoved
d28581eb6a feat: show alt text instead of images in teasers (#9107)
* feat: show alt text instead of images in teasers

* refactor: from utils to local function
2020-12-14 14:24:48 -05:00
gasoved
3ba0575584 fix: don't check "select all" if there are no enabled checkboxes 2020-12-14 08:08:57 -05:00
Misty (Bot)
850bf497ea Latest translations and fallbacks 2020-12-14 09:09:05 +00:00
Renovate Bot
2371b432af chore(deps): update dependency husky to v4.3.6 2020-12-13 20:52:53 +00:00
Renovate Bot
d036408d5a fix(deps): update dependency nodebb-plugin-composer-default to v6.5.3 2020-12-12 04:39:59 +00:00
Barış Soner Uşaklı
8f938eba19 fix: #9074, fix svg uploads 2020-12-11 22:50:42 -05:00
Julian Lam
ab98740821 fix: #9100 topic thumbs in OG image tags 2020-12-11 15:38:40 -05:00
Julian Lam
74d73313fd feat: migration of old topic thumbs to new format
closes #9099
2020-12-11 15:00:20 -05:00
Julian Lam
378a3a6945 fix: update version removal comments to 1.17 for some features 2020-12-11 12:26:53 -05:00
Julian Lam
4c87f30184 feat: allow plugins to override ACP relogin challenge
- used in 2factor
2020-12-11 11:50:24 -05:00
Misty (Bot)
e7ac767080 Latest translations and fallbacks 2020-12-11 09:07:17 +00:00
Barış Soner Uşaklı
80de572aa1 feat: add user.email.confirmByUid for sso plugins 2020-12-10 20:25:48 -05:00
Renovate Bot
b07fb9abca fix(deps): update dependency nodebb-plugin-composer-default to v6.5.2 2020-12-10 17:34:59 +00:00
Misty (Bot)
7eaedf4847 Latest translations and fallbacks 2020-12-10 09:07:57 +00:00
Julian Lam
05dd859714 fix: postgres is slow™️ 2020-12-09 19:23:23 -05:00
Julian Lam
f8dff94a15 fix: derp? 2020-12-09 19:05:26 -05:00
Julian Lam
9a4ea04a75 fix: attempted fix for psql test in topic thumbs 2020-12-09 18:57:45 -05:00
Julian Lam
9f62df15bd chore: appease codeclimate 2020-12-09 18:45:37 -05:00
Julian Lam
24e754d120 feat: add thumbs to category data return 2020-12-09 18:41:46 -05:00
Julian Lam
edf67f349f fix: use getSortedSetRange instead of getSortedSetsMembers 2020-12-09 17:12:59 -05:00
Julian Lam
bd5c4a5cff fix: tests 2020-12-09 16:46:19 -05:00
Julian Lam
e83baa97a0 fix: bad topic thumbs logic on local thumb upload 2020-12-09 16:30:11 -05:00
Julian Lam
ce8057f389 feat: broken test for bad topic thumbs logic 2020-12-09 16:23:31 -05:00
Julian Lam
3e54b70c06 fix: #9092, Topic thumbnails do not work with third-party uploaders 2020-12-09 15:47:58 -05:00
Julian Lam
dd448e2b1a fix: move topic thumb tests to root level, so they actually get run by mocha 2020-12-09 15:31:46 -05:00
Julian Lam
9681557f60 fix: tests for topic thumbs 2020-12-09 15:29:25 -05:00
Julian Lam
91899329fc chore(deps): bump persona to 10.3.9 2020-12-09 11:37:07 -05:00
Julian Lam
228cfa6710 chore(deps): bump composer to 6.5.1, re: #9067 2020-12-09 11:30:43 -05:00
Julian Lam
15f1a08940 chore(i18n): fallbacks for new topic thumb keys 2020-12-09 10:45:14 -05:00
Julian Lam
0db4912111 fix(deps): bump composer-default to 6.5.0 2020-12-09 10:42:41 -05:00
Julian Lam
2170c40007 fix: iteration logic bug 2020-12-09 10:42:41 -05:00
Julian Lam
ae9439748d fix: spec 2020-12-09 10:42:41 -05:00
Julian Lam
9342d611be fix: enable topic thumbnails across the board [breaking] 2020-12-09 10:42:41 -05:00
Julian Lam
a30c8ab5c8 feat: clent-side modal for managing topic thumbs
closes #9087
2020-12-09 10:42:41 -05:00
Julian Lam
67cf5e83b7 fix: changes to thumb resizing logic
- Resized thumb no longer skews aspect ratio
- Thumbs resized down to maximum thumb size by WIDTH only
- image.checkDimensions() now returns dimensions
2020-12-09 10:42:41 -05:00
Julian Lam
37c367d6ff feat: raise maximum thumb size to 512 2020-12-09 10:42:41 -05:00
Julian Lam
1c5cdb5121 feat: associate topic thumbs with post uploads (for the mainPid) 2020-12-09 10:42:41 -05:00
Julian Lam
08736b1812 fix: use file lib instead of direct fs module access 2020-12-09 10:42:41 -05:00
Julian Lam
c043cfebd6 fix: added back missing topic thumb tests that were removed in last commit 2020-12-09 10:42:41 -05:00
Julian Lam
5ec3b3d083 fix: tests 2020-12-09 10:42:41 -05:00
Julian Lam
d31aae167e fix(spec): broken link to status component 2020-12-09 10:42:41 -05:00
Julian Lam
cb7e4cda2a feat: helper method to get thumbs by pid 2020-12-09 10:42:41 -05:00
Julian Lam
41379e27c8 fix: hack uploader to handle a response from v3 write api 2020-12-09 10:42:41 -05:00
Julian Lam
340387c18a fix: #9055, non-standard API response from addThumbs route
Also removed old thumb upload router handler, and updated uploadPost handling in composer to match new response schema
2020-12-09 10:42:41 -05:00
Julian Lam
c09c238e3f fix: do not allow thumb deletion route to arbitrarily delete other files in uploads folder 2020-12-09 10:42:41 -05:00
Julian Lam
5950683316 feat: closes #9048, tests for topic thumbs routes, write API schema 2020-12-09 10:42:41 -05:00
Julian Lam
ef10b6b70d fix: missing file added 2020-12-09 10:42:41 -05:00
Julian Lam
4152aa552e feat: tests for topic thumbs
Also added some error checking to addThumbs controller
2020-12-09 10:42:41 -05:00
Julian Lam
ef7d6db912 feat: server-side work for #9047
- rename Thumbs.commit to Thumbs.migrate
- new PUT method that calls Thumbs.migrate
- `checkThumbPrivileges` now takes a single object parameter (ins. of req/res)
2020-12-09 10:42:41 -05:00
Julian Lam
b5d910f53b feat: core work for #9042, thumb deletion now accepts uuids
+ common data validation for thumb addition and deletion
2020-12-09 10:42:41 -05:00
Julian Lam
1f0c1cd229 fix: references to since-removed Topics.thumbs.resizeAndUpload 2020-12-09 10:42:41 -05:00
Julian Lam
90497e3ef5 feat: more work on topic thumbs refactor
- addThumb and deleteThumb are now protected routes (duh)
- new getThumbs route GET /api/v3/topics/<tid>/thumbs
- Updated `assert.path` middleware to better handle if relative paths are received with upload_url
- Slight refactor of thumbs lib to use validator to differentiate between tid and UUID
2020-12-09 10:42:41 -05:00
Julian Lam
43dc3e3e48 fix: #9041, remove Topics.thumbs.resizeAndUpload() 2020-12-09 10:42:41 -05:00
Julian Lam
708b1c338f fix: #9040 2020-12-09 10:42:41 -05:00
Julian Lam
1949d20a87 fix: spec 2020-12-09 10:42:41 -05:00
Julian Lam
1257aa981e feat: expose uploaded thumbnails to client-side via API
+ plugin hook: filter:topics.getThumbs
2020-12-09 10:42:41 -05:00
Julian Lam
7e9e08f718 feat: server-side routes for handling multiple topic thumbnails
closes #8994, requires 'topic-thumb-refactor' branch of composer-default
2020-12-09 10:42:41 -05:00
Julian Lam
98cd9e3549 feat: allow uploadThumb controller to be called in code
it, and uploadsController.upload() now return the results of their operation
2020-12-09 10:42:41 -05:00
Julian Lam
4fc9da81a9 refactor: topic thumbs lib to topics.thumbs 2020-12-09 10:42:41 -05:00
Barış Soner Uşaklı
0f480be658 fix: #9085, dont prevent admins from deleting other users 2020-12-09 10:15:30 -05:00
Barış Soner Uşaklı
ff2aa17bbc fix: show errors when user delete fails 2020-12-09 10:07:40 -05:00
Barış Soner Uşaklı
dd9ed23631 fix: dont start logout timer if adminReloginDuration is disabled 2020-12-09 09:56:09 -05:00
Misty (Bot)
8c125cab6c Latest translations and fallbacks 2020-12-09 09:09:16 +00:00
psychobunny
6d186be067 feat(deps): update lavender to allow category sections 2020-12-08 16:11:06 -05:00
Julian Lam
efa4eca0fe fix: #9045, no post usage info if '/files/' path received 2020-12-08 08:58:19 -05:00
Misty (Bot)
68251fffe7 Latest translations and fallbacks 2020-12-08 09:09:01 +00:00
Renovate Bot
024d1fef23 fix(deps): update dependency autoprefixer to v10.1.0 2020-12-08 08:41:45 +00:00
renovate[bot]
25f697b1f3 fix(deps): update dependency nodebb-theme-persona to v10.3.8 (#9084)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-07 22:06:29 -05:00
Barış Soner Uşaklı
60e7de0d13 feat: move upgrade script and make it shorter 2020-12-07 21:25:19 -05:00
Julian Lam
6037f5ee2c chore: add comment for clarification 2020-12-07 15:44:34 -05:00
Barış Soner Uşaklı
13d5a1440b fix: reconnectin no longer fires on socket.io 3 2020-12-07 14:31:20 -05:00
Barış Soner Uşaklı
1f32d38778 fix: default values, clamp postsPerPage/topicsPerPage to max 2020-12-07 12:51:11 -05:00
Barış Soner Uşaklı
9da0ed400e fix: #9081, load raw settings before merging 2020-12-07 12:01:44 -05:00
Renovate Bot
62463430a9 fix(deps): update socket.io packages to v3.0.4 2020-12-07 12:31:58 +00:00
Renovate Bot
48a31763eb chore(deps): update dependency husky to v4.3.5 2020-12-07 10:43:12 +00:00
Misty (Bot)
d95200ce60 Latest translations and fallbacks 2020-12-07 09:09:05 +00:00
Renovate Bot
c22cdb515d fix(deps): update dependency nodebb-theme-persona to v10.3.7 2020-12-07 05:39:03 +00:00
Barış Soner Uşaklı
74274b60ed feat: allow clicks on navigator, clean dupe code 2020-12-06 23:14:33 -05:00
renovate[bot]
5937fbafa3 fix(deps): update dependency nodebb-theme-persona to v10.3.6 (#9077)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-06 19:23:40 -05:00
Barış Soner Uşaklı
ed70e7028e Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-12-06 19:11:03 -05:00
Barış Soner Uşaklı
bb6cc49c16 perf: dont build identical langs 2020-12-06 19:10:56 -05:00
renovate[bot]
a535350f2d fix(deps): update dependency nodebb-plugin-mentions to v2.13.6 (#9071)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-06 14:00:50 -05:00
renovate[bot]
19c438c608 fix(deps): update dependency nodebb-theme-slick to v1.3.6 (#9072)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-06 14:00:39 -05:00
Barış Soner Uşaklı
86f0f82be7 fix: #9068 2020-12-06 13:53:52 -05:00
Barış Soner Uşaklı
10cfdd4c5d fix: remove old utils.slugify tests 2020-12-06 13:28:14 -05:00
Barış Soner Uşaklı
4a0d883359 breaking: #8808, remove utils.slugify 2020-12-06 13:18:09 -05:00
Barış Soner Uşaklı
1c45fa1ba5 feat: socket.io 3 changes (#8845)
* feat: socket.io 3 changes

* feat: replace socketio-wildcard with socket.onAny

up socket.io-redis to 6.x

* feat: remove mongodb/psql socket.io adapters

* feat: show data on fail

* fix: tests

* fix: typo

* fix: logger test fix

* fix: logger.io_close

* chore: up deps

* chore: update readme to reflect redis requirement

* fix: increase timeout show data if test fails
2020-12-06 13:03:33 -05:00
renovate[bot]
d7f5efd960 fix(deps): update dependency nodebb-widget-essentials to v5 (#9070)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-06 12:50:13 -05:00
Barış Soner Uşaklı
d2888d1d1f Category tags (#8938)
* feat: wip category tags

* fix: tag search

* feat: remove debug

* fix: returns of searchTags and autocomplete

* fix: alpha sort

* fix: redis

* fix: delete zsets on category purge, fix another test

* fix: test
2020-12-06 12:36:40 -05:00
Barış Soner Uşaklı
792e9e703e fix: dont strip tags 2020-12-06 12:22:39 -05:00
Barış Soner Uşaklı
91c20ceca5 fix: #9065, settings v2/v3 conflict 2020-12-05 14:45:58 -05:00
Julian Lam
970ccb5a68 fix: #9063, missing handler for passwordless accounts in admin.checkPrivileges middleware 2020-12-05 09:50:49 -05:00
Renovate Bot
cf5c482d1f chore(deps): update dependency husky to v4.3.4 2020-12-05 13:40:46 +00:00
Renovate Bot
f4c4d671ca chore(deps): update dependency eslint to v7.15.0 2020-12-05 10:17:25 +00:00
Misty (Bot)
ba57876c96 Latest translations and fallbacks 2020-12-05 09:06:11 +00:00
Renovate Bot
8fb814ba08 fix(deps): update dependency nodebb-plugin-markdown to v8.12.4 2020-12-05 03:39:56 +00:00
Barış Soner Uşaklı
2345b70bda Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-12-04 21:01:43 -05:00
Barış Soner Uşaklı
a389a31b4a fix: timeago in navigation 2020-12-04 21:01:36 -05:00
renovate[bot]
0d08228015 fix(deps): update dependency nodebb-theme-persona to v10.3.5 (#9060)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-04 20:42:30 -05:00
renovate[bot]
84e4e480d0 fix(deps): update dependency nodebb-theme-persona to v10.3.4 (#9059)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-04 20:26:02 -05:00
Barış Soner Uşaklı
163d1a39ce fix: navigation fixes 2020-12-04 20:17:36 -05:00
Renovate Bot
3d7e2e1e8e fix(deps): update dependency nodebb-theme-persona to v10.3.3 2020-12-04 21:00:01 +00:00
Renovate Bot
3e6f7359a7 chore(deps): update dependency lint-staged to v10.5.3 2020-12-04 19:45:10 +00:00
renovate[bot]
f49ce4adb6 fix(deps): update dependency nodebb-theme-persona to v10.3.2 (#9056)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-04 14:22:47 -05:00
Barış Soner Uşaklı
73d2f51d7a fix: cache some jquery objects 2020-12-04 14:18:40 -05:00
renovate[bot]
344caf5c2e fix(deps): update dependency nodebb-theme-persona to v10.3.1 (#9054)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-04 13:05:27 -05:00
renovate[bot]
e7d72d8a79 fix(deps): update dependency nodebb-theme-lavender to v5.0.15 (#9053)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-04 13:04:24 -05:00
Barış Soner Uşaklı
63d0839550 fix: add ev.cancelable 2020-12-04 12:59:08 -05:00
renovate[bot]
dcd6fbafb2 fix(deps): update dependency nodebb-theme-persona to v10.3.0 (#9052)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-04 12:12:39 -05:00
Barış Soner Uşaklı
790f4e4521 fix: #9046, pretranslate string 2020-12-04 12:01:46 -05:00
Barış Soner Uşaklı
6669496dba Navigator (#9049)
* feat: navigator changes

* fix: remove extra code

* feat: add lang keys
2020-12-04 11:56:10 -05:00
Barış Soner Uşaklı
648f6215ef fix: redirect external with absolute urls 2020-12-03 17:20:03 -05:00
Barış Soner Uşaklı
184028ab78 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-12-03 14:56:58 -05:00
Barış Soner Uşaklı
458bfc0faf fix: external path for subfolder installs 2020-12-03 14:52:27 -05:00
Misty (Bot)
57cd1343f4 chore: incrementing version number - v1.15.5
(cherry picked from commit 8245015cee)
Signed-off-by: Misty (Bot) <deploy@nodebb.org>
2020-12-03 19:27:46 +00:00
Misty (Bot)
b02993266c chore: update changelog for v1.15.5 2020-12-03 19:27:45 +00:00
Barış Soner Uşaklı
64ac483ddd fix: #9032 2020-12-03 13:51:22 -05:00
Barış Soner Uşaklı
fcb10ebdbb feat: add socket connect/disconnect action hooks 2020-12-03 10:44:12 -05:00
Barış Soner Uşaklı
5d00b0895b fix: sso redirect on /login & /api/login 2020-12-03 10:29:18 -05:00
renovate[bot]
c7f2640a18 fix(deps): update dependency nodebb-plugin-spam-be-gone to v0.7.7 (#9039)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-03 09:37:41 -05:00
Julian Lam
3ea66f84e1 fix: use file lib instead of directly accessing fs (for Assert.path) 2020-12-03 07:41:14 -05:00
Barış Soner Uşaklı
698718f87c feat: allow modifiying browser title on ajaxify 2020-12-02 20:46:57 -05:00
psychobunny
c111bde126 chore: up persona 2020-12-02 19:55:20 -05:00
Barış Soner Uşaklı
ef6c3b0029 fix: check uid as well 2020-12-02 19:04:07 -05:00
Barış Soner Uşaklı
7e867cf95e fix: #7597, fix progress bar of cover/profile uploads
send big cover images in chunks
2020-12-02 18:38:01 -05:00
Misty (Bot)
a1b658d945 chore: incrementing version number - v1.15.4
(cherry picked from commit e0f77d1791)
Signed-off-by: Misty (Bot) <deploy@nodebb.org>
2020-12-02 22:15:27 +00:00
Misty (Bot)
252dddfc10 chore: update changelog for v1.15.4 2020-12-02 22:15:27 +00:00
Barış Soner Uşaklı
73746bb489 refactor: remove old hack 2020-12-02 14:14:56 -05:00
Barış Soner Uşaklı
6f68f4d20a fix: #9032, fix login redirect for sso plugins 2020-12-02 12:42:21 -05:00
Misty (Bot)
b771a5733b Latest translations and fallbacks 2020-12-02 09:09:11 +00:00
renovate[bot]
1870794068 fix(deps): update dependency nodebb-theme-vanilla to v11.3.8 (#9031)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-02 00:06:24 -05:00
renovate[bot]
4085f3e6bb fix(deps): update dependency nodebb-theme-slick to v1.3.5 (#9030)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-02 00:03:23 -05:00
renovate[bot]
f7d60c43d0 fix(deps): update dependency nodebb-theme-persona to v10.2.98 (#9029)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-02 00:02:13 -05:00
Barış Soner Uşaklı
86b7f8a5d4 fix: #8962, dont show null for purged targets 2020-12-01 23:53:29 -05:00
Barış Soner Uşaklı
3488daa1e8 fix: selector on hooks page 2020-12-01 21:01:46 -05:00
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
2020-12-01 20:24:22 -05:00
Renovate Bot
42b23a3b39 fix(deps): update dependency nodebb-theme-persona to v10.2.97 2020-12-01 22:51:42 +00:00
Barış Soner Uşaklı
954dc5b7be feat: #8983, update pin tooltip in topic 2020-12-01 16:25:13 -05:00
psychobunny
69864b8746 fix(openapi): spec for c1a7968d23 2020-12-01 16:07:42 -05:00
psychobunny
53abada5f0 Revert "feat: option to allow auto-joining of groups (optionally skip the "request membership" step)"
This reverts commit 685f3c6aa6.
2020-12-01 16:06:14 -05:00
psychobunny
1c1a0e0e0d Revert "chore: up persona"
This reverts commit dde3171c22.
2020-12-01 16:06:10 -05:00
psychobunny
af9e676291 Revert "fix(openapi): spec for 685f3c6aa6173383d6c31b87ed51cf8ed0ca44ce"
This reverts commit 1bb75e762e.
2020-12-01 16:06:03 -05:00
psychobunny
1bb75e762e fix(openapi): spec for 685f3c6aa6 2020-12-01 14:53:16 -05:00
psychobunny
dde3171c22 chore: up persona 2020-12-01 14:42:15 -05:00
psychobunny
685f3c6aa6 feat: option to allow auto-joining of groups (optionally skip the "request membership" step) 2020-12-01 14:41:11 -05:00
renovate[bot]
43bbfb6780 fix(deps): update dependency nodebb-plugin-composer-default to v6.4.10 (#9025)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-01 14:32:22 -05:00
psychobunny
c1a7968d23 feat: user notification settings for group.leave event 2020-12-01 14:11:56 -05:00
renovate[bot]
3f597a5539 fix(deps): update dependency nodebb-theme-vanilla to v11.3.7 (#9024)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-01 14:10:40 -05:00
renovate[bot]
110186b92c fix(deps): update dependency nodebb-plugin-composer-default to v6.4.9 (#9023)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-01 14:06:42 -05:00
renovate[bot]
8dc1437edb fix(deps): update dependency nodebb-theme-slick to v1.3.4 (#9022)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-01 14:05:36 -05:00
psychobunny
f7558c6052 fix: notification on group.leave incorrectly showing "Guest has left X group" 2020-12-01 13:58:15 -05:00
renovate[bot]
2c9cd2864c fix(deps): update dependency nodebb-theme-persona to v10.2.96 (#9021)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-01 13:52:54 -05:00
Barış Soner Uşaklı
b46d2f93e6 fix: #9019, add missing lang strings 2020-12-01 12:38:23 -05:00
Barış Soner Uşaklı
e45b5cba81 fix: #9018 2020-12-01 12:31:28 -05:00
renovate[bot]
1f5f2e1d96 fix(deps): update dependency nodebb-plugin-composer-default to v6.4.8 (#9017)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-01 10:32:06 -05:00
Barış Soner Uşaklı
0cba269165 feat: add defaults for composer help 2020-12-01 10:25:36 -05:00
Barış Soner Uşaklı
0f1fc10f6c fix: #9015, add default value for dailyDigestFreq 2020-12-01 10:00:05 -05:00
Misty (Bot)
4093ccf813 Latest translations and fallbacks 2020-12-01 09:09:48 +00:00
Barış Soner Uşaklı
cfb7b113e9 fix: spec 2020-11-30 22:54:27 -05:00
Barış Soner Uşaklı
f7c738deda fix: #8997, don't send notifications if uids already in group 2020-11-30 22:51:33 -05:00
Barış Soner Uşaklı
1eb5fabdb1 feat: #8900, postQueue setting for category 2020-11-30 22:36:30 -05:00
Barış Soner Uşaklı
14bb0a4469 feat: #8960, update view count after merge 2020-11-30 18:09:30 -05:00
psychobunny
4317cdea34 fix: #9002 ban templates not user friendly 2020-11-30 16:07:23 -05:00
Barış Soner Uşaklı
202dcef42e fix: #9010, show rest of info even if clusterMonitor priv is not granted 2020-11-30 15:23:37 -05:00
Barış Soner Uşaklı
d46740f860 fix: #9007 revoke old sessions after adding 2020-11-30 15:05:26 -05:00
psychobunny
54dc449fb9 fix(acp): #9008 undefined link for "no users browsing" state on dashboard 2020-11-30 14:07:28 -05:00
psychobunny
286243cd37 fix(acp): #9009 no-users-browsing untranslated on dashboard 2020-11-30 14:02:07 -05:00
Renovate Bot
9004319e0d fix(deps): update dependency nodebb-plugin-markdown to v8.12.3 2020-11-30 17:42:00 +00:00
Barış Soner Uşaklı
700736535c fix: guests dont always have sid 2020-11-30 11:51:52 -05:00
Barış Soner Uşaklı
a4fe4d3cf5 fix: allow guests to see their replies immediately 2020-11-30 11:08:00 -05:00
Renovate Bot
7b39cf4bb7 fix(deps): update dependency validator to v13.5.1 2020-11-30 15:31:50 +00:00
Misty (Bot)
cfef2092de Latest translations and fallbacks 2020-11-30 09:08:58 +00:00
Barış Soner Uşaklı
92d1b8a65f fix: privs headers 2020-11-30 01:12:34 -05:00
renovate[bot]
4ddab38095 fix(deps): update dependency nodebb-theme-persona to v10.2.95 (#9001)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-29 23:36:01 -05:00
renovate[bot]
877d85549d fix(deps): update dependency nodebb-theme-persona to v10.2.94 (#9000)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-29 23:28:21 -05:00
Barış Soner Uşaklı
557f0f5631 feat: use correct code 2020-11-29 22:41:19 -05:00
Barış Soner Uşaklı
82bddcd882 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-11-29 22:34:23 -05:00
Barış Soner Uşaklı
f25000cb60 fix: pwd reset test 2020-11-29 22:30:40 -05:00
renovate[bot]
c44d9d2f69 fix(deps): update dependency nodebb-theme-persona to v10.2.93 (#8999)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-29 22:27:23 -05:00
Barış Soner Uşaklı
4c650aeead feat: #8989, convert widget nav to dropdown 2020-11-29 22:23:50 -05:00
Barış Soner Uşaklı
5080f35752 fix: #8991, logout on password reset, dont verify email if password expired
dont allow same password on reset
2020-11-29 21:55:07 -05:00
Barış Soner Uşaklı
8adbf54ae6 fix: don't show topic search if no search privilege 2020-11-29 15:50:34 -05:00
Barış Soner Uşaklı
3cd0c9a476 fix: #8998, allow guests to use write api to post/reply 2020-11-29 15:43:40 -05:00
Barış Soner Uşaklı
5a137a0dd6 fix: guest handles to user displayname as well 2020-11-29 15:38:02 -05:00
Misty (Bot)
f6765ec74d Latest translations and fallbacks 2020-11-29 09:06:02 +00:00
renovate[bot]
346b91eb16 fix(deps): update dependency nodebb-theme-persona to v10.2.92 (#8995)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-28 22:08:34 -05:00
Barış Soner Uşaklı
546f58bf1f fix: timestamp in queue, add post queue strings 2020-11-28 22:03:08 -05:00
Barış Soner Uşaklı
7f5efc3e93 fix: #8992, set email:confirmed for first admin user 2020-11-28 14:43:28 -05:00
Barış Soner Uşaklı
6f21832db7 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-11-28 09:21:42 -05:00
Barış Soner Uşaklı
80f0750bd4 fix: typo in upgrade script, closes #8990 2020-11-28 09:21:33 -05:00
Misty (Bot)
eb5a5b6ac2 Latest translations and fallbacks 2020-11-28 09:06:46 +00:00
renovate[bot]
6c980db1e8 fix(deps): update dependency nodebb-theme-vanilla to v11.3.6 (#8987)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-27 17:13:10 -05:00
renovate[bot]
8258536a0b fix(deps): update dependency nodebb-theme-persona to v10.2.91 (#8986)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-27 17:13:00 -05:00
renovate[bot]
fad2d34266 fix(deps): update dependency autoprefixer to v10.0.4 (#8985)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-27 17:07:54 -05:00
Barış Soner Uşaklı
1269103fbb fix: #8984, post-queue ux 2020-11-27 16:56:18 -05:00
Barış Soner Uşaklı
a369c94c5e Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-11-27 16:37:41 -05:00
Barış Soner Uşaklı
9ab4fb412b fix: order 2020-11-27 16:37:33 -05:00
Barış Soner Uşaklı
d3c04afb98 fix: #8982, copy color on tag rename, dont copy if target exists
refresh page on tag rename
2020-11-27 16:36:23 -05:00
Julian Lam
b596e94826 fix: tests 2020-11-27 16:26:32 -05:00
Barış Soner Uşaklı
77a6dbacc4 fix: api test 2020-11-27 16:15:01 -05:00
Barış Soner Uşaklı
cbbda45102 fix: remove dupe 2020-11-27 16:10:30 -05:00
Barış Soner Uşaklı
3de692cd52 fix: csv test 2020-11-27 16:07:52 -05:00
Barış Soner Uşaklı
700ef1af97 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-11-27 16:04:59 -05:00
Barış Soner Uşaklı
4afdf8bc27 fix: spec, remove old tests 2020-11-27 16:04:44 -05:00
Julian Lam
acb576662e fix(spec): from 6e6a7a8f8a 2020-11-27 15:51:56 -05:00
Julian Lam
88a60473d9 fix(spec): breaking tests 2020-11-27 15:45:16 -05:00
Barış Soner Uşaklı
6e6a7a8f8a fix: #8969, export csv to file 2020-11-27 15:38:22 -05:00
Julian Lam
007a3258a0 feat: add handler for 501 api response 2020-11-27 15:13:33 -05:00
Julian Lam
1b1205a9ce fix(spec): broken test due to canFlag addition 2020-11-27 13:36:30 -05:00
Renovate Bot
f5714452b1 fix(deps): update dependency nodebb-plugin-markdown to v8.12.2 2020-11-27 12:54:33 -05:00
Barış Soner Uşaklı
88e5cda5b4 fix: spec for /tag 2020-11-27 12:46:12 -05:00
Barış Soner Uşaklı
f4d217d829 fix: #8980, fix lang string 2020-11-27 12:38:43 -05:00
Barış Soner Uşaklı
bf171adc83 fix: #8979 2020-11-27 12:26:45 -05:00
Julian Lam
82ca376012 chore: fallbacks for nodebb.error 2020-11-27 11:58:05 -05:00
Julian Lam
1e7cf1cbc4 fix: #8971, disallow flags of privileged users (mods, gmods, admins) 2020-11-27 11:54:32 -05:00
Barış Soner Uşaklı
dadb2527da fix: #8974, with password login for approval queue 2020-11-27 11:34:14 -05:00
Barış Soner Uşaklı
c77361c8d7 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-11-27 11:17:47 -05:00
Barış Soner Uşaklı
fdca8b16ca fix: #8974, dont show wrong message on register queue
configs don't support booleans
2020-11-27 11:17:28 -05:00
Julian Lam
5b269bc5aa chore: fallbacks for nodebb.topic 2020-11-27 11:05:14 -05:00
Renovate Bot
5664807d18 fix(deps): update dependency nodebb-theme-persona to v10.2.90 2020-11-27 11:02:50 -05:00
Renovate Bot
19fe249334 fix(deps): update dependency nodebb-theme-vanilla to v11.3.5 2020-11-27 11:02:41 -05:00
Renovate Bot
ad60bc0641 fix(deps): update dependency nodebb-theme-persona to v10.2.89 2020-11-27 10:59:54 -05:00
Julian Lam
12b3aa0d8f feat: add translation key for pin icon label with expiry 2020-11-27 10:55:03 -05:00
Barış Soner Uşaklı
cd072c0b74 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-11-27 10:46:48 -05:00
Barış Soner Uşaklı
5c3deb4b0e fix: #8973, fix timestamp on ban modal 2020-11-27 10:46:25 -05:00
Julian Lam
ad8e770037 feat: add pinExpiry and pinExpiryISO to topic data 2020-11-27 10:38:40 -05:00
Julian Lam
22715d5413 refactor: add TopicObjectSlim common schema 2020-11-27 10:38:40 -05:00
Barış Soner Uşaklı
c8554b78b9 fix: #8968, don't show topic search if search is not enabled 2020-11-27 10:30:33 -05:00
Misty (Bot)
664614bbe3 Latest translations and fallbacks 2020-11-27 09:09:22 +00:00
Barış Soner Uşaklı
4c7374ea33 fix: flicker on tooltips if server call takes long time 2020-11-26 21:37:17 -05:00
Renovate Bot
b2f0d38f5c fix(deps): update dependency autoprefixer to v10.0.3 2020-11-27 00:22:22 +00:00
gasoved
a56a657759 fix: missing select/clear all checkbox added to category privileges template (#8967) 2020-11-26 17:25:26 -05:00
Peter Jaszkowiak
ba3981e270 fix: use package.name for theme.id (#8965)
Prevents cases like #8953
2020-11-26 16:59:23 -05:00
Julian Lam
e1432caf92 feat: add cancel button to pin expiration modal 2020-11-26 15:57:31 -05:00
Julian Lam
15c6f32c93 refactor: pin/lock threadTools to use topicCommand, rewrote topicCommand to match categoryCommand signature 2020-11-26 15:57:31 -05:00
Renovate Bot
6c316be477 fix(deps): update dependency benchpressjs to v2.3.0 2020-11-26 20:40:25 +00:00
Barış Soner Uşaklı
07fe959ce5 chore: remove test code 2020-11-26 13:56:53 -05:00
Barış Soner Uşaklı
b8cafefce2 fix: winston usages 2020-11-26 13:56:34 -05:00
Barış Soner Uşaklı
414caac01b fix: #8957 2020-11-26 12:45:02 -05:00
Barış Soner Uşaklı
7e6427bca7 fix: dont go back after delete account actions 2020-11-26 12:26:03 -05:00
Barış Soner Uşaklı
5ceda14874 Revert "fix: #8955, popstate to purged topic should go to homepage"
This reverts commit 39dae0aaff.
2020-11-26 12:23:41 -05:00
Barış Soner Uşaklı
47a19d6763 fix: error message 2020-11-26 12:22:24 -05:00
Barış Soner Uşaklı
5bb5ec4618 fix: #8954, clear purged replies and toPids (#8959)
* fix: #8954, clear purged replies and toPids

* fix: redis test
2020-11-26 12:04:01 -05:00
Julian Lam
39dae0aaff fix: #8955, popstate to purged topic should go to homepage 2020-11-26 11:25:09 -05:00
Julian Lam
21d6225ce0 fix: 'already-deleting' error on subsequent account content deletions 2020-11-26 11:05:45 -05:00
Misty (Bot)
97c037f0a1 Latest translations and fallbacks 2020-11-26 09:07:31 +00:00
Barış Soner Uşaklı
93863bb3c6 fix: #8949, faster upgrade script 2020-11-26 00:01:59 -05:00
Misty (Bot)
d1ae08fa4a chore: incrementing version number - v1.15.3
(cherry picked from commit c0d406ae68)
Signed-off-by: Misty (Bot) <deploy@nodebb.org>
2020-11-26 01:11:08 +00:00
Misty (Bot)
cf157c9bfd chore: update changelog for v1.15.3 2020-11-26 01:11:08 +00:00
Misty (Bot)
7de8b732c0 Latest translations and fallbacks 2020-11-26 01:03:05 +00:00
Barış Soner Uşaklı
720170a9f6 chore: bump persona 2020-11-25 19:57:03 -05:00
renovate[bot]
167ab3a4bc fix(deps): update dependency nodebb-theme-persona to v10.2.87 (#8946)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-25 19:34:41 -05:00
renovate[bot]
5af5cb8517 fix(deps): update dependency nodebb-theme-persona to v10.2.86 (#8945)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-25 18:11:40 -05:00
Barış Soner Uşaklı
6771ca150a fix: add topic uid to infinitescroll 2020-11-25 18:07:40 -05:00
Barış Soner Uşaklı
c037779fa1 feat: add topicOwnerPost #8778 2020-11-25 17:58:44 -05:00
Barış Soner Uşaklı
6a819944d5 chore: remove console.log 2020-11-25 16:54:09 -05:00
Julian Lam
d584516947 fix: #8943, session mismatch modal thrown on login (race condition) 2020-11-25 15:45:03 -05:00
Julian Lam
ac734b8335 fix: #8912 2020-11-25 15:31:49 -05:00
Barış Soner Uşaklı
4f37eddc5e feat: clear reset tokens on user delete 2020-11-25 14:55:25 -05:00
Barış Soner Uşaklı
e32cd31ec6 fix: #8918 2020-11-25 14:33:19 -05:00
Barış Soner Uşaklı
3af4d13fa5 fix: basepath for r.js modules 2020-11-25 12:46:09 -05:00
Barış Soner Uşaklı
db1c140ff9 refactor: remove unused require 2020-11-25 12:32:37 -05:00
gasoved
00e75de736 feat: select/clear all checkboxes in privilege table (#8941) 2020-11-25 12:24:32 -05:00
Barış Soner Uşaklı
61c6a762ad fix: test 2020-11-25 10:49:14 -05:00
Misty (Bot)
0dcc5b2bbf Latest translations and fallbacks 2020-11-25 09:08:39 +00:00
psychobunny
1c0e8c1663 fix: move meta.getServerTime call to admin namespace 2020-11-24 16:30:16 -05:00
Julian Lam
45a4f1361f chore(spec): replace ugly hack with another hack for optional properties 2020-11-24 14:45:47 -05:00
Barış Soner Uşaklı
f20c12ee40 fix: add client side check for userslug #8939 2020-11-24 14:37:54 -05:00
Julian Lam
90434a4668 Revert "fix(spec): always show thumb in topic response"
This reverts commit 493c568a75.
2020-11-24 14:26:47 -05:00
Julian Lam
493c568a75 fix(spec): always show thumb in topic response 2020-11-24 14:19:40 -05:00
Barış Soner Uşaklı
0ca40af834 fix: #8939, fix username change notification getting filtered out 2020-11-24 14:05:32 -05:00
Julian Lam
ae402e213e chore: move topic route schema up two levels as slug and index are optional 2020-11-24 13:48:02 -05:00
Julian Lam
b3b501d789 chore: move category route schema up two levels as slug and index are optional 2020-11-24 13:42:11 -05:00
Julian Lam
906d7d734b refactor: move API banned response handler to separate internal method 2020-11-24 13:28:05 -05:00
Julian Lam
afb26bfe48 feat: show ban reason and expiry in write api responses, if user is banned 2020-11-24 10:26:14 -05:00
Misty (Bot)
aa7a6991ff Latest translations and fallbacks 2020-11-24 09:07:46 +00:00
Renovate Bot
5815260650 fix(deps): update dependency nconf to ^0.11.0 2020-11-24 08:03:51 +00:00
Renovate Bot
db205e2eae chore(deps): update dependency lint-staged to v10.5.2 2020-11-24 06:53:23 +00:00
Renovate Bot
5363ebbb1d fix(deps): update dependency postcss to v8.1.10 2020-11-23 23:50:30 +00:00
Barış Soner Uşaklı
cf903e4e8f fix: #8931, fix lang string 2020-11-23 17:14:57 -05:00
Barış Soner Uşaklı
c62f29f0a1 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-11-23 17:12:42 -05:00
Barış Soner Uşaklı
95a3f03009 fix: #8932, fix client side error when updating username 2020-11-23 17:11:20 -05:00
Julian Lam
eab4ca7104 fix: bug with Topics.resizeAndUploadThumb not checking for extension validity 2020-11-23 17:03:06 -05:00
Barış Soner Uşaklı
2b73a14e42 fix: #8933 2020-11-23 17:01:36 -05:00
Julian Lam
6e5ec3f895 feat: automatically unban users in onSuccessfulLogin
This allows write API (and probably SSO login) to go through unimpeded if a user's ban has expired. Closes nodebb/nodebb-plugin-write-api#126
2020-11-23 16:06:06 -05:00
Barış Soner Uşaklı
77f0bff54f fix: #8929, fix popular, top rss feed urls 2020-11-23 14:36:02 -05:00
Barış Soner Uşaklı
8f4060819f Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-11-23 14:21:14 -05:00
Julian Lam
5dd3b03125 fix: a derp 2020-11-23 14:18:49 -05:00
Barış Soner Uşaklı
b18e7e319b fix: spec 2020-11-23 14:18:47 -05:00
Julian Lam
4ca62dc45b fix: improper handling of scheme-relative URLs in topic thumb logic 2020-11-23 14:16:04 -05:00
renovate[bot]
abc32d6270 fix(deps): update dependency nodebb-theme-persona to v10.2.85 (#8928)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-23 14:07:57 -05:00
Barış Soner Uşaklı
3f337b5d7c feat: #8925, #8924 2020-11-23 13:58:44 -05:00
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
f33a9185ff fix: on OP edit, call helper method to upload and resize thumb 2020-11-23 12:19:26 -05:00
Barış Soner Uşaklı
9ee1fb490e fix: https://github.com/NodeBB/NodeBB/pull/8759 2020-11-23 11:18:42 -05:00
Misty (Bot)
093f984b03 Latest translations and fallbacks 2020-11-23 09:07:59 +00:00
Misty (Bot)
e4d9934155 Latest translations and fallbacks 2020-11-22 09:06:25 +00:00
Barış Soner Uşaklı
c2bb61231e fix: spec 2020-11-21 23:39:52 -05:00
Barış Soner Uşaklı
672d4da078 feat: human readable uptime 2020-11-21 23:34:12 -05:00
Renovate Bot
d1cb5d4813 fix(deps): update dependency postcss to v8.1.9 2020-11-21 20:59:01 +00:00
Misty (Bot)
bc871dc029 Latest translations and fallbacks 2020-11-21 09:06:11 +00:00
Renovate Bot
80404216f6 chore(deps): update dependency eslint to v7.14.0 2020-11-21 01:13:29 +00:00
Barış Soner Uşaklı
0ffc091b6d chore: up persona 2020-11-20 17:43:58 -05:00
Barış Soner Uşaklı
2f2f0ab7ac chore: up persona 2020-11-20 17:28:12 -05:00
Barış Soner Uşaklı
5c9ff18e3c chore: up persona 2020-11-20 17:12:54 -05:00
Julian Lam
6e2da9966e refactor: move plugin hook methods to plugin.hooks.* 2020-11-20 16:32:39 -05:00
Julian Lam
3b1c03ed50 feat: allow ACP API access to bearer tokens
closes nodebb/nodebb-plugin-write-api#132
2020-11-20 15:26:16 -05:00
Julian Lam
98a05e4dde chore: add missing plugin hook deprecation warning 2020-11-20 15:22:49 -05:00
Barış Soner Uşaklı
ef3df47a6d refactor: remove breaking change in pin expiry 2020-11-20 14:05:02 -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
Misty (Bot)
e5d94d9096 Latest translations and fallbacks 2020-11-20 09:11:36 +00:00
Barış Soner Uşaklı
1be08b2e8b fix: guest displayname 2020-11-19 22:08:03 -05:00
Barış Soner Uşaklı
46eb77011d chore: pin autoprefixer to latest 2020-11-19 20:35:00 -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ı
814771bdc7 fix: restart on js changes in vendor 2020-11-19 20:34:12 -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
Renovate Bot
b47a470b9b fix(deps): update dependency postcss to v8.1.8 2020-11-19 17:45:57 +00: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
Misty (Bot)
28fa03bd7e chore: incrementing version number - v1.15.3-beta.0 2020-11-19 16:00:49 +00:00
Barış Soner Uşaklı
81984285bb chore: up persona 2020-11-19 10:36:47 -05:00
Barış Soner Uşaklı
8fb9117430 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-11-19 10:35:35 -05:00
Barış Soner Uşaklı
5f2fe883ca chore: up slick 2020-11-19 10:31:28 -05:00
renovate[bot]
589f7a567c fix(deps): update dependency nodebb-theme-vanilla to v11.3.4 (#8914)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-19 10:27:29 -05:00
renovate[bot]
38127b04b5 fix(deps): update dependency nodebb-theme-persona to v10.2.80 (#8913)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-19 10:27:16 -05:00
Barış Soner Uşaklı
dbd814c25f fix: spec, only call modifyUser on unique user objects 2020-11-19 10:23:19 -05:00
Barış Soner Uşaklı
903e9d82b8 feat: #8637 2020-11-19 09:52:16 -05:00
Tudor-Dan Ravoiu
39279a1e54 Run grunt with debugger enabled (#8911)
* Run grunt with debugger enabled

When forking a node.js thread we are also having the possibility to pass some node.js arguments, such as "--inspect=0.0.0.0". By providing this, we are adding the capability of doing live debugging even when the system is started with grunt.

* removed whitespace

* Update Gruntfile.js
2020-11-19 09:48:13 -05:00
Misty (Bot)
f7f119d5cc Latest translations and fallbacks 2020-11-19 09:09:21 +00:00
Barış Soner Uşaklı
ae5d4405c0 fix: setting 2020-11-19 01:14:13 -05:00
renovate[bot]
8e1b2458c2 fix(deps): update dependency nodebb-theme-persona to v10.2.79 (#8907)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-19 01:04:40 -05:00
Barış Soner Uşaklı
9ca44e6f54 feat: add displayname into user obj #8637 (#8909)
* feat: add displayname into user obj #8637

* fix: spec

* perf: dont load settings if acp setting is turned off
2020-11-19 00:52:19 -05:00
Barış Soner Uşaklı
8d060065a0 fix: spec 2020-11-18 23:24:51 -05:00
Barış Soner Uşaklı
e9585b9be2 fix: group userTitles translation escapes 2020-11-18 23:07:38 -05:00
Barış Soner Uşaklı
965671a97b fix: remove params from error log 2020-11-18 21:50:47 -05:00
Renovate Bot
b98561792a fix(deps): update dependency nodebb-theme-persona to v10.2.75 2020-11-18 21:20:43 +00:00
Misty (Bot)
5867a5b99f chore: incrementing version number - v1.15.2
(cherry picked from commit ce5c0ee6e7)
Signed-off-by: Misty (Bot) <deploy@nodebb.org>
2020-11-18 19:42:38 +00:00
Misty (Bot)
37965d4528 chore: update changelog for v1.15.2 2020-11-18 19:42:38 +00:00
Barış Soner Uşaklı
fa4177c3bc fix: #6407, fix feeds
display latest posts instead of oldest in topic rss feed
fix missing await that was causing rss_tokens to not function
fix feed test
more tests for getTopicWithPosts
2020-11-18 14:25:39 -05:00
Misty (Bot)
8de48c3935 Latest translations and fallbacks 2020-11-18 09:15:10 +00:00
Barış Soner Uşaklı
4e9b10ab76 feat: #5274 2020-11-17 22:42:08 -05:00
Barış Soner Uşaklı
fb567a7a33 feat: #4456 2020-11-17 22:11:39 -05:00
renovate[bot]
5f6137f0e6 fix(deps): update dependency nodebb-theme-persona to v10.2.74 (#8905)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-17 21:31:12 -05:00
Barış Soner Uşaklı
a6afcfd531 feat: #8475, allow flagging self posts
dont count flags towards self posts
dont allow flagging your own account
2020-11-17 21:28:32 -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
renovate[bot]
c2019b7b3a fix(deps): update dependency nodebb-theme-persona to v10.2.73 (#8904)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-17 20:57:03 -05:00
renovate[bot]
b7b1f2035b fix(deps): update dependency nodebb-plugin-composer-default to v6.4.7 (#8902)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-17 19:34:11 -05:00
renovate[bot]
bee8cfe4e0 fix(deps): update dependency nodebb-theme-persona to v10.2.72 (#8903)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-17 19:34:00 -05:00
Barış Soner Uşaklı
a87ccccc9c fix: benchpress warnings 2020-11-17 18:46:25 -05:00
Barış Soner Uşaklı
dfdc0c420c fix: benchpress warnings 2020-11-17 18:27:52 -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
Renovate Bot
422aa7f0b6 fix(deps): update dependency nodebb-theme-vanilla to v11.3.3 2020-11-17 21:49:58 +00:00
Renovate Bot
3b6e71d5eb fix(deps): update dependency nodebb-theme-persona to v10.2.71 2020-11-17 20:30:43 +00:00
Barış Soner Uşaklı
9e154f1c9d Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-11-17 14:47:48 -05:00
Barış Soner Uşaklı
120999bf63 feat: #7550, show message if post is queued when js is disabled 2020-11-17 14:47:06 -05:00
Renovate Bot
d6dd1cb6f6 fix(deps): update dependency nodebb-theme-persona to v10.2.70 2020-11-17 19:45:17 +00:00
Barış Soner Uşaklı
35f932cd64 feat: #8171, add oldCategory if topic is moved 2020-11-17 13:56:04 -05:00
Barış Soner Uşaklı
b44ddecdf8 feat: #8204, separate notification type for group chats 2020-11-17 12:52:02 -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
Misty (Bot)
fbdde03217 Latest translations and fallbacks 2020-11-17 09:08:29 +00:00
Renovate Bot
2ce1fcd336 fix(deps): update dependency nodebb-theme-slick to v1.3.2 2020-11-17 06:33:19 +00:00
Renovate Bot
9f2d0d42be fix(deps): update dependency nodebb-theme-vanilla to v11.3.2 2020-11-17 05:54:49 +00:00
Renovate Bot
1581064362 fix(deps): update dependency nodebb-theme-persona to v10.2.69 2020-11-17 04:33:09 +00:00
Barış Soner Uşaklı
7928036a1b feat: add test for custom translations 2020-11-16 21:50:06 -05:00
Barış Soner Uşaklı
1d6bcbebde feat: https://github.com/NodeBB/NodeBB/issues/8147 2020-11-16 21:31:55 -05:00
Renovate Bot
84d545775e fix(deps): update dependency sharp to v0.26.3 2020-11-17 00:46:13 +00:00
Julian Lam
e1d7c4d8aa fix: internal helper method hasGlobalPrivilege, DRY 2020-11-16 15:42:39 -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
Renovate Bot
dde9f1890f fix(deps): update dependency nodebb-plugin-mentions to v2.13.5 2020-11-16 19:32:46 +00:00
Peter Jaszkowiak
d30ea25629 feat(deps): benchpressjs@2.2.1 (#8887)
Better warnings, faster template compiles
2020-11-16 11:55:24 -05:00
Renovate Bot
b63b7ae5d7 fix(deps): update dependency json2csv to v5.0.5 2020-11-16 16:16:35 +00:00
Misty (Bot)
20c05e80e4 chore: incrementing version number - v1.15.2-beta.1 2020-11-16 15:21:11 +00:00
Julian Lam
0a0b4661be chore: remove debug log 2020-11-16 10:19:23 -05:00
Tudor-Dan Ravoiu
452d7f2b17 Create verified/unverified user groups (#8889)
Co-authored-by: Tudor-Dan Ravoiu <tudor-dan.ravoiu@ubisoft.com>
2020-11-16 10:10:28 -05:00
Misty (Bot)
996174a187 chore: incrementing version number - v1.15.2-beta.0 2020-11-16 14:49:07 +00:00
Renovate Bot
d1e804aa61 fix(deps): update dependency benchpressjs to v2.2.2 2020-11-16 11:42:47 +00:00
Misty (Bot)
ce9cf2a545 Latest translations and fallbacks 2020-11-16 09:11:10 +00:00
Barış Soner Uşaklı
2f4653a3cc fix: spec 2020-11-15 16:50:24 -05:00
Barış Soner Uşaklı
e4d2764d4c fix: #8884, remove header/footer cache 2020-11-15 16:43:06 -05:00
Barış Soner Uşaklı
9dac9630df fix: check tid in event handlers client side 2020-11-15 10:36:30 -05:00
Misty (Bot)
03329408b7 Latest translations and fallbacks 2020-11-15 09:06:46 +00:00
Barış Soner Uşaklı
5598130a92 refactor: async/await controllers/index.js 2020-11-14 20:18:47 -05:00
Barış Soner Uşaklı
f14e42d8bc fix: #8883 2020-11-14 19:56:01 -05:00
Barış Soner Uşaklı
29c2ca94f4 feat: add nodejs version to issue template 2020-11-14 13:14:34 -05:00
Misty (Bot)
7693ab90e2 Latest translations and fallbacks 2020-11-14 09:05:55 +00:00
renovate[bot]
85aaededae fix(deps): update dependency nodebb-theme-vanilla to v11.3.1 (#8878)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Barış Soner Uşaklı <baris@nodebb.org>
2020-11-13 16:31:17 -05:00
Renovate Bot
bbfb276a83 fix(deps): update dependency nodebb-theme-slick to v1.3.1 2020-11-13 21:22:43 +00:00
Renovate Bot
ec70329aed fix(deps): update dependency nodebb-theme-persona to v10.2.68 2020-11-13 20:30:36 +00:00
Barış Soner Uşaklı
8fbe832460 refactor: less dupe code 2020-11-13 14:42:44 -05:00
Julian Lam
fdab76f822 fix: #8872 missing admin/menu language key+fallback 2020-11-13 14:32:35 -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
renovate[bot]
45922faebc fix(deps): update dependency nodebb-plugin-spam-be-gone to v0.7.6 (#8877)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-13 14:02:18 -05:00
renovate[bot]
48e8252099 fix(deps): update dependency nodebb-plugin-spam-be-gone to v0.7.5 (#8876)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-13 13:13:24 -05:00
renovate[bot]
eab27f237f fix(deps): update dependency nodebb-plugin-spam-be-gone to v0.7.4 (#8874)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-13 11:34:14 -05:00
Renovate Bot
5f5f0edb81 chore(deps): update dependency smtp-server to v3.8.0 2020-11-13 14:00:25 +00:00
Misty (Bot)
daf2e73c29 Latest translations and fallbacks 2020-11-13 09:08:52 +00:00
Barış Soner Uşaklı
51b7eca119 fix: run every hour, dont show message if average_time is 0 2020-11-12 22:23:50 -05:00
Opliko
04f4429f72 Resolve #7514 - optional timer for registration queue (#8796)
* feat: #7514 Optional timer for registration queue

* feat: show minutes in average time

* fix: don't show total number of minutes

* feat: implement requested changes

* fix: just store minutes instead of milliseconds

* feat: set default values
2020-11-12 22:23:07 -05:00
Julian Lam
b3e00489c8 fix: add back test timeout for exports 2020-11-12 15:57:36 -05:00
Julian Lam
bcccb331db docs: openapi schema for user/group exist check, session deletion 2020-11-12 15:53:15 -05:00
Julian Lam
97842c43d3 test: new api test to ensure each path's parameters are defined in context 2020-11-12 15:52:33 -05:00
Julian Lam
319cfeaa1c test: updated test name to be more specific 2020-11-12 14:32:49 -05:00
Julian Lam
dc9668e417 fix: pass length to messaging checkContent hook 2020-11-11 19:53:59 -05:00
Misty (Bot)
a2468b84b4 chore: incrementing version number - v1.15.1
(cherry picked from commit 2790a3a3fe)
Signed-off-by: Misty (Bot) <deploy@nodebb.org>
2020-11-11 22:51:06 +00:00
Misty (Bot)
efb7d688f0 chore: update changelog for v1.15.1 2020-11-11 22:51:06 +00:00
Barış Soner Uşaklı
dc6e27730a Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-11-11 12:48:32 -05:00
Barış Soner Uşaklı
567c5f2056 fix: #8869, dont escape category title,description twice 2020-11-11 12:48:22 -05:00
Renovate Bot
1460a7a84d fix(deps): update dependency nodebb-plugin-mentions to v2.13.4 2020-11-11 15:52:59 +00:00
Julian Lam
769aba0aed fix: refresh flags list on bulk action success 2020-11-11 10:15:49 -05:00
Renovate Bot
72d1b3cdca fix(deps): update dependency diff to v5 2020-11-10 14:43:20 -05:00
Julian Lam
ee4d90f68f fix: test breakage from f300c933a5 2020-11-10 14:39:57 -05:00
Julian Lam
f300c933a5 refactor: move session revocation route to write api 2020-11-10 14:27:38 -05:00
renovate[bot]
e250c3f1fb fix(deps): update dependency nodebb-theme-persona to v10.2.67 (#8847)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-10 13:18:52 -05:00
renovate[bot]
ba7b23ac48 fix(deps): update dependency json2csv to v5.0.4 (#8865)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-10 13:15:10 -05:00
renovate[bot]
2946bb1679 fix(deps): update dependency postcss to v8.1.7 (#8866)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-10 13:14:25 -05:00
Barış Soner Uşaklı
9c5c32d4a5 feat: #8864, add action:events.log 2020-11-10 11:29:15 -05:00
renovate[bot]
20f4fe085f fix(deps): update dependency nodebb-theme-slick to v1.2.40 (#8863)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-10 11:10:11 -05:00
renovate[bot]
c18f449190 fix(deps): update dependency nodebb-plugin-mentions to v2.13.3 (#8862)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-10 10:50:21 -05:00
Misty (Bot)
e033da8a04 chore: incrementing version number - v1.15.1-beta.0 2020-11-10 14:16:12 +00:00
Barış Soner Uşaklı
62c0454cfe feat: show db info side by side 2020-11-09 13:27:40 -05:00
Misty (Bot)
0b57ec19ce Latest translations and fallbacks 2020-11-09 09:08:52 +00: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
Barış Soner Uşaklı
a0164b1c38 fix: use header/footer cache in prod 2020-11-08 19:46:36 -05:00
Barış Soner Uşaklı
05a92885f2 fix: add missing maxAge to cache 2020-11-08 08:35:40 -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
Renovate Bot
14ba638345 fix(deps): update dependency benchpressjs to v2.1.0 2020-11-08 10:11:34 +00:00
Misty (Bot)
e6b9e8ddee Latest translations and fallbacks 2020-11-08 09:05:59 +00:00
Renovate Bot
381a32abe6 fix(deps): update dependency benchpressjs to v2.0.9 2020-11-08 05:30:12 +00:00
Barış Soner Uşaklı
3f5f38dd89 fix: clear header-cache after each suite 2020-11-07 22:57:03 -05:00
Barış Soner Uşaklı
255cf43ea9 fix: show msg on fail 2020-11-07 22:40:34 -05:00
Barış Soner Uşaklı
fe63c6aef3 fix: spec 2020-11-07 22:21:04 -05:00
Barış Soner Uşaklı
2e44639210 fix: guest header/footer cache
allow clearing individual caches
2020-11-07 22:06:25 -05:00
Tobias Dossinger
1ce983ccb9 add public/language/de/admin/menu.json & public/language/de/admin/settings/api.json (#8842)
Co-authored-by: Tobias Dossinger <tobiasdossinger@Jans-MBP-3.localdomain>
Co-authored-by: Julian Lam <julian@nodebb.org>
2020-11-07 17:25:08 -05:00
Julian Lam
8368c25b1d chore: fallback l10n for admin-settings-api 2020-11-07 17:05:03 -05:00
Julian Lam
d32e4e0213 feat: add language keys for admin-settings-api 2020-11-07 17:05:03 -05:00
Misty (Bot)
e81e88f3e9 Latest translations and fallbacks 2020-11-07 09:06:12 +00: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
Renovate Bot
bcbc085497 chore(deps): update dependency eslint to v7.13.0 2020-11-07 03:40:16 +00:00
Renovate Bot
d227fe9fb6 chore(deps): update dependency eslint-config-airbnb-base to v14.2.1 2020-11-07 00:19:18 +00:00
Barış Soner Uşaklı
6255874e32 feat: move mkdirp to beforeBuild so it doesnt get called twice 2020-11-06 13:44:29 -05:00
Barış Soner Uşaklı
74951f5967 fix: #8846, possible fix 2020-11-06 12:46:27 -05:00
Barış Soner Uşaklı
0b30efba31 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-11-06 12:30:15 -05:00
Barış Soner Uşaklı
16d03975a0 fix: winston error message 2020-11-06 12:24:50 -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
Julian Lam
6b196a207f fix: permanent redirect on user api redirect shorthand 2020-11-06 11:54:46 -05:00
Julian Lam
f2bb42c076 fix: user exist route needs no authentication 2020-11-06 11:53:56 -05:00
Julian Lam
60e1e99b4f feat: new shorthand route /api/v3/users/bySlug/:userslug
closes #8844
2020-11-06 11:37:21 -05:00
renovate[bot]
7e273e7710 fix(deps): update dependency mongodb to v3.6.3 (#8841)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-06 10:25:49 -05:00
Renovate Bot
90bcfa6d16 chore(deps): update commitlint monorepo to v11 2020-11-06 09:21:48 -05:00
Julian Lam
512f6de6de feat: allow passwords with length > 73 characters (#8818)
* feat: allow passwords longer than 73 characters

Context: A bcrypt/blowfish limitation means that password length is capped at 72 characters. We can get around this without compromising on security
by hashing all incoming passwords with SHA512, and then sending that to bcrypt.

https://dropbox.tech/security/how-dropbox-securely-stores-your-passwords

* feat: add additional test for passwords > 73 chars

* fix: remove 'password-too-long' error message and all invocations

* test: added test to show that a super long password won't bring down NodeBB

* fix: remove debug log

* Revert "fix: remove 'password-too-long' error message and all invocations"

This reverts commit 1e312bf7ef.

* fix: added back password length checks, but at 512 chars

As processing a large string still uses a lot of memory
2020-11-06 08:40:00 -05:00
Misty (Bot)
113d3324fb Latest translations and fallbacks 2020-11-06 09:08:06 +00:00
Barış Soner Uşaklı
c61dee4b62 fix: #8840, don't crash if /compose route is called with no query params 2020-11-05 21:01:19 -05:00
Barış Soner Uşaklı
9e3eb5d41a feat: #8821, allow guest topic views 2020-11-05 20:52:43 -05:00
Julian Lam
f68bce86a9 fix: XSS in event:banned messaging modal 2020-11-05 19:18:17 -05:00
renovate[bot]
00f90cd98c fix(deps): update dependency nodebb-theme-persona to v10.2.66 (#8839)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-05 16:50:41 -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
Barış Soner Uşaklı
76cd5b0fc1 fix: #8836, truncate fullname 2020-11-05 16:25:55 -05:00
renovate[bot]
064c99cd9f fix(deps): update dependency nodebb-plugin-mentions to v2.13.2 (#8835)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-05 14:35:40 -05:00
Renovate Bot
e0cf9740d1 fix(deps): update dependency postcss to v8.1.6 2020-11-05 19:25:03 +00:00
Peter Jaszkowiak
de5a21f19b fix(#8828): web install templates now compiled (#8832) 2020-11-05 12:05:31 -05:00
renovate[bot]
40eb658bc1 fix(deps): update dependency @nodebb/socket.io-adapter-mongo to v3.1.1 (#8831)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-05 11:58:40 -05:00
psychobunny
eec630f1ef fix(acp): max-height for plugin menu list 2020-11-05 11:44:23 -05:00
renovate[bot]
7b8a5567c7 fix(deps): update dependency @nodebb/mubsub to v1.7.1 (#8830)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-11-05 11:40:54 -05:00
Renovate Bot
9f5ef9d0cb fix(deps): update dependency postcss to v8.1.5 2020-11-05 16:31:13 +00:00
Julian Lam
891a1ea2af fix: #8827, do not require admin:users privilege to ban users 2020-11-05 10:22:07 -05:00
Julian Lam
540a32cfdd chore: changing log to remove pre-release changelogs from changelog
... changelog
2020-11-04 15:56:45 -05:00
Misty (Bot)
a30aa5629c chore: incrementing version number - v1.15.0
(cherry picked from commit 71cdbbce0d1118c9631e77d1adeb5af519a2c3fa)
Signed-off-by: Misty (Bot) <deploy@nodebb.org>
2020-11-04 20:50:38 +00:00
Misty (Bot)
155f74e45e chore: update changelog for v1.15.0 2020-11-04 20:50:38 +00:00
Julian Lam
1afd215050 feat: add back error handling for a number of api calls 2020-11-04 14:11:54 -05:00
Renovate Bot
b44c7e9658 fix(deps): update dependency nodebb-plugin-composer-default to v6.4.6 2020-11-04 13:48:24 -05:00
Renovate Bot
f06d4878c0 fix(deps): update dependency nodebb-plugin-spam-be-gone to v0.7.3 2020-11-04 18:34:00 +00:00
Barış Soner Uşaklı
4b63f9937c fix: check is banned in buildHeader
remove unused banReason
remove generateHeader function
2020-11-04 13:23:10 -05:00
Misty (Bot)
69f4d5ac7d chore: update changelog for v1.15.0-rc.5 2020-11-04 16:22:37 +00:00
Misty (Bot)
4bd2788ba3 chore: incrementing version number - v1.15.0-rc.5 2020-11-04 16:22:37 +00:00
Barış Soner Uşaklı
a338f52780 feat: #8823, remove hardcoded write concern 2020-11-04 11:10:23 -05:00
Barış Soner Uşaklı
518d4fa170 fix: undefined call 2020-11-04 08:57:19 -05:00
Renovate Bot
0d80190f79 fix(deps): update dependency nodebb-theme-vanilla to v11.3.0 2020-11-04 13:53:29 +00:00
Barış Soner Uşaklı
08ff4041aa fix: missing await 2020-11-03 17:13:05 -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ı
f6623622be Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-11-03 11:17:32 -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
c0f699e655 fix: disallow registration attempts with password length > 4096
This is a stopgap measure for v1.15.0
2020-11-03 09:54:04 -05:00
Renovate Bot
35e725d17c chore(deps): update dependency mocha to v8.2.1 2020-11-03 14:37:17 +00:00
Julian Lam
e66c1f4017 Revert "fix(deps): update dependency textcomplete to ^0.18.0"
This reverts commit 8fe954997c.
2020-11-03 08:35:13 -05:00
Renovate Bot
df5d66e5fe fix(deps): update dependency textcomplete to ^0.18.0 2020-11-03 13:32:15 +00:00
Renovate Bot
2fa78e4384 chore(deps): update dependency lint-staged to v10.5.1 2020-11-03 12:52:18 +00:00
Barış Soner Uşaklı
b6d8687837 chore: add info log into tests 2020-11-02 20:34:12 -05:00
Barış Soner Uşaklı
4818ec377e fix: missing await 2020-11-02 15:13:22 -05:00
Julian Lam
1c8b8ce14a chore: update renovate config to automatically merge non-major version bumps #yolo 2020-11-02 14:45:25 -05:00
Misty (Bot)
1688294165 chore: update changelog for v1.15.0-rc.4 2020-11-02 19:42:54 +00:00
Misty (Bot)
57b4932074 chore: incrementing version number - v1.15.0-rc.4 2020-11-02 19:42:53 +00:00
Peter Jaszkowiak
eddf4a4f33 feat: use github actions for ci (#8811)
- test using minimum supported db versions
- ESLint will make review comments on PRs
- formatted configs
2020-11-02 13:12:29 -05:00
Peter Jaszkowiak
a3fa313298 Github actions lint demo (#8812)
* feat: use github actions for ci

- test using minimum supported db versions
- ESLint will make review comments on PRs
- formatted configs

* mess up eslint

* fix: lint maybe

Co-authored-by: Barış Soner Uşaklı <baris@nodebb.org>
2020-11-02 12:59:16 -05:00
Barış Soner Uşaklı
6e85920cb6 feat: allow mods/admins to see deleted posts on user profile 2020-11-02 12:03:21 -05:00
Misty (Bot)
841cbcc3e3 Latest translations and fallbacks 2020-11-01 09:05:53 +00:00
Julian Lam
87bff6cd65 fix: broken test 2020-10-30 17:17:31 -04:00
Renovate Bot
0c7d58605e fix(deps): update dependency nodebb-theme-persona to v10.2.65 2020-10-30 16:10:45 -04:00
Julian Lam
a53d49a2b0 fix: updated commitlint config to allow longer subjects, because nobody anywhere uses an email client that limits subject lines to 72 characters 2020-10-30 14:12:07 -04:00
Julian Lam
dda5d42610 fix: restore old behaviour of empty json w/ 401 code in admin middleware 2020-10-30 14:07:47 -04:00
Julian Lam
15e0731dd9 fix: deprecate middleware.isAdmin
Also, handle admin logout timer in middleware.admin.checkPrivileges
2020-10-30 12:30:58 -04:00
Julian Lam
4439864ce0 fix: post editing not taking plugin hook results into account 2020-10-30 10:05:26 -04:00
Misty (Bot)
2738041b38 chore: update changelog for v1.15.0-rc.3 2020-10-30 03:46:16 +00:00
Misty (Bot)
6de7760a1d chore: incrementing version number - v1.15.0-rc.3 2020-10-30 03:46:16 +00:00
Barış Soner Uşaklı
a02ae6f5df refactor: simpler check in user.blocks.filter 2020-10-29 22:33:28 -04:00
Barış Soner Uşaklı
27016d221c feat: rearrange buttons on manage/users 2020-10-29 13:39:08 -04:00
Julian Lam
57ed6be78b fix: #8805 define our own name for write API v3 2020-10-29 12:51:36 -04: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
266d7587b2 refactor: remove usage of middlewares
Specifically, middleware.isAdmin|exposePrivilegeSet|exposePrivileges
2020-10-29 07:56:28 -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
a6a52430ce fix: remove setCategorySort and setTopicSort 2020-10-28 17:21:54 -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ı
e0b6781776 chore: bump persona 2020-10-28 16:52:46 -04:00
Barış Soner Uşaklı
9082062e90 fix: sort setting not using correct field name 2020-10-28 16:05:40 -04:00
renovate[bot]
c4431294a5 fix(deps): update dependency jsesc to v3.0.2 (#8802)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-28 12:30:48 -04:00
Julian Lam
2d29e603bd fix: update readme to include psql 2020-10-28 07:51:17 -04:00
Renovate Bot
7d0d0005ff fix(deps): update dependency nodebb-plugin-composer-default to v6.4.5 2020-10-28 07:37:33 -04:00
Misty (Bot)
2baccd3ce2 Latest translations and fallbacks 2020-10-28 09:10:35 +00:00
renovate[bot]
224502d8c3 chore(deps): update dependency eslint to v7.12.1 (#8799)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-28 00:21:01 -04:00
renovate[bot]
1f2eca6a52 chore(deps): update dependency lint-staged to v10.5.0 (#8797)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-28 00:20:46 -04:00
Barış Soner Uşaklı
6ac73ccb7e feat: #8801, disable express compression by default 2020-10-27 21:40:21 -04:00
Julian Lam
cc1c722092 fix: breaking test from 0db0231cff
Also lowered export timeout to 5s
2020-10-27 20:37:23 -04:00
Julian Lam
04185d94c1 fix: indentation 2020-10-27 20:37:23 -04:00
Julian Lam
8e7914ff72 fix: add back derpy 20 second sleep 2020-10-27 20:37:23 -04:00
Julian Lam
14e5c24ec5 fix(openapi): final fixes to schemas 2020-10-27 20:37:23 -04:00
Julian Lam
b2e9e3e048 fix(writeapi): more tweaks to schema files 2020-10-27 20:37:23 -04:00
Julian Lam
9f9e3c1582 fix(writeapi): fix components, + tag object schema 2020-10-27 20:37:23 -04:00
Julian Lam
3ebb3a3479 fix: missing method in test error output 2020-10-27 20:37:23 -04:00
Julian Lam
3c98cd3d95 fix: topic object in post editing data return 2020-10-27 20:37:23 -04:00
Julian Lam
a4f3270fc5 fix(writeapi): missing files for tests 2020-10-27 20:37:23 -04:00
Julian Lam
1392d064a1 fix(writeapi): normalizing data 2020-10-27 20:37:23 -04:00
Julian Lam
b092f65d95 fix(writeapi): tests 2020-10-27 20:37:23 -04:00
Julian Lam
ec03af7a38 feat: allow passing subset of user settings on update route 2020-10-27 20:37:23 -04:00
Julian Lam
618e098305 fix: bug where token generation route would fail on null case 2020-10-27 20:37:23 -04:00
Julian Lam
843aff582d refactor: api test suite to accept methods other than GET 2020-10-27 20:37:23 -04:00
Julian Lam
93f65f89e7 fix(writeapi): added examples to all parameter objects in schema 2020-10-27 20:37:23 -04:00
Julian Lam
b156b8b573 feat: wip, write api tests framework
re-using read api tests if possible
2020-10-27 20:37:23 -04:00
Renovate Bot
b3ca7de016 fix(deps): update dependency nodebb-theme-persona to v10.2.63 2020-10-27 17:27:53 -04:00
Barış Soner Uşaklı
a512d99472 refactor: remove unnecessary wrapper 2020-10-27 14:51:49 -04:00
Barış Soner Uşaklı
f0131e72ae Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-10-27 11:02:16 -04:00
Barış Soner Uşaklı
2e9f27d8ff fix: typo 2020-10-27 10:59:08 -04:00
Misty (Bot)
c3a7ab54dc chore: update changelog for v1.15.0-rc.2 2020-10-27 13:41:06 +00:00
Misty (Bot)
7c084134c7 chore: incrementing version number - v1.15.0-rc.2 2020-10-27 13:41:05 +00:00
Misty (Bot)
5605a0d1b7 Latest translations and fallbacks 2020-10-27 09:08:02 +00:00
renovate[bot]
12c590ad56 fix(deps): update dependency nodebb-theme-persona to v10.2.62 (#8798)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-26 22:00:31 -04:00
Barış Soner Uşaklı
93bdfe2f10 perf: reorder async calls 2020-10-26 21:09:51 -04:00
Barış Soner Uşaklı
88a07e69b5 feat: add filter:category.getFields 2020-10-26 15:14:54 -04:00
renovate[bot]
3108f628b6 chore(deps): update dependency eslint to v7.12.0 (#8791)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-26 12:50:26 -04:00
renovate[bot]
8353857b3b fix(deps): update dependency nodebb-plugin-mentions to v2.13.1 (#8790)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-26 12:49:55 -04:00
Misty (Bot)
4f49b3da8c chore: update changelog for v1.15.0-rc.1 2020-10-26 15:45:21 +00:00
2514 changed files with 47024 additions and 29634 deletions

View File

@@ -17,6 +17,14 @@ checks:
similar-code:
config:
threshold: 65
plugins:
duplication:
enabled: true
config:
languages:
javascript:
mass_threshold: 110
count_threshold: 3
exclude_paths:
- "public/vendor/*"
- "test/*"

191
.eslintrc
View File

@@ -5,136 +5,111 @@
},
"rules": {
// Customized
// === Configure rules for our style ===
// imports must be resolvable
"import/no-unresolved": "error",
// use single quotes,
// unless a different style allows avoiding escapes
"quotes": ["error", "single", {
"avoidEscape": true,
"allowTemplateLiterals": true
}],
// allow else-if return
"no-else-return": [ "error", { "allowElseIf": true } ],
// expressions split over multiple lines
// should break after the operator
"operator-linebreak": [ "error", "after" ],
// require arrow parens only when needed
// and whenever the body is a block
"arrow-parens": ["error", "as-needed", { "requireForBlockBody": true }],
// what variables are errors in callbacks
"handle-callback-err": [ "error","^(e$|(e|(.*(_e|E)))rr)" ],
// allow dangling commas in functions
// require them everywhere else
"comma-dangle": ["error", {
"arrays": "always-multiline",
"objects": "always-multiline",
"imports": "always-multiline",
"exports": "always-multiline",
"functions": "never"
"functions": "only-multiline"
}],
// we actually encourage `return await`
"no-return-await": "off",
"no-constant-condition": "off",
// allow `while (true)`
"no-constant-condition": ["error", { "checkLoops": false }],
// allow ignoring an error with `catch`
"no-empty": ["error", { "allowEmptyCatch": true }],
"no-underscore-dangle": "off",
"no-console": "off",
// allow `3 + 5 - 1`, but not `3 * 5 - 1`
"no-mixed-operators": ["error", { "allowSamePrecedence": true }],
// require `'use strict';`
"strict": ["error", "global"],
"consistent-return": "off",
"func-names": "off",
"no-tabs": "off",
// we actually use tabs for indentation
"indent": ["error", "tab", { "SwitchCase": 1 }],
"no-tabs": "off",
// we want `== null` to also handle undefined
"no-eq-null": "off",
"camelcase": "off",
"no-new": "off",
"no-shadow": "off",
"no-use-before-define": ["error", "nofunc"],
"no-prototype-builtins": "off",
"new-cap": "off",
// allow `for (..; i++)`
"no-plusplus": ["error", { "allowForLoopAfterthoughts": true }],
"object-curly-newline": "off",
"no-restricted-globals": "off",
"function-paren-newline": "off",
"import/no-unresolved": "error",
"quotes": ["error", "single", {
"avoidEscape": true,
"allowTemplateLiterals": true
// allow using functions defined later
"no-use-before-define": ["error", "nofunc"],
// require consistent newlines before and after braces
// if contents are multiline
"object-curly-newline": ["error", { "consistent": true, "multiline": true }],
// require consistent linebreaks inline function parenthesis (arguments or params)
"function-paren-newline": ["error", "consistent"],
// only require const if all parts of destructuring can be const
"prefer-const": ["error", { "destructuring": "all" }],
// don't require destructuring for arrays or assignment
"prefer-destructuring": ["error", {
"VariableDeclarator": { "array": false, "object": true },
"AssignmentExpression": { "array": false, "object": false }
}],
"no-else-return": [ "error", { "allowElseIf": true } ],
"operator-linebreak": [ "error", "after" ],
"arrow-parens": ["error", "as-needed", { "requireForBlockBody": true }],
// identical to airbnb rule, except for allowing for..of, because we want to use it
"no-restricted-syntax": [
"error",
{
"selector": "ForInStatement",
"message": "for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array."
},
{
"selector": "LabeledStatement",
"message": "Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand."
},
{
"selector": "WithStatement",
"message": "`with` is disallowed in strict mode because it makes code impossible to predict and optimize."
}
],
// allow lines of up to 120 characters
"max-len": ["error", { "code": 120, "tabWidth": 2, "ignoreUrls": true, "ignoreStrings": true, "ignoreTemplateLiterals": true, "ignoreRegExpLiterals": true }],
// ES6
"prefer-rest-params": "off",
"prefer-spread": "off",
"prefer-arrow-callback": "off",
"prefer-template": "off",
"no-var": "off",
// === Disable rules ===
// more liberal naming
"camelcase": "off",
"no-underscore-dangle": "off",
// don't require anonymous function names
"func-names": "off",
// allow console
"no-console": "off",
// allow new for side effects
// allow new with non-capitalized
"no-new": "off",
"new-cap": "off",
// allow shadowing variables (usually callbacks)
"no-shadow": "off",
// allow multiple empty lines in a row
"no-multiple-empty-lines": "off",
// allow not using object shorthand
"object-shorthand": "off",
"vars-on-top": "off",
"prefer-destructuring": "off",
// TODO
"consistent-return": "off",
"no-restricted-globals": "off",
"no-prototype-builtins": "off",
"import/no-extraneous-dependencies": "off",
"import/no-dynamic-require": "off",
"import/newline-after-import": "off",
"no-bitwise": "off",
"global-require": "off",
"max-len": "off",
"no-param-reassign": "off",
"no-restricted-syntax": "off",
"no-script-url": "off",
"default-case": "off",
"linebreak-style": "off",
// "no-multi-assign": "off",
// "one-var": "off",
// "no-undef": "off",
// "max-nested-callbacks": "off",
// "no-mixed-requires": "off",
// "brace-style": "off",
// "max-statements-per-line": "off",
// "no-unused-vars": "off",
// "no-mixed-spaces-and-tabs": "off",
// "no-useless-concat": "off",
// "require-jsdoc": "off",
// "eqeqeq": "off",
// "no-negated-condition": "off",
// "one-var-declaration-per-line": "off",
// "no-lonely-if": "off",
// "radix": "off",
// "no-else-return": "off",
// "no-useless-escape": "off",
// "block-scoped-var": "off",
// "operator-assignment": "off",
// "yoda": "off",
// "no-loop-func": "off",
// "no-void": "off",
// "valid-jsdoc": "off",
// "no-cond-assign": "off",
// "no-redeclare": "off",
// "no-unreachable": "off",
// "no-nested-ternary": "off",
// "operator-linebreak": "off",
// "guard-for-in": "off",
// "no-unneeded-ternary": "off",
// "no-sequences": "off",
// "no-extend-native": "off",
// "no-shadow-restricted-names": "off",
// "no-extra-boolean-cast": "off",
// "no-path-concat": "off",
// "no-unused-expressions": "off",
// "no-return-assign": "off",
// "no-restricted-modules": "off",
// "object-curly-spacing": "off",
// "indent": "off",
// "padded-blocks": "off",
// "eol-last": "off",
// "lines-around-directive": "off",
// "strict": "off",
// "comma-dangle": "off",
// "no-multi-spaces": "off",
// "quotes": "off",
// "keyword-spacing": "off",
// "no-mixed-operators": "off",
// "comma-spacing": "off",
// "no-trailing-spaces": "off",
// "key-spacing": "off",
"no-multiple-empty-lines": "off"
// "spaced-comment": "off",
// "space-in-parens": "off",
// "block-spacing": "off",
// "quote-props": "off",
// "space-unary-ops": "off",
// "no-empty": "off",
// "dot-notation": "off",
// "func-call-spacing": "off",
// "array-bracket-spacing": "off",
// "object-property-newline": "off",
// "no-continue": "off",
// "no-extra-semi": "off",
// "no-spaced-func": "off",
// "no-useless-return": "off"
"default-case": "off"
}
}

View File

@@ -9,6 +9,7 @@
- **NodeBB version:**
- **NodeBB git hash:**
- **NodeJS version:**
<!-- (to find your git hash, execute `git rev-parse HEAD` from the main NodeBB directory) -->
- **Installed NodeBB Plugins:**
<!-- (to find installed plugins run ./nodebb plugins) -->
@@ -19,6 +20,9 @@
<!--
1. First I did this...
2. Then, I clicked on this item...
A quick note: MP4 and MOV formatted video files are now allowed to be uploaded to GH.
Please upload if reproduction steps are hard to describe or reproduce reliably.
-->
- **What you expected:**
<!-- e.g. I expected *abc* to *xyz* -->

204
.github/workflows/test.yaml vendored Normal file
View File

@@ -0,0 +1,204 @@
name: Lint and test
on:
push:
branches:
- master
- develop
pull_request:
branches:
- master
- develop
defaults:
run:
shell: bash
jobs:
test:
name: Lint and test
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
node: [12, 14]
database: [mongo-dev, mongo, redis, postgres]
include:
# only run coverage once
- os: ubuntu-latest
node: 14
coverage: true
# test under development once
- database: mongo-dev
test_env: development
# only run eslint once
- os: ubuntu-latest
node: 14
database: mongo-dev
lint: true
runs-on: ${{ matrix.os }}
env:
TEST_ENV: ${{ matrix.test_env || 'production' }}
services:
postgres:
image: 'postgres:10-alpine'
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
# Set health checks to wait until postgres has started
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
# Maps port 5432 on service container to the host
- 5432:5432
redis:
image: 'redis:2.8.9'
# Set health checks to wait until redis has started
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
# Maps port 6379 on service container to the host
- 6379:6379
mongo:
image: 'mongo:3.2'
ports:
# Maps port 27017 on service container to the host
- 27017:27017
steps:
- uses: actions/checkout@v2
- run: cp install/package.json package.json
- name: Install Node
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node }}
- name: NPM Install
uses: bahmutov/npm-install@v1
with:
useLockFile: false
- name: Setup on MongoDB
if: startsWith(matrix.database, 'mongo')
env:
SETUP: >-
{
"url": "http://127.0.0.1:4567",
"secret": "abcdef",
"admin:username": "admin",
"admin:email": "test@example.org",
"admin:password": "hAN3Eg8W",
"admin:password:confirm": "hAN3Eg8W",
"database": "mongo",
"mongo:host": "127.0.0.1",
"mongo:port": 27017,
"mongo:username": "",
"mongo:password": "",
"mongo:database": "nodebb"
}
CI: >-
{
"host": "127.0.0.1",
"port": 27017,
"database": "ci_test"
}
run: |
node app --setup="${SETUP}" --ci="${CI}"
- name: Setup on PostgreSQL
if: startsWith(matrix.database, 'postgres')
env:
SETUP: >-
{
"url": "http://127.0.0.1:4567",
"secret": "abcdef",
"admin:username": "admin",
"admin:email": "test@example.org",
"admin:password": "hAN3Eg8W",
"admin:password:confirm": "hAN3Eg8W",
"database": "postgres",
"postgres:host": "127.0.0.1",
"postgres:port": 5432,
"postgres:username": "postgres",
"postgres:password": "postgres",
"postgres:database": "nodebb"
}
CI: >-
{
"host": "127.0.0.1",
"database": "ci_test",
"port": 5432,
"username": "postgres",
"password": "postgres"
}
run: |
node -e "const { Client } = require('pg'); const c = new Client({ host: '127.0.0.1', port: 5432, user: 'postgres', password: 'postgres' }); c.connect().then(() => c.query('CREATE DATABASE nodebb')).then(() => c.query('CREATE DATABASE ci_test')).then(() => c.end())"
node app --setup="${SETUP}" --ci="${CI}"
- name: Setup on Redis
if: startsWith(matrix.database, 'redis')
env:
SETUP: >-
{
"url": "http://127.0.0.1:4567/forum",
"secret": "abcdef",
"admin:username": "admin",
"admin:email": "test@example.org",
"admin:password": "hAN3Eg8W",
"admin:password:confirm": "hAN3Eg8W",
"database": "redis",
"redis:host": "127.0.0.1",
"redis:port": 6379,
"redis:password": "",
"redis:database": 0
}
CI: >-
{
"host": "127.0.0.1",
"database": 1,
"port": 6379
}
run: |
node app --setup="${SETUP}" --ci="${CI}"
- name: Run ESLint
if: matrix.lint
run: npm run lint
- name: Node tests
run: npm test
- name: Extract coverage info
run: npm run coverage
- name: Test coverage
uses: coverallsapp/github-action@1.1.3
if: matrix.coverage
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
flag-name: ${{ matrix.os }}-node-${{ matrix.node }}-db-${{ matrix.database }}
parallel: true
finish:
needs: test
runs-on: ubuntu-latest
steps:
- name: Coveralls Finished
uses: coverallsapp/github-action@1.1.3
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
parallel-finished: true

1
.gitignore vendored
View File

@@ -40,6 +40,7 @@ pidfile
/public/acp.min.js.map
/public/installer.css
/public/installer.min.js
/public/bootstrap.min.css
/public/logo.png
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio

1
.husky/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
_

4
.husky/commit-msg Executable file
View File

@@ -0,0 +1,4 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npx --no-install commitlint --edit $1

4
.husky/pre-commit Executable file
View File

@@ -0,0 +1,4 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npx --no-install lint-staged

View File

@@ -1,47 +0,0 @@
services:
- mongodb
- redis-server
- postgresql
before_install:
- cp install/package.json package.json
- sudo apt-get update
- sudo apt-get --yes remove postgresql\*
- sudo apt-get install -y postgresql-12 postgresql-client-12
- sudo cp /etc/postgresql/{9.6,12}/main/pg_hba.conf
- sudo service postgresql restart 12
before_script:
- sleep 15 # wait for mongodb to be ready
- "mongo mydb_test --eval 'db.createUser({user:\"travis\", pwd: \"test\", roles: []});'"
- sh -c "if [ '$DB' = 'mongodb' ]; then node app --setup=\"{\\\"url\\\":\\\"http://127.0.0.1:4567\\\",\\\"secret\\\":\\\"abcdef\\\",\\\"database\\\":\\\"mongo\\\",\\\"mongo:host\\\":\\\"127.0.0.1\\\",\\\"mongo:port\\\":27017,\\\"mongo:username\\\":\\\"\\\",\\\"mongo:password\\\":\\\"\\\",\\\"mongo:database\\\":0,\\\"admin:username\\\":\\\"admin\\\",\\\"admin:email\\\":\\\"test@example.org\\\",\\\"admin:password\\\":\\\"hAN3Eg8W\\\",\\\"admin:password:confirm\\\":\\\"hAN3Eg8W\\\"}\" --ci=\"{\\\"host\\\":\\\"127.0.0.1\\\",\\\"port\\\":27017,\\\"database\\\":\\\"travis_ci_test\\\"}\"; fi"
- sh -c "if [ '$DB' = 'redis' ]; then node app --setup=\"{\\\"url\\\":\\\"http://127.0.0.1:4567/forum\\\",\\\"secret\\\":\\\"abcdef\\\",\\\"database\\\":\\\"redis\\\",\\\"redis:host\\\":\\\"127.0.0.1\\\",\\\"redis:port\\\":6379,\\\"redis:password\\\":\\\"\\\",\\\"redis:database\\\":0,\\\"admin:username\\\":\\\"admin\\\",\\\"admin:email\\\":\\\"test@example.org\\\",\\\"admin:password\\\":\\\"hAN3Eg8W\\\",\\\"admin:password:confirm\\\":\\\"hAN3Eg8W\\\"}\" --ci=\"{\\\"host\\\":\\\"127.0.0.1\\\",\\\"port\\\":6379,\\\"database\\\":1}\"; fi"
- sh -c "if [ '$DB' = 'postgres' ]; then psql -c 'create database nodebb;' -U postgres; psql -c 'create database travis_ci_test;' -U postgres; node app --setup=\"{\\\"url\\\":\\\"http://127.0.0.1:4567\\\",\\\"secret\\\":\\\"abcdef\\\",\\\"database\\\":\\\"postgres\\\",\\\"postgres:host\\\":\\\"127.0.0.1\\\",\\\"postgres:port\\\":5433,\\\"postgres:password\\\":\\\"\\\",\\\"postgres:database\\\":\\\"nodebb\\\",\\\"admin:username\\\":\\\"admin\\\",\\\"admin:email\\\":\\\"test@example.org\\\",\\\"admin:password\\\":\\\"hAN3Eg8W\\\",\\\"admin:password:confirm\\\":\\\"hAN3Eg8W\\\"}\" --ci=\"{\\\"host\\\":\\\"127.0.0.1\\\",\\\"port\\\":5433,\\\"username\\\":\\\"postgres\\\",\\\"database\\\":\\\"travis_ci_test\\\"}\"; fi"
after_success:
- "npm run coveralls"
language: node_js
sudo: false
dist: xenial
env:
global:
- PGUSER=postgres
- PGPORT=5433
- CXX=g++-4.8
jobs:
- "DB=mongodb TEST_ENV=production"
- "DB=mongodb TEST_ENV=development"
- "DB=redis TEST_ENV=production"
- "DB=postgres TEST_ENV=production"
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- mongodb-4.0-xenial
packages:
- g++-4.8
- mongodb-org-server
node_js:
- "14"
- "12"
branches:
only:
- master
- develop

View File

@@ -3300,6 +3300,56 @@ trans.zh_CN = public/language/zh-CN/admin/settings/notifications.json
trans.zh_TW = public/language/zh-TW/admin/settings/notifications.json
type = KEYVALUEJSON
[nodebb.admin-settings-api]
file_filter = public/language/<lang>/admin/settings/api.json
source_file = public/language/en-GB/admin/settings/api.json
source_lang = en_GB
trans.ar = public/language/ar/admin/settings/api.json
trans.bg = public/language/bg/admin/settings/api.json
trans.bn = public/language/bn/admin/settings/api.json
trans.cs = public/language/cs/admin/settings/api.json
trans.da = public/language/da/admin/settings/api.json
trans.de = public/language/de/admin/settings/api.json
trans.el = public/language/el/admin/settings/api.json
trans.en@pirate = public/language/en-x-pirate/admin/settings/api.json
trans.en_US = public/language/en-US/admin/settings/api.json
trans.es = public/language/es/admin/settings/api.json
trans.et = public/language/et/admin/settings/api.json
trans.fa_IR = public/language/fa-IR/admin/settings/api.json
trans.fi = public/language/fi/admin/settings/api.json
trans.fr = public/language/fr/admin/settings/api.json
trans.gl = public/language/gl/admin/settings/api.json
trans.he = public/language/he/admin/settings/api.json
trans.hr = public/language/hr/admin/settings/api.json
trans.hu = public/language/hu/admin/settings/api.json
trans.id = public/language/id/admin/settings/api.json
trans.it = public/language/it/admin/settings/api.json
trans.ja = public/language/ja/admin/settings/api.json
trans.ko = public/language/ko/admin/settings/api.json
trans.lt = public/language/lt/admin/settings/api.json
trans.lv = public/language/lv/admin/settings/api.json
trans.ms = public/language/ms/admin/settings/api.json
trans.nb = public/language/nb/admin/settings/api.json
trans.nl = public/language/nl/admin/settings/api.json
trans.pl = public/language/pl/admin/settings/api.json
trans.pt_BR = public/language/pt-BR/admin/settings/api.json
trans.pt_PT = public/language/pt-PT/admin/settings/api.json
trans.ro = public/language/ro/admin/settings/api.json
trans.ru = public/language/ru/admin/settings/api.json
trans.rw = public/language/rw/admin/settings/api.json
trans.sc = public/language/sc/admin/settings/api.json
trans.sk = public/language/sk/admin/settings/api.json
trans.sl = public/language/sl/admin/settings/api.json
trans.sr = public/language/sr/admin/settings/api.json
trans.sv = public/language/sv/admin/settings/api.json
trans.th = public/language/th/admin/settings/api.json
trans.tr = public/language/tr/admin/settings/api.json
trans.uk = public/language/uk/admin/settings/api.json
trans.vi = public/language/vi/admin/settings/api.json
trans.zh_CN = public/language/zh-CN/admin/settings/api.json
trans.zh_TW = public/language/zh-TW/admin/settings/api.json
type = KEYVALUEJSON
[nodebb.admin-settings-post]
file_filter = public/language/<lang>/admin/settings/post.json
source_file = public/language/en-GB/admin/settings/post.json

File diff suppressed because it is too large Load Diff

View File

@@ -2,24 +2,27 @@
const path = require('path');
const nconf = require('nconf');
nconf.argv().env({
separator: '__',
});
const winston = require('winston');
const fork = require('child_process').fork;
const env = process.env;
var worker;
const { fork } = require('child_process');
const { env } = process;
let worker;
env.NODE_ENV = env.NODE_ENV || 'development';
const configFile = path.resolve(__dirname, nconf.any(['config', 'CONFIG']) || 'config.json');
const prestart = require('./src/prestart');
prestart.loadConfig(configFile);
var db = require('./src/database');
const db = require('./src/database');
module.exports = function (grunt) {
var args = [];
const args = [];
if (!grunt.option('verbose')) {
args.push('--log-level=info');
@@ -36,7 +39,7 @@ module.exports = function (grunt) {
grunt.registerTask('default', ['watch']);
grunt.registerTask('init', async function () {
var done = this.async();
const done = this.async();
let plugins = [];
if (!process.argv.includes('--core')) {
await db.init();
@@ -50,22 +53,22 @@ module.exports = function (grunt) {
}
}
const styleUpdated_Client = plugins.map(p => 'node_modules/' + p + '/*.less')
.concat(plugins.map(p => 'node_modules/' + p + '/*.css'))
.concat(plugins.map(p => 'node_modules/' + p + '/+(public|static|less)/**/*.less'))
.concat(plugins.map(p => 'node_modules/' + p + '/+(public|static)/**/*.css'));
const styleUpdated_Client = plugins.map(p => `node_modules/${p}/*.less`)
.concat(plugins.map(p => `node_modules/${p}/*.css`))
.concat(plugins.map(p => `node_modules/${p}/+(public|static|less)/**/*.less`))
.concat(plugins.map(p => `node_modules/${p}/+(public|static)/**/*.css`));
const styleUpdated_Admin = plugins.map(p => 'node_modules/' + p + '/*.less')
.concat(plugins.map(p => 'node_modules/' + p + '/*.css'))
.concat(plugins.map(p => 'node_modules/' + p + '/+(public|static|less)/**/*.less'))
.concat(plugins.map(p => 'node_modules/' + p + '/+(public|static)/**/*.css'));
const styleUpdated_Admin = plugins.map(p => `node_modules/${p}/*.less`)
.concat(plugins.map(p => `node_modules/${p}/*.css`))
.concat(plugins.map(p => `node_modules/${p}/+(public|static|less)/**/*.less`))
.concat(plugins.map(p => `node_modules/${p}/+(public|static)/**/*.css`));
const clientUpdated = plugins.map(p => 'node_modules/' + p + '/+(public|static)/**/*.js');
const serverUpdated = plugins.map(p => 'node_modules/' + p + '/*.js')
.concat(plugins.map(p => 'node_modules/' + p + '/+(lib|src)/**/*.js'));
const clientUpdated = plugins.map(p => `node_modules/${p}/+(public|static)/**/*.js`);
const serverUpdated = plugins.map(p => `node_modules/${p}/*.js`)
.concat(plugins.map(p => `node_modules/${p}/+(lib|src)/**/*.js`));
const templatesUpdated = plugins.map(p => 'node_modules/' + p + '/+(public|static|templates)/**/*.tpl');
const langUpdated = plugins.map(p => 'node_modules/' + p + '/+(public|static|languages)/**/*.json');
const templatesUpdated = plugins.map(p => `node_modules/${p}/+(public|static|templates)/**/*.tpl`);
const langUpdated = plugins.map(p => `node_modules/${p}/+(public|static|languages)/**/*.json`);
grunt.config(['watch'], {
styleUpdated_Client: {
@@ -89,6 +92,7 @@ module.exports = function (grunt) {
clientUpdated: {
files: [
'public/src/**/*.js',
'public/vendor/**/*.js',
...clientUpdated,
'node_modules/benchpressjs/build/benchpress.js',
],
@@ -143,16 +147,25 @@ module.exports = function (grunt) {
if (worker) {
worker.kill();
}
const execArgv = [];
const inspect = process.argv.find(a => a.startsWith('--inspect'));
if (inspect) {
execArgv.push(inspect);
}
worker = fork('app.js', args, {
env: env,
env,
execArgv,
});
}
grunt.task.run('init');
grunt.event.removeAllListeners('watch');
grunt.event.on('watch', function update(action, filepath, target) {
var compiling;
grunt.event.on('watch', (action, filepath, target) => {
let compiling;
if (target === 'styleUpdated_Client') {
compiling = 'clientCSS';
} else if (target === 'styleUpdated_Admin') {
@@ -170,7 +183,7 @@ module.exports = function (grunt) {
return run();
}
require('./src/meta/build').build([compiling], function (err) {
require('./src/meta/build').build([compiling], (err) => {
if (err) {
winston.error(err.stack);
}
@@ -189,7 +202,7 @@ function addBaseThemes(plugins) {
let baseTheme;
do {
try {
baseTheme = require(themeId + '/theme').baseTheme;
baseTheme = require(`${themeId}/theme`).baseTheme;
} catch (err) {
console.log(err);
}

View File

@@ -5,11 +5,12 @@
[![Dependency Status](https://david-dm.org/nodebb/nodebb.svg?path=install)](https://david-dm.org/nodebb/nodebb?path=install)
[![Code Climate](https://codeclimate.com/github/NodeBB/NodeBB/badges/gpa.svg)](https://codeclimate.com/github/NodeBB/NodeBB)
[**NodeBB Forum Software**](https://nodebb.org) is powered by Node.js and built on either a Redis or MongoDB database. It utilizes web sockets for instant interactions and real-time notifications. NodeBB has many modern features out of the box such as social network integration and streaming discussions, while still making sure to be compatible with older browsers.
[**NodeBB Forum Software**](https://nodebb.org) is powered by Node.js and supports either Redis, MongoDB, or a PostgreSQL database. It utilizes web sockets for instant interactions and real-time notifications. NodeBB has many modern features out of the box such as social network integration and streaming discussions, while still making sure to be compatible with older browsers.
Additional functionality is enabled through the use of third-party plugins.
* [Demo & Meta Discussion](http://community.nodebb.org)
* [Demo](https://try.nodebb.org)
* [Developer Community](http://community.nodebb.org)
* [Documentation & Installation Instructions](http://docs.nodebb.org)
* [Help translate NodeBB](https://www.transifex.com/projects/p/nodebb/)
* [NodeBB Blog](http://blog.nodebb.org)
@@ -50,6 +51,7 @@ NodeBB requires the following software to be installed:
* A version of Node.js at least 12 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions))
* MongoDB, version 2.6 or greater **or** Redis, version 2.8.9 or greater
* If you are using [clustering](https://docs.nodebb.org/configuring/scaling/) you need Redis installed and configured.
* nginx, version 1.3.13 or greater (**only if** intending to use nginx to proxy requests to a NodeBB)
## Installation

4
app.js
View File

@@ -22,6 +22,7 @@
require('./require-main');
const nconf = require('nconf');
nconf.argv().env({
separator: '__',
});
@@ -40,6 +41,7 @@ const configFile = path.resolve(__dirname, nconf.any(['config', 'CONFIG']) || 'c
const configExists = file.existsSync(configFile) || (nconf.get('url') && nconf.get('secret') && nconf.get('database'));
const prestart = require('./src/prestart');
prestart.loadConfig(configFile);
prestart.setupWinston();
prestart.versionCheck();
@@ -47,7 +49,7 @@ winston.verbose('* using configuration stored in: %s', configFile);
if (!process.send) {
// If run using `node app`, log GNU copyright info along with server info
winston.info('NodeBB v' + nconf.get('version') + ' Copyright (C) 2013-' + (new Date()).getFullYear() + ' NodeBB Inc.');
winston.info(`NodeBB v${nconf.get('version')} Copyright (C) 2013-${(new Date()).getFullYear()} NodeBB Inc.`);
winston.info('This program comes with ABSOLUTELY NO WARRANTY.');
winston.info('This is free software, and you are welcome to redistribute it under certain conditions.');
winston.info('');

View File

@@ -3,6 +3,7 @@
module.exports = {
extends: ['@commitlint/config-angular'],
rules: {
'header-max-length': [1, 'always', 72],
'type-enum': [
2,
'always',

View File

@@ -4,7 +4,7 @@
"description": "Announcements regarding our community",
"descriptionParsed": "<p>Announcements regarding our community</p>\n",
"bgColor": "#fda34b",
"color": "#fff",
"color": "#ffffff",
"icon" : "fa-bullhorn",
"order": 1
},
@@ -13,7 +13,7 @@
"description": "A place to talk about whatever you want",
"descriptionParsed": "<p>A place to talk about whatever you want</p>\n",
"bgColor": "#59b3d0",
"color": "#fff",
"color": "#ffffff",
"icon" : "fa-comments-o",
"order": 2
},
@@ -22,7 +22,7 @@
"description": "Blog posts from individual members",
"descriptionParsed": "<p>Blog posts from individual members</p>\n",
"bgColor": "#86ba4b",
"color": "#fff",
"color": "#ffffff",
"icon" : "fa-newspaper-o",
"order": 4
},
@@ -31,7 +31,7 @@
"description": "Got a question? Ask away!",
"descriptionParsed": "<p>Got a question? Ask away!</p>\n",
"bgColor": "#e95c5a",
"color": "#fff",
"color": "#ffffff",
"icon" : "fa-question",
"order": 3
}

View File

@@ -19,21 +19,27 @@
"chatEditDuration": 0,
"chatDeleteDuration": 0,
"chatMessageDelay": 200,
"notificationSendDelay": 60,
"newbiePostDelayThreshold": 3,
"postQueue": 0,
"postQueueReputationThreshold": 0,
"groupsExemptFromPostQueue": ["administrators", "Global Moderators"],
"minimumPostLength": 8,
"maximumPostLength": 32767,
"systemTags": "",
"minimumTagsPerTopic": 0,
"maximumTagsPerTopic": 5,
"minimumTagLength": 3,
"maximumTagLength": 15,
"allowTopicsThumbnail": 0,
"undoTimeout": 10000,
"allowTopicsThumbnail": 1,
"registrationType": "normal",
"registrationApprovalType": "normal",
"allowAccountDelete": 1,
"privateUploads": 0,
"allowedFileExtensions": "png,jpg,bmp,txt",
"uploadRateLimitThreshold": 10,
"uploadRateLimitCooldown": 60,
"allowUserHomePage": 1,
"allowMultipleBadges": 0,
"maximumFileSize": 2048,
@@ -43,7 +49,7 @@
"rejectImageWidth": 5000,
"rejectImageHeight": 5000,
"resizeImageQuality": 80,
"topicThumbSize": 120,
"topicThumbSize": 512,
"minimumTitleLength": 3,
"maximumTitleLength": 255,
"minimumUsernameLength": 2,
@@ -86,7 +92,9 @@
"notificationType_post-edit": "notification",
"notificationType_follow": "notification",
"notificationType_new-chat": "notification",
"notificationType_new-group-chat": "notification",
"notificationType_group-invite": "notification",
"notificationType_group-leave": "notification",
"notificationType_group-request-membership": "notification",
"notificationType_mention": "notification",
"notificationType_new-register": "notification",
@@ -98,11 +106,13 @@
"maxPostsPerPage": 20,
"topicsPerPage": 20,
"postsPerPage": 20,
"categoriesPerPage": 50,
"userSearchResultsPerPage": 50,
"maximumGroupNameLength": 255,
"maximumGroupTitleLength": 40,
"preventTopicDeleteAfterReplies": 0,
"feeds:disableSitemap": 0,
"feeds:disableRSS": 0,
"sitemapTopics": 500,
"maintenanceMode": 0,
"maintenanceModeStatus": 503,
@@ -110,16 +120,22 @@
"maximumInvites": 0,
"username:disableEdit": 0,
"email:disableEdit": 0,
"email:smtpTransport:pool": false,
"email:smtpTransport:pool": 0,
"hideFullname": 0,
"hideEmail": 0,
"showFullnameAsDisplayName": 0,
"allowGuestHandles": 0,
"guestsIncrementTopicViews": 1,
"allowGuestReplyNotifications": 1,
"incrementTopicViewsInterval": 60,
"recentMaxTopics": 200,
"disableRecentCategoryFilter": 0,
"maximumRelatedTopics": 0,
"disableEmailSubscriptions": 0,
"emailConfirmInterval": 10,
"removeEmailNotificationImages": 0,
"inviteExpiration": 7,
"dailyDigestFreq": "off",
"digestHour": 17,
"passwordExpiryDays": 0,
"hsts-maxage": 31536000,
@@ -134,5 +150,13 @@
"necroThreshold": 7,
"categoryWatchState": "watching",
"submitPluginUsage": 1,
"maxUserSessions": 10
"showAverageApprovalTime": 1,
"autoApproveTime": 0,
"maxUserSessions": 10,
"useCompression": 0,
"updateUrlWithPostIndex": 1,
"composer:showHelpTab": 1,
"composer:allowPluginHelp": 1,
"maxReconnectionAttempts": 5,
"reconnectionDelay": 1500
}

View File

@@ -14,7 +14,7 @@ const questions = {
};
module.exports = async function (config) {
winston.info('\nNow configuring ' + config.database + ' database:');
winston.info(`\nNow configuring ${config.database} database:`);
const databaseConfig = await getDatabaseConfig(config);
return saveDatabaseConfig(config, databaseConfig);
};
@@ -40,7 +40,7 @@ async function getDatabaseConfig(config) {
}
return await promptGet(questions.postgres);
}
throw new Error('unknown database : ' + config.database);
throw new Error(`unknown database : ${config.database}`);
}
function saveDatabaseConfig(config, databaseConfig) {
@@ -79,11 +79,11 @@ function saveDatabaseConfig(config, databaseConfig) {
ssl: databaseConfig['postgres:ssl'],
};
} else {
throw new Error('unknown database : ' + config.database);
throw new Error(`unknown database : ${config.database}`);
}
const allQuestions = questions.redis.concat(questions.mongo).concat(questions.postgres);
for (var x = 0; x < allQuestions.length; x += 1) {
for (let x = 0; x < allQuestions.length; x += 1) {
delete config[allQuestions[x].name];
}

View File

@@ -2,7 +2,7 @@
"name": "nodebb",
"license": "GPL-3.0",
"description": "NodeBB Forum",
"version": "1.15.0-rc.1",
"version": "1.17.2",
"homepage": "http://www.nodebb.org",
"repository": {
"type": "git",
@@ -11,9 +11,9 @@
"main": "app.js",
"scripts": {
"start": "node loader.js",
"lint": "npx eslint --cache ./nodebb .",
"pretest": "npm run lint",
"test": "npx nyc --reporter=html --reporter=text-summary npx mocha",
"lint": "eslint --cache ./nodebb .",
"test": "nyc --reporter=html --reporter=text-summary mocha",
"coverage": "nyc report --reporter=text-lcov > ./coverage/lcov.info",
"coveralls": "nyc report --reporter=text-lcov | coveralls && rm -r coverage"
},
"nyc": {
@@ -22,159 +22,148 @@
"test/*"
]
},
"husky": {
"hooks": {
"pre-commit": "npx lint-staged",
"commit-msg": "npx commitlint -E HUSKY_GIT_PARAMS"
}
},
"lint-staged": {
"*.js": [
"eslint --fix",
"git add"
"eslint --fix"
]
},
"dependencies": {
"@adactive/bootstrap-tagsinput": "^0.8.2",
"ace-builds": "^1.4.9",
"archiver": "^5.0.0",
"ace-builds": "^1.4.12",
"archiver": "^5.2.0",
"async": "^3.2.0",
"autoprefixer": "^10.0.0",
"autoprefixer": "10.3.1",
"bcryptjs": "2.4.3",
"benchpressjs": "2.0.8",
"benchpressjs": "2.4.3",
"body-parser": "^1.19.0",
"bootbox": "4.4.0",
"bootbox": "5.5.2",
"bootstrap": "^3.4.1",
"chart.js": "^2.9.3",
"chart.js": "^2.9.4",
"cli-graph": "^3.2.2",
"clipboard": "^2.0.6",
"colors": "^1.4.0",
"commander": "^6.0.0",
"commander": "^7.1.0",
"compare-versions": "3.6.0",
"compression": "^1.7.4",
"connect-ensure-login": "^0.1.1",
"connect-flash": "^0.1.1",
"connect-mongo": "3.2.0",
"connect-mongo": "4.4.1",
"connect-multiparty": "^2.2.0",
"connect-pg-simple": "^6.1.0",
"connect-redis": "5.0.0",
"connect-pg-simple": "^6.2.1",
"connect-redis": "6.0.0",
"cookie-parser": "^1.4.5",
"cron": "^1.8.2",
"cropperjs": "^1.5.6",
"cropperjs": "^1.5.11",
"csurf": "^1.11.0",
"daemon": "^1.1.0",
"diff": "^4.0.2",
"diff": "^5.0.0",
"express": "^4.17.1",
"express-session": "^1.17.0",
"express-useragent": "^1.0.13",
"graceful-fs": "^4.2.3",
"helmet": "^4.0.0",
"html-to-text": "^5.1.1",
"express-session": "^1.17.1",
"express-useragent": "^1.0.15",
"graceful-fs": "^4.2.6",
"helmet": "^4.4.1",
"html-to-text": "7.1.1",
"ipaddr.js": "^2.0.0",
"jquery": "3.5.1",
"jquery": "3.6.0",
"jquery-deserialize": "2.0.0-rc1",
"jquery-form": "4.3.0",
"jquery-serializeobject": "1.0.0",
"jquery-ui": "1.12.1",
"jsesc": "3.0.1",
"json2csv": "5.0.3",
"jsesc": "3.0.2",
"json2csv": "5.0.6",
"jsonwebtoken": "^8.5.1",
"less": "^3.11.1",
"lodash": "^4.17.15",
"logrotate-stream": "^0.2.6",
"lodash": "^4.17.21",
"logrotate-stream": "^0.2.7",
"lru-cache": "6.0.0",
"material-design-lite": "^1.3.0",
"mime": "^2.4.4",
"mime": "^2.5.2",
"mkdirp": "^1.0.4",
"mongodb": "3.6.2",
"mongodb": "3.6.10",
"morgan": "^1.10.0",
"mousetrap": "^1.6.5",
"multiparty": "4.2.2",
"@nodebb/bootswatch": "3.4.2",
"@nodebb/mubsub": "1.7.0",
"@nodebb/socket.io-adapter-mongo": "3.1.0",
"nconf": "^0.10.0",
"nodebb-plugin-composer-default": "6.4.4",
"nodebb-plugin-dbsearch": "4.1.2",
"nodebb-plugin-emoji": "^3.3.0",
"nodebb-plugin-emoji-android": "2.0.0",
"nodebb-plugin-markdown": "8.12.1",
"nodebb-plugin-mentions": "2.13.0",
"nodebb-plugin-soundpack-default": "1.0.0",
"nodebb-plugin-spam-be-gone": "0.7.2",
"nodebb-rewards-essentials": "0.1.4",
"nodebb-theme-lavender": "5.0.14",
"nodebb-theme-persona": "10.2.61",
"nodebb-theme-slick": "1.2.39",
"nodebb-theme-vanilla": "11.2.22",
"nodebb-widget-essentials": "4.1.2",
"nodemailer": "^6.4.6",
"nconf": "^0.11.2",
"nodebb-plugin-composer-default": "6.5.34",
"nodebb-plugin-dbsearch": "5.0.2",
"nodebb-plugin-emoji": "^3.5.0",
"nodebb-plugin-emoji-android": "2.0.5",
"nodebb-plugin-markdown": "8.14.2",
"nodebb-plugin-mentions": "2.13.11",
"nodebb-plugin-spam-be-gone": "0.7.9",
"nodebb-rewards-essentials": "0.1.5",
"nodebb-theme-lavender": "5.2.1",
"nodebb-theme-persona": "11.0.26",
"nodebb-theme-slick": "1.4.7",
"nodebb-theme-vanilla": "12.0.8",
"nodebb-widget-essentials": "5.0.4",
"nodemailer": "^6.5.0",
"nprogress": "0.2.0",
"passport": "^0.4.1",
"passport-http-bearer": "^1.0.1",
"passport-local": "1.0.0",
"pg": "^8.0.2",
"pg-cursor": "^2.1.9",
"postcss": "8.0.6",
"postcss-clean": "1.1.0",
"promise-polyfill": "^8.1.3",
"prompt": "^1.0.0",
"redis": "3.0.2",
"pg": "^8.5.1",
"pg-cursor": "^2.5.2",
"postcss": "8.3.5",
"postcss-clean": "1.2.0",
"prompt": "^1.1.0",
"ioredis": "4.27.6",
"request": "2.88.2",
"request-promise-native": "^1.0.8",
"request-promise-native": "^1.0.9",
"requirejs": "2.3.6",
"rimraf": "3.0.2",
"rss": "^1.2.2",
"sanitize-html": "^2.0.0",
"semver": "^7.2.1",
"sanitize-html": "^2.3.2",
"semver": "^7.3.4",
"serve-favicon": "^2.5.0",
"sharp": "0.26.2",
"sitemap": "^6.1.0",
"sharp": "0.28.3",
"sitemap": "^7.0.0",
"slideout": "1.0.1",
"socket.io": "2.3.0",
"socket.io": "4.1.3",
"socket.io-adapter-cluster": "^1.0.1",
"socket.io-adapter-postgres": "^1.2.1",
"socket.io-client": "2.3.1",
"socket.io-redis": "5.4.0",
"socketio-wildcard": "2.0.0",
"sortablejs": "1.10.2",
"spdx-license-list": "^6.1.0",
"socket.io-client": "4.1.3",
"@socket.io/redis-adapter": "7.0.0",
"sortablejs": "1.14.0",
"spdx-license-list": "^6.4.0",
"spider-detector": "2.0.0",
"textcomplete": "^0.17.1",
"textcomplete": "^0.18.0",
"textcomplete.contenteditable": "^0.1.1",
"timeago": "^1.6.7",
"tinycon": "0.6.8",
"toobusy-js": "^0.5.1",
"uglify-es": "^3.3.9",
"validator": "13.1.17",
"validator": "13.6.0",
"visibilityjs": "2.0.2",
"winston": "3.3.3",
"xml": "^1.0.1",
"xregexp": "^4.3.0",
"xregexp": "^5.0.1",
"yargs": "16.2.0",
"zxcvbn": "^4.4.2"
},
"devDependencies": {
"@apidevtools/swagger-parser": "10.0.2",
"@commitlint/cli": "9.1.2",
"@commitlint/config-angular": "9.1.2",
"coveralls": "3.1.0",
"eslint": "7.11.0",
"eslint-config-airbnb-base": "14.2.0",
"eslint-plugin-import": "2.22.1",
"grunt": "1.3.0",
"@commitlint/cli": "12.1.4",
"@commitlint/config-angular": "12.1.4",
"coveralls": "3.1.1",
"eslint": "7.30.0",
"eslint-config-airbnb-base": "14.2.1",
"eslint-plugin-import": "2.23.4",
"grunt": "1.4.1",
"grunt-contrib-watch": "1.1.0",
"husky": "4.3.0",
"jsdom": "16.4.0",
"lint-staged": "10.4.2",
"mocha": "8.2.0",
"husky": "6.0.0",
"jsdom": "16.6.0",
"lint-staged": "11.0.1",
"mocha": "8.4.0",
"mocha-lcov-reporter": "1.3.0",
"mockdate": "3.0.5",
"nyc": "15.1.0",
"smtp-server": "3.7.0"
"smtp-server": "3.9.0"
},
"bugs": {
"url": "https://github.com/NodeBB/NodeBB/issues"
},
"engines": {
"node": ">=10"
"node": ">=12"
},
"maintainers": [
{
@@ -193,4 +182,4 @@
"url": "https://github.com/barisusakli"
}
]
}
}

View File

@@ -8,6 +8,7 @@ const path = require('path');
const childProcess = require('child_process');
const less = require('less');
const util = require('util');
const lessRenderAsync = util.promisify(
(style, opts, cb) => less.render(String(style), opts, cb)
);
@@ -15,6 +16,7 @@ const uglify = require('uglify-es');
const nconf = require('nconf');
const Benchpress = require('benchpressjs');
const mkdirp = require('mkdirp');
const { paths } = require('../src/constants');
const app = express();
@@ -25,8 +27,8 @@ const formats = [
];
const timestampFormat = winston.format((info) => {
var dateString = new Date().toISOString() + ' [' + global.process.pid + ']';
info.level = dateString + ' - ' + info.level;
const dateString = `${new Date().toISOString()} [${global.process.pid}]`;
info.level = `${dateString} - ${info.level}`;
return info;
});
formats.push(timestampFormat());
@@ -63,24 +65,26 @@ let success = false;
let error = false;
let launchUrl;
const viewsDir = path.join(paths.baseDir, 'build/public/templates');
web.install = async function (port) {
port = port || 4567;
winston.info('Launching web installer on port ' + port);
winston.info(`Launching web installer on port ${port}`);
app.use(express.static('public', {}));
app.engine('tpl', function (filepath, options, callback) {
app.engine('tpl', (filepath, options, callback) => {
filepath = filepath.replace(/\.tpl$/, '.js');
Benchpress.__express(filepath, options, callback);
});
app.set('view engine', 'tpl');
const viewsDir = path.join(paths.baseDir, 'build/public/templates');
app.set('views', viewsDir);
app.use(bodyParser.urlencoded({
extended: true,
}));
try {
await Promise.all([
compileTemplate(),
compileLess(),
compileJS(),
copyCSS(),
@@ -95,7 +99,7 @@ web.install = async function (port) {
function launchExpress(port) {
server = app.listen(port, function () {
server = app.listen(port, () => {
winston.info('Web installer listening on http://%s:%s', '0.0.0.0', port);
});
}
@@ -113,11 +117,9 @@ function ping(req, res) {
}
function welcome(req, res) {
var dbs = ['redis', 'mongo', 'postgres'];
var databases = dbs.map(function (databaseName) {
var questions = require('../src/database/' + databaseName).questions.filter(function (question) {
return question && !question.hideOnWebInstall;
});
const dbs = ['redis', 'mongo', 'postgres'];
const databases = dbs.map((databaseName) => {
const questions = require(`../src/database/${databaseName}`).questions.filter(question => question && !question.hideOnWebInstall);
return {
name: databaseName,
@@ -125,10 +127,10 @@ function welcome(req, res) {
};
});
var defaults = require('./data/defaults');
const defaults = require('./data/defaults.json');
res.render('install/index', {
url: nconf.get('url') || (req.protocol + '://' + req.get('host')),
url: nconf.get('url') || (`${req.protocol}://${req.get('host')}`),
launchUrl: launchUrl,
skipGeneralSetup: !!nconf.get('url'),
databases: databases,
@@ -148,23 +150,23 @@ function install(req, res) {
}
req.setTimeout(0);
installing = true;
var setupEnvVars = nconf.get();
for (var i in req.body) {
if (req.body.hasOwnProperty(i) && !process.env.hasOwnProperty(i)) {
setupEnvVars[i.replace(':', '__')] = req.body[i];
const setupEnvVars = nconf.get();
for (const [key, value] of Object.entries(req.body)) {
if (!process.env.hasOwnProperty(key)) {
setupEnvVars[key.replace(':', '__')] = value;
}
}
// Flatten any objects in setupEnvVars
const pushToRoot = function (parentKey, key) {
setupEnvVars[parentKey + '__' + key] = setupEnvVars[parentKey][key];
setupEnvVars[`${parentKey}__${key}`] = setupEnvVars[parentKey][key];
};
for (var j in setupEnvVars) {
if (setupEnvVars.hasOwnProperty(j) && typeof setupEnvVars[j] === 'object' && setupEnvVars[j] !== null && !Array.isArray(setupEnvVars[j])) {
Object.keys(setupEnvVars[j]).forEach(pushToRoot.bind(null, j));
delete setupEnvVars[j];
} else if (Array.isArray(setupEnvVars[j])) {
setupEnvVars[j] = JSON.stringify(setupEnvVars[j]);
for (const [parentKey, value] of Object.entries(setupEnvVars)) {
if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
Object.keys(value).forEach(key => pushToRoot(parentKey, key));
delete setupEnvVars[parentKey];
} else if (Array.isArray(value)) {
setupEnvVars[parentKey] = JSON.stringify(value);
}
}
@@ -172,11 +174,11 @@ function install(req, res) {
winston.info(setupEnvVars);
launchUrl = setupEnvVars.url;
var child = require('child_process').fork('app', ['--setup'], {
const child = require('child_process').fork('app', ['--setup'], {
env: setupEnvVars,
});
child.on('close', function (data) {
child.on('close', (data) => {
installing = false;
success = data === 0;
error = data !== 0;
@@ -190,7 +192,7 @@ async function launch(req, res) {
res.json({});
server.close();
req.setTimeout(0);
var child;
let child;
if (!nconf.get('launchCmd')) {
child = childProcess.spawn('node', ['loader.js'], {
@@ -228,6 +230,25 @@ async function launch(req, res) {
}
}
// this is necessary because otherwise the compiled templates won't be available on a clean install
async function compileTemplate() {
const sourceFile = path.join(__dirname, '../src/views/install/index.tpl');
const destTpl = path.join(viewsDir, 'install/index.tpl');
const destJs = path.join(viewsDir, 'install/index.js');
const source = await fs.promises.readFile(sourceFile, 'utf8');
const [compiled] = await Promise.all([
Benchpress.precompile(source, { filename: 'install/index.tpl' }),
mkdirp(path.dirname(destJs)),
]);
await Promise.all([
fs.promises.writeFile(destJs, compiled),
fs.promises.writeFile(destTpl, source),
]);
}
async function compileLess() {
try {
const installSrc = path.join(__dirname, '../public/less/install.less');
@@ -235,7 +256,7 @@ async function compileLess() {
const css = await lessRenderAsync(style, { filename: path.resolve(installSrc) });
await fs.promises.writeFile(path.join(__dirname, '../public/installer.css'), css.css);
} catch (err) {
winston.error('Unable to compile LESS: \n' + err.stack);
winston.error(`Unable to compile LESS: \n${err.stack}`);
throw err;
}
}
@@ -267,7 +288,7 @@ async function copyCSS() {
async function loadDefaults() {
const setupDefaultsPath = path.join(__dirname, '../setup.json');
try {
await fs.promises.access(setupDefaultsPath, fs.constants.F_OK | fs.constants.R_OK);
await fs.promises.access(setupDefaultsPath, fs.constants.F_OK + fs.constants.R_OK);
} catch (err) {
// setup.json not found or inaccessible, proceed with no defaults
if (err.code !== 'ENOENT') {

View File

@@ -1,46 +1,45 @@
'use strict';
var nconf = require('nconf');
var fs = require('fs');
var url = require('url');
var path = require('path');
var fork = require('child_process').fork;
var async = require('async');
var logrotate = require('logrotate-stream');
var mkdirp = require('mkdirp');
const nconf = require('nconf');
const fs = require('fs');
const url = require('url');
const path = require('path');
const { fork } = require('child_process');
const async = require('async');
const logrotate = require('logrotate-stream');
const mkdirp = require('mkdirp');
var file = require('./src/file');
var pkg = require('./package.json');
const file = require('./src/file');
const pkg = require('./package.json');
var pathToConfig = path.resolve(__dirname, process.env.CONFIG || 'config.json');
const pathToConfig = path.resolve(__dirname, process.env.CONFIG || 'config.json');
nconf.argv().env().file({
file: pathToConfig,
});
var pidFilePath = path.join(__dirname, 'pidfile');
const pidFilePath = path.join(__dirname, 'pidfile');
var outputLogFilePath = path.join(__dirname, nconf.get('logFile') || 'logs/output.log');
const outputLogFilePath = path.join(__dirname, nconf.get('logFile') || 'logs/output.log');
var logDir = path.dirname(outputLogFilePath);
const logDir = path.dirname(outputLogFilePath);
if (!fs.existsSync(logDir)) {
mkdirp.sync(path.dirname(outputLogFilePath));
}
var output = logrotate({ file: outputLogFilePath, size: '1m', keep: 3, compress: true });
var silent = nconf.get('silent') === 'false' ? false : nconf.get('silent') !== false;
var numProcs;
var workers = [];
var Loader = {
const output = logrotate({ file: outputLogFilePath, size: '1m', keep: 3, compress: true });
const silent = nconf.get('silent') === 'false' ? false : nconf.get('silent') !== false;
let numProcs;
const workers = [];
const Loader = {
timesStarted: 0,
};
var appPath = path.join(__dirname, 'app.js');
const appPath = path.join(__dirname, 'app.js');
Loader.init = function (callback) {
if (silent) {
console.log = function () {
var args = Array.prototype.slice.call(arguments);
output.write(args.join(' ') + '\n');
console.log = (...args) => {
output.write(`${args.join(' ')}\n`);
};
}
@@ -51,7 +50,7 @@ Loader.init = function (callback) {
Loader.displayStartupMessages = function (callback) {
console.log('');
console.log('NodeBB v' + pkg.version + ' Copyright (C) 2013-2014 NodeBB Inc.');
console.log(`NodeBB v${pkg.version} Copyright (C) 2013-2014 NodeBB Inc.`);
console.log('This program comes with ABSOLUTELY NO WARRANTY.');
console.log('This is free software, and you are welcome to redistribute it under certain conditions.');
console.log('For the full license, please visit: http://www.gnu.org/copyleft/gpl.html');
@@ -60,23 +59,23 @@ Loader.displayStartupMessages = function (callback) {
};
Loader.addWorkerEvents = function (worker) {
worker.on('exit', function (code, signal) {
worker.on('exit', (code, signal) => {
if (code !== 0) {
if (Loader.timesStarted < numProcs * 3) {
Loader.timesStarted += 1;
if (Loader.crashTimer) {
clearTimeout(Loader.crashTimer);
}
Loader.crashTimer = setTimeout(function () {
Loader.crashTimer = setTimeout(() => {
Loader.timesStarted = 0;
}, 10000);
} else {
console.log((numProcs * 3) + ' restarts in 10 seconds, most likely an error on startup. Halting.');
console.log(`${numProcs * 3} restarts in 10 seconds, most likely an error on startup. Halting.`);
process.exit();
}
}
console.log('[cluster] Child Process (' + worker.pid + ') has exited (code: ' + code + ', signal: ' + signal + ')');
console.log(`[cluster] Child Process (${worker.pid}) has exited (code: ${code}, signal: ${signal})`);
if (!(worker.suicide || code === 0)) {
console.log('[cluster] Spinning up another process...');
@@ -84,7 +83,7 @@ Loader.addWorkerEvents = function (worker) {
}
});
worker.on('message', function (message) {
worker.on('message', (message) => {
if (message && typeof message === 'object' && message.action) {
switch (message.action) {
case 'restart':
@@ -92,12 +91,12 @@ Loader.addWorkerEvents = function (worker) {
Loader.restart();
break;
case 'pubsub':
workers.forEach(function (w) {
workers.forEach((w) => {
w.send(message);
});
break;
case 'socket.io':
workers.forEach(function (w) {
workers.forEach((w) => {
if (w !== worker) {
w.send(message);
}
@@ -110,9 +109,9 @@ Loader.addWorkerEvents = function (worker) {
Loader.start = function (callback) {
numProcs = getPorts().length;
console.log('Clustering enabled: Spinning up ' + numProcs + ' process(es).\n');
console.log(`Clustering enabled: Spinning up ${numProcs} process(es).\n`);
for (var x = 0; x < numProcs; x += 1) {
for (let x = 0; x < numProcs; x += 1) {
forkWorker(x, x === 0);
}
@@ -122,18 +121,18 @@ Loader.start = function (callback) {
};
function forkWorker(index, isPrimary) {
var ports = getPorts();
var args = [];
const ports = getPorts();
const args = [];
if (!ports[index]) {
return console.log('[cluster] invalid port for worker : ' + index + ' ports: ' + ports.length);
return console.log(`[cluster] invalid port for worker : ${index} ports: ${ports.length}`);
}
process.env.isPrimary = isPrimary;
process.env.isCluster = nconf.get('isCluster') || ports.length > 1;
process.env.port = ports[index];
var worker = fork(appPath, args, {
const worker = fork(appPath, args, {
silent: silent,
env: process.env,
});
@@ -146,20 +145,20 @@ function forkWorker(index, isPrimary) {
Loader.addWorkerEvents(worker);
if (silent) {
var output = logrotate({ file: outputLogFilePath, size: '1m', keep: 3, compress: true });
const output = logrotate({ file: outputLogFilePath, size: '1m', keep: 3, compress: true });
worker.stdout.pipe(output);
worker.stderr.pipe(output);
}
}
function getPorts() {
var _url = nconf.get('url');
const _url = nconf.get('url');
if (!_url) {
console.log('[cluster] url is undefined, please check your config.json');
process.exit();
}
var urlObject = url.parse(_url);
var port = nconf.get('PORT') || nconf.get('port') || urlObject.port || 4567;
const urlObject = url.parse(_url);
let port = nconf.get('PORT') || nconf.get('port') || urlObject.port || 4567;
if (!Array.isArray(port)) {
port = [port];
}
@@ -172,13 +171,13 @@ Loader.restart = function () {
nconf.remove('file');
nconf.use('file', { file: pathToConfig });
fs.readFile(pathToConfig, { encoding: 'utf-8' }, function (err, configFile) {
fs.readFile(pathToConfig, { encoding: 'utf-8' }, (err, configFile) => {
if (err) {
console.error('Error reading config');
throw err;
}
var conf = JSON.parse(configFile);
const conf = JSON.parse(configFile);
nconf.stores.env.readOnly = false;
nconf.set('url', conf.url);
@@ -201,13 +200,13 @@ Loader.stop = function () {
};
function killWorkers() {
workers.forEach(function (worker) {
workers.forEach((worker) => {
worker.suicide = true;
worker.kill();
});
}
fs.open(pathToConfig, 'r', function (err) {
fs.open(pathToConfig, 'r', (err) => {
if (err) {
// No config detected, kickstart web installer
fork('app');
@@ -217,7 +216,7 @@ fs.open(pathToConfig, 'r', function (err) {
if (nconf.get('daemon') !== 'false' && nconf.get('daemon') !== false) {
if (file.existsSync(pidFilePath)) {
try {
var pid = fs.readFileSync(pidFilePath, { encoding: 'utf-8' });
const pid = fs.readFileSync(pidFilePath, { encoding: 'utf-8' });
process.kill(pid, 0);
process.exit();
} catch (e) {
@@ -238,7 +237,7 @@ fs.open(pathToConfig, 'r', function (err) {
Loader.init,
Loader.displayStartupMessages,
Loader.start,
], function (err) {
], (err) => {
if (err) {
console.error('[loader] Error during startup');
throw err;

View File

@@ -20,22 +20,50 @@
"es6": true
},
"rules": {
"comma-dangle": ["error", {
"arrays": "always-multiline",
"objects": "always-multiline",
"imports": "always-multiline",
"exports": "always-multiline",
"functions": "never"
}],
"block-scoped-var": "off",
"no-dupe-class-members": "off",
"no-var": "off",
"object-shorthand": "off",
"prefer-arrow-callback": "off",
"prefer-spread": "off",
"prefer-object-spread": "off",
"prefer-reflect": "off",
"prefer-template": "off"
// ES6
"prefer-rest-params": "off",
"prefer-spread": "off",
"prefer-arrow-callback": "off",
"prefer-template": "off",
"no-var": "off",
"object-shorthand": "off",
"vars-on-top": "off",
"prefer-destructuring": "off",
// identical to airbnb rule
// except for allowing for..in, because for..of is unavailable on some clients
"no-restricted-syntax": [
"error",
{
"selector": "ForOfStatement",
"message": "iterators/generators require regenerator-runtime, which is too heavyweight for this guide to allow them. Separately, loops should be avoided in favor of array iterations."
},
{
"selector": "LabeledStatement",
"message": "Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand."
},
{
"selector": "WithStatement",
"message": "`with` is disallowed in strict mode because it makes code impossible to predict and optimize."
}
]
},
"parserOptions": {
"ecmaVersion": 6,
"ecmaVersion": 2018,
"ecmaFeatures": {
"classes": false,
"defaultParams": false,
"experimentalObjectRestSpread": false,
"blockBindings": false,
"forOf": false,
"generators": false,

View File

@@ -1,11 +1,6 @@
{
"post-cache": "التخزين المؤقت للمشاركات",
"posts-in-cache": "المشاركات المخزنة مؤقتاً",
"average-post-size": "متوسط ​​حجم المشاركة",
"length-to-max": "الطول / أقصى حد",
"percent-full": "1% كاملة",
"post-cache-size": "حجم التخزين المؤقت للمشاركات",
"items-in-cache": "العناصر في التخزين المؤقت",
"control-panel": "لوحة التحكم",
"update-settings": "تحديث إعدادات التخزين المؤقت"
"items-in-cache": "العناصر في التخزين المؤقت"
}

View File

@@ -2,11 +2,11 @@
"events": "أحداث",
"no-events": "لا توجد أحداث",
"control-panel": "لوحة تحكم الأحداث",
"delete-events": "Delete Events",
"filters": "Filters",
"filters-apply": "Apply Filters",
"filter-type": "Event Type",
"filter-start": "Start Date",
"filter-end": "End Date",
"filter-perPage": "Per Page"
"delete-events": "حذف الاحداث",
"filters": "تصفية",
"filters-apply": "تطبيق التصفية",
"filter-type": "نوع الحدث",
"filter-start": "تاريخ البدء",
"filter-end": "تاريخ الانتهاء",
"filter-perPage": "لكل صفحة"
}

View File

@@ -2,6 +2,7 @@
"forum-traffic": "Forum Traffic",
"page-views": "مشاهدات الصفحات",
"unique-visitors": "زائرين فريدين",
"logins": "Logins",
"new-users": "New Users",
"posts": "مشاركات",
"topics": "مواضيع",
@@ -29,6 +30,7 @@
"upgrade-available": "<p>A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">upgrading your NodeBB</a>.</p>",
"prerelease-upgrade-available": "<p>This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">upgrading your NodeBB</a>.</p>",
"prerelease-warning": "<p>هذه نسخة <strong>ماقبل الإصدار</strong> من NodeBB. قد تحدث أخطاء غير مقصودة. <i class=\"fa fa-exclamation-triangle\"></i></p>",
"fallback-emailer-not-found": "Fallback emailer not found!",
"running-in-development": "المنتدى قيد التشغيل في وضع \"المطورين\". وقد تكون هناك ثغرات أمنية مفتوحة؛ من فضلك تواصل مع مسؤول نظامك.",
"latest-lookup-failed": "<p>Failed to look up latest available version of NodeBB</p>",
@@ -75,5 +77,12 @@
"graphs.registered-users": "مستخدمين مسجلين",
"graphs.anonymous-users": "مستخدمين مجهولين",
"last-restarted-by": "Last restarted by",
"no-users-browsing": "No users browsing"
"no-users-browsing": "No users browsing",
"back-to-dashboard": "Back to Dashboard",
"details.no-users": "No users have joined within the selected timeframe",
"details.no-topics": "No topics have been posted within the selected timeframe",
"details.no-logins": "No logins have been recorded within the selected timeframe",
"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
"details.logins-login-time": "Login Time"
}

View File

@@ -39,7 +39,7 @@
"alert.upgraded": "الإضافة مرقاة",
"alert.installed": "الإضافة منصبة",
"alert.uninstalled": "تم إلغاء تنصيب الإضافة",
"alert.activate-success": "يرجى إعادة تشغيل NodeBB لتنشيط الإضافة بشكل بالكامل",
"alert.activate-success": "Please rebuild and restart your NodeBB to fully activate this plugin",
"alert.deactivate-success": "تم تعطيل الإضافة بنجاح",
"alert.upgrade-success": "Please rebuild and restart your NodeBB to fully upgrade this plugin.",
"alert.install-success": "تم تثبيت الإضافة بنجاح، يرجى تفعيلها.",

View File

@@ -10,13 +10,16 @@
"custom-class": "Custom Class",
"num-recent-replies": "# of Recent Replies",
"ext-link": "External Link",
"subcategories-per-page": "Subcategories per page",
"is-section": "Treat this category as a section",
"post-queue": "Post queue",
"tag-whitelist": "Tag Whitelist",
"upload-image": "Upload Image",
"delete-image": "Remove",
"category-image": "Category Image",
"parent-category": "Parent Category",
"optional-parent-category": "(Optional) Parent Category",
"top-level": "Top Level",
"parent-category-none": "(None)",
"copy-parent": "Copy Parent",
"copy-settings": "Copy Settings From",
@@ -29,6 +32,8 @@
"edit": "Edit",
"analytics": "Analytics",
"view-category": "View category",
"set-order": "Set order",
"set-order-help": "Setting the order of the category will move this category to that order and update the order of other categories as necessary. Minimum order is 1 which puts the category at the top.",
"select-category": "Select Category",
"set-parent-category": "Set Parent Category",
@@ -45,6 +50,8 @@
"privileges.no-users": "No user-specific privileges in this category.",
"privileges.section-group": "Group",
"privileges.group-private": "This group is private",
"privileges.inheritance-exception": "This group does not inherit privileges from registered-users group",
"privileges.banned-user-inheritance": "Banned users inherit privileges from banned-users group",
"privileges.search-group": "Add Group",
"privileges.copy-to-children": "Copy to Children",
"privileges.copy-from-category": "Copy from Category",

View File

@@ -4,11 +4,13 @@
"group-privileges": "Group Privileges",
"user-privileges": "User Privileges",
"edit-privileges": "Edit Privileges",
"select-clear-all": "Select/Clear All",
"chat": "Chat",
"upload-images": "Upload Images",
"upload-files": "Upload Files",
"signature": "Signature",
"ban": "Ban",
"invite": "Invite",
"search-content": "Search Content",
"search-users": "Search Users",
"search-tags": "Search Tags",
@@ -23,6 +25,7 @@
"access-topics": "Access Topics",
"create-topics": "Create Topics",
"reply-to-topics": "Reply to Topics",
"schedule-topics": "Schedule Topics",
"tag-topics": "Tag Topics",
"edit-posts": "Edit Posts",
"view-edit-history": "View Edit History",
@@ -37,9 +40,13 @@
"admin-categories": "Categories",
"admin-privileges": "Privileges",
"admin-users": "Users",
"admin-admins-mods": "Admins &amp; Mods",
"admin-groups": "Groups",
"admin-tags": "Tags",
"admin-settings": "Settings",
"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
"alert.confirm-save": "Please confirm your intention to save these privileges",
"alert.saved": "Privilege changes saved and applied",
"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",

View File

@@ -2,7 +2,6 @@
"none": "Your forum does not have any topics with tags yet.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"create-modify": "Create & Modify Tags",
"description": "Select tags by clicking or dragging, use <code>CTRL</code> to select multiple tags.",
"create": "Create Tag",
"modify": "Modify Tags",
@@ -14,5 +13,6 @@
"alerts.editing": "Editing tag(s)",
"alerts.confirm-delete": "Do you want to delete the selected tags?",
"alerts.update-success": "Tag Updated!"
"alerts.update-success": "Tag Updated!",
"reset-colors": "Reset colors"
}

View File

@@ -1,6 +1,6 @@
{
"users": "المستخدمين",
"edit": "تحرير",
"edit": "Actions",
"make-admin": "Make Admin",
"remove-admin": "Remove Admin",
"validate-email": "Validate Email",
@@ -47,6 +47,7 @@
"users.uid": "uid",
"users.username": "username",
"users.email": "email",
"users.ip": "IP",
"users.postcount": "postcount",
"users.reputation": "reputation",
"users.flags": "flags",
@@ -102,5 +103,7 @@
"alerts.prompt-email": "Emails: ",
"alerts.email-sent-to": "An invitation email has been sent to %1",
"alerts.x-users-found": "%1 user(s) found, (%2 seconds)"
"alerts.x-users-found": "%1 user(s) found, (%2 seconds)",
"export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.",
"export-users-completed": "Users exported as csv, click here to download."
}

View File

@@ -1,5 +1,9 @@
{
"dashboard": "Dashboard",
"section-dashboard": "Dashboards",
"dashboard/overview": "Overview",
"dashboard/logins": "Logins",
"dashboard/users": "Users",
"dashboard/topics": "Topics",
"section-general": "عام",
"section-manage": "إدارة",
@@ -31,6 +35,7 @@
"settings/pagination": "ترقيم الصفحات",
"settings/tags": "الكلمات المفتاحية",
"settings/notifications": "التنبيهات",
"settings/api": "API Access",
"settings/sounds": "Sounds",
"settings/social": "Social",
"settings/cookies": "Cookies",

View File

@@ -36,5 +36,8 @@
"analytics.settings": "Analytics Settings",
"analytics.max-cache": "Analytics Cache Max Value",
"analytics.max-cache-help": "On high-traffic installs, the cache could be exhausted continuously if there are more concurrent active users than the Max Cache value. (Restart required)"
"analytics.max-cache-help": "On high-traffic installs, the cache could be exhausted continuously if there are more concurrent active users than the Max Cache value. (Restart required)",
"compression.settings": "Compression Settings",
"compression.enable": "Enable Compression",
"compression.help": "This setting enables gzip compression. For a high-traffic website in production, the best way to put compression in place is to implement it at a reverse proxy level. You can enable it here for testing purposes."
}

View File

@@ -0,0 +1,16 @@
{
"tokens": "Tokens",
"settings": "Settings",
"lead-text": "From this page you can configure access to the Write API in NodeBB.",
"intro": "By default, the Write API authenticates users based on their session cookie, but NodeBB also supports Bearer authentication via tokens generated via this page.",
"docs": "Click here to access the full API specification",
"require-https": "Require API usage via HTTPS only",
"require-https-caveat": "<strong>Note</strong>: Some installations involving load balancers may proxy their requests to NodeBB using HTTP, in which case this option should remain disabled.",
"uid": "User ID",
"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
"description": "Description",
"no-description": "No description specified.",
"token-on-save": "Token will be generated once form is saved"
}

View File

@@ -4,7 +4,7 @@
"address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.",
"from": "From Name",
"from-help": "The from name to display in the email.",
"smtp-transport": "SMTP Transport",
"smtp-transport.enabled": "Use an external email server to send emails",
"smtp-transport-help": "You can select from a list of well-known services or enter a custom one.",
@@ -35,5 +35,7 @@
"subscriptions": "Email Digests",
"subscriptions.disable": "Disable email digests",
"subscriptions.hour": "Digest Hour",
"subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. <code>0</code> for midnight, <code>17</code> for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.<br /> The approximate server time is: <span id=\"serverTime\"></span><br /> The next daily digest is scheduled to be sent <span id=\"nextDigestTime\"></span>"
"subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. <code>0</code> for midnight, <code>17</code> for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.<br /> The approximate server time is: <span id=\"serverTime\"></span><br /> The next daily digest is scheduled to be sent <span id=\"nextDigestTime\"></span>",
"notifications.settings": "Email notification settings",
"notifications.remove-images": "Remove images from email notifications"
}

View File

@@ -40,5 +40,8 @@
"site-colors": "Site Color Metadata",
"theme-color": "لون الثيم",
"background-color": "لون الخلفية",
"background-color-help": "Color used for splash screen background when website is installed as a PWA"
"background-color-help": "Color used for splash screen background when website is installed as a PWA",
"undo-timeout": "Undo Timeout",
"undo-timeout-help": "Some operations such as moving topics will allow for the moderator to undo their action within a certain timeframe. Set to 0 to disable undo completely.",
"topic-tools": "Topic Tools"
}

View File

@@ -1,5 +1,7 @@
{
"handles": "Guest Handles",
"settings": "Settings",
"handles.enabled": "Allow guest handles",
"handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\""
"handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"",
"topic-views.enabled": "Allow guests to increase topic view counts",
"reply-notifications.enabled": "Allow guests to generate reply notifications"
}

View File

@@ -1,10 +1,12 @@
{
"pagination": "Pagination Settings",
"enable": "Paginate topics and posts instead of using infinite scroll.",
"posts": "Post Pagination",
"topics": "Topic Pagination",
"posts-per-page": "Posts per Page",
"max-posts-per-page": "Maximum posts per page",
"categories": "Category Pagination",
"topics-per-page": "Topics per Page",
"max-topics-per-page": "Maximum topics per page"
"max-topics-per-page": "Maximum topics per page",
"categories-per-page": "Categories per page"
}

View File

@@ -34,6 +34,8 @@
"timestamp.cut-off-help": "Dates &amp; times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).<br /><em>(Default: <code>30</code>, or one month). Set to 0 to always display dates, leave blank to always display relative times.</em>",
"timestamp.necro-threshold": "Necro Threshold (in days)",
"timestamp.necro-threshold-help": "A message will be shown between posts if the time between them is longer than the necro threshold. (Default: <code>7</code>, or one week). Set to 0 to disable.</em>",
"timestamp.topic-views-interval": "Increment topic views interval (in minutes)",
"timestamp.topic-views-interval-help": "Topic views will only increment once every X minutes as defined by this setting.",
"teaser": "Teaser Post",
"teaser.last-post": "Last &ndash; Show the latest post, including the original post, if no replies",
"teaser.last-reply": "Last &ndash; Show the latest reply, or a \"No replies\" placeholder if no replies",

View File

@@ -16,5 +16,7 @@
"flags": "Flag Settings",
"flags.limit-per-target": "Maximum number of times something can be flagged",
"flags.limit-per-target-placeholder": "Default: 0"
"flags.limit-per-target-placeholder": "Default: 0",
"flags.limit-per-target-help": "When a post or user is flagged multiple times, each additional flag is considered a &quot;report&quot; and added to the original flag. Set this option to a number other than zero to limit the number of reports an item can receive.",
"flags.auto-resolve-on-ban": "Automatically resolve all of a user's tickets when they are banned"
}

View File

@@ -1,6 +1,8 @@
{
"tag": "Tag Settings",
"link-to-manage": "Manage Tags",
"system-tags": "System Tags",
"system-tags-help": "Only privileged users will be able to use these tags.",
"min-per-topic": "Minimum Tags per Topic",
"max-per-topic": "Maximum Tags per Topic",
"min-length": "Minimum Tag Length",

View File

@@ -21,6 +21,9 @@
"topic-thumb-size": "حجم الصورة المصغرة للموضوع",
"allowed-file-extensions": "إمتدادات الملفات المسموح بها",
"allowed-file-extensions-help": "أدخل قائمة بامتدادات الملفات مفصولة بفواصل (مثال: <code>pdf,xls,doc</code>). القائمة الفارغة تعني أن كل الامتدادات مسموح بها.",
"upload-limit-threshold": "Rate limit user uploads to:",
"upload-limit-threshold-per-minute": "Per %1 Minute",
"upload-limit-threshold-per-minutes": "Per %1 Minutes",
"profile-avatars": "الصورة الرمزية للملف الشخصي",
"allow-profile-image-uploads": "السماح للأعضاء برفع الصور الرمزية",
"convert-profile-image-png": "تحويل إمتداد الصور الرمزية المرفوعه الى PNG",

View File

@@ -16,6 +16,7 @@
"allow-account-deletion": "السماح بحذف الحساب",
"hide-fullname": "إخفاء الإسم الكامل عن المستخدمين",
"hide-email": "إخفاء البريد الإلكتروني عن المستخدمين",
"show-fullname-as-displayname": "Show user's full name as their display name if available",
"themes": "القوالب",
"disable-user-skins": "منع المستخدمين من اختيار سمة مخصص",
"account-protection": "حماية الحساب",
@@ -43,6 +44,9 @@
"registration-type.disabled": "لا يوجد تسجيل",
"registration-type.help": "Normal - Users can register from the /register page.<br/>\nInvite Only - Users can invite others from the <a href=\"%1/users\" target=\"_blank\">users</a> page.<br/>\nAdmin Invite Only - Only administrators can invite others from <a href=\"%1/users\" target=\"_blank\">users</a> and <a href=\"%1/admin/manage/users\">admin/manage/users</a> pages.<br/>\nNo registration - No user registration.<br/>",
"registration-approval-type.help": "Normal - Users are registered immediately.<br/>\nAdmin Approval - User registrations are placed in an <a href=\"%1/admin/manage/registration\">approval queue</a> for administrators.<br/>\nAdmin Approval for IPs - Normal for new users, Admin Approval for IP addresses that already have an account.<br/>",
"registration-queue-auto-approve-time": "Automatic Approval Time",
"registration-queue-auto-approve-time-help": "Hours before user is approved automatically. 0 to disable.",
"registration-queue-show-average-time": "Show users average time it takes to approve a new user",
"registration.max-invites": "الحد الأقصى للدعوات لكل عضو",
"max-invites": "الحد الأقصى للدعوات لكل عضو",
"max-invites-help": "0 لعدم تحديد قيود، الإدارة تحصل على دعوات لامحدودة <br> هذا الخيار يعمل فقط عند تحديد خيار \"بالدعوات فقط\"",
@@ -62,6 +66,7 @@
"restrict-chat": "السماح فقط برسائل الدردشة من المستخدمين الذين أتبعهم",
"outgoing-new-tab": "Open outgoing links in new tab",
"topic-search": "Enable In-Topic Searching",
"update-url-with-post-index": "Update url with post index while browsing topics",
"digest-freq": "Subscribe to Digest",
"digest-freq.off": "Off",
"digest-freq.daily": "Daily",

View File

@@ -18,5 +18,6 @@
"watching.message": "You are now watching updates from this category and all subcategories",
"notwatching.message": "You are not watching updates from this category and all subcategories",
"ignoring.message": "You are now ignoring updates from this category and all subcategories",
"watched-categories": "الأقسام المُتابعة"
"watched-categories": "الأقسام المُتابعة",
"x-more-categories": "%1 more categories"
}

View File

@@ -9,6 +9,7 @@
"invalid-tid": "موضوع غير متواجد",
"invalid-pid": "رد غير موجود",
"invalid-uid": "مستخدم غير موجود",
"invalid-date": "A valid date must be provided",
"invalid-username": "اسم المستخدم غير مقبول",
"invalid-email": "البريد الاكتروني غير مقبول",
"invalid-fullname": "Invalid Fullname",
@@ -21,6 +22,7 @@
"invalid-username-or-password": "المرجود تحديد اسم مستخدم و كلمة مرور",
"invalid-search-term": "كلمة البحث غير صحيحة",
"invalid-url": "Invalid URL",
"invalid-event": "Invalid event: %1",
"local-login-disabled": "Local login system has been disabled for non-privileged accounts.",
"csrf-invalid": "لم تتمكن من تسجيل الدخول. هنالك أحتمال ان جلستك انتهت. رجاءًا حاول مرة اخرى.",
"invalid-pagination-value": "رقم الصفحة غير صحيح ، يجب أن يكون بين %1 و %2 .",
@@ -39,6 +41,7 @@
"username-too-long": "اسم المستخدم طويل",
"password-too-long": "كلمة السر طويلة ",
"reset-rate-limited": "Too many password reset requests (rate limited)",
"reset-same-password": "Please use a password that is different from your current one",
"user-banned": "المستخدم محظور",
"user-banned-reason": "Sorry, this account has been banned (Reason: %1)",
"user-banned-reason-until": "Sorry, this account has been banned until %1 (Reason: %2)",
@@ -81,15 +84,26 @@
"tag-too-long": "Please enter a shorter tag. Tags can't be longer than %1 character(s)",
"not-enough-tags": "Not enough tags. Topics must have at least %1 tag(s)",
"too-many-tags": "Too many tags. Topics can't have more than %1 tag(s)",
"cant-use-system-tag": "You can not use this system tag.",
"cant-remove-system-tag": "You can not remove this system tag.",
"still-uploading": "الرجاء الانتظار حتى يكتمل الرفع.",
"file-too-big": "الحد الأقصى لرفع الملفات %1 كيلو بت. رجاءًا ارفع ملف أصغر",
"guest-upload-disabled": "خاصية رفع الملفات غير مفعلة للزوار.",
"cors-error": "Unable to upload image due to misconfigured CORS",
"upload-ratelimit-reached": "You have uploaded too many files at one time. Please try again later.",
"scheduling-to-past": "Please select a date in the future.",
"invalid-schedule-date": "Please enter a valid date and time.",
"cant-pin-scheduled": "Scheduled topics cannot be (un)pinned.",
"cant-merge-scheduled": "Scheduled topics cannot be merged.",
"cant-move-posts-to-scheduled": "Can't move posts to a scheduled topic.",
"cant-move-from-scheduled-to-existing": "Can't move posts from a scheduled topic to an existing topic.",
"already-bookmarked": "You have already bookmarked this post",
"already-unbookmarked": "You have already unbookmarked this post",
"cant-ban-other-admins": "لايمكن حظر مدبر نظام آخر.",
"cant-remove-last-admin": "رجاءًا ، أضف مدير أخر قبل حذف صلاحيات الإدارة من حسابك.",
"account-deletion-disabled": "Account deletion is disabled",
"cant-delete-admin": "رجاءًا أزل صلاحيات الإدارة قبل حذف الحساب. ",
"already-deleting": "Already deleting",
"invalid-image": "Invalid image",
"invalid-image-type": "نوع الصورة غير مدعوم. الأنواع المدعومة هي : %1",
"invalid-image-extension": "امتداد الصورة غير مدعوم.",
@@ -129,6 +143,7 @@
"chat-delete-duration-expired": "You are only allowed to delete chat messages for %1 second(s) after posting",
"chat-deleted-already": "This chat message has already been deleted.",
"chat-restored-already": "This chat message has already been restored.",
"chat-room-does-not-exist": "Chat room does not exist.",
"already-voting-for-this-post": "لقد شاركت بالتصويت ، ألا تذكر؟",
"reputation-system-disabled": "نظام السمعة معطل",
"downvoting-disabled": "التصويتات السلبية معطلة",
@@ -143,6 +158,7 @@
"user-already-flagged": "You have already flagged this user",
"post-flagged-too-many-times": "This post has been flagged by others already",
"user-flagged-too-many-times": "This user has been flagged by others already",
"cant-flag-privileged": "You are not allowed to flag the profiles or content of privileged users (moderators/global moderators/admins)",
"self-vote": "You cannot vote on your own post",
"too-many-downvotes-today": "You can only downvote %1 times a day",
"too-many-downvotes-today-user": "You can only downvote a user %1 times a day",
@@ -159,8 +175,10 @@
"cant-kick-self": "لا يمكنك طرد نفسك من المجموعة.",
"no-users-selected": "لا يوجد مستخدم محدد.",
"invalid-home-page-route": "Invalid home page route",
"invalid-session": "Session Mismatch",
"invalid-session-text": "يبدو أن فترة التسجيل لم تعد قائمة او هي غير مطابقة مع الخادم. يرجى إعادة تحميل هذه الصفحة.",
"invalid-session": "Invalid Session",
"invalid-session-text": "It looks like your login session is no longer active. Please refresh this page.",
"session-mismatch": "Session Mismatch",
"session-mismatch-text": "It looks like your login session no longer matches with the server. Please refresh this page.",
"no-topics-selected": "No topics selected!",
"cant-move-to-same-topic": "Can't move post to same topic!",
"cant-move-topic-to-same-category": "Can't move topic to the same category!",
@@ -170,5 +188,19 @@
"already-blocked": "This user is already blocked",
"already-unblocked": "This user is already unblocked",
"no-connection": "There seems to be a problem with your internet connection",
"plugin-not-whitelisted": "Unable to install plugin &ndash; only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP"
"socket-reconnect-failed": "Unable to reach the server at this time. Click here to try again, or try again later",
"plugin-not-whitelisted": "Unable to install plugin &ndash; only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP",
"topic-event-unrecognized": "Topic event '%1' unrecognized",
"cant-set-child-as-parent": "Can't set child as parent category",
"cant-set-self-as-parent": "Can't set self as parent category",
"api.master-token-no-uid": "A master token was received without a corresponding `_uid` in the request body",
"api.400": "Something was wrong with the request payload you passed in.",
"api.401": "A valid login session was not found. Please log in and try again.",
"api.403": "You are not authorised to make this call",
"api.404": "Invalid API call",
"api.426": "HTTPS is required for requests to the write api, please re-send your request via HTTPS",
"api.429": "You have made too many requests, please try again later",
"api.500": "An unexpected error was encountered while attempting to service your request.",
"api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
"api.503": "The route you are trying to call is not currently available due to a server configuration"
}

View File

@@ -6,6 +6,7 @@
"assignee": "المحال إليه",
"update": "تحديث",
"updated": "تم التحديث",
"resolved": "Resolved",
"target-purged": "The content this flag referred to has been purged and is no longer available.",
"graph-label": "Daily Flags",
@@ -26,6 +27,7 @@
"filter-cid-all": "All categories",
"apply-filters": "Apply Filters",
"more-filters": "More Filters",
"fewer-filters": "Fewer Filters",
"quick-actions": "اجراءات سريعه",
"flagged-user": "Flagged User",
@@ -67,7 +69,7 @@
"sort-upvotes": "Most upvotes",
"sort-replies": "Most replies",
"modal-title": "Report Inappropriate Content",
"modal-title": "Report Content",
"modal-body": "Please specify your reason for flagging %1 %2 for review. Alternatively, use one of the quick report buttons if applicable.",
"modal-reason-spam": "Spam",
"modal-reason-offensive": "Offensive",
@@ -81,5 +83,6 @@
"bulk-actions": "Bulk Actions",
"bulk-resolve": "Resolve Flag(s)",
"bulk-success": "%1 flags updated"
"bulk-success": "%1 flags updated",
"flagged-timeago-readable": "Flagged <span class=\"timeago\" title=\"%1\"></span> (%2)"
}

View File

@@ -46,7 +46,9 @@
"alert.success": "نجاح",
"alert.error": "خطأ",
"alert.banned": "محظور",
"alert.banned.message": "لقد تم حظر حسابك. سيتم تسجيل الخروج.",
"alert.banned.message": "You have just been banned, your access is now restricted.",
"alert.unbanned": "Unbanned",
"alert.unbanned.message": "Your ban has been lifted.",
"alert.unfollow": "أنت لا تتابع %1 بعد الآن!",
"alert.follow": "أنت الآن تتابع %1!",
"users": "الأعضاء",
@@ -93,6 +95,8 @@
"guest": "زائر",
"guests": "الزوار",
"former_user": "A Former User",
"system-user": "System",
"unknown-user": "Unknown user",
"updated.title": "تم تحديث المنتدى",
"updated.message": "لقد تم تحديث المنتدى إلى آخر نسخة للتو. إضغط هنا لإعادة تحميل الصفحة.",
"privacy": "الخصوصية",

View File

@@ -35,6 +35,7 @@
"details.member_count": "عدد اﻷعضاء",
"details.creation_date": "تاريخ الإنشاء",
"details.description": "الوصف",
"details.member-post-cids": "Category IDs to display posts from",
"details.badge_preview": "معاينة الوسام",
"details.change_icon": "تغيير الأيقونة",
"details.change_label_colour": "Change Label Colour",

View File

@@ -8,5 +8,6 @@
"failed_login_attempt": "تسجيل الدخول غير ناجح",
"login_successful": "قمت بتسجيل الدخول بنجاح!",
"dont_have_account": "لا تملك حساب؟",
"logged-out-due-to-inactivity": "لقد تم تسجيل خروجك من لوحة تحكم بسبب عدم نشاطك"
"logged-out-due-to-inactivity": "لقد تم تسجيل خروجك من لوحة تحكم بسبب عدم نشاطك",
"caps-lock-enabled": "Caps Lock is enabled"
}

View File

@@ -60,10 +60,21 @@
"composer.zen_mode": "Zen Mode",
"composer.select_category": "Select a category",
"composer.textarea.placeholder": "Enter your post content here, drag and drop images",
"composer.schedule-for": "Schedule topic for",
"composer.schedule-date": "Date",
"composer.schedule-time": "Time",
"composer.cancel-scheduling": "Cancel Scheduling",
"composer.set-schedule-date": "Set Date",
"bootbox.ok": "OK",
"bootbox.cancel": "إلغاء",
"bootbox.confirm": "تأكيد",
"cover.dragging_title": "Cover Photo Positioning",
"cover.dragging_message": "Drag the cover photo to the desired position and click \"Save\"",
"cover.saved": "Cover photo image and position saved"
"cover.saved": "Cover photo image and position saved",
"thumbs.modal.title": "Manage topic thumbnails",
"thumbs.modal.no-thumbs": "No thumbnails found.",
"thumbs.modal.resize-note": "<strong>Note</strong>: This forum is configured to resize topic thumbnails down to a maximum width of %1px",
"thumbs.modal.add": "Add thumbnail",
"thumbs.modal.remove": "Remove thumbnail",
"thumbs.modal.confirm-remove": "Are you sure you want to remove this thumbnail?"
}

View File

@@ -14,6 +14,7 @@
"topics": "مواضيع",
"replies": "ردود",
"chat": "محادثات",
"group-chat": "Group Chats",
"follows": "متابعون",
"upvote": "الموافقين",
"new-flags": "New Flags",
@@ -46,6 +47,9 @@
"profile-exported": "<strong>%1</strong> profile exported, click to download",
"posts-exported": "<strong>%1</strong> posts exported, click to download",
"uploads-exported": "<strong>%1</strong> uploads exported, click to download",
"users-csv-exported": "Users csv exported, click to download",
"post-queue-accepted": "Your queued post has been accepted. Click here to see your post.",
"post-queue-rejected": "Your queued post has been rejected.",
"email-confirmed": "تم التحقق من عنوان البريد الإلكتروني",
"email-confirmed-message": "شكرًا على إثبات صحة عنوان بريدك الإلكتروني. صار حسابك مفعلًا بالكامل.",
"email-confirm-error-message": "حدث خطأ أثناء التحقق من عنوان بريدك الإلكتروني. ربما رمز التفعيل خاطئ أو انتهت صلاحيته.",
@@ -60,7 +64,9 @@
"notificationType_post-edit": "When a post is edited in a topic you are watching",
"notificationType_follow": "When someone starts following you",
"notificationType_new-chat": "When you receive a chat message",
"notificationType_new-group-chat": "When you receive a group chat message",
"notificationType_group-invite": "When you receive a group invite",
"notificationType_group-leave": "When a user leaves your group",
"notificationType_group-request-membership": "When someone requests to join a group you own",
"notificationType_new-register": "When someone gets added to registration queue",
"notificationType_post-queue": "When a new post is queued",

View File

@@ -1,3 +1,4 @@
{
"post-queue": "Post Queue",
"description": "There are no posts in the post queue. <br> To enable this feature, go to <a href=\"%1\">Settings &rarr; Post &rarr; Post Queue</a> and enable <strong>Post Queue</strong>.",
@@ -7,5 +8,11 @@
"content": "Content",
"posted": "Posted",
"reply-to": "Reply to \"%1\"",
"content-editable": "You can click on individual content to edit before posting."
"content-editable": "Click on content to edit",
"category-editable": "Click on category to edit",
"title-editable": "Click on title to edit",
"reply": "Reply",
"topic": "Topic",
"accept": "Accept",
"reject": "Reject"
}

View File

@@ -18,9 +18,14 @@
"agree_to_terms_of_use": "أوافق على شروط الاستخدام",
"terms_of_use_error": "يجب عليك الموافقة على شروط الاستخدام",
"registration-added-to-queue": "تمت إضافتك في قائمة الإنتضار. ستتلقى رسالة إلكترونية عند الموافقة على تسجيلك من قبل الإدارة.",
"registration-queue-average-time": "Our average time for approving memberships is %1 hours %2 minutes.",
"registration-queue-auto-approve-time": "Your membership to this forum will be fully activated in up to %1 hours.",
"interstitial.intro": "نحتاج إلى بعض المعلومات الإضافية قبل أن نتمكن من إنشاء حسابك.",
"interstitial.errors-found": "تعذر علينا إتمام عملية التسجيل:",
"gdpr_agree_data": "I consent to the collection and processing of my personal information on this website.",
"gdpr_agree_email": "I consent to receive digest and notification emails from this website.",
"gdpr_consent_denied": "You must give consent to this site to collect/process your information, and to send you emails."
"gdpr_consent_denied": "You must give consent to this site to collect/process your information, and to send you emails.",
"invite.error-admin-only": "Direct user registration has been disabled. Please contact an administrator for more details.",
"invite.error-invite-only": "Direct user registration has been disabled. You must be invited by an existing user in order to access this forum.",
"invite.error-invalid-data": "The registration data received does not correspond to our records. Please contact an administrator for more details"
}

View File

@@ -1,7 +1,7 @@
{
"success": "نجاح",
"topic-post": "لقد تمت الإضافة بنجاح.",
"post-queued": "Your post is queued for approval.",
"post-queued": "Your post is queued for approval. You will get a notification when it is accepted or rejected.",
"authentication-successful": "تم تسجيل الدخول بنجاح",
"settings-saved": "تم حفظ التغييرات!"
}

View File

@@ -1,5 +1,6 @@
{
"topic": "موضوع",
"title": "Title",
"no_topics_found": "لا توجد مواضيع !",
"no_posts_found": "لا توجد مشاركات!",
"post_is_deleted": "هذه المشاركة محذوفة!",
@@ -29,15 +30,26 @@
"tools": "أدوات",
"locked": "مقفل",
"pinned": "مثبت",
"pinned-with-expiry": "Pinned until %1",
"scheduled": "Scheduled",
"moved": "منقول",
"moved-from": "Moved from %1",
"copy-ip": "Copy IP",
"ban-ip": "Ban IP",
"view-history": "Edit History",
"locked-by": "Locked by",
"unlocked-by": "Unlocked by",
"pinned-by": "Pinned by",
"unpinned-by": "Unpinned by",
"deleted-by": "Deleted by",
"restored-by": "Restored by",
"queued-by": "Post queued for approval &rarr;",
"bookmark_instructions": "اضغط هنا للعودة لأخر مشاركة مقروءة في الموضوع",
"flag-post": "Flag this post",
"flag-user": "Flag this user",
"already-flagged": "Already Flagged",
"view-flag-report": "View Flag Report",
"resolve-flag": "Resolve Flag",
"merged_message": "This topic has been merged into <a href=\"%1\">%2</a>",
"deleted_message": "هذه المشاركة محذوفة. فقط من لهم صلاحية الإشراف على ا لمشاركات يمكنهم معاينتها.",
"following_topic.message": "ستستلم تنبيها عند كل مشاركة جديدة في هذا الموضوع.",
@@ -88,6 +100,8 @@
"post_delete_confirm": "هل أنت متأكد أنك تريد حذف هذه المشاركة؟",
"post_restore_confirm": "هل أنت متأكد أنك تريد استعادة هذه المشاركة؟",
"post_purge_confirm": "هل أنت متأكد أنك تريد تطهير هذه المشاركة؟",
"pin-modal-expiry": "Expiration Date",
"pin-modal-help": "You can optionally set an expiration date for the pinned topic(s) here. Alternatively, you can leave this field blank to have the topic stay pinned until it is manually unpinned.",
"load_categories": "تحميل الفئات",
"confirm_move": "انقل",
"confirm_fork": "فرع",
@@ -100,6 +114,7 @@
"move_post": "نقل المشاركة",
"post_moved": "تم نقل المشاركة",
"fork_topic": "فرع الموضوع",
"enter-new-topic-title": "Enter new topic title",
"fork_topic_instruction": "إضغط على المشاركات التي تريد تفريعها",
"fork_no_pids": "لم تختر أي مشاركة",
"no-posts-selected": "No posts selected!",
@@ -113,14 +128,17 @@
"merge-options": "Merge options",
"merge-select-main-topic": "Select the main topic",
"merge-new-title-for-topic": "New title for topic",
"move_posts_instruction": "Click the posts you want to move then go to target topic and click move.",
"topic-id": "Topic ID",
"move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
"change_owner_instruction": "Click the posts you want to assign to another user",
"composer.title_placeholder": "أدخل عنوان موضوعك هنا...",
"composer.handle_placeholder": "Enter your name/handle here",
"composer.discard": "نبذ التغييرات",
"composer.submit": "حفظ",
"composer.schedule": "Schedule",
"composer.replying_to": "الرد على %1",
"composer.new_topic": "موضوع جديد",
"composer.editing": "Editing",
"composer.uploading": "جاري الرفع",
"composer.thumb_url_label": "ألصق رابط الصورة المصغرة للموضوع",
"composer.thumb_title": "إضافة صورة مصغرة للموضوع",
@@ -148,8 +166,12 @@
"diffs.current-revision": "current revision",
"diffs.original-revision": "original revision",
"diffs.restore": "Restore this revision",
"diffs.restore-description": "A new revision will be appended to this post's edit history.",
"diffs.restore-description": "A new revision will be appended to this post's edit history after restoring.",
"diffs.post-restored": "Post successfully restored to earlier revision",
"diffs.delete": "Delete this revision",
"diffs.deleted": "Revision deleted",
"timeago_later": "%1 later",
"timeago_earlier": "%1 earlier"
"timeago_earlier": "%1 earlier",
"first-post": "First post",
"last-post": "Last post"
}

View File

@@ -84,6 +84,7 @@
"remove_cover_picture_confirm": "هل تريد بالتأكيد إزالة صورة الغلاف؟",
"crop_picture": "إقتصاص الصورة",
"upload_cropped_picture": "إقتصاص ورفع",
"avatar-background-colour": "Avatar background colour",
"settings": "خيارات",
"show_email": "أظهر بريدي الإلكتروني",
"show_fullname": "أظهر اسمي الكامل",
@@ -123,6 +124,7 @@
"open_links_in_new_tab": "فتح الروابط الخارجية في نافدة جديدة",
"enable_topic_searching": "تفعيل خاصية البحث داخل المواضيع",
"topic_search_help": "إذا قمت بتفعيل ميزة البحث في-الموضوع، سيتم تجاوز الخيار الافتراضي للمتصفح مما يؤدي للبحث بكامل الموضوع بدلا عن البحث في الجزء الظاهر في الشاشة.",
"update_url_with_post_index": "Update url with post index while browsing topics",
"scroll_to_my_post": "بعد اضافة رد على المشاركة, قم بإظهار المشاركة",
"follow_topics_you_reply_to": "متابعة المواضيع التي تقوم بالرد عليها",
"follow_topics_you_create": "متابعة المواضيع التي تقوم بإنشائها",
@@ -134,7 +136,7 @@
"homepage": "الصفحة الرئيسية",
"homepage_description": "حدد صفحة لاستخدامها كصفحة رئيسية للمنتدى أو \"لا شيء\" لاستخدام الصفحة الرئيسية الافتراضية.",
"custom_route": "مسار الصفحة الرئيسية المخصصة",
"custom_route_help": "أدخل اسم مسار هنا، بدون أي شرطة مائلة (على سبيل المثال \"حديثة\" أو \"شائعة\")",
"custom_route_help": "Enter a route name here, without any preceding slash (e.g. \"recent\" or \"category/2/general-discussion\")",
"sso.title": "خدمات تسجيل الدخول الموحد",
"sso.associated": "مرتبط مع",
"sso.not-associated": "انقر هنا لربط مع",

View File

@@ -11,6 +11,7 @@
"online-only": "المتصلون فقط",
"invite": "دعوة",
"prompt-email": "Emails:",
"groups-to-join": "Groups to be joined when invite is accepted:",
"invitation-email-sent": "تم إرسال دعوة بالبريد الإلكتروني إلى %1",
"user_list": "قائمة اﻷعضاء",
"recent_topics": "أحدث المواضيع",

View File

@@ -1,11 +1,6 @@
{
"post-cache": "Кеш за публикации",
"posts-in-cache": "Публикации в кеша",
"average-post-size": "Среден обем на публикация",
"length-to-max": "Дължина / максимум",
"percent-full": "Запълненост: %1%",
"post-cache-size": "Размер на кеша за публикации",
"items-in-cache": "Елементи в кеша",
"control-panel": "Контролен панел",
"update-settings": "Обновяване на настройките на кеша"
"items-in-cache": "Елементи в кеша"
}

View File

@@ -2,6 +2,7 @@
"forum-traffic": "Трафик на форума",
"page-views": "Преглеждания на страниците",
"unique-visitors": "Уникални посетители",
"logins": "Вписвания",
"new-users": "Нови потребители",
"posts": "Публикации",
"topics": "Теми",
@@ -29,6 +30,7 @@
"upgrade-available": "<p>Има нова версия (версия %1). Ако имате възможност, <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">обновете NodeBB</a>.</p>",
"prerelease-upgrade-available": "<p>Това е остаряла предварителна версия на NodeBB. Има нова версия (версия %1). Ако имате възможност, <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">обновете NodeBB</a>.</p>",
"prerelease-warning": "<p>Това е версия за <strong>предварителен преглед</strong> на NodeBB. Възможно е да има неочаквани неизправности. <i class=\"fa fa-exclamation-triangle\"></i></p>",
"fallback-emailer-not-found": "Не е намерен резервен изпращач на е-поща",
"running-in-development": "<span>Форумът работи в режим за разработчици, така че може да бъде уязвим. Моля, свържете се със системния си администратор.</span>",
"latest-lookup-failed": "<p>Не може да бъде извършена проверка за последната налична версия на NodeBB</p>",
@@ -75,5 +77,12 @@
"graphs.registered-users": "Регистрирани потребители",
"graphs.anonymous-users": "Анонимни потребители",
"last-restarted-by": "Последно рестартиране от",
"no-users-browsing": "Няма разглеждащи потребители"
"no-users-browsing": "Няма разглеждащи потребители",
"back-to-dashboard": "Назад към таблото",
"details.no-users": "В избрания период не са се регистрирали нови потребители",
"details.no-topics": "В избрания период не са публикувани нови теми",
"details.no-logins": "В избрания период не са отчетени вписвания",
"details.logins-static": "NodeBB запазва данни за сесията в продължение на %1 дни, така че в следната таблица могат да се видят само последните активни сесии",
"details.logins-login-time": "Време на вписване"
}

View File

@@ -39,7 +39,7 @@
"alert.upgraded": "Добавката е обновена",
"alert.installed": "Добавката е инсталирана",
"alert.uninstalled": "Добавката е деинсталирана",
"alert.activate-success": "Моля, рестартирайте NodeBB, за да включите тази добавка напълно.",
"alert.activate-success": "Моля, изградете повторно и презаредете NodeBB, за да активирате напълно тази добавка.",
"alert.deactivate-success": "Добавката е изключена успешно.",
"alert.upgrade-success": "Моля, изградете повторно и презаредете NodeBB, за да обновите тази добавка напълно.",
"alert.install-success": "Добавката е инсталирана успешно, моля, включете я",

View File

@@ -10,13 +10,16 @@
"custom-class": "Персонализиран клас",
"num-recent-replies": "Брой на скорошните отговори",
"ext-link": "Външна връзка",
"subcategories-per-page": "Брой подкатегории на страница",
"is-section": "Използване на тази категория като раздел",
"post-queue": "Опашка за публикации",
"tag-whitelist": "Списък от разрешени етикети",
"upload-image": "Качване на изображение",
"delete-image": "Премахване",
"category-image": "Изображение на категорията",
"parent-category": "Базова категория",
"optional-parent-category": "(Незадължително) Базова категория",
"top-level": "Най-горно ниво",
"parent-category-none": "(Няма)",
"copy-parent": "Копиране на базовата",
"copy-settings": "Копиране на настройките от",
@@ -29,6 +32,8 @@
"edit": "Редактиране",
"analytics": "Анализи",
"view-category": "Преглед на категорията",
"set-order": "Запазване на реда",
"set-order-help": "Задаването на позиция за категорията ще я премести на желаното място и ще промени местата на другите категории, ако е необходимо. Най-малкият възможен номер е 1, което ще постави категорията най-отгоре.",
"select-category": "Изберете категория",
"set-parent-category": "Задайте базова категория",
@@ -45,6 +50,8 @@
"privileges.no-users": "В тази категория няма правомощия за отделни потребители.",
"privileges.section-group": "Група",
"privileges.group-private": "Тази група е частна",
"privileges.inheritance-exception": "Тази група не наследява правомощията от групата на регистрираните потребители",
"privileges.banned-user-inheritance": "Блокираните потребители наследяват правомощията от групата на блокираните потребители",
"privileges.search-group": "Добавяне на група",
"privileges.copy-to-children": "Копиране в наследниците",
"privileges.copy-from-category": "Копиране от категория",

View File

@@ -4,11 +4,13 @@
"group-privileges": "Правомощия за групите",
"user-privileges": "Правомощия за потребителите",
"edit-privileges": "Редактиране на правомощията",
"select-clear-all": "Избиране/изчистване на всичко",
"chat": "Разговор",
"upload-images": "Качване на изображения",
"upload-files": "Качване на файлове",
"signature": "Подпис",
"ban": "Блокиране",
"invite": "Пращане на покана",
"search-content": "Търсене на съдържание",
"search-users": "Търсене на потребители",
"search-tags": "Търсене на етикети",
@@ -23,6 +25,7 @@
"access-topics": "Достъп до теми",
"create-topics": "Създаване на теми",
"reply-to-topics": "Отговаряне в теми",
"schedule-topics": "Насрочване на теми",
"tag-topics": "Поставяне на етикети на теми",
"edit-posts": "Редактиране на публикации",
"view-edit-history": "Преглед на историята на редакциите",
@@ -37,9 +40,13 @@
"admin-categories": "Категории",
"admin-privileges": "Правомощия",
"admin-users": "Потребители",
"admin-admins-mods": "Администратори и модератори",
"admin-groups": "Групи",
"admin-tags": "Етикети",
"admin-settings": "Настройки",
"alert.confirm-moderate": "<strong>Наистина ли искате да дадете правомощието за модериране на тази потребителска група?</strong> Тази група е публична и всеки може свободно да се присъедини към нея.",
"alert.confirm-admins-mods": "<strong>Наистина ли искате да дадете правото „Администратори и модератори“ на този потребител/група?</strong> Потребителите с това право могат да променят правомощията на други групи, <em>включително да им дават правото на супер администратори</em>",
"alert.confirm-save": "Моля, потвърдете желанието си да запазите тези правомощия",
"alert.saved": "Промените по правомощията са запазени и приложени",
"alert.confirm-discard": "Наистина ли искате да отхвърлите промените по правомощията?",

View File

@@ -2,7 +2,6 @@
"none": "Форумът все още няма теми с етикети.",
"bg-color": "Цвят на фона",
"text-color": "Цвят на текста",
"create-modify": "Създаване и редактиране на етикети",
"description": "Изберете етикетите чрез щракване или влачене. Използвайте <code>CTRL</code>, за да изберете няколко етикета.",
"create": "Създаване на етикет",
"modify": "Редактиране на етикети",
@@ -14,5 +13,6 @@
"alerts.editing": "Редактиране на етикет(и)",
"alerts.confirm-delete": "Наистина ли искате да изтриете избраните етикети?",
"alerts.update-success": "Етикетът е променен!"
"alerts.update-success": "Етикетът е променен!",
"reset-colors": "Възстановяване на стандартните цветовете"
}

View File

@@ -1,6 +1,6 @@
{
"users": "Потребители",
"edit": "Редактиране",
"edit": "Действия",
"make-admin": "Даване на администраторски права",
"remove-admin": "Отнемане на администраторски права",
"validate-email": "Проверка на е-пощата",
@@ -47,6 +47,7 @@
"users.uid": "потр. ид.",
"users.username": "потребителско име",
"users.email": "е-поща",
"users.ip": "IP адрес",
"users.postcount": "брой публикации",
"users.reputation": "репутация",
"users.flags": "доклади",
@@ -102,5 +103,7 @@
"alerts.prompt-email": "Е-пощи: ",
"alerts.email-sent-to": "Беше изпратено е-писмо за потвърждение до %1",
"alerts.x-users-found": "Намерени потребители: %1 (%2 секунди)"
"alerts.x-users-found": "Намерени потребители: %1 (%2 секунди)",
"export-users-started": "Изнасяне на потребителите във формат „csv“… Това може да отнеме известно време. Ще получите известие, когато е готово.",
"export-users-completed": "Потребителите са изнесени във формат „csv“, щракнете за сваляне."
}

View File

@@ -1,5 +1,9 @@
{
"dashboard": "Табло",
"section-dashboard": "Табла",
"dashboard/overview": "Общ преглед",
"dashboard/logins": "Вписвания",
"dashboard/users": "Потребители",
"dashboard/topics": "Теми",
"section-general": "Общи",
"section-manage": "Управление",
@@ -31,6 +35,7 @@
"settings/pagination": "Странициране",
"settings/tags": "Етикети",
"settings/notifications": "Известия",
"settings/api": "Достъп чрез ППИ",
"settings/sounds": "Звуци",
"settings/social": "Обществени",
"settings/cookies": "Бисквитки",

View File

@@ -36,5 +36,8 @@
"analytics.settings": "Настройки за анализите",
"analytics.max-cache": "Макс. стойност на кеша за анализите",
"analytics.max-cache-help": "При инсталации с натоварен трафик, кешът може да бъде изразходен, ако има повече едновременни потребители, от колкото е максималната стойност на кеша. (Изисква рестартиране)"
"analytics.max-cache-help": "При инсталации с натоварен трафик, кешът може да бъде изразходен, ако има повече едновременни потребители, от колкото е максималната стойност на кеша. (Изисква рестартиране)",
"compression.settings": "Настройки за компресирането",
"compression.enable": "Включване на компресирането",
"compression.help": "Тази настройка включва компресирането чрез „gzip“. За натоварени уеб сайтове най-добрият начин за използване на компресия е тя да се случва на нивото на обратния сървър-посредник (reverse proxy). Но с цел тестване, можете да го включите и тук."
}

View File

@@ -0,0 +1,16 @@
{
"tokens": "Кодове",
"settings": "Настройки",
"lead-text": "На тази страница можете да настроите достъпа до ППИ за писане в NodeBB.",
"intro": "По подразбиране ППИ за писане удостоверява потребителите чрез бисквитката им за сесията, но NodeBB поддържа и удостоверяване чрез метода „Bearer“, използвайки кодовете от тази страница.",
"docs": "Щракнете тук за достъп до пълната документация на ППИ",
"require-https": "Ползването на ППИ да работи само чрез HTTPS",
"require-https-caveat": "<strong>Забележка</strong>: В някои случаи, когато се ползват програми за балансиране на натоварването, е възможно заявките към NodeBB да се препращат чрез HTTP тогава тази настройка трябва да остане изключена.",
"uid": "Потребителски ИД",
"uid-help-text": "Посочете потребителски ИД, който да бъде свързан с този код. Ако ИД е <code>0</code>, това ще се счита за <em>главен</em> код, който може да приема идентичността на всеки от другите потребители чрез параметъра <code>_uid</code>",
"description": "Описание",
"no-description": "Няма описание.",
"token-on-save": "Кодът ще бъде създаден след като данните бъдат запазени"
}

View File

@@ -4,7 +4,7 @@
"address-help": "Следният адрес на е-поща е този, който получателят ще види в полетата „От“ и “Отговор до“.",
"from": "Име за полето „От“",
"from-help": "Името на изпращача, което да бъде показано в е-писмото.",
"smtp-transport": "Транспорт чрез SMTP",
"smtp-transport.enabled": "Използване на външен сървър за е-поща за изпращане на е-писма",
"smtp-transport-help": "Можете да изберете от списък от познати услуги, или да въведете такава ръчно.",
@@ -35,5 +35,7 @@
"subscriptions": "Резюмета по е-поща",
"subscriptions.disable": "Изключване на резюметата по е-пощата",
"subscriptions.hour": "Време за разпращане",
"subscriptions.hour-help": "Моля, въведете число, представляващо часа, в който да се разпращат е-писма с подготвеното резюме (напр.. <code>0</code> за полунощ, <code>17</code> за 5 следобед). Имайте предвид, че този час е според часовата зона на сървъра и може да не съвпада с часовника на системата Ви.<br /> Приблизителното време на сървъра е: <span id=\"serverTime\"></span><br /> Изпращането на следващия ежедневен бюлетин е планирано за <span id=\"nextDigestTime\"></span>"
"subscriptions.hour-help": "Моля, въведете число, представляващо часа, в който да се разпращат е-писма с подготвеното резюме (напр.. <code>0</code> за полунощ, <code>17</code> за 5 следобед). Имайте предвид, че този час е според часовата зона на сървъра и може да не съвпада с часовника на системата Ви.<br /> Приблизителното време на сървъра е: <span id=\"serverTime\"></span><br /> Изпращането на следващия ежедневен бюлетин е планирано за <span id=\"nextDigestTime\"></span>",
"notifications.settings": "Настройки за известията по е-поща",
"notifications.remove-images": "Премахване на изображенията от известията по е-поща"
}

View File

@@ -40,5 +40,8 @@
"site-colors": "Мета-данни за цвета на уеб сайта",
"theme-color": "Цвят на темата",
"background-color": "Фонов цвят",
"background-color-help": "Цвят, който да се използва като фон за началния екран, когато уеб сайтът е инсталиран като приложение"
"background-color-help": "Цвят, който да се използва като фон за началния екран, когато уеб сайтът е инсталиран като приложение",
"undo-timeout": "Време за отмяна",
"undo-timeout-help": "Някои действия, като например преместването на теми, могат да бъдат отменени от модератора в рамките на определено време. Задайте 0, за да забраните изцяло отменянето.",
"topic-tools": "Инструменти за темите"
}

View File

@@ -1,5 +1,7 @@
{
"handles": "Имена за гостите",
"settings": "Настройки",
"handles.enabled": "Позволяване на имената за гостите",
"handles.enabled-help": "Тази възможност предоставя ново поле, което позволява на гостите да си изберат име, което да се използва за всяка публикация, която правят. Ако е изключено, всички те просто ще имат името „Гост“."
"handles.enabled-help": "Тази възможност предоставя ново поле, което позволява на гостите да си изберат име, което да се използва за всяка публикация, която правят. Ако е изключено, всички те просто ще имат името „Гост“.",
"topic-views.enabled": "Гостите да допринасят за броя на преглеждания на темите",
"reply-notifications.enabled": "Гостите да могат да предизвикват изпращането на известия за отговорите си"
}

View File

@@ -1,10 +1,12 @@
{
"pagination": "Настройки за страницирането",
"enable": "Разделяне на темите и публикациите на страници, вместо да се превърта безкрайно.",
"posts": "Странициране в публикациите",
"topics": "Странициране в темите",
"posts-per-page": "Публикации на страница",
"max-posts-per-page": "Максимален брой публикации на страница",
"categories": "Странициране на категориите",
"topics-per-page": "Теми на страница",
"max-topics-per-page": "Максимален брой теми на страница"
"max-topics-per-page": "Максимален брой теми на страница",
"categories-per-page": "Брой категории на страница"
}

View File

@@ -34,6 +34,8 @@
"timestamp.cut-off-help": "Датите и времената ще бъдат показвани относително (напр. „преди 3 часа“ или „преди 5 дни“), и преведени на множество\n\\t\\t\\t\\t\\tезици. След определено време, този текст ще започне да показва самите дата и час, според езика на потребителя\n\\t\\t\\t\\t\\t(напр. „5 ноември 2016 15:30“).<br /><em>(По подразбиране: <code>30</code>, тоест един месец). Ако зададете 0, винаги ще се изписват дати, а ако оставите полето празно, времето ще бъде винаги относително.</em>",
"timestamp.necro-threshold": "Мъртва граница (в дни)",
"timestamp.necro-threshold-help": "Между публикациите ще бъде показано съобщение, ако времето между тях е по-дълго от мъртвата граница. (По подразбиране: <code>7</code>, или една седмица). Задайте 0 за изключване.</em>",
"timestamp.topic-views-interval": "Интервал за увеличаване на броя на преглеждания на темите (в минути)",
"timestamp.topic-views-interval-help": "Броят на преглеждания на темите ще се увеличава веднъж на всеки Х минути, според тази настройка.",
"teaser": "Представителна публикация",
"teaser.last-post": "Последната &ndash; Показване на последната публикация, или първоначалната такава, ако няма отговори.",
"teaser.last-reply": "Последната &ndash; Показване на последния отговор, или „Няма отговори“, ако все още няма такива.",

View File

@@ -16,5 +16,7 @@
"flags": "Настройки за докладите",
"flags.limit-per-target": "Максимален брой докладвания на едно и също нещо",
"flags.limit-per-target-placeholder": "По подразбиране: 0"
"flags.limit-per-target-placeholder": "По подразбиране: 0",
"flags.limit-per-target-help": "Когато публикация или потребител бъде докладван няколко пъти, това се добавя към един общ доклад. Задайте на тази настройка стойност по-голяма от нула, за да ограничите броя на докладванията, които могат да бъдат натрупани към една публикация или потребител.",
"flags.auto-resolve-on-ban": "Автоматично премахване на всички доклади за потребител, когато той бъде блокиран"
}

View File

@@ -1,6 +1,8 @@
{
"tag": "Настройки за етикетите",
"link-to-manage": "Управление на етикетите",
"system-tags": "Системни етикети",
"system-tags-help": "Само потребителите с по-високи правомощия ще могат да използват тези етикети.",
"min-per-topic": "Минимален брой етикети за тема",
"max-per-topic": "Максимален брой етикети за тема",
"min-length": "Минимална дължина на етикетите",

View File

@@ -21,6 +21,9 @@
"topic-thumb-size": "Размер на миниатюрите за темите",
"allowed-file-extensions": "Разрешени файлови разширения",
"allowed-file-extensions-help": "Въведете файловите разширения, разделени със запетаи (пример: <code>pdf,xls,doc</code>). Ако списъкът е празен, всички файлови разширения ще бъдат разрешени.",
"upload-limit-threshold": "Ограничаване на качванията на потребителите до:",
"upload-limit-threshold-per-minute": "За %1 минута",
"upload-limit-threshold-per-minutes": "За %1 минути",
"profile-avatars": "Профилни изображения",
"allow-profile-image-uploads": "Позволяване на потребителите да качват профилни изображения",
"convert-profile-image-png": "Превръщане на качените профилни изображения във формата „PNG“",

View File

@@ -16,6 +16,7 @@
"allow-account-deletion": "Позволяване на изтриването на профила",
"hide-fullname": "Скриване на пълното име от потребителите",
"hide-email": "Скриване на е-пощата от потребителите",
"show-fullname-as-displayname": "Показване на цялото име на потребителя, ако е налично",
"themes": "Теми",
"disable-user-skins": "Потребителите да не могат да избират собствен облик",
"account-protection": "Защита на акаунта",
@@ -43,6 +44,9 @@
"registration-type.disabled": "Без регистриране",
"registration-type.help": "Обикновена — Потребителите могат да се регистрират от страницата /register.<br/>\nСамо с покана — Потребителите могат да поканят други от страницата с <a href=\"%1/users\" target=\"_blank\">потребителите</a>.<br/>\nСамо с покана от администратор — Само администратори могат да канят други от страницата с <a href=\"%1/users\" target=\"_blank\">потребителите</a> и от страниците за <a href=\"%1/admin/manage/users\">управление на потребителите</a>.<br/>\nБез регистриране — Потребителите не се регистрират.<br/>",
"registration-approval-type.help": "Обикновена — Потребителите се регистрират на момента.<br/>\nОдобрена от администратор — Потребителските регистрации се поставят в <a href=\"%1/admin/manage/registration\">опашка за одобрение</a>, която администраторите преглеждат.<br/>\nОдобрена от администратор по IP адрес — Новите потребители се регистрират по обикновения начин, а онези, от чиито IP адрес вече са се регистрирали други акаунти, се нуждаят от одобрението на администратор.<br/>",
"registration-queue-auto-approve-time": "Време за автоматично одобрение",
"registration-queue-auto-approve-time-help": "Брой часове преди потребител да бъде одобрен автоматично. 0 = изключено.",
"registration-queue-show-average-time": "Средното време за одобрение на нов потребител да се показва на потребителите",
"registration.max-invites": "Максимален брой покани на потребител",
"max-invites": "Максимален брой покани на потребител",
"max-invites-help": "0 = няма ограничение. Администраторите могат да разпращат неограничен брой покани.<br>Тази стойност се използва, само ако е избран режимът „Само с покана“.",
@@ -62,6 +66,7 @@
"restrict-chat": "Разрешаване на съобщенията само от потребители, които следвам",
"outgoing-new-tab": "Отваряне на външните връзки в нов подпрозорец",
"topic-search": "Включване на търсенето в темите",
"update-url-with-post-index": "Обновяване на адресната лента с номера на публикацията по време на разглеждане на темите",
"digest-freq": "Абониране за резюмета",
"digest-freq.off": "Изключено",
"digest-freq.daily": "Ежедневно",

View File

@@ -18,5 +18,6 @@
"watching.message": "Вече следите новите неща в категорията и подкатегориите ѝ",
"notwatching.message": "Вече не следите новите неща в категорията и подкатегориите ѝ",
"ignoring.message": "Вече пренебрегвате новите неща в тази категория и всички нейни подкатегории",
"watched-categories": "Следени категории"
"watched-categories": "Следени категории",
"x-more-categories": "Още %1 категории"
}

View File

@@ -9,6 +9,7 @@
"invalid-tid": "Грешен идентификатор на тема",
"invalid-pid": "Грешен идентификатор на публикация",
"invalid-uid": "Грешен идентификатор на потребител",
"invalid-date": "Трябва да бъде посочена правилна дата",
"invalid-username": "Грешно потребителско име",
"invalid-email": "Грешна е-поща",
"invalid-fullname": "Грешно пълно име",
@@ -21,6 +22,7 @@
"invalid-username-or-password": "Моля, въведете потребителско име и парола",
"invalid-search-term": "Грешен текст за търсене",
"invalid-url": "Грешен адрес",
"invalid-event": "Грешно събитие: %1",
"local-login-disabled": "Системата за местно вписване е изключена за непривилегированите акаунти.",
"csrf-invalid": "Не успяхме да Ви впишем, най-вероятно защото сесията Ви е изтекла. Моля, опитайте отново",
"invalid-pagination-value": "Грешен номер на странициране, трябва да бъде между %1 и %2",
@@ -39,6 +41,7 @@
"username-too-long": "Потребителското име е твърде дълго",
"password-too-long": "Паролата е твърде дълга",
"reset-rate-limited": "Твърде много подновявания на паролата (има ограничение на честотата)",
"reset-same-password": "Моля, използвайте парола, която е различна от текущата",
"user-banned": "Потребителят е блокиран",
"user-banned-reason": "За съжаление, този акаунт е блокиран (Причина: %1)",
"user-banned-reason-until": "За съжаление, този акаунт е блокиран до %1 (Причина: %2)",
@@ -81,15 +84,26 @@
"tag-too-long": "Моля, въведете по-кратък етикет. Етикетите трябва да съдържат не повече от %1 символ(а)",
"not-enough-tags": "Недостатъчно етикети. Темите трябва да имат поне %1 етикет(а)",
"too-many-tags": "Твърде много етикети. Темите не могат да имат повече от %1 етикет(а)",
"cant-use-system-tag": "Не можете да използвате този системен етикет.",
"cant-remove-system-tag": "Не можете да премахнете този системен етикет.",
"still-uploading": "Моля, изчакайте качването да приключи.",
"file-too-big": "Максималният разрешен размер на файл е %1 КБ моля, качете по-малък файл",
"guest-upload-disabled": "Качването не е разрешено за гости",
"cors-error": "Изображението не може да бъде качено поради неправилни настройки на CORS",
"upload-ratelimit-reached": "Качили сте твърде много файлове наведнъж. Моля, опитайте отново по-късно.",
"scheduling-to-past": "Изберете дата в бъдещето.",
"invalid-schedule-date": "Въведете правилна дата и час.",
"cant-pin-scheduled": "Насрочените теми не могат да бъдат закачени или разкачени.",
"cant-merge-scheduled": "Насрочените теми не могат да бъдат сливани.",
"cant-move-posts-to-scheduled": "Публикации не могат да бъдат премествани в насрочена тема.",
"cant-move-from-scheduled-to-existing": "Публикации от насрочена тема не могат да бъдат премествани в съществуваща тема.",
"already-bookmarked": "Вече имате отметка към тази публикация",
"already-unbookmarked": "Вече сте премахнали отметката си от тази публикация",
"cant-ban-other-admins": "Не можете да блокирате другите администратори!",
"cant-remove-last-admin": "Вие сте единственият администратор. Добавете друг потребител като администратор, преди да премахнете себе си като администратор",
"account-deletion-disabled": "Изтриването на акаунт е забранено",
"cant-delete-admin": "Премахнете администраторските права от този акаунт, преди да го изтриете.",
"already-deleting": "Вече е в процес на изтриване",
"invalid-image": "Грешно изображение",
"invalid-image-type": "Грешен тип на изображение. Позволените типове са: %1",
"invalid-image-extension": "Грешно разширение на изображението",
@@ -129,6 +143,7 @@
"chat-delete-duration-expired": "Можете да изтривате съобщенията си в разговорите до %1 секунда/и след пускането им",
"chat-deleted-already": "Това съобщение вече е изтрито.",
"chat-restored-already": "Това съобщение вече е възстановено.",
"chat-room-does-not-exist": "Стаята за разговори не съществува.",
"already-voting-for-this-post": "Вече сте дали глас за тази публикация.",
"reputation-system-disabled": "Системата за репутация е изключена.",
"downvoting-disabled": "Отрицателното гласуване е изключено",
@@ -143,6 +158,7 @@
"user-already-flagged": "Вече сте докладвали този потребител",
"post-flagged-too-many-times": "Тази публикация вече е докладвана от други хора",
"user-flagged-too-many-times": "Този потребител вече е докладван от други хора",
"cant-flag-privileged": "Не можете да докладвате профилите или съдържанието от потребители с по-високи правомощия (модератори, глобални модератори, администратори)",
"self-vote": "Не можете да гласувате за собствената си публикация",
"too-many-downvotes-today": "Можете да гласувате отрицателно не повече от %1 пъти на ден",
"too-many-downvotes-today-user": "Можете да гласувате отрицателно за потребител не повече от %1 пъти на ден",
@@ -159,8 +175,10 @@
"cant-kick-self": "Не можете да изритате себе си от групата",
"no-users-selected": "Няма избран(и) потребител(и)",
"invalid-home-page-route": "Грешен път към началната страница",
"invalid-session": "Несъответствие в сесията",
"invalid-session-text": "Изглежда сесията Ви на вписване вече е изтекла или не съответства на сървъра. Моля, опреснете страницата.",
"invalid-session": "Изтекла сесия",
"invalid-session-text": "Изглежда сесията Ви на вписване вече е изтекла. Моля, опреснете страницата.",
"session-mismatch": "Несъответствие в сесията",
"session-mismatch-text": "Изглежда сесията Ви на вписване вече не съответства на сървъра. Моля, опреснете страницата.",
"no-topics-selected": "Няма избрани теми!",
"cant-move-to-same-topic": "Публикацията не може да бъде преместена в същата тема!",
"cant-move-topic-to-same-category": "Темата не може да бъде преместена в същата категория!",
@@ -170,5 +188,19 @@
"already-blocked": "Този потребител вече е блокиран",
"already-unblocked": "Този потребител вече е отблокиран",
"no-connection": "Изглежда има проблем с връзката Ви с Интернет",
"plugin-not-whitelisted": "Добавката не може да бъде инсталирана само добавки, одобрени от пакетния мениджър на NodeBB могат да бъдат инсталирани чрез ACP"
"socket-reconnect-failed": "В момента сървърът е недостъпен. Натиснете тук, за да опитате отново, или опитайте пак по-късно.",
"plugin-not-whitelisted": "Добавката не може да бъде инсталирана само добавки, одобрени от пакетния мениджър на NodeBB могат да бъдат инсталирани чрез ACP",
"topic-event-unrecognized": "Събитието „%1“ на темата е неизвестно",
"cant-set-child-as-parent": "Дъщерна категория не може да се зададе като базова такава",
"cant-set-self-as-parent": "Категорията не може да се зададе като базова категория на себе си",
"api.master-token-no-uid": "Беше получен главен код без съответстващо поле `_uid` в тялото на заявката",
"api.400": "Нещо не беше наред с данните в заявката, които подадохте.",
"api.401": "Няма намерена сесия. Моля, впишете се и опитайте отново.",
"api.403": "Нямате право да изпълните тази команда",
"api.404": "Неправилна команда към ППИ",
"api.426": "Заявките към ППИ за писане изискват HTTPS. Изпратете отново заявката си чрез HTTPS",
"api.429": "Направили сте твърде много заявки. Моля, опитайте отново по-късно.",
"api.500": "При обработката на заявката Ви възникна неочаквана грешка.",
"api.501": "Пътят, който се опитвате да извикате, все още не съществува. Моля, опитайте отново утре.",
"api.503": "Пътят, който се опитвате да извикате, в момента не е достъпен, поради настройките на сървъра."
}

View File

@@ -6,6 +6,7 @@
"assignee": "Назначен",
"update": "Обновяване",
"updated": "Обновено",
"resolved": "Разрешен",
"target-purged": "Съдържанието, за което се отнася този доклад, е било изтрито и вече не е налично.",
"graph-label": "Дневни етикети",
@@ -26,6 +27,7 @@
"filter-cid-all": "Всички категории",
"apply-filters": "Прилагане на филтрите",
"more-filters": "Още филтри",
"fewer-filters": "По-малко филтри",
"quick-actions": "Бързи действия",
"flagged-user": "Докладван потребител",
@@ -67,7 +69,7 @@
"sort-upvotes": "Най-много положителни гласове",
"sort-replies": "Най-много отговори",
"modal-title": "Докладване на неуместно съдържание",
"modal-title": "Докладване на съдържанието",
"modal-body": "Моля, посочете причината за докладването на %1 %2 за преглед. Или използвайте някой от бутоните за бързо докладване, ако са приложими.",
"modal-reason-spam": "Спам",
"modal-reason-offensive": "Обидно",
@@ -81,5 +83,6 @@
"bulk-actions": "Групови действия",
"bulk-resolve": "Разрешаване на доклад(и)",
"bulk-success": "%1 доклада са обновени"
"bulk-success": "%1 доклада са обновени",
"flagged-timeago-readable": "Докладвано <span class=\"timeago\" title=\"%1\"></span> (%2)"
}

View File

@@ -46,7 +46,9 @@
"alert.success": "Готово",
"alert.error": "Грешка",
"alert.banned": "Блокиран",
"alert.banned.message": "Вие току-що бяхте блокиран. Сега ще излезете от системата.",
"alert.banned.message": "Вие току-що бяхте блокиран. Достъпът Ви до системата е ограничен.",
"alert.unbanned": "Деблокиран",
"alert.unbanned.message": "Блокирането Ви беше премахнато",
"alert.unfollow": "Вие вече не следвате %1!",
"alert.follow": "Вие следвате %1!",
"users": "Потребители",
@@ -93,6 +95,8 @@
"guest": "Гост",
"guests": "Гости",
"former_user": "Бивш потребител",
"system-user": "Системен",
"unknown-user": "Непознат потребител",
"updated.title": "Форумът е актуализиран",
"updated.message": "Този форум току-що беше актуализиран до най-новата версия. Натиснете тук, за да опресните страницата.",
"privacy": "Поверителност",

View File

@@ -35,6 +35,7 @@
"details.member_count": "Брой на членовете",
"details.creation_date": "Дата на създаване",
"details.description": "Описание",
"details.member-post-cids": "Идентификатори на категории, от които да се показват публикации",
"details.badge_preview": "Преглед на емблемата",
"details.change_icon": "Промяна на иконката",
"details.change_label_colour": "Промяна на цвета на етикета",

View File

@@ -8,5 +8,6 @@
"failed_login_attempt": "Неуспешно вписване",
"login_successful": "Вие влязохте успешно!",
"dont_have_account": "Нямате регистрация?",
"logged-out-due-to-inactivity": "Вие излязохте автоматично от администраторския контролен панел, поради бездействие."
"logged-out-due-to-inactivity": "Вие излязохте автоматично от администраторския контролен панел, поради бездействие.",
"caps-lock-enabled": "Главните букви са включени"
}

View File

@@ -60,10 +60,21 @@
"composer.zen_mode": "Режим Дзен",
"composer.select_category": "Изберете категория",
"composer.textarea.placeholder": "Въведете съдържанието на публикацията си тук. Можете също да влачите и пускате снимки.",
"composer.schedule-for": "Насрочване на тема за",
"composer.schedule-date": "Дата",
"composer.schedule-time": "Час",
"composer.cancel-scheduling": "Отмяна на насрочването",
"composer.set-schedule-date": "Задаване на дата",
"bootbox.ok": "Добре",
"bootbox.cancel": "Отказ",
"bootbox.confirm": "Потвърждаване",
"cover.dragging_title": "Наместване на снимката",
"cover.dragging_message": "Преместете снимката на желаното положение и натиснете „Запазване“",
"cover.saved": "Снимката и мястото ѝ бяха запазени"
"cover.saved": "Снимката и мястото ѝ бяха запазени",
"thumbs.modal.title": "Управление на иконките на темите",
"thumbs.modal.no-thumbs": "Няма намерени иконки.",
"thumbs.modal.resize-note": "<strong>Забележка</strong>: Този форум е настроен да преоразмерява иконките на темите до максимална ширина от %1px",
"thumbs.modal.add": "Добавяне на иконка",
"thumbs.modal.remove": "Премахване на иконката",
"thumbs.modal.confirm-remove": "Наистина ли искате да премахнете тази иконка?"
}

View File

@@ -14,6 +14,7 @@
"topics": "Теми",
"replies": "Отговори",
"chat": "Разговори",
"group-chat": "Групови разговори",
"follows": "Следвания",
"upvote": "Положителни гласове",
"new-flags": "Нови докладвания",
@@ -46,6 +47,9 @@
"profile-exported": "Профилът на <strong>%1</strong> е изнесен, щракнете за сваляне",
"posts-exported": "Публикациите на <strong>%1</strong> са изнесени, щракнете за сваляне",
"uploads-exported": "Качванията на <strong>%1</strong> са изнесени, щракнете за сваляне",
"users-csv-exported": "Потребителите са изнесени във формат „csv“, щракнете за сваляне",
"post-queue-accepted": "Вашата публикация, която чакаше в опашката, беше приета. Натиснете тук, за да я видите.",
"post-queue-rejected": "Вашата публикация, която чакаше в опашката, беше отхвърлена.",
"email-confirmed": "Е-пощата беше потвърдена",
"email-confirmed-message": "Благодарим Ви, че потвърдихте е-пощата си. Акаунтът Ви е вече напълно активиран.",
"email-confirm-error-message": "Възникна проблем при потвърждаването на е-пощата Ви. Може кодът да е грешен или давността му да е изтекла.",
@@ -60,7 +64,9 @@
"notificationType_post-edit": "Когато бъде редактирана публикация в тема, която следите",
"notificationType_follow": "Когато някой започне да Ви следва",
"notificationType_new-chat": "Когато получите съобщение в разговор",
"notificationType_new-group-chat": "Когато получите съобщение в групов разговор",
"notificationType_group-invite": "Когато получите покана за група",
"notificationType_group-leave": "Когато потребител напусне групата Ви",
"notificationType_group-request-membership": "Когато някой поиска да се включи в група, на която Вие сте собственик",
"notificationType_new-register": "Когато някой бъде добавен в опашката за регистрация",
"notificationType_post-queue": "Когато бъде добавена нова публикация в опашката",

View File

@@ -1,3 +1,4 @@
{
"post-queue": "Опашка за публикации",
"description": "Няма публикации в опашката. <br> За да включите тази функционалност, идете в <a href=\"%1\">Настройки &rarr; Публикуване &rarr; Опашка за публикации</a> и включете <strong>Опашката за публикации</strong>.",
@@ -7,5 +8,11 @@
"content": "Съдържание",
"posted": "Публикувано",
"reply-to": "Отговор на „%1“",
"content-editable": "Можете да щракнете върху всеки от текстовете, за да ги редактирате преди публикуване."
"content-editable": "Щракнете върху съдържание, за да го редактирате",
"category-editable": "Щракнете върху категория, за да я редактирате",
"title-editable": "Щракнете върху заглавие, за да го редактирате",
"reply": "Отговор",
"topic": "Тема",
"accept": "Приемане",
"reject": "Отказване"
}

View File

@@ -18,9 +18,14 @@
"agree_to_terms_of_use": "Съгласен съм с условията за ползване",
"terms_of_use_error": "Трябва да се съгласите с условията за ползване",
"registration-added-to-queue": "Вашата регистрация беше добавена в опашката за одобрение. Ще получите е-писмо, когато тя бъде одобрена от администратор.",
"registration-queue-average-time": "Средното време за одобрение на нови членове е %1 часа и %2 минути.",
"registration-queue-auto-approve-time": "Членството Ви в този форум ще бъде напълно активирано след около %1 часа.",
"interstitial.intro": "Нуждаем се от малко допълнителна информация, преди да можем да създадем акаунта Ви.",
"interstitial.errors-found": "Не можем да завършим Вашата регистрация:",
"gdpr_agree_data": "Съгласявам се това личната ми информация да се съхранява и обработва от този уеб сайт.",
"gdpr_agree_email": "Съгласявам се да получавам е-писма с резюмета и известия от този уеб сайт.",
"gdpr_consent_denied": "Трябва да се съгласите с това уеб сайтът да събира/обработва информацията Ви, и да Ви изпраща е-писма."
"gdpr_consent_denied": "Трябва да се съгласите с това уеб сайтът да събира/обработва информацията Ви, и да Ви изпраща е-писма.",
"invite.error-admin-only": "Директното регистриране е изключено. Моля, свържете се с администратор за повече подробности.",
"invite.error-invite-only": "Директното регистриране е изключено. Трябва да получите покана от вече регистриран потребител, за да имате достъп до този форум.",
"invite.error-invalid-data": "Получените данни за регистрация не съответстват на нашите записи. Моля, свържете се с администратор за повече подробности."
}

View File

@@ -1,7 +1,7 @@
{
"success": "Готово",
"topic-post": "Вие публикувахте успешно.",
"post-queued": "Публикацията Ви е добавена в опашката за одобрение.",
"post-queued": "Публикацията Ви е поставена в опашка за одобрение. Ще получите известие, когато тя бъде одобрена или отхвърлена.",
"authentication-successful": "Успешно удостоверяване",
"settings-saved": "Настройките са запазени!"
}

View File

@@ -1,5 +1,6 @@
{
"topic": "Тема",
"title": "Заглавие",
"no_topics_found": "Няма намерени теми!",
"no_posts_found": "Няма намерени публикации!",
"post_is_deleted": "Публикацията е изтрита!",
@@ -29,15 +30,26 @@
"tools": "Инструменти",
"locked": "Заключена",
"pinned": "Закачена",
"pinned-with-expiry": "Закачена до %1",
"scheduled": "Насрочена",
"moved": "Преместена",
"moved-from": "Преместена от %1",
"copy-ip": "Копиране на IP адреса",
"ban-ip": "Блокиране на IP адреса",
"view-history": "История на редакциите",
"locked-by": "Заключена от",
"unlocked-by": "Отключена от",
"pinned-by": "Закачена от",
"unpinned-by": "Откачена от",
"deleted-by": "Изтрита от",
"restored-by": "Възстановена от",
"queued-by": "Публикацията е добавена в опашката за одобрение &rarr;",
"bookmark_instructions": "Щракнете тук, за да се върнете към последно прочетената публикация в тази тема.",
"flag-post": "Докладване на тази публикация",
"flag-user": "Докладване на този потребител",
"already-flagged": "Вече е докладвано",
"view-flag-report": "Преглед на доклада",
"resolve-flag": "Разрешаване на доклада",
"merged_message": "Тази тема беше слята в <a href=\"%1\">%2</a>",
"deleted_message": "Темата е изтрита. Само потребители с права за управление на темите могат да я видят.",
"following_topic.message": "Вече ще получавате известия когато някой публикува коментар в тази тема.",
@@ -88,6 +100,8 @@
"post_delete_confirm": "Наистина ли искате да изтриете тази публикация?",
"post_restore_confirm": "Наистина ли искате да възстановите тази публикация?",
"post_purge_confirm": "Наистина ли искате да изчистите тази публикация?",
"pin-modal-expiry": "Дата на давност",
"pin-modal-help": "Ако желаете, тук можете да посочите дата на давност за закачените теми. Можете и да оставите полето празно, при което темата ще остане закачена, докато не бъде откачена ръчно.",
"load_categories": "Зареждане на категориите",
"confirm_move": "Преместване",
"confirm_fork": "Разделяне",
@@ -100,6 +114,7 @@
"move_post": "Преместване на публикацията",
"post_moved": "Публикацията беше преместена!",
"fork_topic": "Разделяне на темата",
"enter-new-topic-title": "Въведете заглавието на новата тема",
"fork_topic_instruction": "Натиснете публикациите, които искате да отделите",
"fork_no_pids": "Няма избрани публикации!",
"no-posts-selected": "Няма избрани публикации!",
@@ -113,14 +128,17 @@
"merge-options": "Настройки за сливането",
"merge-select-main-topic": "Изберете основната тема",
"merge-new-title-for-topic": "Ново заглавие за темата",
"move_posts_instruction": "Натиснете публикациите, които искате да преместите, а след това идете в желаната тема и натиснете „Преместване“.",
"topic-id": "Ид. на темата",
"move_posts_instruction": "Щракнете върху публикациите, които искате да преместите, а след това въведете ид. на тема или отидете в целевата тема",
"change_owner_instruction": "Натиснете публикациите, които искате да прехвърлите на друг потребител",
"composer.title_placeholder": "Въведете заглавието на темата си тук...",
"composer.handle_placeholder": "Въведете името тук",
"composer.discard": "Отхвърляне",
"composer.submit": "Публикуване",
"composer.schedule": "Насрочване",
"composer.replying_to": "Отговор на %1",
"composer.new_topic": "Нова тема",
"composer.editing": "Редактиране",
"composer.uploading": "качване...",
"composer.thumb_url_label": "Поставете адреса на иконка за темата",
"composer.thumb_title": "Добавете иконка към тази тема",
@@ -148,8 +166,12 @@
"diffs.current-revision": "текуща версия",
"diffs.original-revision": "оригинална версия",
"diffs.restore": "Възстановяване на тази версия",
"diffs.restore-description": "Към историята на редакциите на тази публикация ще бъде добавена нова версия.",
"diffs.restore-description": "След възстановяването към историята на редакциите на тази публикация ще бъде добавена нова версия.",
"diffs.post-restored": "Публикацията е възстановена успешно до по-ранна версия",
"diffs.delete": "Изтриване на тази версия ",
"diffs.deleted": "Версията е изтрита",
"timeago_later": "%1 по-късно",
"timeago_earlier": "%1 по-рано"
"timeago_earlier": "%1 по-рано",
"first-post": "Първа публикация",
"last-post": "Последна публикация"
}

View File

@@ -84,6 +84,7 @@
"remove_cover_picture_confirm": "Наистина ли искате да премахнете снимката на корицата?",
"crop_picture": "Орязване на снимката",
"upload_cropped_picture": "Орязване и качване",
"avatar-background-colour": "Фонов цвят за изображението",
"settings": "Настройки",
"show_email": "Да се показва е-пощата ми",
"show_fullname": "Да се показва цялото ми име",
@@ -123,6 +124,7 @@
"open_links_in_new_tab": "Отваряне на външните връзки в нов подпрозорец",
"enable_topic_searching": "Включване на търсенето в темите",
"topic_search_help": "Ако е включено, търсенето в темата ще замени стандартното поведение на браузъра при търсене в страницата и ще Ви позволи да претърсвате цялата тема, а не само това, което се вижда на екрана",
"update_url_with_post_index": "Обновяване на адресната лента с номера на публикацията по време на разглеждане на темите",
"scroll_to_my_post": "След публикуване на отговор, да се показва новата публикация",
"follow_topics_you_reply_to": "Следене на темите, в които отговаряте",
"follow_topics_you_create": "Следене на темите, които създавате",
@@ -134,7 +136,7 @@
"homepage": "Начална страница",
"homepage_description": "Изберете страница, която да използвате като начална за форума, или „Нищо“, за да използвате тази по подразбиране.",
"custom_route": "Път до персонализираната начална страница",
"custom_route_help": "Въведете името на пътя тук, без наклонена черта пред него (пример: „recent“ или „popular“)",
"custom_route_help": "Въведете името на пътя тук, без наклонена черта пред него (пример: „recent“ или \"category/2/general-discussion\")",
"sso.title": "Услуги за еднократно вписване",
"sso.associated": "Свързан с",
"sso.not-associated": "Натиснете тук, за да свържете с",

View File

@@ -11,6 +11,7 @@
"online-only": "Само тези на линия",
"invite": "Канене",
"prompt-email": "Е-пощи:",
"groups-to-join": "Групи, в които да се присъедини след приемане на поканата:",
"invitation-email-sent": "Беше изпратено е-писмо за потвърждение до %1",
"user_list": "Списък от потребители",
"recent_topics": "Скорошни теми",

View File

@@ -1,11 +1,6 @@
{
"post-cache": "Post Cache",
"posts-in-cache": "Posts in Cache",
"average-post-size": "Average Post Size",
"length-to-max": "Length / Max",
"percent-full": "%1% Full",
"post-cache-size": "Post Cache Size",
"items-in-cache": "Items in Cache",
"control-panel": "Control Panel",
"update-settings": "Update Cache Settings"
"items-in-cache": "Items in Cache"
}

View File

@@ -2,6 +2,7 @@
"forum-traffic": "Forum Traffic",
"page-views": "Page Views",
"unique-visitors": "Unique Visitors",
"logins": "Logins",
"new-users": "New Users",
"posts": "Posts",
"topics": "Topics",
@@ -29,6 +30,7 @@
"upgrade-available": "<p>A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">upgrading your NodeBB</a>.</p>",
"prerelease-upgrade-available": "<p>This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/configuring/upgrade/\" target=\"_blank\">upgrading your NodeBB</a>.</p>",
"prerelease-warning": "<p>This is a <strong>pre-release</strong> version of NodeBB. Unintended bugs may occur. <i class=\"fa fa-exclamation-triangle\"></i></p>",
"fallback-emailer-not-found": "Fallback emailer not found!",
"running-in-development": "<span>Forum is running in development mode. The forum may be open to potential vulnerabilities; please contact your system administrator.</span>",
"latest-lookup-failed": "<p>Failed to look up latest available version of NodeBB</p>",
@@ -75,5 +77,12 @@
"graphs.registered-users": "Registered Users",
"graphs.anonymous-users": "Anonymous Users",
"last-restarted-by": "Last restarted by",
"no-users-browsing": "No users browsing"
"no-users-browsing": "No users browsing",
"back-to-dashboard": "Back to Dashboard",
"details.no-users": "No users have joined within the selected timeframe",
"details.no-topics": "No topics have been posted within the selected timeframe",
"details.no-logins": "No logins have been recorded within the selected timeframe",
"details.logins-static": "NodeBB only saves session data for %1 days, and so this table below will only show the most recently active sessions",
"details.logins-login-time": "Login Time"
}

View File

@@ -39,7 +39,7 @@
"alert.upgraded": "Plugin Upgraded",
"alert.installed": "Plugin Installed",
"alert.uninstalled": "Plugin Uninstalled",
"alert.activate-success": "Please restart your NodeBB to fully activate this plugin",
"alert.activate-success": "Please rebuild and restart your NodeBB to fully activate this plugin",
"alert.deactivate-success": "Plugin successfully deactivated",
"alert.upgrade-success": "Please rebuild and restart your NodeBB to fully upgrade this plugin.",
"alert.install-success": "Plugin successfully installed, please activate the plugin.",

View File

@@ -10,13 +10,16 @@
"custom-class": "Custom Class",
"num-recent-replies": "# of Recent Replies",
"ext-link": "External Link",
"subcategories-per-page": "Subcategories per page",
"is-section": "Treat this category as a section",
"post-queue": "Post queue",
"tag-whitelist": "Tag Whitelist",
"upload-image": "Upload Image",
"delete-image": "Remove",
"category-image": "Category Image",
"parent-category": "Parent Category",
"optional-parent-category": "(Optional) Parent Category",
"top-level": "Top Level",
"parent-category-none": "(None)",
"copy-parent": "Copy Parent",
"copy-settings": "Copy Settings From",
@@ -29,6 +32,8 @@
"edit": "Edit",
"analytics": "Analytics",
"view-category": "View category",
"set-order": "Set order",
"set-order-help": "Setting the order of the category will move this category to that order and update the order of other categories as necessary. Minimum order is 1 which puts the category at the top.",
"select-category": "Select Category",
"set-parent-category": "Set Parent Category",
@@ -45,6 +50,8 @@
"privileges.no-users": "No user-specific privileges in this category.",
"privileges.section-group": "Group",
"privileges.group-private": "This group is private",
"privileges.inheritance-exception": "This group does not inherit privileges from registered-users group",
"privileges.banned-user-inheritance": "Banned users inherit privileges from banned-users group",
"privileges.search-group": "Add Group",
"privileges.copy-to-children": "Copy to Children",
"privileges.copy-from-category": "Copy from Category",

View File

@@ -4,11 +4,13 @@
"group-privileges": "Group Privileges",
"user-privileges": "User Privileges",
"edit-privileges": "Edit Privileges",
"select-clear-all": "Select/Clear All",
"chat": "Chat",
"upload-images": "Upload Images",
"upload-files": "Upload Files",
"signature": "Signature",
"ban": "Ban",
"invite": "Invite",
"search-content": "Search Content",
"search-users": "Search Users",
"search-tags": "Search Tags",
@@ -23,6 +25,7 @@
"access-topics": "Access Topics",
"create-topics": "Create Topics",
"reply-to-topics": "Reply to Topics",
"schedule-topics": "Schedule Topics",
"tag-topics": "Tag Topics",
"edit-posts": "Edit Posts",
"view-edit-history": "View Edit History",
@@ -37,9 +40,13 @@
"admin-categories": "Categories",
"admin-privileges": "Privileges",
"admin-users": "Users",
"admin-admins-mods": "Admins &amp; Mods",
"admin-groups": "Groups",
"admin-tags": "Tags",
"admin-settings": "Settings",
"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the &quot;Admins &amp; Mods&quot; privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
"alert.confirm-save": "Please confirm your intention to save these privileges",
"alert.saved": "Privilege changes saved and applied",
"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",

View File

@@ -2,7 +2,6 @@
"none": "Your forum does not have any topics with tags yet.",
"bg-color": "Background Colour",
"text-color": "Text Colour",
"create-modify": "Create & Modify Tags",
"description": "Select tags by clicking or dragging, use <code>CTRL</code> to select multiple tags.",
"create": "Create Tag",
"modify": "Modify Tags",
@@ -14,5 +13,6 @@
"alerts.editing": "Editing tag(s)",
"alerts.confirm-delete": "Do you want to delete the selected tags?",
"alerts.update-success": "Tag Updated!"
"alerts.update-success": "Tag Updated!",
"reset-colors": "Reset colors"
}

View File

@@ -1,6 +1,6 @@
{
"users": "Users",
"edit": "Edit",
"edit": "Actions",
"make-admin": "Make Admin",
"remove-admin": "Remove Admin",
"validate-email": "Validate Email",
@@ -47,6 +47,7 @@
"users.uid": "uid",
"users.username": "username",
"users.email": "email",
"users.ip": "IP",
"users.postcount": "postcount",
"users.reputation": "reputation",
"users.flags": "flags",
@@ -102,5 +103,7 @@
"alerts.prompt-email": "Emails: ",
"alerts.email-sent-to": "An invitation email has been sent to %1",
"alerts.x-users-found": "%1 user(s) found, (%2 seconds)"
"alerts.x-users-found": "%1 user(s) found, (%2 seconds)",
"export-users-started": "Exporting users as csv, this might take a while. You will receive a notification when it is complete.",
"export-users-completed": "Users exported as csv, click here to download."
}

View File

@@ -1,5 +1,9 @@
{
"dashboard": "Dashboard",
"section-dashboard": "Dashboards",
"dashboard/overview": "Overview",
"dashboard/logins": "Logins",
"dashboard/users": "Users",
"dashboard/topics": "Topics",
"section-general": "General",
"section-manage": "Manage",
@@ -31,6 +35,7 @@
"settings/pagination": "Pagination",
"settings/tags": "Tags",
"settings/notifications": "Notifications",
"settings/api": "API Access",
"settings/sounds": "Sounds",
"settings/social": "Social",
"settings/cookies": "Cookies",

View File

@@ -36,5 +36,8 @@
"analytics.settings": "Analytics Settings",
"analytics.max-cache": "Analytics Cache Max Value",
"analytics.max-cache-help": "On high-traffic installs, the cache could be exhausted continuously if there are more concurrent active users than the Max Cache value. (Restart required)"
"analytics.max-cache-help": "On high-traffic installs, the cache could be exhausted continuously if there are more concurrent active users than the Max Cache value. (Restart required)",
"compression.settings": "Compression Settings",
"compression.enable": "Enable Compression",
"compression.help": "This setting enables gzip compression. For a high-traffic website in production, the best way to put compression in place is to implement it at a reverse proxy level. You can enable it here for testing purposes."
}

View File

@@ -0,0 +1,16 @@
{
"tokens": "Tokens",
"settings": "Settings",
"lead-text": "From this page you can configure access to the Write API in NodeBB.",
"intro": "By default, the Write API authenticates users based on their session cookie, but NodeBB also supports Bearer authentication via tokens generated via this page.",
"docs": "Click here to access the full API specification",
"require-https": "Require API usage via HTTPS only",
"require-https-caveat": "<strong>Note</strong>: Some installations involving load balancers may proxy their requests to NodeBB using HTTP, in which case this option should remain disabled.",
"uid": "User ID",
"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
"description": "Description",
"no-description": "No description specified.",
"token-on-save": "Token will be generated once form is saved"
}

View File

@@ -4,7 +4,7 @@
"address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.",
"from": "From Name",
"from-help": "The from name to display in the email.",
"smtp-transport": "SMTP Transport",
"smtp-transport.enabled": "Use an external email server to send emails",
"smtp-transport-help": "You can select from a list of well-known services or enter a custom one.",
@@ -35,5 +35,7 @@
"subscriptions": "ইমেইল ডাইজেস্ট",
"subscriptions.disable": "ইমেইল ডাইজেস্ট নিষ্ক্রিয়",
"subscriptions.hour": "Digest Hour",
"subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. <code>0</code> for midnight, <code>17</code> for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.<br /> The approximate server time is: <span id=\"serverTime\"></span><br /> The next daily digest is scheduled to be sent <span id=\"nextDigestTime\"></span>"
"subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. <code>0</code> for midnight, <code>17</code> for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.<br /> The approximate server time is: <span id=\"serverTime\"></span><br /> The next daily digest is scheduled to be sent <span id=\"nextDigestTime\"></span>",
"notifications.settings": "Email notification settings",
"notifications.remove-images": "Remove images from email notifications"
}

Some files were not shown because too many files have changed in this diff Show More