Compare commits

..

1553 Commits

Author SHA1 Message Date
Barış Soner Uşaklı
1a375000a7 refactor: only pass qs 2021-12-16 13:47:12 -05:00
Barış Soner Uşaklı
1f8f2e9168 feat: pass in all query params to category search filter 2021-12-16 13:33:37 -05:00
Barış Soner Uşaklı
edae9522b5 feat: add data to filter:categories.search 2021-12-16 09:54:09 -05:00
Barış Soner Uşaklı
7ff2b7fbb1 chore: up mentions to fix crash
https://github.com/julianlam/nodebb-plugin-mentions/issues/156
2021-12-16 09:53:11 -05:00
Misty (Bot)
22e74dc0bb chore: incrementing version number - v1.18.6 2021-11-10 20:45:24 +00:00
Misty (Bot)
27acf19325 Merge commit 'a0f0dd021b6b275d377aec83956a8fc0a0e7aa52' into v1.18.x 2021-11-10 20:45:19 +00:00
Barış Soner Uşaklı
a0f0dd021b chore: make it a link 2021-11-10 15:33:15 -05:00
Barış Soner Uşaklı
dad31c8ea2 chore: update badges, remove david doesnt work 2021-11-10 15:32:36 -05:00
Renovate Bot
45a0895c34 chore(deps): update dependency eslint-plugin-import to v2.25.3 2021-11-10 12:35:52 +00:00
Misty (Bot)
975cb51262 Latest translations and fallbacks 2021-11-10 09:07:28 +00:00
Barış Soner Uşaklı
41c3eb8298 refactor: shorter require 2021-11-09 19:38:35 -05:00
Barış Soner Uşaklı
96f13e4f5d feat: #9992, hooks.one 2021-11-09 19:29:29 -05:00
Barış Soner Uşaklı
0428912c6d refactor: deprecate app.alert functions user alerts module directly 2021-11-09 13:34:59 -05:00
Barış Soner Uşaklı
ae64b9f495 test: add another assert for random failing test 2021-11-09 11:05:03 -05:00
Barış Soner Uşaklı
61d1f56500 test: socket.emit doesnt exist in tests 2021-11-09 10:51:44 -05:00
Julian Lam
1719bff89c feat: use auto-generated meta and link tags in ACP, closes #9991 2021-11-09 10:39:48 -05:00
Barış Soner Uşaklı
8b4510cc70 refactor: deprecate app.logout
use logout module instead
move header related code out of app.js
2021-11-08 23:28:26 -05:00
Barış Soner Uşaklı
415dfbb9f7 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-11-08 22:55:40 -05:00
renovate[bot]
cf30876fbf fix(deps): update dependency nodebb-theme-slick to v1.4.16 (#9990)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-08 22:50:11 -05:00
renovate[bot]
ef02bdc467 fix(deps): update dependency nodebb-plugin-composer-default to v7.0.14 (#9989)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-08 22:50:05 -05:00
Barış Soner Uşaklı
a9265dbf5c Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-11-08 22:48:07 -05:00
Barış Soner Uşaklı
619034484f refactor: simpler rejoin
remove pointless app.cacheBuster = null
2021-11-08 22:48:02 -05:00
renovate[bot]
654c8e6148 fix(deps): update dependency nodebb-plugin-composer-default to v7.0.13 (#9988)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-08 22:37:57 -05:00
Barış Soner Uşaklı
e3f5b706a5 test: show body when test fails 2021-11-08 22:36:10 -05:00
Barış Soner Uşaklı
f352be63dc refactor: deprecate app.openChat/newChat
use chat.openChat/newChat instead
2021-11-08 22:20:41 -05:00
Barış Soner Uşaklı
1a9b15989b refactor: move search functions from app.js to search module
deprecate:
app.handleSearch, use search.init(options) instead
app.enableTopicSearch, use search.enableQuickSearch(options) instead
app.prepareSearch, use search.showAndFocusInput() instead
2021-11-08 21:31:49 -05:00
Barış Soner Uşaklı
666fe209f0 refactor: move session messages 2021-11-08 21:00:37 -05:00
Barış Soner Uşaklı
3d2398ac4c test: lint 2021-11-08 20:48:32 -05:00
Barış Soner Uşaklı
518552543d refactor: move warnings/messages out of app.js 2021-11-08 20:40:41 -05:00
Barış Soner Uşaklı
cb0d74bdd1 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-11-08 16:55:31 -05:00
Barış Soner Uşaklı
0a7ff2085e refactor: remove jshint 2021-11-08 16:55:25 -05:00
Julian Lam
c1ac291284 fix: ability to enumerate email via updateProfile method 2021-11-08 15:36:37 -05:00
Julian Lam
b912a564e3 fix: accidentally not clearing email when said email is confirmed for a different uid 2021-11-08 15:16:48 -05:00
Renovate Bot
1a22b0ecf2 fix(deps): update dependency nodebb-plugin-mentions to v3.0.2 2021-11-08 18:08:11 +00:00
Renovate Bot
98ebc4d9ac fix(deps): update dependency socket.io to v4.3.2 2021-11-08 11:54:00 +00:00
Misty (Bot)
b736347cd3 Latest translations and fallbacks 2021-11-08 09:07:54 +00:00
Renovate Bot
c1f5889f13 fix(deps): update dependency html-to-text to v8.1.0 2021-11-07 20:26:00 +00:00
Misty (Bot)
91676c6c7c chore(i18n): fallback strings for new resources: nodebb.admin-development-info 2021-11-07 02:07:52 +00:00
Barış Soner Uşaklı
4b738c8cd3 refactor: cleanup info, better cpu usage % 2021-11-06 22:07:06 -04:00
Barış Soner Uşaklı
890bf03fcc refactor: acp only uses 3 modes and a single theme
so only copy 7 files to build folder instead of 400+
2021-11-06 21:20:05 -04:00
Misty (Bot)
8a12ac3470 Latest translations and fallbacks 2021-11-06 09:06:33 +00:00
Barış Soner Uşaklı
30cce14204 test: fix tpl test 2021-11-05 20:21:19 -04:00
renovate[bot]
4f1ee1fcb1 fix(deps): update dependency nodebb-plugin-dbsearch to v5.1.0 (#9983)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-05 18:16:36 -04:00
Barış Soner Uşaklı
3386893b58 test: dbsearch no longer has staticDir 2021-11-05 18:14:08 -04:00
Renovate Bot
7fee0e3272 fix(deps): update dependency nodebb-plugin-composer-default to v7.0.12 2021-11-05 15:47:53 -04:00
renovate[bot]
8224a2a930 fix(deps): update dependency nodebb-plugin-mentions to v3.0.1 (#9979)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Julian Lam <julian@nodebb.org>
2021-11-05 15:47:36 -04:00
Renovate Bot
91293ecc6d fix(deps): update dependency nodebb-plugin-spam-be-gone to v0.7.11 2021-11-05 15:45:53 -04:00
Renovate Bot
f7295aaad5 fix(deps): update dependency nodebb-theme-lavender to v5.3.1 2021-11-05 15:45:42 -04:00
Barış Soner Uşaklı
4ac9270a2a test: increase timeout 2021-11-05 14:25:43 -04:00
Barış Soner Uşaklı
28dd31a8e7 fix: #9976 2021-11-05 14:12:45 -04:00
Barış Soner Uşaklı
9bfb6c7281 fix: #9976, handle array or object 2021-11-05 14:11:03 -04:00
Barış Soner Uşaklı
41e0240010 fix: dont show previews on mobile 2021-11-05 13:20:13 -04:00
Misty (Bot)
9e1d8da643 Latest translations and fallbacks 2021-11-05 09:06:51 +00:00
Barış Soner Uşaklı
c1cc35a949 refactor: display errors from category drag/drop 2021-11-04 14:23:16 -04:00
Barış Soner Uşaklı
054685265d fix: category load more btn visibility 2021-11-04 13:19:37 -04:00
Barış Soner Uşaklı
66e7cdac7a fix: #9973, ignore if assigning to same parent 2021-11-04 11:45:06 -04:00
Misty (Bot)
fb0588576d Latest translations and fallbacks 2021-11-04 09:07:12 +00:00
Barış Soner Uşaklı
d27c9696e3 feat: add node 16 (#9847)
* feat: add node 16

* fix: check errors in fork

* test: add use-spawn

* test: another test

* Revert "test: another test"

This reverts commit 606efe26fe.

* test: another test

* fix: lint

* fix: remove spawn-wrap

* test: comment out plugin installs

* fix: lint

* test: uncomment all tests except npm i

* fix: lint

* test: bring back tests

* test: remove leftover override
2021-11-04 00:09:14 -04:00
Barış Soner Uşaklı
67cb249122 fix: #9972 2021-11-03 22:47:15 -04:00
Barış Soner Uşaklı
b1d6c9ba29 chore: up themes 2021-11-03 19:05:02 -04:00
renovate[bot]
0888aae6d2 fix(deps): update dependency nodebb-plugin-mentions to v3 (#9966)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-03 19:02:38 -04:00
renovate[bot]
f59937314b fix(deps): update dependency mongodb to v4.1.4 (#9968)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-03 19:02:29 -04:00
renovate[bot]
8fac8d6188 fix(deps): update dependency nodebb-theme-persona to v11.2.21 (#9969)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-03 19:02:13 -04:00
Misty (Bot)
3727e39f87 chore(i18n): fallback strings for new resources: nodebb.admin-settings-navigation 2021-11-03 20:02:19 +00:00
Barış Soner Uşaklı
2e623dd271 feat: #9967, allow dropdowns in navigation 2021-11-03 16:01:32 -04:00
Barış Soner Uşaklı
98b98a1130 chore: up mentions 2021-11-03 12:25:58 -04:00
Barış Soner Uşaklı
cbe19cb8b4 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-11-03 10:52:10 -04:00
Barış Soner Uşaklı
f728abda06 fix: remove tooltip on ajaxify 2021-11-03 10:52:03 -04:00
Renovate Bot
0f8a68c045 fix(deps): update dependency nodebb-plugin-mentions to v2.15.1 2021-11-03 11:32:40 +00:00
Misty (Bot)
ddeeee7f1a Latest translations and fallbacks 2021-11-03 09:07:30 +00:00
Barış Soner Uşaklı
3e4d477e48 chore: up mentions 2021-11-03 00:09:30 -04:00
Barış Soner Uşaklı
8a88295d04 fix: don't highlight external nav items 2021-11-02 20:05:17 -04:00
Renovate Bot
dc78125aa6 chore(deps): update commitlint monorepo to v14 2021-11-02 09:44:23 -04:00
Misty (Bot)
1fce1056c5 Latest translations and fallbacks 2021-11-02 09:07:51 +00:00
Renovate Bot
81c8d70c51 fix(deps): update dependency validator to v13.7.0 2021-11-02 02:54:53 +00:00
Barış Soner Uşaklı
b916e42f40 feat: show number of events per type in acp 2021-11-01 19:36:18 -04:00
Barış Soner Uşaklı
9fbb3b11ef perf: only load posts once 2021-11-01 18:22:39 -04:00
Barış Soner Uşaklı
63976c42fe Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-11-01 15:30:42 -04:00
Barış Soner Uşaklı
5a0efd2d42 fix: don't use # for previews 2021-11-01 15:30:36 -04:00
Misty (Bot)
46789910a8 chore(i18n): fallback strings for new resources: nodebb.admin-settings-post 2021-11-01 19:09:49 +00:00
Barış Soner Uşaklı
8c67031609 feat: show posts previews if enabled on mouse over 2021-11-01 15:09:05 -04:00
Renovate Bot
7d468e7203 chore(deps): update dependency jsdom to v18.0.1 2021-11-01 18:33:09 +00:00
Misty (Bot)
2ca40c6729 Latest translations and fallbacks 2021-11-01 09:07:17 +00:00
Barış Soner Uşaklı
3d611ab70e fix: events for just topic with main post 2021-10-31 16:13:16 -04:00
Barış Soner Uşaklı
89399c0ed5 fix: #9954, get next post timestamp
fixes topic events being inserted in after first page but at the wrong spot
2021-10-31 15:09:33 -04:00
Barış Soner Uşaklı
a7f235dbac fix: topic events not rendered in infinitescroll 2021-10-31 10:51:16 -04:00
Misty (Bot)
1452557838 Latest translations and fallbacks 2021-10-30 09:06:24 +00:00
Julian Lam
10bb8cf747 test: fix account export test routes 2021-10-29 15:18:40 -04:00
Julian Lam
485b6ced1d fix: broken post uploads due to 6a976a9db0 2021-10-29 14:23:22 -04:00
Julian Lam
591424cea1 chore: fix type.yaml example and summary 2021-10-29 14:21:42 -04:00
Julian Lam
0ee85d5a0b fix: #9950, rename account export routes to remove uid/ prefix 2021-10-29 14:12:14 -04:00
Julian Lam
60352eca54 fix: double invocation of authenticateRequest 2021-10-29 11:16:37 -04:00
Julian Lam
6a976a9db0 fix: #9945, call authenticateRequest middleware for mount points in /api 2021-10-29 10:56:06 -04:00
Misty (Bot)
d8d5f416cc Latest translations and fallbacks 2021-10-29 09:06:56 +00:00
Barış Soner Uşaklı
74aa12c95b fix: hooks is sometimes undefined 2021-10-28 21:33:21 -04:00
Barış Soner Uşaklı
62ac9a8bbb test: add test aliases.buildTargets 2021-10-28 15:40:53 -04:00
Barış Soner Uşaklı
bc4b19b4d7 fix: typo in flags 2021-10-28 15:12:12 -04:00
Renovate Bot
755860f16b fix(deps): update dependency autoprefixer to v10.4.0 2021-10-28 18:37:33 +00:00
Barış Soner Uşaklı
e8c17feedb refactor: use utils.debounce 2021-10-28 12:00:51 -04:00
Barış Soner Uşaklı
783db5748b Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-10-28 09:46:27 -04:00
Barış Soner Uşaklı
50b2ebf844 fix: remove unused code 2021-10-28 09:46:21 -04:00
Misty (Bot)
4ffbbae878 Latest translations and fallbacks 2021-10-28 09:07:10 +00:00
Barış Soner Uşaklı
bda5d14425 test: empty query params for search 2021-10-27 14:40:42 -04:00
Barış Soner Uşaklı
0f29433baf Merge branch 'v1.18.x' of https://github.com/NodeBB/NodeBB into v1.18.x 2021-10-27 14:28:28 -04:00
Barış Soner Uşaklı
ebe7f11d0b merge 2021-10-27 14:25:37 -04:00
Barış Soner Uşaklı
8f08d9cac0 fix: handle undefined data.query 2021-10-27 14:21:36 -04:00
Misty (Bot)
1e418f5b5e chore: incrementing version number - v1.18.5
(cherry picked from commit c248805165)
Signed-off-by: Misty (Bot) <deploy@nodebb.org>
2021-10-27 16:47:59 +00:00
Misty (Bot)
82eda23a9e chore: update changelog for v1.18.5 2021-10-27 16:47:59 +00:00
Misty (Bot)
c248805165 chore: incrementing version number - v1.18.5 2021-10-27 16:47:58 +00:00
Misty (Bot)
830cddfb40 Merge commit 'bf20965f0bd68a46de4de4e3f274a6fbffa28073' into v1.18.x 2021-10-27 16:47:54 +00:00
Julian Lam
28efcb59cb chore: remove .opacity() mixin as it is supported cross-browser 2021-10-27 12:35:10 -04:00
renovate[bot]
bf20965f0b fix(deps): update dependency nodebb-theme-vanilla to v12.1.7 (#9944)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-10-27 12:14:11 -04:00
renovate[bot]
bcf85fcfba fix(deps): update dependency nodebb-theme-persona to v11.2.19 (#9943)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-10-27 12:14:04 -04:00
Barış Soner Uşaklı
3d1cf168f2 revert: lazy load 2021-10-27 09:52:46 -04:00
Barış Soner Uşaklı
196a98c6ff Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-10-27 09:39:53 -04:00
Barış Soner Uşaklı
015727855f fix: remove loading="lazy", fixes inf. scroll loaded images 2021-10-27 09:39:48 -04:00
Misty (Bot)
f2bf33a28c Latest translations and fallbacks 2021-10-27 09:07:24 +00:00
Renovate Bot
8d4bb8bbbe chore(deps): update dependency lint-staged to v11.2.6 2021-10-27 03:00:24 +00:00
Renovate Bot
7c2ecb1234 fix(deps): update dependency nodebb-rewards-essentials to v0.2.0 2021-10-27 02:00:40 +00:00
Barış Soner Uşaklı
c428ba80aa refactor: wider value field 2021-10-26 16:20:24 -04:00
Barış Soner Uşaklı
c7e078d495 refactor: dont save partial searches 2021-10-26 15:51:42 -04:00
Barış Soner Uşaklı
25ebbd6563 fix: windows tests 2021-10-26 14:51:49 -04:00
Misty (Bot)
9b68dc37cc chore(i18n): fallback strings for new resources: nodebb.admin-settings-email, nodebb.error 2021-10-26 18:30:00 +00:00
Julian Lam
80ea12c1c1 feat: new ACP option emailPrompt
... which allows administrators to disable the client-side prompt to
encourage users to enter or confirm their email addresses
2021-10-26 14:28:42 -04:00
Julian Lam
5a328485dd Revert "fix: only show email confirmation warning toast on pages that it applies"
This reverts commit 1bd1cc74a4.
2021-10-26 14:28:42 -04:00
Renovate Bot
0728a99453 chore(deps): update dependency lint-staged to v11.2.5 2021-10-26 13:25:06 +00:00
Renovate Bot
49b8b983b6 fix(deps): update dependency nodebb-theme-vanilla to v12.1.6 2021-10-26 11:01:15 +00:00
Misty (Bot)
3e94def687 Latest translations and fallbacks 2021-10-26 09:09:53 +00:00
Renovate Bot
ed0adf2ccf fix(deps): update dependency nodebb-theme-persona to v11.2.18 2021-10-26 08:05:11 +00:00
Barış Soner Uşaklı
64192731a0 refactor: use search api for topic search 2021-10-25 23:12:34 -04:00
Barış Soner Uşaklı
6cfaea06f0 fix: undefined query showing in searches 2021-10-25 22:06:28 -04:00
Barış Soner Uşaklı
89f5e06bbf fix: don't repeat search if on same page 2021-10-25 22:03:59 -04:00
Barış Soner Uşaklı
19ee717444 refactor: slowdown quick search 2021-10-25 21:22:44 -04:00
Barış Soner Uşaklı
0926ae6ecf fix: api session revoke test 2021-10-25 20:47:10 -04:00
Barış Soner Uşaklı
62e44dc5be Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-10-25 16:37:41 -04:00
Barış Soner Uşaklı
da64810a4a fix: crash 2021-10-25 16:37:36 -04:00
Misty (Bot)
ff962b5ddf chore(i18n): fallback strings for new resources: nodebb.admin-dashboard 2021-10-25 20:36:22 +00:00
Barış Soner Uşaklı
eb075c7328 fix: add missing translation 2021-10-25 16:35:37 -04:00
Barış Soner Uşaklı
a528790615 refactor: typo 2021-10-25 16:34:24 -04:00
Barış Soner Uşaklı
178600b1bb Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-10-25 16:32:40 -04:00
Barış Soner Uşaklı
ee8e048015 fix: move record to controller 2021-10-25 16:32:35 -04:00
Misty (Bot)
abe59131dd chore(i18n): fallback strings for new resources: nodebb.admin-dashboard, nodebb.admin-menu 2021-10-25 20:28:14 +00:00
Barış Soner Uşaklı
f4cf482a87 feat: show popular searches 2021-10-25 16:26:50 -04:00
Barış Soner Uşaklı
63572c23ce fix: profile edit fields showing translated values 2021-10-25 15:00:05 -04:00
Barış Soner Uşaklı
8d316d1859 fix: #9934, fix translator test 2021-10-25 13:59:43 -04:00
Barış Soner Uşaklı
719cfc0d57 breaking: disable javascript in custom less tab 2021-10-25 13:53:45 -04:00
Barış Soner Uşaklı
04dab1d550 fix: token verify 2021-10-25 13:23:54 -04:00
Barış Soner Uşaklı
1783f918bc fix: guard against prototype pollution 2021-10-25 13:17:33 -04:00
Barış Soner Uşaklı
c8b2fc46dc fix: translator path traversal 2021-10-25 12:51:56 -04:00
Barış Soner Uşaklı
835c73c431 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-10-25 10:44:05 -04:00
Barış Soner Uşaklı
e62948f73d fix: there is no alltime digest, fixes translation in test email
there is no digest.title.alltime
2021-10-25 10:44:04 -04:00
Misty (Bot)
ab70ba3905 Latest translations and fallbacks 2021-10-24 09:06:39 +00:00
Barış Soner Uşaklı
47df62e700 fix: clicking outside postContainer should close tooltip 2021-10-23 20:49:14 -04:00
Renovate Bot
7866107988 fix(deps): update dependency nodebb-theme-persona to v11.2.17 2021-10-24 00:40:39 +00:00
Renovate Bot
f76a788290 chore(deps): update dependency lint-staged to v11.2.4 2021-10-23 22:23:39 +00:00
Barış Soner Uşaklı
4246f59729 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-10-23 14:56:23 -04:00
Barış Soner Uşaklı
f02fba29dc refactor: add callback to loadNotifications 2021-10-23 14:56:17 -04:00
Misty (Bot)
e6982da955 Latest translations and fallbacks 2021-10-23 09:06:38 +00:00
Julian Lam
7ef5214ef9 test: fix broken openapi3 schema 2021-10-22 16:14:41 -04:00
Julian Lam
506c34a84d refactor: simplified utilities API > login rout
Removed continueLogin override in favour of a simpler `redirectAfterLogin` override
Use passport to authenticate username and password instead of duplicated logic.
2021-10-22 15:56:31 -04:00
Julian Lam
6b4f35c2fa feat: new plugin hook to allow plugins to reject email address on new registration or email change 2021-10-22 15:06:51 -04:00
Julian Lam
806a1e50d2 feat: utilities login API route now starts an actual login session, if requested 2021-10-22 15:06:51 -04:00
Renovate Bot
a5f4e20681 fix(deps): update dependency postcss to v8.3.11 2021-10-21 21:56:52 +00:00
Barış Soner Uşaklı
b91ae0880d feat: add method name to deprecation message 2021-10-21 15:40:42 -04:00
Renovate Bot
d74a6bd35e fix(deps): update dependency nodebb-theme-vanilla to v12.1.5 2021-10-21 19:18:32 +00:00
Renovate Bot
2a3e13f360 chore(deps): update dependency husky to v7.0.4 2021-10-21 18:04:05 +00:00
Barış Soner Uşaklı
1d62bd6d7b refactor: log error as well 2021-10-21 12:34:26 -04:00
Barış Soner Uşaklı
73a9ca09c9 refactor: catch errors from buildHeader in error handler 🔥 2021-10-21 10:28:27 -04:00
Barış Soner Uşaklı
d4da98404c refactor: add missing helpers.tryRoute 2021-10-21 10:14:53 -04:00
Renovate Bot
8b8fe39303 fix(deps): update dependency sharp to v0.29.2 2021-10-21 12:34:43 +00:00
Barış Soner Uşaklı
998b9e7918 fix: minification regression 2021-10-20 21:17:15 -04:00
Barış Soner Uşaklı
463b2076a6 chore: up themes 2021-10-20 20:32:16 -04:00
Barış Soner Uşaklı
fec7ebed04 fix: tooltip 2021-10-20 20:31:27 -04:00
Barış Soner Uşaklı
66fca4e066 feat: quote tooltip 2021-10-20 19:58:25 -04:00
Renovate Bot
b18a24e97b fix(deps): update dependency postcss to v8.3.10 2021-10-20 21:37:34 +00:00
Julian Lam
d22b076b2e feat: additional quality options for jpeg uploads, added quality and compression settings for png uploads 2021-10-20 14:07:25 -04:00
Barış Soner Uşaklı
ee0282f5aa refactor: shorter middleware 2021-10-20 12:45:09 -04:00
Barış Soner Uşaklı
b2429ef00e refactor: meta/minifier use async/await 2021-10-20 11:52:23 -04:00
Julian Lam
fa1afbcf4a test: restore commented-out i18n test 2021-10-19 14:06:27 -04:00
Misty (Bot)
2bed40bed0 chore(i18n): fallback strings for new resources: nodebb.admin-manage-digest, nodebb.admin-settings-user, nodebb.user 2021-10-19 18:05:17 +00:00
Barış Soner Uşaklı
90b81262fa refactor: remove unused var 2021-10-19 12:38:40 -04:00
Barış Soner Uşaklı
9cb4de50a2 fix: biweekly digest #8053 2021-10-19 12:21:54 -04:00
Julian Lam
44687394dc fix: restore plugin upgrade checking logic
unintended regression from ac86937c88
2021-10-19 10:25:51 -04:00
Misty (Bot)
22f05b3961 Latest translations and fallbacks 2021-10-19 09:06:44 +00:00
Renovate Bot
f3c8d7da8e fix(deps): update dependency nodebb-theme-persona to v11.2.15 2021-10-19 08:38:11 +00:00
Barış Soner Uşaklı
8e319a9b25 refactor: catch errors from digest 2021-10-18 20:17:35 -04:00
Barış Soner Uşaklı
f7967bdf68 feat: #8053, biweekly digest option 2021-10-18 20:10:14 -04:00
Barış Soner Uşaklı
14bc83a88e refactor: less.render returns promise 2021-10-18 18:19:21 -04:00
Barış Soner Uşaklı
6da3239230 refactor: less.render already returns promise
rename callback to next to match other controllers
2021-10-18 18:12:23 -04:00
Barış Soner Uşaklı
c70eaa0a34 refactor: prompt.get already returns promise 2021-10-18 17:34:26 -04:00
Barış Soner Uşaklı
057d1d58e3 refactor: no need for async/callbacks 2021-10-18 17:31:14 -04:00
Barış Soner Uşaklı
38756a0c34 refactor: no more 🐮 2021-10-18 17:24:03 -04:00
bukajsytlos
ced8e72a69 Run nodebb docker process under node user (#9913)
Closes #9888
2021-10-18 17:09:40 -04:00
Julian Lam
ed4ebd2277 fix: fallbacks for new langauge key 2021-10-18 14:49:08 -04:00
Julian Lam
605a53812e feat: core submit button dropdown 2021-10-18 14:49:08 -04:00
Barış Soner Uşaklı
4333d217a1 fix: #9917, show topics as unread for guests 2021-10-18 14:17:42 -04:00
Misty (Bot)
fe2cfa8039 Latest translations and fallbacks 2021-10-18 09:06:16 +00:00
renovate[bot]
5e08e67b0e fix(deps): update dependency nodebb-theme-persona to v11.2.14 (#9919)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-10-17 16:27:24 -04:00
Misty (Bot)
1339c75781 Latest translations and fallbacks 2021-10-17 09:06:04 +00:00
Renovate Bot
deba3e2752 fix(deps): update dependency socket.io-client to v4.3.2 2021-10-17 01:13:28 +00:00
Renovate Bot
e1554f619a fix(deps): update dependency socket.io to v4.3.1 2021-10-16 23:13:02 +00:00
Barış Soner Uşaklı
a9bc6a0962 refactor: allow array of uids for blocks.is/list
remove async.filter
use cacheCreate
2021-10-16 13:09:14 -04:00
Peter Jaszkowiak
6436aa65ad fix: clarify site settings urls vs config.json url (#9912) 2021-10-16 10:36:21 -04:00
Peter Jaszkowiak
09f198fc37 fix: clarify SMTP enable toggle (#9911) 2021-10-16 10:24:04 -04:00
Misty (Bot)
e7f0a77fd8 Latest translations and fallbacks 2021-10-16 09:06:01 +00:00
Renovate Bot
ce5a0a2113 fix(deps): update socket.io packages 2021-10-16 04:43:38 +00:00
Renovate Bot
600a872031 fix(deps): update dependency nodebb-plugin-spam-be-gone to v0.7.10 2021-10-16 00:44:32 +00:00
Renovate Bot
b0128f8572 fix(deps): update dependency nodebb-plugin-composer-default to v7.0.10 2021-10-15 14:46:36 -04:00
Barış Soner Uşaklı
9e0ce0272c fix: don't overwrite reloadRequired with false
1. meta.settings.set('name', values); // reloadRequired is set to true
2. meta.settings.set('otherName', values, false); // reloadRequired was set to false, even though it should stay true until restart due to step 1
2021-10-15 10:31:33 -04:00
Renovate Bot
4784f016a7 chore(deps): update dependency mocha to v9.1.3 2021-10-15 10:56:55 +00:00
Misty (Bot)
54ae334995 Latest translations and fallbacks 2021-10-15 09:07:19 +00:00
Renovate Bot
f8f35d7e7e fix(deps): update dependency nodebb-plugin-markdown to v8.14.4 2021-10-15 04:25:26 +00:00
Renovate Bot
ed87466208 fix(deps): update dependency nodebb-plugin-composer-default to v7.0.9 2021-10-15 02:19:46 +00:00
Barış Soner Uşaklı
8e6bd7e913 refactor: show full url on error log 2021-10-14 19:00:03 -04:00
Renovate Bot
1dba75e9c9 fix(deps): update dependency nodebb-theme-persona to v11.2.13 2021-10-14 22:17:47 +00:00
Julian Lam
b460e5909c fix: delete translations in admin/general folder (since general was removed and relocated elsewhere)
Also added "flags.json" for language uk (which was missing for some reason...)
2021-10-14 14:45:50 -04:00
Julian Lam
21b610826c fix: pushed missing key to tx and pulled fallbacks 2021-10-14 14:45:50 -04:00
Julian Lam
0f9b0b7846 fix: adding missing language namespace "top" 2021-10-14 14:45:50 -04:00
Julian Lam
35af763418 feat: added failing i18n tests 2021-10-14 14:45:50 -04:00
Julian Lam
bd893cdaa3 fix: extra debug log 2021-10-14 13:59:11 -04:00
Misty (Bot)
c84ad776c2 Latest translations and fallbacks 2021-10-14 09:07:36 +00:00
Julian Lam
154ffea01b test: moved topic event and topic thumb tests to subfolder for better organisation 2021-10-13 21:02:05 -04:00
Renovate Bot
4ff5452d6f fix(deps): update dependency ioredis to v4.28.0 2021-10-13 16:18:37 +00:00
Renovate Bot
fe9f82f6b4 fix(deps): update dependency nodebb-theme-persona to v11.2.12 2021-10-12 23:20:12 -04:00
Renovate Bot
3c3f45d91b chore(deps): update dependency eslint-plugin-import to v2.25.2 2021-10-13 02:43:12 +00:00
Barış Soner Uşaklı
1feb111ade perf: dont fs.open if plugin doesnt have language namespace (#9893)
closes #9892
2021-10-12 17:40:08 -04:00
gasoved
b0a24d6dd5 refactor: var to const and let (#9885)
* refactor: var to const and let

* fix: missed global bootbox usage

* refactor: align with eslint expectations
2021-10-12 10:26:18 -04:00
Julian Lam
eddb98681c fix: have renovate add dependencies label to its PRs 2021-10-12 10:13:53 -04:00
Renovate Bot
4b8dcd4c2b chore(deps): update dependency jsdom to v18 2021-10-12 09:59:20 -04:00
Renovate Bot
7c4aebbdf0 chore(deps): update dependency eslint-plugin-import to v2.25.1 2021-10-12 09:21:18 +00:00
Renovate Bot
6d2e0aa970 fix(deps): update dependency ioredis to v4.27.11 2021-10-11 04:34:30 +00:00
Renovate Bot
288b5456f7 chore(deps): update dependency lint-staged to v11.2.3 2021-10-10 20:47:33 +00:00
Renovate Bot
f96c8c4db0 chore(deps): update dependency lint-staged to v11.2.2 2021-10-09 20:27:08 +00:00
Renovate Bot
52c38a1dc8 chore(deps): update dependency @commitlint/cli to v13.2.1 2021-10-09 10:47:09 +00:00
Renovate Bot
022e8df035 chore(deps): update dependency lint-staged to v11.2.1 2021-10-09 07:43:03 +00:00
Renovate Bot
820f8cdf87 fix(deps): update dependency nodebb-plugin-mentions to v2.14.1 2021-10-08 21:57:15 +00:00
gasoved
227456fb17 fix: no global bootbox (#9879)
* fix: require bootbox (easy ones)

* fix: require bootbox (ugly ones)

* fix(eslint): a lengthy line
2021-10-08 15:25:36 -04:00
Julian Lam
94c4f87b2f docs: update verbiage re: login API route 2021-10-08 15:24:34 -04:00
Baris Usakli
997fb2b348 refactor: remove unused code 2021-10-08 15:16:17 -04:00
Renovate Bot
4b92df821b chore(deps): update dependency eslint-config-nodebb to v0.0.3 2021-10-08 13:31:40 -04:00
Julian Lam
3e69bcdf1f fix: #9872 update app badge with notification count if applicable 2021-10-08 11:32:54 -04:00
gasoved
c1149d045c fix: better nomenclature 2021-10-08 10:37:55 -04:00
gasoved
3acaac4c7c fix: html attributes (#9877)
* fix: some empty xml tag bodies

* fix: missing/wrong attributing of label tags

* fix: attribute fixes

* fix: misassociated label

* fix: missing alt attributes

* fix: some more missing associated labels
2021-10-08 10:36:51 -04:00
Misty (Bot)
1958dffa04 Latest translations and fallbacks 2021-10-08 09:07:02 +00:00
Barış Soner Uşaklı
6c25b9dbaa test: remove escape 2021-10-07 16:24:53 -04:00
Barış Soner Uşaklı
176ed9199b Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-10-07 15:20:47 -04:00
Barış Soner Uşaklı
4f9717fb08 fix: escape thumbs, allow robots meta tag 2021-10-07 15:20:41 -04:00
gasoved
7935bd9efb fix: missing translations (#9876) 2021-10-07 14:59:03 -04:00
gasoved
56d05b4e86 feat: confirm before deleting all events (#9875) 2021-10-07 14:53:51 -04:00
Renovate Bot
b0eb2aed0e fix(deps): update dependency jquery-ui to v1.13.0 2021-10-07 18:33:17 +00:00
Barış Soner Uşaklı
543d85212b refactor: remove unused colorpicker 2021-10-07 12:45:44 -04:00
Barış Soner Uşaklı
63109c0705 test: possible fix to timeout 2021-10-07 11:24:12 -04:00
Barış Soner Uşaklı
8654a996d3 test: increase timeout 2021-10-07 11:10:58 -04:00
Barış Soner Uşaklı
abbbc3d7c2 chore: up persona 2021-10-07 09:24:44 -04:00
Barış Soner Uşaklı
1438f40984 chore: up persona 2021-10-07 09:16:53 -04:00
Misty (Bot)
21166069dc Latest translations and fallbacks 2021-10-07 09:06:41 +00:00
Misty (Bot)
8593ea87e9 chore: incrementing version number - v1.18.4 2021-10-06 17:59:38 +00:00
Misty (Bot)
945c2b0b8a chore: incrementing version number - v1.18.4
(cherry picked from commit 8593ea87e9)
Signed-off-by: Misty (Bot) <deploy@nodebb.org>
2021-10-06 17:59:38 +00:00
Misty (Bot)
7cbcb52151 chore: update changelog for v1.18.4 2021-10-06 17:59:38 +00:00
Misty (Bot)
1d401329ee Merge commit 'f4e62fb1cdbeade062ef3172dbdfaaedacb14925' into v1.18.x 2021-10-06 17:59:33 +00:00
Barış Soner Uşaklı
f4e62fb1cd chore: up persona 2021-10-06 13:50:03 -04:00
Barış Soner Uşaklı
27e53b42f3 feat: use unread icon in mobile 2021-10-06 12:58:34 -04:00
Misty (Bot)
d30c316be9 Latest translations and fallbacks 2021-10-06 09:06:39 +00:00
Renovate Bot
b4fc277307 fix(deps): update dependency mongodb to v4.1.3 2021-10-05 22:39:55 +00:00
Barış Soner Uşaklı
8ad9a103b3 fix: #9866, fire vote hooks after reputation changes (#9867) 2021-10-05 12:20:09 -04:00
Barış Soner Uşaklı
96f5312de9 fix: #9865, don't display register messages after login 2021-10-05 10:41:26 -04:00
Barış Soner Uşaklı
a0df389021 fix: dont show decimails on auto approva minutes 2021-10-05 10:13:24 -04:00
Julian Lam
e954ca1025 fix: #9864 2021-10-05 09:54:14 -04:00
Barış Soner Uşaklı
a70c69fa83 fix: delete old topic tags 2021-10-04 20:12:11 -04:00
Renovate Bot
9455e5b2b9 fix(deps): update dependency postcss to v8.3.9 2021-10-04 23:55:33 +00:00
Renovate Bot
78895d0586 fix(deps): update dependency autoprefixer to v10.3.7 2021-10-04 22:39:03 +00:00
gasoved
d1ff3d6298 feat: cli user management commands (#9848)
* feat: cli user management commands

* fix: consistent nomenclature
2021-10-04 15:59:09 -04:00
Renovate Bot
9215c7d1e1 fix(deps): update dependency nodebb-plugin-composer-default to v7.0.8 2021-10-04 17:21:16 +00:00
Barış Soner Uşaklı
a7668a7fb1 refactor: use utils.debounce
fixes socket message spam in chat resize
2021-10-04 10:58:32 -04:00
Renovate Bot
840b49b9b2 chore(deps): update dependency lint-staged to v11.2.0 2021-10-04 13:46:50 +00:00
Renovate Bot
4694382cc7 fix(deps): update dependency ioredis to v4.27.10 2021-10-04 11:21:39 +00:00
Misty (Bot)
c5e49b08ce Latest translations and fallbacks 2021-10-04 09:06:03 +00:00
Barış Soner Uşaklı
5aea6c6aa1 feat: #9855, allow uid for post queue notifications 2021-10-03 15:05:30 -04:00
Barış Soner Uşaklı
4404e81991 fix: switch inf. scroll to xhr (#9854)
this fixes infinitescroll when url has custom query parameters
also fixes infinitescroll for plugins like QnA
fixes infinitescroll on tags page
deprecate topics.loadMoreSortedTopics
deprecate topics.loadMoreFromSet
2021-10-02 13:35:58 -04:00
Misty (Bot)
cb25faaa2d Latest translations and fallbacks 2021-10-02 09:06:06 +00:00
Barış Soner Uşaklı
e6a17a6349 Psql multikey (#9852)
* perf: convert promise.all to single query

* perf: single query for removeBulk

* perf: list
2021-10-01 19:36:42 -04:00
Barış Soner Uşaklı
ea04aeded4 perf: convert promise.all to single query (#9851) 2021-10-01 15:24:19 -04:00
Misty (Bot)
7d1c7e0a7b Latest translations and fallbacks 2021-10-01 09:06:21 +00:00
Misty (Bot)
a658757382 Latest translations and fallbacks 2021-09-30 09:07:35 +00:00
Barış Soner Uşaklı
409151050a fix: #9828, max-width 2021-09-29 20:22:21 -04:00
Julian Lam
be43cd2597 Topic Linkbacks (#9825)
* feat: WIP topic linkbacks, + failing tests

* test: don't accidentally comment out all of the post tests

* fix: rename to "backlinks"

* feat: more stub code, more failing tests

* feat: backend methods and passing tests for topic backlinks

* test: uncomment test/posts.js again

* fix: missing quotation mark in topic event helper

* fix: superfluous usage of Promise.all

* test: fix broken test -- used hardcoded (and incorrect) url

* test: parseInt shenanigans
2021-09-29 12:26:15 -04:00
Barış Soner Uşaklı
f24b630e1a feat: add userData to static:user.delete 2021-09-29 09:38:31 -04:00
Misty (Bot)
c40bdad87e Latest translations and fallbacks 2021-09-29 09:06:40 +00:00
Renovate Bot
346e08908b fix(deps): update dependency nodebb-theme-persona to v11.2.9 2021-09-28 18:20:18 +00:00
Barış Soner Uşaklı
6399b42826 feat: closes #9845, sort by views 2021-09-28 11:13:56 -04:00
Renovate Bot
aa370310a1 chore(deps): update commitlint monorepo to v13.2.0 2021-09-28 04:06:33 +00:00
Julian Lam
c5a48b44a5 docs: added link to unofficial IRC channel 2021-09-27 18:14:34 -04:00
Peter Jaszkowiak
ff84d6c52f Add more chat hooks, replace toobig.jpg (#9843)
* feat: more hooks for messaging

for use in global chat plugin

* fix: replace toobig.jpg

toobig.png is a real 10000x10000 image
2021-09-27 13:22:12 -04:00
gasoved
ac1b9692f2 fix: handle undefined returnTo on registerAbort 2021-09-26 09:09:49 -04:00
Renovate Bot
058fdca44e fix(deps): update dependency autoprefixer to v10.3.6 2021-09-26 11:40:04 +00:00
Misty (Bot)
659685722c Latest translations and fallbacks 2021-09-26 09:05:36 +00:00
Renovate Bot
d50dd801ed fix(deps): update dependency yargs to v17.2.1 2021-09-25 23:12:27 +00:00
Renovate Bot
193c92e386 fix(deps): update dependency postcss to v8.3.8 2021-09-25 10:49:02 +00:00
Renovate Bot
6385b88e99 chore(deps): update dependency mocha to v9.1.2 2021-09-25 09:55:10 +00:00
Barış Soner Uşaklı
ff850b2431 fix: lint 2021-09-24 21:44:55 -04:00
Barış Soner Uşaklı
4f8647a59c test: dashboard 2021-09-24 21:41:56 -04:00
Barış Soner Uşaklı
9fe9ab0869 test: add tests for admin privileges 2021-09-24 21:28:54 -04:00
Barış Soner Uşaklı
123354ca36 fix: psql tests 2021-09-24 20:06:56 -04:00
Barış Soner Uşaklı
f8d4ec6ca6 fix: psql test 2021-09-24 19:58:10 -04:00
Barış Soner Uşaklı
3605ac811d fix: possible test fix for subfolder redirect 2021-09-24 19:23:46 -04:00
Barış Soner Uşaklı
3479832593 test: add missing tests 2021-09-24 18:32:59 -04:00
Julian Lam
8cb475482a test: remove debug log 2021-09-24 17:08:36 -04:00
Julian Lam
4eacfef02b fix: missing relative path in test 2021-09-24 17:07:21 -04:00
Julian Lam
58e0a366c8 fix: #9834, missing null email check on new registrations, added tests 2021-09-24 12:15:40 -04:00
Julian Lam
cb69934ad0 test: no need to create fake interstitial as NodeBB comes with some by default 2021-09-24 10:43:45 -04:00
Julian Lam
a9645475fe feat: duplicate requireEmailAddress settings block to Settings > User 2021-09-24 10:34:13 -04:00
Renovate Bot
daea8a86c1 fix(deps): update dependency passport to ^0.5.0 2021-09-24 00:30:23 +00:00
renovate[bot]
054f3da65d fix(deps): update dependency connect-pg-simple to v7 (#9785)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-09-23 17:09:45 -04:00
Barış Soner Uşaklı
07adb49e7f feat: mongodb driver 4.x (#9832)
* feat: mongodb driver 4.x

* feat: up dbsearach
2021-09-23 16:49:56 -04:00
Barış Soner Uşaklı
6b34065f2a refactor: remove async.waterfall from remaining upgrade scripts 2021-09-23 14:56:20 -04:00
Barış Soner Uşaklı
04ee5c0dfb Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-09-23 10:00:43 -04:00
Barış Soner Uşaklı
0faa493745 fix: crossorigin not showing up on manifest link tag 2021-09-23 10:00:37 -04:00
Misty (Bot)
fc1a31ed87 Latest translations and fallbacks 2021-09-23 09:07:44 +00:00
Renovate Bot
c78309b573 fix(deps): update dependency yargs to v17.2.0 2021-09-23 08:18:57 +00:00
Barış Soner Uşaklı
89af00d1d5 fix: #9827, fix reward duplication 2021-09-22 23:56:34 -04:00
Julian Lam
1a61ffc595 feat: a useless hover effect because raisins 2021-09-22 16:33:24 -04:00
Misty (Bot)
57358743fa chore: incrementing version number - v1.18.3
(cherry picked from commit 9e52236973)
Signed-off-by: Misty (Bot) <deploy@nodebb.org>
2021-09-22 17:01:45 +00:00
Misty (Bot)
f066ddb8f6 chore: update changelog for v1.18.3 2021-09-22 17:01:45 +00:00
Misty (Bot)
9e52236973 chore: incrementing version number - v1.18.3 2021-09-22 17:01:44 +00:00
Misty (Bot)
eff03e4b57 Merge commit '9855429445d1856a28b3f845e4bad788f5860914' into v1.18.x 2021-09-22 17:01:34 +00:00
Renovate Bot
9855429445 fix(deps): update dependency nodebb-plugin-composer-default to v7.0.7 2021-09-22 16:48:38 +00:00
Julian Lam
31975a628e fix: fixed element shifting in ACP menu that's been bothering me for 5-ish years 2021-09-22 11:31:56 -04:00
Barış Soner Uşaklı
aea0eb18d1 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2021-09-22 09:16:15 -04:00
Barış Soner Uşaklı
30f387710c fix: #9822, use correct username/pwd 2021-09-22 09:16:08 -04:00
Renovate Bot
6ebe707ca5 fix(deps): update dependency postcss to v8.3.7 2021-09-22 13:08:08 +00:00
Renovate Bot
2568744167 fix(deps): update dependency autoprefixer to v10.3.5 2021-09-22 11:25:34 +00:00
Misty (Bot)
6b4e77e3ce Latest translations and fallbacks 2021-09-22 09:06:51 +00:00
Barış Soner Uşaklı
2add84a568 fix: remove unused translator 2021-09-21 17:16:21 -04:00
Barış Soner Uşaklı
07859f7e8c fix: ban info test 2021-09-21 17:12:59 -04:00
Barış Soner Uşaklı
9f0e55ad3e fix: #9819, show same time info for ban 2021-09-21 17:04:17 -04:00
Barış Soner Uşaklı
7a2f0ae15b fix: show local time for ban 2021-09-21 16:10:37 -04:00
Barış Soner Uşaklı
c437b33652 fix: crash 2021-09-21 13:51:24 -04:00
Barış Soner Uşaklı
15f9aaa6ee fix: remove caller from payload after hooks is done
only if it was added automatically
2021-09-21 13:48:16 -04:00
renovate[bot]
c18678cef2 fix(deps): update dependency nodebb-plugin-composer-default to v7.0.6 (#9815)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-09-21 13:25:59 -04:00
renovate[bot]
39d73d0c3d fix(deps): update dependency nodebb-theme-persona to v11.2.8 (#9816)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-09-21 13:25:51 -04:00
Julian Lam
ce8ea6ea42 fix: bad uid reference 2021-09-21 13:03:59 -04:00
Julian Lam
f194809f06 feat: move filter:topic.post hook to top of method 2021-09-21 13:00:45 -04:00
Julian Lam
7777812e62 fix: update Topics.post and Topics.reply so that plugins can modify uid (or redirect a reply to a different topic)
/cc @antosik
2021-09-21 11:26:17 -04:00
Barış Soner Uşaklı
c4fc7bf9b5 fix: #9818, fix totalTime calculation 2021-09-21 10:21:52 -04:00
Misty (Bot)
e838b616df Latest translations and fallbacks 2021-09-21 09:06:38 +00:00
psychobunny
1ed62aa82f fix: missing microdata in category data 2021-09-20 23:03:24 -04:00
Barış Soner Uşaklı
c0a52924f1 fix: #9812, add topics:schedule 2021-09-20 10:48:35 -04:00
Barış Soner Uşaklı
18252fb9a8 refactor: no regex 2021-09-20 10:41:26 -04:00
Barış Soner Uşaklı
31a6d4b39a fix: for subfolders 2021-09-20 10:39:56 -04:00
Barış Soner Uşaklı
0236ea86ad fix: req.path doesn't have full url 2021-09-20 10:24:02 -04:00
Barış Soner Uşaklı
75ebe78619 fix: escape moderation note before adding to dom 2021-09-20 10:16:16 -04:00
Barış Soner Uşaklı
40c9fca918 fix: #9811, send bodyClass on 403
use helpers.formatApiResponse for /api/v3 routes only
2021-09-20 10:11:25 -04:00
Barış Soner Uşaklı
05ddd60c5e dont check empty emails in queue 2021-09-18 15:20:24 -04:00
Barış Soner Uşaklı
58ac55c16a refactor: remove async.waterfall 2021-09-17 20:33:31 -04:00
Barış Soner Uşaklı
222dccaf67 refactor: remove async.waterfall 2021-09-17 15:29:10 -04:00
Barış Soner Uşaklı
f35a0f430a refactor: remove async.waterfall 2021-09-17 13:31:49 -04:00
Julian Lam
944a798552 fix: also launch docker workflow on release branches 2021-09-17 12:21:38 -04:00
Barış Soner Uşaklı
ba3582b873 fix: xss on flags page via ban reason 2021-09-17 11:10:43 -04:00
Julian Lam
66eaae44a6 feat: add client-side static hook to fire immediately before any topic action (hint: delete action to stop default behaviour) 2021-09-17 10:37:22 -04:00
Julian Lam
819917daf2 refactor: allow plugins to replace og:image, or specify additional og:image
/cc @antosik
2021-09-17 09:57:31 -04:00
Renovate Bot
8e886c853b fix(deps): update dependency connect-mongo to v4.6.0 2021-09-17 13:51:12 +00:00
Barış Soner Uşaklı
896ff2152f fix: up timeout for psql tests 2021-09-17 08:20:03 -04:00
Renovate Bot
8af54255d8 fix(deps): update dependency nodebb-plugin-composer-default to v7.0.4 2021-09-15 18:48:13 +00:00
Misty (Bot)
a66659ff6c Latest translations and fallbacks 2021-09-15 09:06:50 +00:00
Barış Soner Uşaklı
0c4b875e10 fix: redis batch 2021-09-14 18:28:18 -04:00
Barış Soner Uşaklı
3261edcc32 fix: redis processing batch+1 items every iteration 2021-09-14 18:13:44 -04:00
Renovate Bot
9049dcd76c fix(deps): update dependency mongodb to v3.7.1 2021-09-14 19:38:52 +00:00
Barış Soner Uşaklı
8b576a3704 fix: #9560, don't save post diffs if content didn't change 2021-09-14 14:07:58 -04:00
Misty (Bot)
1cca8eaddc Latest translations and fallbacks 2021-09-14 09:07:13 +00:00
Barış Soner Uşaklı
6a55c02702 fix: #9790, get baseIndex on update for infinitescroll 2021-09-11 18:07:01 -04:00
Barış Soner Uşaklı
2657804c1f fix: #9790, fix sorting of more than one page of pinned topics 2021-09-11 17:57:42 -04:00
Barış Soner Uşaklı
3ecbb624d8 fix: privileges added by plugins (#9802)
* fix: privileges added by plugins

when copying a categories privileges, privileges added by plugins will be copied as well
when purging a category privileges added by plugins will be purged as well
show plugin privileges in privileges.<categories/admin/global>.get
show plugin privileges in privileges.<categories/admin/global>.userPrivileges
show plugin privileges in privileges.<categories/admin/global>.groupPrivileges

* fix: typo
2021-09-11 16:43:48 -04:00
Renovate Bot
506035b5f7 fix(deps): update dependency nodebb-theme-persona to v11.2.6 2021-09-11 20:31:29 +00:00
Barış Soner Uşaklı
71ed50b9c1 fix: #9800, don't send all welcome test emails to test@example.org @julianlam 2021-09-11 13:11:11 -04:00
uplift
92d1ee31e4 Add authenticateRequest middleware (#9795)
* Add  authenticateRequest middleware

to Post routes

* Fix linting error
2021-09-10 12:36:12 -04:00
Antosik
b06e8dba7b fix: docker - remove sha tag 2021-09-10 07:39:55 -04:00
Barış Soner Uşaklı
397835a05a feat: allow removing multiple items from list 2021-09-09 22:25:17 -04:00
Barış Soner Uşaklı
7f48edc02a feat: add uid to filter:user.saveSettings 2021-09-09 22:24:55 -04:00
Antosik
52eace4b38 fix: Return QEMU back, remove platforms definition 2021-09-09 10:45:59 -04:00
Anton Grigoryev
e7f4cde466 Fix: Docker workflow tweaks (#9792)
* fix: docker workflow tweaks

* fix: run workflow on push to master branch
2021-09-09 09:08:27 -04:00
Misty (Bot)
c05fba98d4 Latest translations and fallbacks 2021-09-09 09:06:09 +00:00
Renovate Bot
787306a6c1 fix(deps): update dependency nodebb-theme-slick to v1.4.13 2021-09-08 23:24:27 +00:00
gasoved
84ff1152f7 feat: headers for global privs #9717 (#9762)
* feat: headers for global privs #9717

* fix: don't spoil headers to adminPrivs

Co-authored-by: Julian Lam <julian@nodebb.org>
2021-09-08 17:17:25 -04:00
Renovate Bot
ee02771959 chore(deps): update docker/build-push-action action to v2.7.0 2021-09-08 15:10:36 -04:00
Renovate Bot
732b59c2d8 fix(deps): update dependency nodebb-plugin-composer-default to v7.0.3 2021-09-08 15:00:54 -04:00
Julian Lam
66f70b2aa0 Revert "Revert "Use Github Action as a release pipeline to Docker (#9720)" (#9738)"
This reverts commit d2bc1fa565.
2021-09-08 14:50:32 -04:00
Julian Lam
0b4d7d1f8e style: give me an A! 💯 2021-09-08 14:27:48 -04:00
Julian Lam
006fc700dd feat: add ACP option to require email address on new registration 2021-09-08 14:18:20 -04:00
Julian Lam
34afb74762 fix: browsers autocompleting smtp fields when they should not 2021-09-08 14:05:56 -04:00
Misty (Bot)
0a56158bb4 chore: incrementing version number - v1.18.2
(cherry picked from commit 854c078b73)
Signed-off-by: Misty (Bot) <deploy@nodebb.org>
2021-09-08 16:27:01 +00:00
Misty (Bot)
27e9282aa4 chore: update changelog for v1.18.2 2021-09-08 16:27:01 +00:00
Misty (Bot)
854c078b73 chore: incrementing version number - v1.18.2 2021-09-08 16:27:00 +00:00
Misty (Bot)
36653525bd Merge commit '507517fce5248ad37f6a239fce16ae92d0e0f5b0' into v1.18.x 2021-09-08 16:26:58 +00:00
Misty (Bot)
507517fce5 Latest translations and fallbacks 2021-09-08 09:06:50 +00:00
psychobunny
bf0c02a71e feat: a slightly less ugly rewards panel 2021-09-07 11:49:43 -04:00
psychobunny
a7855c4cc4 fix: dashboard graph controls 2021-09-07 10:48:03 -04:00
psychobunny
580a016b0e fix: #9767 ACP change group icon fix 2021-09-07 10:22:09 -04:00
Renovate Bot
ac6cd02fa2 fix(deps): update dependency sharp to v0.29.1 2021-09-07 11:34:03 +00:00
Misty (Bot)
a17ffcd094 Latest translations and fallbacks 2021-09-07 09:06:24 +00:00
Renovate Bot
338f90fc5e fix(deps): update dependency nodebb-plugin-dbsearch to v5.0.3 2021-09-06 19:41:02 +00:00
Misty (Bot)
9084520027 Latest translations and fallbacks 2021-09-06 09:06:27 +00:00
Misty (Bot)
2e1b99f504 Latest translations and fallbacks 2021-09-05 09:06:12 +00:00
Barış Soner Uşaklı
0ce4b87d85 fix: #9781 (#9782) 2021-09-03 20:34:42 -04:00
Julian Lam
856ba78a5f fix: replace logic in isPrivilegedOrSelfAndPasswordMatch to use privileges.users.canEdit 2021-09-03 17:13:55 -04:00
Renovate Bot
87ba768f5c chore(deps): update commitlint monorepo to v13 2021-09-03 17:06:11 -04:00
Renovate Bot
0b3ea5adb4 fix(deps): update dependency nodebb-theme-vanilla to v12.1.3 2021-09-03 17:05:47 -04:00
Julian Lam
8cbad61e8a test: added test for external image via new change picture API 2021-09-03 16:59:42 -04:00
Julian Lam
cdaea61136 fix: handle missing uid in deprecated socket call 2021-09-03 16:59:42 -04:00
Julian Lam
0a41741b7e refactor: deprecate picture update socket call, new API routes for picture update 2021-09-03 16:59:42 -04:00
Julian Lam
e33e046f15 fix: use privileges.users.canEdit for image upload priv check 2021-09-03 16:59:42 -04:00
Barış Soner Uşaklı
a48bbdbfe3 fix: errors from registerComplete 2021-09-03 15:30:05 -04:00
Renovate Bot
57e54d559b fix(deps): update dependency nodebb-theme-persona to v11.2.5 2021-09-03 18:35:00 +00:00
Julian Lam
60de084475 fix: simplify logic for fullname and email blanking in user retrieval (getUserDataByUserSlug)
Previous logic seemed to match the logic used in privileges.users.canEdit, except
the latter allows plugins to modify the value.
2021-09-03 13:38:24 -04:00
Barış Soner Uşaklı
1e2bda13d0 fix: lint 2021-09-03 12:41:11 -04:00
Barış Soner Uşaklı
488f0978a4 fix: manifest error 2021-09-03 12:29:11 -04:00
Barış Soner Uşaklı
72710b8040 fix: #9772, regression from 70a04bc105 2021-09-03 12:22:03 -04:00
Julian Lam
dd4e66e22c fix: push back some deprecations, remove deprecated stuff scheduled for v1.18.0 2021-09-03 12:04:20 -04:00
Barış Soner Uşaklı
1f91a31327 Priv hook fix (#9775)
* fix: #9773, fire hooks properly for priv changes

* fix: admin/global group privs

dont allow invalid privs
2021-09-03 11:58:17 -04:00
Julian Lam
4ac701d747 fix: deprecate userData.showHidden as it is functionally equivalent to userData.canEdit 2021-09-03 11:57:18 -04:00
Julian Lam
46e5e17d0f fix: focus on save button on plugin activation 2021-09-03 11:34:09 -04:00
Barış Soner Uşaklı
6869920e06 fix: #9773, fire hooks properly for priv changes (#9774) 2021-09-03 11:22:42 -04:00
Misty (Bot)
0409403f5b chore: incrementing version number - v1.18.1 2021-09-03 15:04:06 +00:00
Misty (Bot)
f8f80e4fb3 chore: incrementing version number - v1.18.1
(cherry picked from commit 0409403f5b)
Signed-off-by: Misty (Bot) <deploy@nodebb.org>
2021-09-03 15:04:06 +00:00
Misty (Bot)
0713475dc5 chore: update changelog for v1.18.1 2021-09-03 15:04:06 +00:00
Misty (Bot)
839673d321 Merge commit 'b73d8849ab768fb665271a1b3cffe8211e6083f0' into v1.18.x 2021-09-03 15:03:59 +00:00
Misty (Bot)
b73d8849ab Latest translations and fallbacks 2021-09-03 09:06:15 +00:00
Renovate Bot
67b932f4d1 fix(deps): update dependency autoprefixer to v10.3.4 2021-09-03 01:10:14 +00:00
Renovate Bot
fe18e100c5 fix(deps): update dependency nodebb-theme-persona to v11.2.4 2021-09-02 16:01:50 +00:00
Misty (Bot)
3957ff283a Latest translations and fallbacks 2021-09-02 09:06:42 +00:00
gasoved
fc0e655eef refactor: consistent jquery element var naming 2021-09-01 22:41:41 -04:00
gasoved
760ea9df1e fix: determine indeterminate checkboxes 2021-09-01 22:41:41 -04:00
gasoved
1272da6539 refactor: var to const 2021-09-01 22:41:41 -04:00
Julian Lam
ca9bae3a1c fix: move app.alert back into the conditionals 2021-09-01 10:51:04 -04:00
Julian Lam
1bd1cc74a4 fix: only show email confirmation warning toast on pages that it applies 2021-09-01 10:51:04 -04:00
Julian Lam
2d1380ddf1 fix: updated email confirm warning to be more positive 2021-09-01 10:51:04 -04:00
Misty (Bot)
985be8ad87 Latest translations and fallbacks 2021-09-01 09:05:55 +00:00
Renovate Bot
31a35d7f71 fix(deps): update dependency mongodb to v3.7.0 2021-08-31 22:31:25 +00:00
psychobunny
6afeac375b fix: automated tests are a good thing to have 2021-08-31 11:33:20 -04:00
psychobunny
ae793b4a44 chore: found some hooks that don't play well docgen 2021-08-31 10:45:08 -04:00
gasoved
3df79683f5 feat: create folders in ACP uploads #9638 (#9750)
* feat: create folders in ACP uploads #9638

* fix: openapi

* test: missing tests

* fix: eslint

* fix: tests
2021-08-31 09:27:00 -04:00
Renovate Bot
f2028d7009 fix(deps): update socket.io packages to v4.2.0 2021-08-31 11:53:11 +00:00
Renovate Bot
6052eb1613 fix(deps): update dependency ioredis to v4.27.9 2021-08-31 10:53:54 +00:00
Misty (Bot)
35a6715aff Latest translations and fallbacks 2021-08-31 09:06:29 +00:00
renovate[bot]
5fa982c123 fix(deps): update dependency mongodb to v3.6.12 (#9761)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-08-30 21:16:53 -04:00
gasoved
61f02f17d8 feat: column based view on wide priv. tables (#9699)
* feat: column based view on wide priv. tables

* fix: add group/user

* feat: copy buttons to work on visible privs

* feat: show what's being copied in modal

* feat: optional title and message for category selector modal
2021-08-30 10:42:58 -04:00
Barış Soner Uşaklı
e59d357533 feat: als (#9749)
* feat: als

* fix: up test timeout

* fix: don't overwrite caller if it already exists

* fix: up test timeout for psql
2021-08-30 10:23:38 -04:00
Misty (Bot)
156ba0958e Latest translations and fallbacks 2021-08-30 09:06:45 +00:00
Misty (Bot)
e005b20470 Latest translations and fallbacks 2021-08-29 09:05:41 +00:00
Renovate Bot
33d5120181 fix(deps): update dependency nodebb-plugin-composer-default to v7.0.2 2021-08-28 19:08:49 +00:00
Renovate Bot
64bac178e1 chore(deps): update dependency mocha to v9.1.1 2021-08-28 17:28:03 +00:00
Misty (Bot)
7802622eba Latest translations and fallbacks 2021-08-28 09:05:50 +00:00
Renovate Bot
1b416d7ed9 fix(deps): update dependency nodebb-theme-slick to v1.4.12 2021-08-27 21:22:38 +00:00
Barış Soner Uşaklı
e93148420d feat: add quick reply key 2021-08-27 14:39:29 -04:00
Misty (Bot)
d16d3ebace Latest translations and fallbacks 2021-08-27 09:06:48 +00:00
Renovate Bot
65b32fa1fc fix(deps): update dependency nodebb-theme-slick to v1.4.11 2021-08-27 05:09:42 +00:00
Renovate Bot
6ce321e4c4 fix(deps): update dependency nodebb-theme-persona to v11.2.3 2021-08-27 03:28:13 +00:00
Barış Soner Uşaklı
6e73d8c934 feat: add new lang key for no best posts 2021-08-26 19:18:20 -04:00
Renovate Bot
91ba7cdf79 fix(deps): update dependency autoprefixer to v10.3.3 2021-08-26 19:35:40 +00:00
Renovate Bot
d80b378f4e fix(deps): update dependency nodebb-theme-slick to v1.4.9 2021-08-26 17:58:27 +00:00
SAES:RPG
dd15065706 Fix [MONGODB DRIVER] Warning: bulk operation remove has been deprecated, please use delete (#9746)
Co-authored-by: Brophy <paul.brophy@bastage.net>
2021-08-26 09:44:16 -04:00
Misty (Bot)
fac8136f9b Latest translations and fallbacks 2021-08-26 09:06:05 +00:00
renovate[bot]
7f9451cea5 fix(deps): update dependency jquery-deserialize to v2.0.0 (#9744)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-08-25 16:52:23 -04:00
Misty (Bot)
1e436ae793 chore: incrementing version number - v1.18.0
(cherry picked from commit d220d1d461)
Signed-off-by: Misty (Bot) <deploy@nodebb.org>
2021-08-25 20:29:56 +00:00
Misty (Bot)
2fd9c09544 chore: update changelog for v1.18.0 2021-08-25 20:29:56 +00:00
Misty (Bot)
d220d1d461 chore: incrementing version number - v1.18.0 2021-08-25 20:29:55 +00:00
Julian Lam
4ddc26fc08 Add dependabot.yml for automatic security updates 2021-08-25 12:56:50 -04:00
Barış Soner Uşaklı
d2bc1fa565 Revert "Use Github Action as a release pipeline to Docker (#9720)" (#9738)
This reverts commit 1a72d3b4f8.
2021-08-25 10:59:28 -04:00
Steve Fan
1a72d3b4f8 Use Github Action as a release pipeline to Docker (#9720)
* Create main.yml

* Update and rename main.yml to docker.yml
2021-08-25 10:55:52 -04:00
loid345
635f5555de Update package.json (#9722) 2021-08-25 10:55:42 -04:00
Julian Lam
55693ec1b0 fix: lint 2021-08-25 10:24:02 -04:00
Julian Lam
12e7f8d5ae fix(deps): bump persona 2021-08-25 10:21:23 -04:00
Julian Lam
e803737a4b feat: add confirmation modal to topic event deletion 2021-08-25 10:12:50 -04:00
Julian Lam
1ee92c281d fix: topic event deletion 2021-08-25 10:12:50 -04:00
Renovate Bot
324c7d482d chore(deps): update dependency husky to v7.0.2 2021-08-25 04:18:54 +00:00
Renovate Bot
9a34fe1857 chore(deps): update dependency eslint-plugin-import to v2.24.2 2021-08-25 02:43:30 +00:00
renovate[bot]
2e1562b813 fix(deps): update dependency nodebb-theme-persona to v11.2.1 (#9734)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-08-24 13:36:48 -04:00
renovate[bot]
4bd66a7ca9 fix(deps): update dependency nodebb-theme-vanilla to v12.1.2 (#9735)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-08-24 13:36:42 -04:00
Julian Lam
152f194aee Server-side rendering of topic events (#9733)
* style: reformat list of helpers exported

* refactor: move topic events partial into a helper, invoke helper in topic.tpl (see persona), update how events are added to the DOM via addTopicEvents

closes #9731

* style: lint
2021-08-24 11:56:04 -04:00
Barış Soner Uşaklı
0743554dd4 fix: pluginPaths 2021-08-23 21:41:08 -04:00
Barış Soner Uşaklı
13878e9f14 fix: #9730, show warning if plugin is active but not installed 2021-08-23 21:27:03 -04:00
renovate[bot]
096c5a5891 fix(deps): update dependency nodebb-theme-slick to v1.4.8 (#9732)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-08-23 14:17:00 -04:00
Barış Soner Uşaklı
60bf564321 fix: #9729, insert new posts after topic events 2021-08-23 12:31:11 -04:00
Barış Soner Uşaklı
c354cde347 fix: #9719, only apply to non https 2021-08-23 11:51:36 -04:00
Misty (Bot)
2dcced5518 Latest translations and fallbacks 2021-08-22 09:06:14 +00:00
Barış Soner Uşaklı
77c3085a7b fix: #9727, addHandlers after hooks 2021-08-21 23:32:05 -04:00
Barış Soner Uşaklı
6659e95a4a refactor: remove promisify from redis, ioredis supports promises nati… (#9728)
* refactor: remove promisify from redis, ioredis supports promises natively

* refactor: remove unused util
2021-08-21 23:31:31 -04:00
Renovate Bot
d44e3a8ecf fix(deps): update dependency autoprefixer to v10.3.2 2021-08-21 20:21:49 +00:00
Misty (Bot)
8358c3b426 Latest translations and fallbacks 2021-08-21 09:05:54 +00:00
Renovate Bot
cd85a55dd4 chore(deps): update dependency eslint-config-nodebb to v0.0.2 2021-08-20 11:06:00 -04:00
Renovate Bot
c5a4227310 chore(deps): update dependency mocha to v9.1.0 2021-08-20 11:16:05 +00:00
Misty (Bot)
b14cdc5f6d Latest translations and fallbacks 2021-08-20 09:06:34 +00:00
Renovate Bot
daca09d455 chore(deps): update dependency eslint-plugin-import to v2.24.1 2021-08-20 00:01:47 +00:00
Misty (Bot)
81a1cd00cf Latest translations and fallbacks 2021-08-19 09:06:26 +00:00
Barış Soner Uşaklı
a288f51f42 fix: allow smaller than 5mins for admin relogin duration
setting the value to 1min in ACP wasn't working
2021-08-18 20:46:51 -04:00
Barış Soner Uşaklı
794bf01b21 feat: allow changing default search in 2021-08-18 20:35:39 -04:00
Renovate Bot
116f9cb55e fix(deps): update dependency nodebb-theme-persona to v11.2.0 2021-08-18 17:06:06 +00:00
Renovate Bot
8461791a52 fix(deps): update dependency ioredis to v4.27.8 2021-08-18 15:49:20 +00:00
Julian Lam
cf4b78dbd3 Revert "fix: taskbar icon not pushed via composer/persona"
This reverts commit 3a81c8fd42.
2021-08-18 10:09:39 -04:00
psychobunny
d2492ef48e style: eslint 2021-08-17 18:16:43 -04:00
psychobunny
3a81c8fd42 fix: taskbar icon not pushed via composer/persona
@antosik, partially reverted your PR:
342503e07a

just specifically this file: 342503e07a/public/src/modules/taskbar.js

I'm not 100% sure, but it might be because this hook is called sooner than the hook being registered? https://github.com/NodeBB/nodebb-theme-persona/blob/master/public/persona.js#L100-L101  @julianlam
2021-08-17 17:49:06 -04:00
Renovate Bot
ec103ce8dd fix(deps): update dependency nodebb-theme-persona to v11.1.3 2021-08-17 17:05:13 -04:00
Renovate Bot
626d5565c6 fix(deps): update dependency sharp to v0.29.0 2021-08-17 18:46:37 +00:00
Renovate Bot
ce6039f2d1 fix(deps): update dependency connect-mongo to v4.5.0 2021-08-17 16:11:17 +00:00
Misty (Bot)
0c672d8faa Latest translations and fallbacks 2021-08-17 09:06:13 +00:00
Andrew Rodrigues
b74eefacf6 chore: up markdown/composer-default, fixes: #9708 2021-08-16 18:36:45 -04:00
Renovate Bot
de83f82eae fix(deps): update dependency nodebb-theme-vanilla to v12.1.1 2021-08-16 18:22:02 +00:00
Renovate Bot
ee10ae0450 fix(deps): update dependency nodebb-theme-persona to v11.1.2 2021-08-16 16:58:06 +00:00
Barış Soner Uşaklı
382a4c2785 feat: #9705, use radio buttons for flag reasons 2021-08-16 11:26:49 -04:00
Renovate Bot
ffdf61b882 chore(deps): update dependency @apidevtools/swagger-parser to v10.0.3 2021-08-15 11:21:00 +00:00
Misty (Bot)
2f2e6b4b5e Latest translations and fallbacks 2021-08-15 09:05:42 +00:00
Renovate Bot
38e38580fb fix(deps): update dependency yargs to v17.1.1 2021-08-13 23:27:07 +00:00
renovate[bot]
418553757f chore(deps): update dependency jsdom to v17 (#9700)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-08-13 16:59:00 -04:00
Anton Grigoryev
342503e07a Feat: Client-side hooks - replace window.trigger (#9679)
* feat/clientside-hooks: replace window.trigger with hooks.fire

* feat(clientside-hooks): Move hooks require to the top

* fix: simplifying complex logical expression

* fix: client-side hook for translator - post-review fixes
2021-08-13 16:58:37 -04:00
Misty (Bot)
a850dd2e34 Latest translations and fallbacks 2021-08-13 09:06:19 +00:00
Barış Soner Uşaklı
9de64bf516 fix: #9698, pass along query params in redirect 2021-08-12 11:26:15 -04:00
Misty (Bot)
4c67592f55 Latest translations and fallbacks 2021-08-12 09:06:01 +00:00
Misty (Bot)
8100b6a841 Latest translations and fallbacks 2021-08-11 09:06:57 +00:00
Renovate Bot
4794141852 fix(deps): update dependency nodebb-theme-persona to v11.1.1 2021-08-11 03:02:13 +00:00
Barış Soner Uşaklı
8bf2896d6c fix: lint 2021-08-10 21:19:01 -04:00
Barış Soner Uşaklı
358ad74054 feat: closes #9684, allow event deletion
fix: topic events appearing before necro messages
feat: add move topic event
feat: add ability to delete specific topic events via events.purge
2021-08-10 19:39:51 -04:00
Renovate Bot
23dafa204c chore(deps): update dependency eslint-plugin-import to v2.24.0 2021-08-08 23:03:22 +00:00
Julian Lam
f653a6ff6a feat: replace eslint configs on server and client side to inherit rules from eslint-config-nodebb 2021-08-08 15:38:02 -04:00
opliko
5e6b8433a3 change font order 2021-08-06 19:39:33 -04:00
opliko
f576d6e0ea fix solid font weight in shim 2021-08-06 19:39:33 -04:00
opliko
a370c26f73 feat: re-add FontAwesome font for compatibility 2021-08-06 19:39:33 -04:00
opliko
093ac1c09a fix: remove unnecessary quote 2021-08-06 19:39:33 -04:00
opliko
41762e6603 feat: update to FontAwesome 5.15, resolve #6976 2021-08-06 19:39:33 -04:00
Renovate Bot
d47bdde260 chore(deps): update dependency lint-staged to v11.1.2 2021-08-06 08:57:29 +00:00
Renovate Bot
a0fd026801 fix(deps): update dependency mongodb to v3.6.11 2021-08-05 19:19:19 +00:00
Barış Soner Uşaklı
8fb53252a8 refactor: get rid of async.waterfall/each 2021-08-05 14:09:34 -04:00
Barış Soner Uşaklı
42dbd40253 refactor: remove unused async 2021-08-05 13:02:28 -04:00
Barış Soner Uşaklı
6b6a7d4b8a refactor: remove waterfall 2021-08-05 12:52:07 -04:00
Renovate Bot
181c20ba56 fix(deps): update dependency yargs to v17.1.0 2021-08-05 00:14:52 +00:00
Misty (Bot)
fadb71bff5 Latest translations and fallbacks 2021-08-03 09:06:27 +00:00
Misty (Bot)
39911a9fc5 Latest translations and fallbacks 2021-08-02 09:06:49 +00:00
Opliko
d509a307f0 Remove some deprecated/unnecessary code (#9688)
* refactor: remove mkdirp promisify

* refactor: remove old session deletion API route

* refactor: remove middleware.isAdmin

* refactor: remove templateValues.config.bootswatchSkin

* fix: unused dependencies
2021-08-01 22:03:19 -04:00
Renovate Bot
9db28b4b4f chore(deps): update dependency jsdom to v16.7.0 2021-08-01 23:06:36 +00:00
Renovate Bot
4c9d6b62a8 fix(deps): update dependency ioredis to v4.27.7 2021-08-01 18:12:41 +00:00
Misty (Bot)
e8b2aa51bf Latest translations and fallbacks 2021-08-01 09:05:23 +00:00
Misty (Bot)
d675795749 Latest translations and fallbacks 2021-07-31 09:05:46 +00:00
Barış Soner Uşaklı
162ebacf5b fix: parseInt tids 2021-07-30 22:54:19 -04:00
Barış Soner Uşaklı
0c81642997 fix: #9681, update posts in queue if target tid is merged 2021-07-30 22:51:06 -04:00
Renovate Bot
03a98f4de4 chore(deps): update dependency eslint to v7.32.0 2021-07-31 01:02:58 +00:00
Julian Lam
4a521ea218 fix: email update interstitial to not error on empty email field (on new registration) 2021-07-30 15:08:43 -04:00
Julian Lam
70a04bc105 feat: removed registerAndLoginUserCallback local helper, added handling if a bad interstitial doesn't go away nor throw errors 2021-07-30 14:50:56 -04:00
Misty (Bot)
46243719b7 Latest translations and fallbacks 2021-07-30 17:53:30 +00:00
Julian Lam
3b34571de9 fix(deps): update theme versions for #9607 2021-07-30 13:41:31 -04:00
Julian Lam
bbbacd86ab feat: updated email confirmation alert to more closely reflect email usage, remembering dismissal 2021-07-30 13:29:13 -04:00
Julian Lam
58adb76246 feat: allow requirejs modules to be awaited 2021-07-30 13:29:13 -04:00
Julian Lam
0e05cbe1f7 feat: show instructional modal after email change request 2021-07-30 13:29:13 -04:00
Julian Lam
e95df2f066 refactor: move interstitials into its own file in src/user/ 2021-07-30 13:29:13 -04:00
Julian Lam
324a12b6c3 feat: return back to profile after editing email 2021-07-30 13:29:13 -04:00
Julian Lam
b3c916414b feat: allow registration interstitial abort to also follow returnTo 2021-07-30 13:29:13 -04:00
Julian Lam
96398faa3c feat: plumb current session id into email removal/confirmation flow, so all other sessions are revoked except for the current session
This utilises the new argument in user.auth.revokeAllSessions
2021-07-30 13:29:13 -04:00
Julian Lam
b0a4a1d3e4 feat: allow revokeAllSessions method to revoke all sessions except that which is passed in (new arg) 2021-07-30 13:29:13 -04:00
Julian Lam
f53fc1ad0b feat: return generic 404 on invalid confirm code 2021-07-30 13:29:13 -04:00
Julian Lam
824a72b220 fix: updated ACP > Manage > Users to handle users with no email address 2021-07-30 13:29:13 -04:00
Julian Lam
d5b5b7d531 fix: allowed reset and reset_notify emails to go out to unconfirmed email addresses 2021-07-30 13:29:13 -04:00
Julian Lam
ccf004f1f4 refactor: added user.email.remove method, updated email interstitial to handle email removal 2021-07-30 13:29:13 -04:00
Julian Lam
414d733d76 fix: bug where confirmation email was sent to the old email address, not the new one 2021-07-30 13:29:13 -04:00
Julian Lam
3bcd1f1438 fix: email validation flow, so that it actually works, fixed event logging bug, new email verification template 2021-07-30 13:29:13 -04:00
Julian Lam
caf8968791 fix: accidental early return in confirmByCode, tests, race condition
A race condition caused mongo/psql tests to fail.
2021-07-30 13:29:13 -04:00
gasoved
a917210c5b feat: invites no longer require email 2021-07-30 13:29:13 -04:00
Julian Lam
81611ae1c4 fix(emails): broken test for api/user/email/:email
+ fixed broken tests due to unexpected behaviour for email confirmation
2021-07-30 13:29:13 -04:00
Julian Lam
c4e3362bd3 feat(emails): restore ability for admins to edit a user's email address [breaking]
The edited user's email will be automatically confirmed
2021-07-30 13:29:13 -04:00
Julian Lam
afd2d8dab1 feat(emails): pass req in to filter:registration.interstitial 2021-07-30 13:29:13 -04:00
Barış Soner Uşaklı
7d115c8ef2 fix(emails): dont allow retrieving user data if showemail is false @julianlam 2021-07-30 13:29:13 -04:00
Julian Lam
6694bdd550 fix(emails): registration tests, email no longer passed-in, API tests (confirm email for test accounts) 2021-07-30 13:29:13 -04:00
Julian Lam
e726048e0c fix(emails): don't automatically associate email during user creation if passed in at registration 2021-07-30 13:29:13 -04:00
Julian Lam
f52919990b feat(emails): display current email in interstitial form 2021-07-30 13:29:13 -04:00
Julian Lam
b4b65ecd98 fix(emails): remove debug log 2021-07-30 13:29:13 -04:00
Julian Lam
087e6020e4 refactor(email): validation checking methods, +tests fix 2021-07-30 13:29:13 -04:00
Julian Lam
50517020a2 feat(emails): upgrade script for includeUnverifiedEmails 2021-07-30 13:29:13 -04:00
Julian Lam
be97aa6f13 feat(emails): +includeUnverifiedEmails ACP setting 2021-07-30 13:29:13 -04:00
Julian Lam
ab9b671693 fix(emails): broken test due to sticky registration interstitial 2021-07-30 13:29:13 -04:00
Julian Lam
a3a3b10fb3 test(emails): fixing broken tests introduced by e5ff68acd 2021-07-30 13:29:13 -04:00
Julian Lam
69c96dd23c refactor(emails): more work in update email interstitial, interstitial skipping, email change on confirmation, deprecation of requireEmailConfirmation 2021-07-30 13:29:13 -04:00
Julian Lam
f365bc4600 refactor(emails): interstitial for adding/updating email 2021-07-30 13:29:13 -04:00
Julian Lam
74aaa0a926 feat: show different registration intersitial lead text on new account vs. existing 2021-07-30 13:29:13 -04:00
Julian Lam
7c1d1c777b refactor(emails): remove email validation on client and server side 2021-07-30 13:29:13 -04:00
Julian Lam
12b2a979a0 feat: removal of emailExists socket listener 2021-07-30 13:29:13 -04:00
Barış Soner Uşaklı
04b1f702cd feat: add loggedin/guest class to body 2021-07-29 11:10:13 -04:00
Misty (Bot)
c54d339dca Latest translations and fallbacks 2021-07-29 09:07:10 +00:00
Misty (Bot)
09c2b85e36 Latest translations and fallbacks 2021-07-28 09:06:17 +00:00
Renovate Bot
40384fcb5a chore(deps): update dependency mocha to v9.0.3 2021-07-25 17:26:44 +00:00
Misty (Bot)
9f56c893ab Latest translations and fallbacks 2021-07-25 09:05:45 +00:00
Renovate Bot
7588aae13c chore(deps): update dependency lint-staged to v11.1.1 2021-07-24 13:50:06 +00:00
Renovate Bot
cb5fe27118 chore(deps): update dependency lint-staged to v11.1.0 2021-07-22 17:27:20 +00:00
Misty (Bot)
8826e7a858 Latest translations and fallbacks 2021-07-22 09:06:54 +00:00
Renovate Bot
ebdba8f13b fix(deps): update dependency postcss to v8.3.6 2021-07-21 22:36:42 +00:00
Julian Lam
2c06ac9a45 fix: test :shipit: 2021-07-21 17:36:46 -04:00
Julian Lam
340ccb2498 style: lint fix 2021-07-21 17:08:51 -04:00
Julian Lam
f71f29510d fix: failing test from d1959a2 2021-07-21 17:06:08 -04:00
Julian Lam
d1959a258b fix: #9670 return 4xx errors instead of 5xx on flag routes, when unauthenticated or not privileged [breaking] 2021-07-21 13:27:41 -04:00
Barış Soner Uşaklı
6c47a060c1 fix: #9668, add raw info to psql database page 2021-07-20 20:36:44 -04:00
Misty (Bot)
6650c0bbf7 Latest translations and fallbacks 2021-07-20 09:06:56 +00:00
Renovate Bot
3f24746cd1 fix(deps): update dependency html-to-text to v8 2021-07-19 10:17:57 -04:00
Renovate Bot
1b6b1fe591 fix(deps): update dependency yargs to v17 2021-07-19 10:16:45 -04:00
Renovate Bot
f43291f582 chore(deps): update dependency mocha to v9 2021-07-19 10:15:40 -04:00
Renovate Bot
702290c47e chore(deps): update dependency husky to v7 2021-07-19 10:15:30 -04:00
Misty (Bot)
b837e04ae0 Latest translations and fallbacks 2021-07-19 09:06:22 +00:00
Misty (Bot)
84830bf7c8 Latest translations and fallbacks 2021-07-18 09:06:11 +00:00
Renovate Bot
f5a53b7f1e chore(deps): update dependency eslint to v7.31.0 2021-07-17 23:51:40 +00:00
Misty (Bot)
9efdbecc00 Latest translations and fallbacks 2021-07-17 09:05:23 +00:00
Julian Lam
51458c75f5 fix(deps): bump composer-default to v7 2021-07-16 14:46:24 -04:00
Julian Lam
21359eabac feat: convert _fireStaticHook to async function (auto-refactor by vscode) 2021-07-16 14:42:48 -04:00
Julian Lam
6bc090f8bb docs: some hook deprecation notices 2021-07-16 14:37:47 -04:00
Julian Lam
ef4e74bfc8 refactor: client-side to use flag notes API 2021-07-16 13:51:54 -04:00
Julian Lam
cc6cbfcdc4 Flags API (#9666)
* 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

* feat: tests for new flags API

added missing files for schema update

* fix: flag tests to use Write API instead of sockets

* feat: flag notes API + tests

* chore: remove debug line

* test: fix breaking test on mongo
2021-07-16 13:44:42 -04:00
Misty (Bot)
71bc258731 Latest translations and fallbacks 2021-07-15 09:06:22 +00: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
2989 changed files with 60243 additions and 40677 deletions

View File

@@ -10,7 +10,7 @@ checks:
threshold: 500
method-lines:
config:
threshold: 50
threshold: 75
method-complexity:
config:
threshold: 10

139
.eslintrc
View File

@@ -1,140 +1,3 @@
{
"extends": "airbnb-base",
"parserOptions": {
"sourceType": "script"
},
"rules": {
// Customized
"handle-callback-err": [ "error","^(e$|(e|(.*(_e|E)))rr)" ],
"comma-dangle": ["error", {
"arrays": "always-multiline",
"objects": "always-multiline",
"imports": "always-multiline",
"exports": "always-multiline",
"functions": "never"
}],
"no-return-await": "off",
"no-constant-condition": "off",
"no-empty": ["error", { "allowEmptyCatch": true }],
"no-underscore-dangle": "off",
"no-console": "off",
"no-mixed-operators": ["error", { "allowSamePrecedence": true }],
"strict": ["error", "global"],
"consistent-return": "off",
"func-names": "off",
"no-tabs": "off",
"indent": ["error", "tab", { "SwitchCase": 1 }],
"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",
"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
}],
"no-else-return": [ "error", { "allowElseIf": true } ],
"operator-linebreak": [ "error", "after" ],
"arrow-parens": ["error", "as-needed", { "requireForBlockBody": true }],
// 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",
// TODO
"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"
}
"extends": "nodebb"
}

6
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: npm
directory: "/install"
schedule:
interval: daily

51
.github/workflows/docker.yml vendored Normal file
View File

@@ -0,0 +1,51 @@
name: Run Docker
# Controls when the workflow will run
on:
push:
branches:
- 'master'
- 'v*.x'
tags:
- 'v*'
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Docker meta
id: meta
uses: docker/metadata-action@v3
with:
images: nodebb/docker
tags: |
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=raw,value=latest
- name: Build and push Docker images
uses: docker/build-push-action@v2
with:
context: .
file: ./Dockerfile
push: true
tags: ${{ steps.meta.outputs.tags }}

View File

@@ -21,7 +21,7 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest]
node: [10, 12, 14]
node: [12, 14, 16]
database: [mongo-dev, mongo, redis, postgres]
include:
# only run coverage once
@@ -186,19 +186,19 @@ jobs:
run: npm run coverage
- name: Test coverage
uses: coverallsapp/github-action@v1.1.2
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@v1.1.2
uses: coverallsapp/github-action@1.1.3
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
parallel-finished: true

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,17 +0,0 @@
{
"indent_size": 4,
"indent_char": " ",
"indent_level": 0,
"indent_with_tabs": true,
"preserve_newlines": true,
"max_preserve_newlines": 10,
"jslint_happy": true,
"brace_style": "collapse",
"keep_array_indentation": false,
"keep_function_indentation": false,
"space_before_conditional": true,
"break_chained_methods": false,
"eval_code": false,
"unescape_strings": false,
"wrap_line_length": 0
}

View File

@@ -1,91 +0,0 @@
{
// JSHint Default Configuration File (as on JSHint website)
// See http://jshint.com/docs/ for more details
"maxerr" : 50, // {int} Maximum error before stopping
"esversion": 6,
// Enforcing
"bitwise" : true, // true: Prohibit bitwise operators (&, |, ^, etc.)
"camelcase" : false, // true: Identifiers must be in camelCase
"curly" : true, // true: Require {} for every new block or scope
"eqeqeq" : true, // true: Require triple equals (===) for comparison
"forin" : true, // true: Require filtering for..in loops with obj.hasOwnProperty()
"immed" : false, // true: Require immediate invocations to be wrapped in parens e.g. `(function () { } ());`
"indent" : 4, // {int} Number of spaces to use for indentation
"latedef" : false, // true: Require variables/functions to be defined before being used
"newcap" : false, // true: Require capitalization of all constructor functions e.g. `new F()`
"noarg" : true, // true: Prohibit use of `arguments.caller` and `arguments.callee`
"noempty" : true, // true: Prohibit use of empty blocks
"nonew" : false, // true: Prohibit use of constructors for side-effects (without assignment)
"plusplus" : false, // true: Prohibit use of `++` & `--`
"quotmark" : false, // Quotation mark consistency:
// false : do nothing (default)
// true : ensure whatever is used is consistent
// "single" : require single quotes
// "double" : require double quotes
"undef" : true, // true: Require all non-global variables to be declared (prevents global leaks)
"unused" : true, // true: Require all defined variables be used
"strict" : true, // true: Requires all functions run in ES5 Strict Mode
"trailing" : false, // true: Prohibit trailing whitespaces
"maxparams" : false, // {int} Max number of formal params allowed per function
"maxdepth" : false, // {int} Max depth of nested blocks (within functions)
"maxstatements" : false, // {int} Max number statements per function
"maxcomplexity" : false, // {int} Max cyclomatic complexity per function
"maxlen" : false, // {int} Max number of characters per line
// Relaxing
"asi" : false, // true: Tolerate Automatic Semicolon Insertion (no semicolons)
"boss" : false, // true: Tolerate assignments where comparisons would be expected
"debug" : false, // true: Allow debugger statements e.g. browser breakpoints.
"eqnull" : false, // true: Tolerate use of `== null`
"es5" : false, // true: Allow ES5 syntax (ex: getters and setters)
"esnext" : false, // true: Allow ES.next (ES6) syntax (ex: `const`)
"moz" : false, // true: Allow Mozilla specific syntax (extends and overrides esnext features)
// (ex: `for each`, multiple try/catch, function expression…)
"evil" : false, // true: Tolerate use of `eval` and `new Function()`
"expr" : false, // true: Tolerate `ExpressionStatement` as Programs
"funcscope" : false, // true: Tolerate defining variables inside control statements"
"globalstrict" : false, // true: Allow global "use strict" (also enables 'strict')
"iterator" : false, // true: Tolerate using the `__iterator__` property
"lastsemic" : false, // true: Tolerate omitting a semicolon for the last statement of a 1-line block
"laxbreak" : false, // true: Tolerate possibly unsafe line breakings
"laxcomma" : false, // true: Tolerate comma-first style coding
"loopfunc" : false, // true: Tolerate functions being defined in loops
"multistr" : false, // true: Tolerate multi-line strings
"proto" : false, // true: Tolerate using the `__proto__` property
"scripturl" : false, // true: Tolerate script-targeted URLs
"smarttabs" : false, // true: Tolerate mixed tabs/spaces when used for alignment
"shadow" : false, // true: Allows re-define variables later in code e.g. `var x=1; x=2;`
"sub" : false, // true: Tolerate using `[]` notation when it can still be expressed in dot notation
"supernew" : false, // true: Tolerate `new function () { ... };` and `new Object;`
"validthis" : false, // true: Tolerate using this in a non-constructor function
// Environments
"browser" : true, // Web Browser (window, document, etc)
"couch" : false, // CouchDB
"devel" : true, // Development/debugging (alert, confirm, etc)
"dojo" : false, // Dojo Toolkit
"jquery" : true, // jQuery
"mootools" : false, // MooTools
"node" : true, // Node.js
"nonstandard" : false, // Widely adopted globals (escape, unescape, etc)
"prototypejs" : false, // Prototype and Scriptaculous
"rhino" : false, // Rhino
"worker" : false, // Web Workers
"wsh" : false, // Windows Scripting Host
"yui" : false, // Yahoo User Interface
"mocha": true,
// Legacy
"nomen" : false, // true: Prohibit dangling `_` in variables
"onevar" : false, // true: Allow only one `var` statement per function
"passfail" : false, // true: Stop on first error
"white" : false, // true: Check against strict whitespace and indentation rules
// Custom Globals
"globals" : {
"Promise": true
} // additional predefined global variables
}

View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -1,17 +1,20 @@
FROM node:lts
RUN mkdir -p /usr/src/app
RUN mkdir -p /usr/src/app && \
chown -R node:node /usr/src/app
WORKDIR /usr/src/app
ARG NODE_ENV
ENV NODE_ENV $NODE_ENV
COPY install/package.json /usr/src/app/package.json
COPY --chown=node:node install/package.json /usr/src/app/package.json
USER node
RUN npm install --only=prod && \
npm cache clean --force
COPY . /usr/src/app
COPY --chown=node:node . /usr/src/app
ENV NODE_ENV=production \
daemon=false \

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: {
@@ -161,8 +164,8 @@ module.exports = function (grunt) {
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') {
@@ -180,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);
}
@@ -199,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

@@ -1,8 +1,7 @@
# ![NodeBB](public/images/logo.svg)
[![Build Status](https://travis-ci.org/NodeBB/NodeBB.svg?branch=master)](https://travis-ci.org/NodeBB/NodeBB)
[![Workflow](https://github.com/NodeBB/NodeBB/actions/workflows/test.yaml/badge.svg)](https://github.com/NodeBB/NodeBB/actions/workflows/test.yaml)
[![Coverage Status](https://coveralls.io/repos/github/NodeBB/NodeBB/badge.svg?branch=master)](https://coveralls.io/github/NodeBB/NodeBB?branch=master)
[![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 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.
@@ -15,6 +14,7 @@ Additional functionality is enabled through the use of third-party plugins.
* [Help translate NodeBB](https://www.transifex.com/projects/p/nodebb/)
* [NodeBB Blog](http://blog.nodebb.org)
* [Premium Hosting for NodeBB](http://www.nodebb.org/ "NodeBB")
* Unofficial IRC community &ndash; channel `#nodebb` on Libera.chat
* [Follow us on Twitter](http://www.twitter.com/NodeBB/ "NodeBB Twitter")
* [Like us on Facebook](http://www.facebook.com/NodeBB/ "NodeBB Facebook")

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

@@ -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

@@ -14,27 +14,33 @@
"newbiePostEditDuration": 3600,
"postDeleteDuration": 0,
"enablePostHistory": 1,
"topicBacklinks": 1,
"postCacheSize": 10485760,
"disableChat": 0,
"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,
"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,
@@ -60,10 +66,10 @@
"profileImageDimension": 200,
"profile:convertProfileImageToPNG": 0,
"profile:keepAllUserImages": 0,
"requireEmailConfirmation": 0,
"gdpr_enabled": 1,
"allowProfileImageUploads": 1,
"teaserPost": "last-reply",
"showPostPreviewsOnHover": 1,
"allowPrivateGroups": 1,
"unreadCutoff": 2,
"bookmarkThreshold": 5,
@@ -101,7 +107,11 @@
"maxPostsPerPage": 20,
"topicsPerPage": 20,
"postsPerPage": 20,
"categoriesPerPage": 50,
"userSearchResultsPerPage": 50,
"searchDefaultSortBy": "relevance",
"searchDefaultIn": "titlesposts",
"searchDefaultInQuick": "titles",
"maximumGroupNameLength": 255,
"maximumGroupTitleLength": 40,
"preventTopicDeleteAfterReplies": 0,
@@ -128,6 +138,8 @@
"disableEmailSubscriptions": 0,
"emailConfirmInterval": 10,
"removeEmailNotificationImages": 0,
"includeUnverifiedEmails": 0,
"emailPrompt": 1,
"inviteExpiration": 7,
"dailyDigestFreq": "off",
"digestHour": 17,

View File

@@ -3,10 +3,6 @@
const prompt = require('prompt');
const winston = require('winston');
const util = require('util');
const promptGet = util.promisify((schema, callback) => prompt.get(schema, callback));
const questions = {
redis: require('../src/database/redis').questions,
mongo: require('../src/database/mongo').questions,
@@ -14,7 +10,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);
};
@@ -28,19 +24,19 @@ async function getDatabaseConfig(config) {
if (config['redis:host'] && config['redis:port']) {
return config;
}
return await promptGet(questions.redis);
return await prompt.get(questions.redis);
} else if (config.database === 'mongo') {
if ((config['mongo:host'] && config['mongo:port']) || config['mongo:uri']) {
return config;
}
return await promptGet(questions.mongo);
return await prompt.get(questions.mongo);
} else if (config.database === 'postgres') {
if (config['postgres:host'] && config['postgres:port']) {
return config;
}
return await promptGet(questions.postgres);
return await prompt.get(questions.postgres);
}
throw new Error('unknown database : ' + config.database);
throw new Error(`unknown database : ${config.database}`);
}
function saveDatabaseConfig(config, databaseConfig) {
@@ -79,11 +75,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.16.2-beta.2",
"version": "1.18.6",
"homepage": "http://www.nodebb.org",
"repository": {
"type": "git",
@@ -11,8 +11,8 @@
"main": "app.js",
"scripts": {
"start": "node loader.js",
"lint": "npx eslint --cache ./nodebb .",
"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"
},
@@ -22,156 +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.2.1",
"autoprefixer": "10.4.0",
"bcryptjs": "2.4.3",
"benchpressjs": "2.4.0",
"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.6.0",
"connect-multiparty": "^2.2.0",
"connect-pg-simple": "^6.1.0",
"connect-redis": "5.0.0",
"connect-pg-simple": "^7.0.0",
"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": "^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": "6.0.0",
"express-session": "^1.17.1",
"express-useragent": "^1.0.15",
"graceful-fs": "^4.2.6",
"helmet": "^4.4.1",
"html-to-text": "8.1.0",
"ipaddr.js": "^2.0.0",
"jquery": "3.5.1",
"jquery-deserialize": "2.0.0-rc1",
"jquery": "3.6.0",
"jquery-deserialize": "2.0.0",
"jquery-form": "4.3.0",
"jquery-serializeobject": "1.0.0",
"jquery-ui": "1.12.1",
"jquery-ui": "1.13.0",
"jsesc": "3.0.2",
"json2csv": "5.0.5",
"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.3",
"mongodb": "4.1.4",
"morgan": "^1.10.0",
"mousetrap": "^1.6.5",
"multiparty": "4.2.2",
"@nodebb/bootswatch": "3.4.2",
"nconf": "^0.11.0",
"nodebb-plugin-composer-default": "6.5.5",
"nodebb-plugin-dbsearch": "4.1.2",
"nodebb-plugin-emoji": "^3.3.0",
"nodebb-plugin-emoji-android": "2.0.0",
"nodebb-plugin-markdown": "8.12.4",
"nodebb-plugin-mentions": "2.13.6",
"nodebb-plugin-soundpack-default": "1.0.0",
"nodebb-plugin-spam-be-gone": "0.7.7",
"nodebb-rewards-essentials": "0.1.4",
"nodebb-theme-lavender": "5.0.17",
"nodebb-theme-persona": "10.3.18",
"nodebb-theme-slick": "1.3.8",
"nodebb-theme-vanilla": "11.3.10",
"nodebb-widget-essentials": "5.0.2",
"nodemailer": "^6.4.6",
"nconf": "^0.11.2",
"nodebb-plugin-composer-default": "7.0.14",
"nodebb-plugin-dbsearch": "5.1.0",
"nodebb-plugin-emoji": "^3.5.0",
"nodebb-plugin-emoji-android": "2.0.5",
"nodebb-plugin-markdown": "8.14.4",
"nodebb-plugin-mentions": "3.0.3",
"nodebb-plugin-spam-be-gone": "0.7.11",
"nodebb-rewards-essentials": "0.2.0",
"nodebb-theme-lavender": "5.3.1",
"nodebb-theme-persona": "11.2.21",
"nodebb-theme-slick": "1.4.16",
"nodebb-theme-vanilla": "12.1.9",
"nodebb-widget-essentials": "5.0.4",
"nodemailer": "^6.5.0",
"nprogress": "0.2.0",
"passport": "^0.4.1",
"passport": "^0.5.0",
"passport-http-bearer": "^1.0.1",
"passport-local": "1.0.0",
"pg": "^8.0.2",
"pg-cursor": "^2.1.9",
"postcss": "8.1.10",
"postcss-clean": "1.1.0",
"promise-polyfill": "^8.1.3",
"prompt": "^1.0.0",
"redis": "3.0.2",
"pg": "^8.7.1",
"pg-cursor": "^2.7.1",
"postcss": "8.3.11",
"postcss-clean": "1.2.0",
"prompt": "^1.1.0",
"ioredis": "4.28.0",
"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.27.0",
"sitemap": "^6.1.0",
"sharp": "0.29.2",
"sitemap": "^7.0.0",
"slideout": "1.0.1",
"socket.io": "3.1.0",
"socket.io": "4.3.2",
"socket.io-adapter-cluster": "^1.0.1",
"socket.io-client": "3.1.0",
"socket.io-redis": "6.0.1",
"sortablejs": "1.13.0",
"spdx-license-list": "^6.1.0",
"socket.io-client": "4.3.2",
"@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.5.2",
"validator": "13.7.0",
"visibilityjs": "2.0.2",
"winston": "3.3.3",
"xml": "^1.0.1",
"xregexp": "^4.3.0",
"yargs": "16.2.0",
"xregexp": "^5.0.1",
"yargs": "17.2.1",
"zxcvbn": "^4.4.2"
},
"devDependencies": {
"@apidevtools/swagger-parser": "10.0.2",
"@commitlint/cli": "11.0.0",
"@commitlint/config-angular": "11.0.0",
"coveralls": "3.1.0",
"eslint": "7.17.0",
"eslint-config-airbnb-base": "14.2.1",
"eslint-plugin-import": "2.22.1",
"grunt": "1.3.0",
"@apidevtools/swagger-parser": "10.0.3",
"@commitlint/cli": "14.1.0",
"@commitlint/config-angular": "14.1.0",
"coveralls": "3.1.1",
"eslint": "7.32.0",
"eslint-config-nodebb": "0.0.3",
"eslint-plugin-import": "2.25.3",
"grunt": "1.4.1",
"grunt-contrib-watch": "1.1.0",
"husky": "4.3.7",
"jsdom": "16.4.0",
"lint-staged": "10.5.3",
"mocha": "8.2.1",
"husky": "7.0.4",
"jsdom": "18.0.1",
"lint-staged": "11.2.6",
"mocha": "9.1.3",
"mocha-lcov-reporter": "1.3.0",
"mockdate": "3.0.5",
"nyc": "15.1.0",
"smtp-server": "3.8.0"
"smtp-server": "3.9.0"
},
"bugs": {
"url": "https://github.com/NodeBB/NodeBB/issues"
},
"engines": {
"node": ">=10"
"node": ">=12"
},
"maintainers": [
{

View File

@@ -7,10 +7,7 @@ const fs = require('fs');
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)
);
const uglify = require('uglify-es');
const nconf = require('nconf');
@@ -26,8 +23,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());
@@ -68,10 +65,10 @@ 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);
@@ -98,7 +95,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);
});
}
@@ -116,11 +113,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,
@@ -128,10 +123,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,
@@ -151,23 +146,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);
}
}
@@ -175,11 +170,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;
@@ -193,7 +188,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'], {
@@ -254,10 +249,10 @@ async function compileLess() {
try {
const installSrc = path.join(__dirname, '../public/less/install.less');
const style = await fs.promises.readFile(installSrc);
const css = await lessRenderAsync(style, { filename: path.resolve(installSrc) });
const css = await less.render(String(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;
}
}
@@ -289,7 +284,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') {

121
loader.js
View File

@@ -1,82 +1,78 @@
'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 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) {
Loader.init = function () {
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`);
};
}
process.on('SIGHUP', Loader.restart);
process.on('SIGTERM', Loader.stop);
callback();
};
Loader.displayStartupMessages = function (callback) {
Loader.displayStartupMessages = function () {
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');
console.log('');
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 +80,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 +88,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);
}
@@ -108,32 +104,28 @@ Loader.addWorkerEvents = function (worker) {
});
};
Loader.start = function (callback) {
Loader.start = function () {
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);
}
if (callback) {
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 +138,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 +164,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 +193,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 +209,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) {
@@ -233,15 +225,12 @@ fs.open(pathToConfig, 'r', function (err) {
fs.writeFileSync(pidFilePath, String(process.pid));
}
async.series([
Loader.init,
Loader.displayStartupMessages,
Loader.start,
], function (err) {
if (err) {
console.error('[loader] Error during startup');
throw err;
}
});
try {
Loader.init();
Loader.displayStartupMessages();
Loader.start();
} catch (err) {
console.error('[loader] Error during startup');
throw err;
}
});

View File

@@ -1,53 +1,3 @@
{
"globals": {
"app": true,
"io": true,
"socket": true,
"ajaxify": true,
"config": true,
"utils": true,
"overrides": true,
"componentHandler": true,
"bootbox": true,
"Visibility": true,
"Tinycon": true,
"Promise": true
},
"env": {
"jquery": true,
"amd": true,
"browser": true,
"es6": true
},
"rules": {
"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"
},
"parserOptions": {
"ecmaVersion": 2018,
"ecmaFeatures": {
"classes": false,
"defaultParams": false,
"blockBindings": false,
"forOf": false,
"generators": false,
"globalReturn": false,
"jsx": false,
"modules": false,
"objectLiteralComputedProperties": false,
"objectLiteralDuplicateProperties": false,
"objectLiteralShorthandMethods": false,
"objectLiteralShorthandProperties": false,
"impliedStrict": false,
"restParams": false,
"superInFunctions": false
}
}
"extends": "nodebb/public"
}

View File

@@ -1,6 +1,8 @@
{
"maxerr" : 50, // {int} Maximum error before stopping
"esversion": 9,
// Enforcing
"bitwise" : true, // true: Prohibit bitwise operators (&, |, ^, etc.)
"camelcase" : false, // true: Identifiers must be in camelCase
@@ -42,7 +44,7 @@
"evil" : false, // true: Tolerate use of `eval` and `new Function()`
"expr" : false, // true: Tolerate `ExpressionStatement` as Programs
"funcscope" : false, // true: Tolerate defining variables inside control statements"
"globalstrict" : false, // true: Allow global "use strict" (also enables 'strict')
"globalstrict" : true, // true: Allow global "use strict" (also enables 'strict')
"iterator" : false, // true: Tolerate using the `__iterator__` property
"lastsemic" : false, // true: Tolerate omitting a semicolon for the last statement of a 1-line block
"laxbreak" : false, // true: Tolerate possibly unsafe line breakings
@@ -66,7 +68,6 @@
"utils": true,
"overrides": true,
"componentHandler": true,
"bootbox": true,
"templates": true,
"Visibility": true,
"Tinycon": true,

View File

@@ -2,11 +2,12 @@
"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": "حذف الاحداث",
"confirm-delete-all-events": "Are you sure you want to delete all logged 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>",
@@ -54,8 +56,8 @@
"active-users.total": "المجموع",
"active-users.connections": "Connections",
"anonymous-registered-users": "المجهولين مقابل المستخدمين المسجلين",
"anonymous": "مجهول",
"guest-registered-users": "Guest vs Registered Users",
"guest": "Guest",
"registered": "مسجل",
"user-presence": "تواجد المستخدمين",
@@ -66,6 +68,7 @@
"unread": "غير مقروء",
"high-presence-topics": "مواضيع ذات حضور قوي",
"popular-searches": "Popular Searches",
"graphs.page-views": "مشاهدات الصفحة",
"graphs.page-views-registered": "Page Views Registered",
@@ -73,7 +76,15 @@
"graphs.page-views-bot": "Page Views Bot",
"graphs.unique-visitors": "زوار فريدين",
"graphs.registered-users": "مستخدمين مسجلين",
"graphs.anonymous-users": "مستخدمين مجهولين",
"graphs.guest-users": "Guest 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-searches": "No searches have been made yet",
"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

@@ -8,7 +8,11 @@
"nodejs": "nodejs",
"online": "online",
"git": "git",
"memory": "memory",
"process-memory": "process memory",
"system-memory": "system memory",
"used-memory-process": "Used memory by process",
"used-memory-os": "Used system memory",
"total-memory-os": "Total system memory",
"load": "system load",
"cpu-usage": "cpu usage",
"uptime": "uptime",

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

@@ -8,8 +8,6 @@
"delete": "Delete",
"enable": "Enable",
"disable": "Disable",
"control-panel": "Rewards Control",
"new-reward": "New Reward",
"alert.delete-success": "Successfully deleted reward",
"alert.no-inputs-found": "Illegal reward - no inputs found!",

View File

@@ -1,79 +0,0 @@
{
"forum-traffic": "Forum Traffic",
"page-views": "مشاهدات الصفحات",
"unique-visitors": "زائرين فريدين",
"new-users": "New Users",
"posts": "مشاركات",
"topics": "مواضيع",
"page-views-seven": "آخر 7 ايام",
"page-views-thirty": "آخر 30 يوماً",
"page-views-last-day": "آخر 24 ساعة",
"page-views-custom": "مدة زمنية مخصصة",
"page-views-custom-start": "بداية المدة",
"page-views-custom-end": "نهاية المده",
"page-views-custom-help": "أدخل نطاقا زمنيا لمرات مشاهدة الصفحات التي ترغب في عرضها. إذا لم يظهر منتقي التاريخ، فإن التنسيق المقبول هو <code>YYYY-MM-DD</code>",
"page-views-custom-error": "الرجاء إدخال نطاق تاريخ صالح بالتنسيق <code>YYYY-MM-DD</code>",
"stats.yesterday": "Yesterday",
"stats.today": "Today",
"stats.last-week": "Last Week",
"stats.this-week": "This Week",
"stats.last-month": "Last Month",
"stats.this-month": "This Month",
"stats.all": "كل الوقت",
"updates": "تحديثات",
"running-version": "المنتدى يعمل حاليا على <strong>NodeBB الإصدار<span id=\"version\">%1</span></strong>.",
"keep-updated": "تأكد دائما من أن NodeBB يعمل على احدث إصدار للحصول على أحدث التصحيحات الأمنية وإصلاحات الأخطاء.",
"up-to-date": "<p>المنتدى <strong>يعمل على أحدث إصدار</strong> <i class=\"fa fa-check\"></i></p>",
"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>",
"running-in-development": "المنتدى قيد التشغيل في وضع \"المطورين\". وقد تكون هناك ثغرات أمنية مفتوحة؛ من فضلك تواصل مع مسؤول نظامك.",
"latest-lookup-failed": "<p>Failed to look up latest available version of NodeBB</p>",
"notices": "إشعارات",
"restart-not-required": "إعادة التشغيل غير مطلوب",
"restart-required": "إعادة التشغيل مطلوبة",
"search-plugin-installed": "إضافة البحث منصبة",
"search-plugin-not-installed": "إضافة البحث غير منصبة",
"search-plugin-tooltip": "نصب إضافة البحث من صفحة الإضافات البرمجية لتنشيط وظيفة البحث",
"control-panel": "التحكم بالنظام",
"rebuild-and-restart": "Rebuild &amp; Restart",
"restart": "Restart",
"restart-warning": "Rebuilding or Restarting your NodeBB will drop all existing connections for a few seconds.",
"restart-disabled": "Rebuilding and Restarting your NodeBB has been disabled as you do not seem to be running it via the appropriate daemon.",
"maintenance-mode": "وضع الصيانة",
"maintenance-mode-title": "انقر هنا لإعداد وضع الصيانة لـNodeBB",
"realtime-chart-updates": "التحديث الفوري للرسم البياني",
"active-users": "المستخدمين النشطين",
"active-users.users": "الأعضاء",
"active-users.guests": "الزوار",
"active-users.total": "المجموع",
"active-users.connections": "Connections",
"anonymous-registered-users": "المجهولين مقابل المستخدمين المسجلين",
"anonymous": "مجهول",
"registered": "مسجل",
"user-presence": "تواجد المستخدمين",
"on-categories": "في قائمة الأقسام",
"reading-posts": "قراءة المشاركات",
"browsing-topics": "تصفح المواضيع",
"recent": "الأخيرة",
"unread": "غير مقروء",
"high-presence-topics": "مواضيع ذات حضور قوي",
"graphs.page-views": "مشاهدات الصفحة",
"graphs.page-views-registered": "Page Views Registered",
"graphs.page-views-guest": "Page Views Guest",
"graphs.page-views-bot": "Page Views Bot",
"graphs.unique-visitors": "زوار فريدين",
"graphs.registered-users": "مستخدمين مسجلين",
"graphs.anonymous-users": "مستخدمين مجهولين",
"last-restarted-by": "Last restarted by",
"no-users-browsing": "No users browsing"
}

View File

@@ -1,8 +0,0 @@
{
"home-page": "Home Page",
"description": "Choose what page is shown when users navigate to the root URL of your forum.",
"home-page-route": "Home Page Route",
"custom-route": "Custom Route",
"allow-user-home-pages": "Allow User Home Pages",
"home-page-title": "Title of the home page (default \"Home\")"
}

View File

@@ -1,6 +0,0 @@
{
"language-settings": "اعدادات اللغة",
"description": "تُحدد اللغة الافتراضية إعدادات اللغة لجميع المستخدمين الذين يزورون المنتدى. <br />يمكن للأعضاء تجاوز اللغة الافتراضية من خلال صفحة إعدادات الحساب الخاصة بهم.",
"default-language": "اللغة الافتراضية",
"auto-detect": "الكشف عن إعدادات اللغة للزوار بشكل آلي"
}

View File

@@ -1,23 +0,0 @@
{
"icon": "Icon:",
"change-icon": "change",
"route": "Route:",
"tooltip": "Tooltip:",
"text": "Text:",
"text-class": "Text Class: <small>optional</small>",
"class": "Class: <small>optional</small>",
"id": "ID: <small>optional</small>",
"properties": "Properties:",
"groups": "Groups:",
"open-new-window": "Open in a new window",
"btn.delete": "Delete",
"btn.disable": "Disable",
"btn.enable": "Enable",
"available-menu-items": "Available Menu Items",
"custom-route": "Custom Route",
"core": "core",
"plugin": "plugin"
}

View File

@@ -1,5 +0,0 @@
{
"post-sharing": "Post Sharing",
"info-plugins-additional": "Plugins can add additional networks for sharing posts.",
"save-success": "Successfully saved Post Sharing Networks!"
}

View File

@@ -1,9 +0,0 @@
{
"notifications": "التنبيهات",
"chat-messages": "Chat Messages",
"play-sound": "Play",
"incoming-message": "Incoming Message",
"outgoing-message": "Outgoing Message",
"upload-new-sound": "Upload New Sound",
"saved": "Settings Saved"
}

View File

@@ -10,6 +10,7 @@
"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",
@@ -18,6 +19,7 @@
"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",
@@ -30,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",
@@ -46,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

@@ -13,6 +13,7 @@
"resent-single": "Manual digest resend completed",
"resent-day": "Daily digest resent",
"resent-week": "Weekly digest resent",
"resent-biweek": "Bi-Weekly digest resent",
"resent-month": "Monthly digest resent",
"null": "<em>Never</em>",
"manual-run": "Manual digest run:",

View File

@@ -25,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",
@@ -50,10 +51,13 @@
"alert.saved": "Privilege changes saved and applied",
"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
"alert.discarded": "Privilege changes discarded",
"alert.confirm-copyToAll": "Are you sure you wish to apply this privilege set to <strong>all categories</strong>?",
"alert.confirm-copyToAllGroup": "Are you sure you wish to apply this group's privilege set to <strong>all categories</strong>?",
"alert.confirm-copyToChildren": "Are you sure you wish to apply this privilege set to <strong>all descendant (child) categories</strong>?",
"alert.confirm-copyToChildrenGroup": "Are you sure you wish to apply this group's privilege set to <strong>all descendant (child) categories</strong>?",
"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
"alert.confirm-copyToAllGroup": "Are you sure you wish to apply this group's set of <strong>%1</strong> to <strong>all categories</strong>?",
"alert.confirm-copyToChildren": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all descendant (child) categories</strong>?",
"alert.confirm-copyToChildrenGroup": "Are you sure you wish to apply this group's set of <strong>%1</strong> to <strong>all descendant (child) categories</strong>?",
"alert.no-undo": "<em>This action cannot be undone.</em>",
"alert.admin-warning": "Administrators implicitly get all privileges"
"alert.admin-warning": "Administrators implicitly get all privileges",
"alert.copyPrivilegesFrom-title": "Select a category to copy from",
"alert.copyPrivilegesFrom-warning": "This will copy <strong>%1</strong> from the selected category.",
"alert.copyPrivilegesFromGroup-warning": "This will copy this group's set of <strong>%1</strong> from the selected category."
}

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",

View File

@@ -5,5 +5,7 @@
"orphaned": "Orphaned",
"size/filecount": "Size / Filecount",
"confirm-delete": "Do you really want to delete this file?",
"filecount": "%1 files"
"filecount": "%1 files",
"new-folder": "New Folder",
"name-new-folder": "Enter a name for new the folder"
}

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,8 @@
"users.uid": "uid",
"users.username": "username",
"users.email": "email",
"users.no-email": "(no email)",
"users.ip": "IP",
"users.postcount": "postcount",
"users.reputation": "reputation",
"users.flags": "flags",

View File

@@ -1,5 +1,10 @@
{
"dashboard": "Dashboard",
"section-dashboard": "Dashboards",
"dashboard/overview": "Overview",
"dashboard/logins": "Logins",
"dashboard/users": "Users",
"dashboard/topics": "Topics",
"dashboard/searches": "Searches",
"section-general": "عام",
"section-manage": "إدارة",

View File

@@ -6,7 +6,7 @@
"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.enabled": "Enable SMTP Transport",
"smtp-transport-help": "You can select from a list of well-known services or enter a custom one.",
"smtp-transport.service": "Select a service",
"smtp-transport.service-custom": "Custom Service",
@@ -36,6 +36,11 @@
"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>",
"notifications.settings": "Email notification settings",
"notifications.remove-images": "Remove images from email notifications"
}
"notifications.remove-images": "Remove images from email notifications",
"require-email-address": "Require new users to specify an email address",
"require-email-address-warning": "By default, users can opt-out of entering an email address. Enabling this option means they have to enter an email address in order to proceed with registration. <strong>It does not ensure user will enter a real email address, nor even an address they own.</strong>",
"include-unverified-emails": "Send emails to recipients who have not explicitly confirmed their emails",
"include-unverified-warning": "By default, users with emails associated with their account have already been verified, but there are situations where this is not the case (e.g. SSO logins, grandfathered users, etc). <strong>Enable this setting at your own risk</strong> &ndash; sending emails to unverified addresses may be a violation of regional anti-spam laws.",
"prompt": "Prompt users to enter or confirm their emails",
"prompt-help": "If a user does not have an email set, or their email is not confirmed, a warning will be shown on screen."
}

View File

@@ -3,9 +3,9 @@
"title": "عنوان الموقع",
"title.short": "عنوان قصير",
"title.short-placeholder": "ان لم تقم بكتابة عنوان مختصر, سيتم استخدام عنوان الموقع الكلي",
"title.url": "الرابط",
"title.url": "Title Link URL",
"title.url-placeholder": "The URL of the site title",
"title.url-help": "When the title is clicked, send users to this address. If left blank, user will be sent to the forum index.",
"title.url-help": "When the title is clicked, send users to this address. If left blank, user will be sent to the forum index. <br> Note: This is not the external URL used in emails, etc. That is set by the <code>url</code> property in config.json",
"title.name": "اسم المنتدي",
"title.show-in-header": "Show Site Title in Header",
"browser-title": "عنوان المتصفح",
@@ -20,9 +20,9 @@
"logo.image": "صورة",
"logo.image-placeholder": "Path to a logo to display on forum header",
"logo.upload": "رفع",
"logo.url": "الرابط",
"logo.url": "Logo Link URL",
"logo.url-placeholder": "The URL of the site logo",
"logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index.",
"logo.url-help": "When the logo is clicked, send users to this address. If left blank, user will be sent to the forum index. <br> Note: This is not the external URL used in emails, etc. That is set by the <code>url</code> property in config.json",
"logo.alt-text": "نص بديل",
"log.alt-text-placeholder": "Alternative text for accessibility",
"favicon": "صورة المفضله",
@@ -35,10 +35,16 @@
"maskable-icon.help": "Recommended size and format: 512x512, PNG format only. If no maskable icon is specified, NodeBB will fall back to the Touch Icon.",
"outgoing-links": "Outgoing Links",
"outgoing-links.warning-page": "Use Outgoing Links Warning Page",
"search-default-sort-by": "الترتيب الافتراضي للبحث",
"search": "Search",
"search-default-in": "Search In",
"search-default-in-quick": "Quick Search In",
"search-default-sort-by": "Sort by",
"outgoing-links.whitelist": "Domains to whitelist for bypassing the warning page",
"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

@@ -11,6 +11,8 @@
"properties": "Properties:",
"groups": "Groups:",
"open-new-window": "Open in a new window",
"dropdown": "Dropdown",
"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Link 1&lt;/a&gt;&lt;/li&gt;",
"btn.delete": "Delete",
"btn.disable": "Disable",
@@ -20,4 +22,4 @@
"custom-route": "Custom Route",
"core": "core",
"plugin": "plugin"
}
}

View File

@@ -2,5 +2,6 @@
"notifications": "Notifications",
"welcome-notification": "Welcome Notification",
"welcome-notification-link": "Welcome Notification Link",
"welcome-notification-uid": "Welcome Notification User (UID)"
"welcome-notification-uid": "Welcome Notification User (UID)",
"post-queue-notification-uid": "Post Queue User (UID)"
}

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

@@ -40,6 +40,7 @@
"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",
"teaser.first": "First",
"showPostPreviewsOnHover": "Show a preview of posts when mouse overed",
"unread": "Unread Settings",
"unread.cutoff": "Unread cutoff days",
"unread.min-track-last": "Minimum posts in topic before tracking last read",
@@ -56,6 +57,9 @@
"composer.show-help": "Show \"Help\" tab",
"composer.enable-plugin-help": "Allow plugins to add content to the help tab",
"composer.custom-help": "Custom Help Text",
"backlinks": "Backlinks",
"backlinks.enabled": "Enable topic backlinks",
"backlinks.help": "If a post references another topic, a link back to the post will be inserted into the referenced topic at that point in time.",
"ip-tracking": "IP Tracking",
"ip-tracking.each-post": "Track IP Address for each post",
"enable-post-history": "Enable Post History"

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

@@ -71,6 +71,7 @@
"digest-freq.off": "Off",
"digest-freq.daily": "Daily",
"digest-freq.weekly": "Weekly",
"digest-freq.biweekly": "Bi-Weekly",
"digest-freq.monthly": "Monthly",
"email-chat-notifs": "Send an email if a new chat message arrives and I am not online",
"email-post-notif": "Send an email when replies are made to topics I am subscribed to",

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

@@ -6,7 +6,9 @@
"greeting_no_name": "مرحبًا",
"greeting_with_name": "مرحبًا بك يا %1",
"email.verify-your-email.subject": "Please verify your email",
"email.verify.text1": "Your email address has changed!",
"email.verify.text1": "You've requested that we change or confirm your email address",
"email.verify.text2": "For security purposes, we only change or confirm the email address on file once its ownership has been confirmed via email. <strong>If you did not request this, no action is required on your part.</strong>",
"email.verify.text3": "Once you confirm this email address, we will replace your current email address with this one (%1).",
"welcome.text1": "شكرًا على تسجيلك في %1!",
"welcome.text2": "لتفعيل حسابك، نحتاج إلى التأكد من صحة عنوان البريد الإلكتروني الذي سجلت به.",
"welcome.text3": "تم قبول نتسجيلك ، يمكنك الدخول باتسخدام اسم المستخدم و كلمة المرور.",

View File

@@ -22,16 +22,21 @@
"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-path": "Invalid path",
"folder-exists": "Folder exists",
"invalid-pagination-value": "رقم الصفحة غير صحيح ، يجب أن يكون بين %1 و %2 .",
"username-taken": "اسم المستخدم مأخوذ",
"email-taken": "البريد الالكتروني مأخوذ",
"email-nochange": "The email entered is the same as the email already on file.",
"email-invited": "Email was already invited",
"email-not-confirmed": "You are unable to post until your email is confirmed, please click here to confirm your email.",
"email-not-confirmed": "Posting in some categories or topics is enabled once your email is confirmed, please click here to send a confirmation email.",
"email-not-confirmed-chat": "لا يمكنك الدردشة حتى تقوم بتأكيد بريدك الإلكتروني، الرجاء إضغط هنا لتأكيد بريدك اﻹلكتروني.",
"email-not-confirmed-email-sent": "Your email has not been confirmed yet, please check your inbox for the confirmation email. You won't be able to post or chat until your email is confirmed.",
"no-email-to-confirm": "هذا المنتدى يستلزم تفعيل بريدك الإلكتروني، انقر هنا من فضلك لإدخاله.",
"email-not-confirmed-email-sent": "Your email has not been confirmed yet, please check your inbox for the confirmation email. You may not be able to post in some categories or chat until your email is confirmed.",
"no-email-to-confirm": "Your account does not have an email set. An email is necessary for account recovery, and may be necessary for chatting and posting in some categories. Please click here to enter an email.",
"user-doesnt-have-email": "User \"%1\" does not have an email set.",
"email-confirm-failed": "لم نستطع تفعيل بريدك الإلكتروني، المرجو المحاولة لاحقًا.",
"confirm-email-already-sent": "لقد تم ارسال بريد التأكيد، الرجاء اﻹنتظار 1% دقائق لإعادة اﻹرسال",
"sendmail-not-found": "The sendmail executable could not be found, please ensure it is installed and executable by the user running NodeBB.",
@@ -83,13 +88,23 @@
"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-make-banned-users-admin": "You can't make banned users admin.",
"cant-remove-last-admin": "رجاءًا ، أضف مدير أخر قبل حذف صلاحيات الإدارة من حسابك.",
"account-deletion-disabled": "Account deletion is disabled",
"cant-delete-admin": "رجاءًا أزل صلاحيات الإدارة قبل حذف الحساب. ",
@@ -165,8 +180,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!",
@@ -177,5 +194,18 @@
"already-unblocked": "This user is already unblocked",
"no-connection": "There seems to be a problem with your internet connection",
"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"
"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",
@@ -75,9 +77,6 @@
"modal-reason-custom": "Reason for reporting this content...",
"modal-submit": "Submit Report",
"modal-submit-success": "Content has been flagged for moderation.",
"modal-submit-confirm": "Confirm Submission",
"modal-submit-confirm-text": "You have a custom reason specified already. Are you sure you wish to submit via quick-report?",
"modal-submit-confirm-text-help": "Submitting a quick report will overwrite any custom reasons defined.",
"bulk-actions": "Bulk Actions",
"bulk-resolve": "Resolve Flag(s)",

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": "الأعضاء",
@@ -68,6 +70,7 @@
"firstpost": "First post",
"read_more": "اقرأ المزيد",
"more": "المزيد",
"none": "None",
"posted_ago_by_guest": "كتب %1 بواسطة زائر",
"posted_ago_by": "كتب %1 بواسطة %2",
"posted_ago": "كتب %1",
@@ -93,6 +96,8 @@
"guest": "زائر",
"guests": "الزوار",
"former_user": "A Former User",
"system-user": "System",
"unknown-user": "Unknown user",
"updated.title": "تم تحديث المنتدى",
"updated.message": "لقد تم تحديث المنتدى إلى آخر نسخة للتو. إضغط هنا لإعادة تحميل الصفحة.",
"privacy": "الخصوصية",

View File

@@ -35,8 +35,7 @@
"details.member_count": "عدد اﻷعضاء",
"details.creation_date": "تاريخ الإنشاء",
"details.description": "الوصف",
"details.member-post-cids": "Categories to display posts from",
"details.member-post-cids-help": "<strong>Note</strong>: Selecting no categories will assume all categories are included. Use <code>ctrl</code> and <code>shift</code> to select multiple options.",
"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

@@ -54,12 +54,17 @@
"composer.formatting.strikethrough": "Strikethrough",
"composer.formatting.code": "Code",
"composer.formatting.link": "Link",
"composer.formatting.picture": "Picture",
"composer.formatting.picture": "Image Link",
"composer.upload-picture": "Upload Image",
"composer.upload-file": "Upload File",
"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": "تأكيد",

View File

@@ -14,6 +14,7 @@
"topics": "مواضيع",
"replies": "ردود",
"chat": "محادثات",
"group-chat": "Group Chats",
"follows": "متابعون",
"upvote": "الموافقين",
"new-flags": "New Flags",
@@ -47,6 +48,8 @@
"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": "حدث خطأ أثناء التحقق من عنوان بريدك الإلكتروني. ربما رمز التفعيل خاطئ أو انتهت صلاحيته.",

View File

@@ -20,9 +20,13 @@
"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": "تعذر علينا إتمام عملية التسجيل:",
"interstitial.intro": "We'd like some additional information in order to update your account&hellip;",
"interstitial.intro-new": "We'd like some additional information before we can create your account&hellip;",
"interstitial.errors-found": "Please review the entered information:",
"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

@@ -0,0 +1,4 @@
{
"title": "Top",
"no_top_topics": "No top topics"
}

View File

@@ -1,5 +1,6 @@
{
"topic": "موضوع",
"title": "Title",
"no_topics_found": "لا توجد مواضيع !",
"no_posts_found": "لا توجد مشاركات!",
"post_is_deleted": "هذه المشاركة محذوفة!",
@@ -19,6 +20,8 @@
"login-to-view": "🔒 Log in to view",
"edit": "تعديل",
"delete": "حذف",
"delete-event": "Delete Event",
"delete-event-confirm": "Are you sure you want to delete this event?",
"purge": "تطهير",
"restore": "استعادة",
"move": "نقل",
@@ -30,16 +33,27 @@
"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",
"moved-from-by": "Moved from %1 by",
"queued-by": "Post queued for approval &rarr;",
"backlink": "Referenced by",
"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": "ستستلم تنبيها عند كل مشاركة جديدة في هذا الموضوع.",
@@ -104,6 +118,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!",
@@ -117,14 +132,18 @@
"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.additional-options": "Additional Options",
"composer.schedule": "Schedule",
"composer.replying_to": "الرد على %1",
"composer.new_topic": "موضوع جديد",
"composer.editing": "Editing",
"composer.uploading": "جاري الرفع",
"composer.thumb_url_label": "ألصق رابط الصورة المصغرة للموضوع",
"composer.thumb_title": "إضافة صورة مصغرة للموضوع",
@@ -141,6 +160,7 @@
"newest_to_oldest": "من الأحدث إلى الأقدم",
"most_votes": "Most Votes",
"most_posts": "Most Posts",
"most_views": "Most Views",
"stale.title": "Create new topic instead?",
"stale.warning": "The topic you are replying to is quite old. Would you like to create a new topic instead, and reference this one in your reply?",
"stale.create": "موضوع جديد",
@@ -152,10 +172,13 @@
"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",
"first-post": "First post",
"last-post": "Last post"
"last-post": "Last post",
"post-quick-reply": "Post quick reply"
}

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": "أظهر اسمي الكامل",
@@ -93,10 +94,12 @@
"digest_off": "غير مفعل",
"digest_daily": "يوميا",
"digest_weekly": "أسبوعيًّا",
"digest_biweekly": "Bi-Weekly",
"digest_monthly": "شهريًّا",
"has_no_follower": "هذا المستخدم ليس لديه أية متابعين :(",
"follows_no_one": "هذا المستخدم لا يتابع أحد :(",
"has_no_posts": "هذا المستخدم لم يشارك حتى الآن.",
"has_no_best_posts": "This user does not have any upvoted posts yet.",
"has_no_topics": "هذا المستخدم لم يكتب أي موضوع حتى الآن.",
"has_no_watched_topics": "هذا المستخدم لم يقم بمراقبة اية مواضيع حتى الآن.",
"has_no_ignored_topics": "هذا المستخدم لم يقم بتجاهل اية مواضيع حتى الآن.",
@@ -135,7 +138,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": "انقر هنا لربط مع",
@@ -179,5 +182,8 @@
"consent.export_uploads": "Export Uploaded Content (.zip)",
"consent.export-uploads-success": "Exporting uploads, you will get a notification when it is complete.",
"consent.export_posts": "Export Posts (.csv)",
"consent.export-posts-success": "Exporting posts, you will get a notification when it is complete."
"consent.export-posts-success": "Exporting posts, you will get a notification when it is complete.",
"emailUpdate.intro": "Please enter your email address below. This forum uses your email address for scheduled digest and notifications, as well as for account recovery in the event of a lost password.",
"emailUpdate.optional": "<strong>This field is optional</strong>. You are not obligated to provide your email address, but without a validated email, you will not be able to recover your account.",
"emailUpdate.change-instructions": "A confirmation email will be sent to the entered email address with a unique link. Accessing that link will confirm your ownership of the email address and it will become active on your account. At any time, you are able to update your email on file from within your account page."
}

View File

@@ -3,6 +3,7 @@
"no-events": "Няма събития",
"control-panel": "Контролен панел за събитията",
"delete-events": "Изтриване на събитията",
"confirm-delete-all-events": "Наистина ли искате да изтриете всички събития в журнала?",
"filters": "Филтри",
"filters-apply": "Прилагане на филтрите",
"filter-type": "Вид събитие",

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>",
@@ -54,8 +56,8 @@
"active-users.total": "Общо",
"active-users.connections": "Връзки",
"anonymous-registered-users": "Анонимни към регистрирани потребители",
"anonymous": "Анонимни",
"guest-registered-users": "Гости към регистрирани потребители",
"guest": "Гост",
"registered": "Регистрирани",
"user-presence": "Присъствие на потребителите ",
@@ -66,6 +68,7 @@
"unread": "Непрочетени",
"high-presence-topics": "Теми с най-голяма присъственост",
"popular-searches": "Популярни търсения",
"graphs.page-views": "Преглеждания на страниците",
"graphs.page-views-registered": "Преглеждания на страниците от регистрирани потребители",
@@ -73,7 +76,15 @@
"graphs.page-views-bot": "Преглеждания на страниците от ботове",
"graphs.unique-visitors": "Уникални посетители",
"graphs.registered-users": "Регистрирани потребители",
"graphs.anonymous-users": "Анонимни потребители",
"graphs.guest-users": "Гости",
"last-restarted-by": "Последно рестартиране от",
"no-users-browsing": "Няма разглеждащи потребители"
"no-users-browsing": "Няма разглеждащи потребители",
"back-to-dashboard": "Назад към таблото",
"details.no-users": "В избрания период не са се регистрирали нови потребители",
"details.no-topics": "В избрания период не са публикувани нови теми",
"details.no-searches": "Все още не са правени търсения",
"details.no-logins": "В избрания период не са отчетени вписвания",
"details.logins-static": "NodeBB запазва данни за сесията в продължение на %1 дни, така че в следната таблица могат да се видят само последните активни сесии",
"details.logins-login-time": "Време на вписване"
}

View File

@@ -8,7 +8,11 @@
"nodejs": "nodejs",
"online": "на линия",
"git": "git",
"memory": "памет",
"process-memory": "памет на процеса",
"system-memory": "системна памет",
"used-memory-process": "Използвана памет от процеса",
"used-memory-os": "Използвана системна памет",
"total-memory-os": "Обща системна памет",
"load": "натоварване на системата",
"cpu-usage": "използване на процесора",
"uptime": "активно време",

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

@@ -8,8 +8,6 @@
"delete": "Изтриване",
"enable": "Включване",
"disable": "Изключване",
"control-panel": "Управление на наградите",
"new-reward": "Нова награда",
"alert.delete-success": "Наградата е изтрита успешно",
"alert.no-inputs-found": "Неправомерна награда — няма нищо въведено!",

View File

@@ -1,79 +0,0 @@
{
"forum-traffic": "Трафик на форума",
"page-views": "Преглеждания на страниците",
"unique-visitors": "Уникални посетители",
"new-users": "Нови потребители",
"posts": "Публикации",
"topics": "Теми",
"page-views-seven": "Последните 7 дни",
"page-views-thirty": "Последните 30 дни",
"page-views-last-day": "Последните 24 часа",
"page-views-custom": "Интервал по избор",
"page-views-custom-start": "Начална дата",
"page-views-custom-end": "Крайна дата",
"page-views-custom-help": "Въведете интервал от дати, за които искате да видите преглежданията на страниците. Ако не се появи календар за избор, можете да въведете датите във формат: <code>ГГГГ-ММ-ДД</code>",
"page-views-custom-error": "Моля, въведете правилен интервал от дати във формата: <code>ГГГГ-ММ-ДД</code>",
"stats.yesterday": "Вчера",
"stats.today": "Днес",
"stats.last-week": "Миналата седмица",
"stats.this-week": "Тази седмица",
"stats.last-month": "Миналия месец",
"stats.this-month": "Този месец",
"stats.all": "От началото",
"updates": "Обновления",
"running-version": "Вие използвате <strong>NodeBB версия <span id=\"version\">%1</span></strong>.",
"keep-updated": "Стремете се винаги да използвате най-новата версия на NodeBB, за да се възползвате от последните подобрения на сигурността и поправки на проблеми.",
"up-to-date": "<p>Вие използвате <strong>най-новата версия</strong> <i class=\"fa fa-check\"></i></p>",
"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>",
"running-in-development": "<span>Форумът работи в режим за разработчици, така че може да бъде уязвим. Моля, свържете се със системния си администратор.</span>",
"latest-lookup-failed": "<p>Не може да бъде извършена проверка за последната налична версия на NodeBB</p>",
"notices": "Забележки",
"restart-not-required": "Не се изисква рестартиране",
"restart-required": "Изисква се рестартиране",
"search-plugin-installed": "Добавката за търсене е инсталирана",
"search-plugin-not-installed": "Добавката за търсене не е инсталирана",
"search-plugin-tooltip": "Инсталирайте добавка за търсене от страницата с добавките, за да включите функционалността за търсене",
"control-panel": "Системен контрол",
"rebuild-and-restart": "Повторно изграждане и рестартиране",
"restart": "Рестартиране",
"restart-warning": "Повторното изграждане и рестартирането на NodeBB ще прекъснат всички връзки за няколко секунди.",
"restart-disabled": "Възможностите за повторно изграждане и рестартиране на NodeBB са изключени, тъй като изглежда, че NodeBB не се изпълнява чрез подходящия демон.",
"maintenance-mode": "Режим на профилактика",
"maintenance-mode-title": "Щракнете тук, за да зададете режим на профилактика на NodeBB",
"realtime-chart-updates": "Актуализации на таблиците в реално време",
"active-users": "Дейни потребители",
"active-users.users": "Потребители",
"active-users.guests": "Гости",
"active-users.total": "Общо",
"active-users.connections": "Връзки",
"anonymous-registered-users": "Анонимни към регистрирани потребители",
"anonymous": "Анонимни",
"registered": "Регистрирани",
"user-presence": "Присъствие на потребителите ",
"on-categories": "В списъка с категории",
"reading-posts": "Четящи публикации",
"browsing-topics": "Разглеждащи теми",
"recent": "Скорошни",
"unread": "Непрочетени",
"high-presence-topics": "Теми с най-голяма присъственост",
"graphs.page-views": "Преглеждания на страниците",
"graphs.page-views-registered": "Преглеждания на страниците от регистрирани потребители",
"graphs.page-views-guest": "Преглеждания на страниците от гости",
"graphs.page-views-bot": "Преглеждания на страниците от ботове",
"graphs.unique-visitors": "Уникални посетители",
"graphs.registered-users": "Регистрирани потребители",
"graphs.anonymous-users": "Анонимни потребители",
"last-restarted-by": "Последно рестартиране от",
"no-users-browsing": "Няма разглеждащи потребители"
}

View File

@@ -1,8 +0,0 @@
{
"home-page": "Начална страница",
"description": "Изберете коя страница да бъде показана, когато потребителите отидат на главния адрес на форума.",
"home-page-route": "Път на началната страница",
"custom-route": "Персонализиран път",
"allow-user-home-pages": "Разрешаване на потребителските начални страници",
"home-page-title": "Заглавие на началната страница (по подразбиране: „Начало“)"
}

View File

@@ -1,6 +0,0 @@
{
"language-settings": "Езикови настройки",
"description": "Езикът по подразбиране определя езиковите настройки за всички потребители, които посещават Вашия форум. <br />Отделните потребители могат да сменят езика си от страницата с настройки на профила си.",
"default-language": "Език по подразбиране",
"auto-detect": "Автоматично разпознаване на езика за гостите"
}

View File

@@ -1,23 +0,0 @@
{
"icon": "Иконка:",
"change-icon": "промяна",
"route": "Маршрут:",
"tooltip": "Подсказка:",
"text": "Текст:",
"text-class": "Текстов клас: <small>незадължително</small>",
"class": "Клас: <small>незадължително</small>",
"id": "Идентификатор: <small>незадължително</small>",
"properties": "Свойства:",
"groups": "Групи:",
"open-new-window": "Отваряне в нов прозорец",
"btn.delete": "Изтриване",
"btn.disable": "Изключване",
"btn.enable": "Включване",
"available-menu-items": "Налични елементи за менюто",
"custom-route": "Персонализиран маршрут",
"core": "ядро",
"plugin": "добавка"
}

View File

@@ -1,5 +0,0 @@
{
"post-sharing": "Споделяне на публикации",
"info-plugins-additional": "Добавките могат да добавят допълнителни мрежи за споделяне на публикации.",
"save-success": "Мрежите за споделяне на публикации са запазени успешно!"
}

View File

@@ -1,9 +0,0 @@
{
"notifications": "Известия",
"chat-messages": "Съобщения в разговори",
"play-sound": "Пускане",
"incoming-message": "Входящо съобщение",
"outgoing-message": "Изходящо съобщение",
"upload-new-sound": "Качване на нов звук",
"saved": "Настройките са запазени"
}

View File

@@ -10,6 +10,7 @@
"custom-class": "Персонализиран клас",
"num-recent-replies": "Брой на скорошните отговори",
"ext-link": "Външна връзка",
"subcategories-per-page": "Брой подкатегории на страница",
"is-section": "Използване на тази категория като раздел",
"post-queue": "Опашка за публикации",
"tag-whitelist": "Списък от разрешени етикети",
@@ -18,6 +19,7 @@
"category-image": "Изображение на категорията",
"parent-category": "Базова категория",
"optional-parent-category": "(Незадължително) Базова категория",
"top-level": "Най-горно ниво",
"parent-category-none": "(Няма)",
"copy-parent": "Копиране на базовата",
"copy-settings": "Копиране на настройките от",
@@ -30,6 +32,8 @@
"edit": "Редактиране",
"analytics": "Анализи",
"view-category": "Преглед на категорията",
"set-order": "Запазване на реда",
"set-order-help": "Задаването на позиция за категорията ще я премести на желаното място и ще промени местата на другите категории, ако е необходимо. Най-малкият възможен номер е 1, което ще постави категорията най-отгоре.",
"select-category": "Изберете категория",
"set-parent-category": "Задайте базова категория",
@@ -46,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

@@ -13,6 +13,7 @@
"resent-single": "Ръчното повторно разпращане на резюмето е завършено",
"resent-day": "Дневното резюме беше изпратено повторно",
"resent-week": "Седмичното резюме беше изпратено повторно",
"resent-biweek": "Двуседмичното резюме беше изпратено повторно",
"resent-month": "Месечното резюме беше изпратено повторно",
"null": "<em>Никога</em>",
"manual-run": "Ръчно разпращане на резюмето:",

View File

@@ -25,6 +25,7 @@
"access-topics": "Достъп до теми",
"create-topics": "Създаване на теми",
"reply-to-topics": "Отговаряне в теми",
"schedule-topics": "Насрочване на теми",
"tag-topics": "Поставяне на етикети на теми",
"edit-posts": "Редактиране на публикации",
"view-edit-history": "Преглед на историята на редакциите",
@@ -50,10 +51,13 @@
"alert.saved": "Промените по правомощията са запазени и приложени",
"alert.confirm-discard": "Наистина ли искате да отхвърлите промените по правомощията?",
"alert.discarded": "Промените по правомощията са отхвърлени",
"alert.confirm-copyToAll": "Наистина ли искате да приложите този набор от правомощия към <strong>всички категории</strong>?",
"alert.confirm-copyToAllGroup": "Наистина ли искате да приложите набора от правомощия на таи група към <strong>всички категории</strong>?",
"alert.confirm-copyToChildren": "Наистина ли искате да приложите този набор от правомощия към <strong>всички по-долни (дъщерни) категории</strong>?",
"alert.confirm-copyToChildrenGroup": "Наистина ли искате да приложите набора от правомощия на таи група към <strong>всички по-долни (дъщерни) категории</strong>?",
"alert.confirm-copyToAll": "Наистина ли искате да приложите този набор от <strong>%1</strong> към <strong>всички категории</strong>?",
"alert.confirm-copyToAllGroup": "Наистина ли искате да приложите набора от <strong>%1</strong> на тази група към <strong>всички категории</strong>?",
"alert.confirm-copyToChildren": "Наистина ли искате да приложите този набор от <strong>%1</strong> към <strong>всички по-долни (дъщерни) категории</strong>?",
"alert.confirm-copyToChildrenGroup": "Наистина ли искате да приложите набора от <strong>%1</strong> на тази група към <strong>всички по-долни (дъщерни) категории</strong>?",
"alert.no-undo": "<em>Това действие е необратимо.</em>",
"alert.admin-warning": "Администраторите имат всички правомощия по подразбиране"
"alert.admin-warning": "Администраторите имат всички правомощия по подразбиране",
"alert.copyPrivilegesFrom-title": "Изберете категория, от която да се копира",
"alert.copyPrivilegesFrom-warning": "Това ще копира <strong>%1</strong> от избраната категория.",
"alert.copyPrivilegesFromGroup-warning": "Това ще копира набора от <strong>%1</strong> на тези група от избраната категория."
}

View File

@@ -2,7 +2,6 @@
"none": "Форумът все още няма теми с етикети.",
"bg-color": "Цвят на фона",
"text-color": "Цвят на текста",
"create-modify": "Създаване и редактиране на етикети",
"description": "Изберете етикетите чрез щракване или влачене. Използвайте <code>CTRL</code>, за да изберете няколко етикета.",
"create": "Създаване на етикет",
"modify": "Редактиране на етикети",

View File

@@ -5,5 +5,7 @@
"orphaned": "Без ползвания",
"size/filecount": "Размер / брой файлове",
"confirm-delete": "Наистина ли искате да изтриете този файл?",
"filecount": "%1 файла"
"filecount": "%1 файла",
"new-folder": "Нова папка",
"name-new-folder": "Въведете име за новата папка"
}

View File

@@ -1,6 +1,6 @@
{
"users": "Потребители",
"edit": "Редактиране",
"edit": "Действия",
"make-admin": "Даване на администраторски права",
"remove-admin": "Отнемане на администраторски права",
"validate-email": "Проверка на е-пощата",
@@ -47,6 +47,8 @@
"users.uid": "потр. ид.",
"users.username": "потребителско име",
"users.email": "е-поща",
"users.no-email": "(няма е-поща)",
"users.ip": "IP адрес",
"users.postcount": "брой публикации",
"users.reputation": "репутация",
"users.flags": "доклади",

View File

@@ -1,5 +1,10 @@
{
"dashboard": "Табло",
"section-dashboard": "Табла",
"dashboard/overview": "Общ преглед",
"dashboard/logins": "Вписвания",
"dashboard/users": "Потребители",
"dashboard/topics": "Теми",
"dashboard/searches": "Търсения",
"section-general": "Общи",
"section-manage": "Управление",

View File

@@ -6,7 +6,7 @@
"from-help": "Името на изпращача, което да бъде показано в е-писмото.",
"smtp-transport": "Транспорт чрез SMTP",
"smtp-transport.enabled": "Използване на външен сървър за е-поща за изпращане на е-писма",
"smtp-transport.enabled": "Включване на транспорта чрез SMTP",
"smtp-transport-help": "Можете да изберете от списък от познати услуги, или да въведете такава ръчно.",
"smtp-transport.service": "Изберете услуга",
"smtp-transport.service-custom": "Персонализирана услуга",
@@ -36,6 +36,11 @@
"subscriptions.disable": "Изключване на резюметата по е-пощата",
"subscriptions.hour": "Време за разпращане",
"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": "Премахване на изображенията от известията по е-поща"
}
"notifications.remove-images": "Премахване на изображенията от известията по е-поща",
"require-email-address": "Новите потребители задължително трябва да предоставят е-поща",
"require-email-address-warning": "По подразбиране потребителите могат да не въвеждат адрес на е-поща. Ако включите това, те задължително ще трябва да предоставят е-поща, за да могат да се регистрират. <strong>Това не означава, че потребителят ще въведе съществуваща е-поща, нито че тя ще е негова.</strong>",
"include-unverified-emails": "Изпращане на е-писма към получатели, които не са потвърдили изрично е-пощата си",
"include-unverified-warning": "За потребителите, които имат свързана е-поща с регистрацията си, тя се смята за потвърдена. Но има ситуации, в които това не е така (например при ползване на регистрация от друга система, но и в други случаи), <strong>Включете тази настройка на собствен риск</strong> &ndash; изпращането на е-писма към непотвърдени адреси може да нарушава определени местни закони против нежеланата поща.",
"prompt": "Подсещане на потребителите да въведат или потвърдят е-пощата си",
"prompt-help": "Ако потребител няма зададена е-поща, или ако тя не е потвърдена, на екрана му ще се покаже предупредително съобщение."
}

View File

@@ -3,9 +3,9 @@
"title": "Заглавие на уеб сайта",
"title.short": "Кратко заглавие",
"title.short-placeholder": "Ако не е посочено кратко заглавие, ще бъде използвано заглавието на уеб сайта",
"title.url": "Адрес",
"title.url-placeholder": "Адресът на заглавието на уеб сайта",
"title.url-help": "При щракване върху заглавието, потребителите ще бъдат изпратени на този адрес. Ако бъде оставено празно, потребителите ще бъдат изпращани на началната страница на форума.",
"title.url": "Адрес за заглавието",
"title.url-placeholder": "Адресът за заглавието на уеб сайта",
"title.url-help": "Когато потребител щракне върху заглавието, той ще бъде прехвърлен към този адрес. Ако е празно, потребителят ще бъде изпратен към началната страница на форума. <br> Забележка: Това не е външният адрес, който се ползва в е-писмата. Той се задава от свойството <code>url</code> във файла config.json",
"title.name": "Името на общността Ви",
"title.show-in-header": "Показване на заглавието на уеб сайта в заглавната част",
"browser-title": "Заглавие на браузъра",
@@ -20,9 +20,9 @@
"logo.image": "Изображение",
"logo.image-placeholder": "Път до логото, което да бъде показано в заглавната част на форума",
"logo.upload": "Качване",
"logo.url": "Адрес",
"logo.url-placeholder": "Адресът на логото на уеб сайта",
"logo.url-help": "При щракване върху логото, потребителите ще бъдат изпратени на този адрес. Ако бъде оставено празно, потребителите ще бъдат изпращани на началната страница на форума.",
"logo.url": "Адрес за логото",
"logo.url-placeholder": "Адресът за логото на уеб сайта",
"logo.url-help": "Когато потребител щракне върху логото, той ще бъде прехвърлен към този адрес. Ако е празно, потребителят ще бъде изпратен към началната страница на форума. <br> Забележка: Това не е външният адрес, който се ползва в е-писмата. Той се задава от свойството <code>url</code> във файла config.json",
"logo.alt-text": "Алтернативен текст",
"log.alt-text-placeholder": "Алтернативен текст за достъпност",
"favicon": "Иконка на уеб сайта",
@@ -35,10 +35,16 @@
"maskable-icon.help": "Препоръчителен размер и формат: 512x512, само във формат „PNG“. Ако не е посочена маскируема иконка, NodeBB ще използва иконката за сензорен екран.",
"outgoing-links": "Изходящи връзки",
"outgoing-links.warning-page": "Показване на предупредителна страница при щракване върху външни връзки",
"search-default-sort-by": "Подредба по подразбиране при търсене",
"search": "Търсене",
"search-default-in": "Търсене в",
"search-default-in-quick": "Бързо търсене в",
"search-default-sort-by": "Подреждане по",
"outgoing-links.whitelist": "Домейни, за които да не се показва предупредителната страница",
"site-colors": "Мета-данни за цвета на уеб сайта",
"theme-color": "Цвят на темата",
"background-color": "Фонов цвят",
"background-color-help": "Цвят, който да се използва като фон за началния екран, когато уеб сайтът е инсталиран като приложение"
}
"background-color-help": "Цвят, който да се използва като фон за началния екран, когато уеб сайтът е инсталиран като приложение",
"undo-timeout": "Време за отмяна",
"undo-timeout-help": "Някои действия, като например преместването на теми, могат да бъдат отменени от модератора в рамките на определено време. Задайте 0, за да забраните изцяло отменянето.",
"topic-tools": "Инструменти за темите"
}

View File

@@ -11,6 +11,8 @@
"properties": "Свойства:",
"groups": "Групи:",
"open-new-window": "Отваряне в нов прозорец",
"dropdown": "Падащо меню",
"dropdown-placeholder": "Въведете елементите на падащото меню по-долу. Пример: <br/>&lt;li&gt;&lt;a href&#x3D;&quot;https://myforum.com&quot;&gt;Връзка 1&lt;/a&gt;&lt;/li&gt;",
"btn.delete": "Изтриване",
"btn.disable": "Изключване",
@@ -20,4 +22,4 @@
"custom-route": "Персонализиран маршрут",
"core": "ядро",
"plugin": "добавка"
}
}

View File

@@ -2,5 +2,6 @@
"notifications": "Известия",
"welcome-notification": "Приветствено известие",
"welcome-notification-link": "Връзка за приветственото известие",
"welcome-notification-uid": "Потр. ид. за приветственото известие"
"welcome-notification-uid": "Потр. ид. за приветственото известие",
"post-queue-notification-uid": "Потр. ид. за опашката с публикации"
}

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

@@ -40,6 +40,7 @@
"teaser.last-post": "Последната &ndash; Показване на последната публикация, или първоначалната такава, ако няма отговори.",
"teaser.last-reply": "Последната &ndash; Показване на последния отговор, или „Няма отговори“, ако все още няма такива.",
"teaser.first": "Първата",
"showPostPreviewsOnHover": "Показване на кратък преглед на публикациите при посочване с мишката",
"unread": "Настройки за непрочетените",
"unread.cutoff": "Възраст на публикациите, след която те не се показват в непрочетените (в брой дни)",
"unread.min-track-last": "Минимален брой публикации в темата, след което да започва следене на последно прочетената",
@@ -56,6 +57,9 @@
"composer.show-help": "Показване на раздела „Помощ“",
"composer.enable-plugin-help": "Позволяване на добавките да добавят съдържание в раздела за помощ",
"composer.custom-help": "Персонализиран текст за помощ",
"backlinks": "Обратни връзки",
"backlinks.enabled": "Включване на обратните връзки в темите",
"backlinks.help": "Ако в публикацията има препратка към друга тема, там ще бъде поставена връзка към публикацията, с конкретното време.",
"ip-tracking": "Записване на IP адреса",
"ip-tracking.each-post": "Записване на IP адреса за всяка публикация",
"enable-post-history": "Включване на историята на публикациите"

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

@@ -71,6 +71,7 @@
"digest-freq.off": "Изключено",
"digest-freq.daily": "Ежедневно",
"digest-freq.weekly": "Ежеседмично",
"digest-freq.biweekly": "На всеки две седмици",
"digest-freq.monthly": "Ежемесечно",
"email-chat-notifs": "Изпращане на е-писмо, ако получа ново съобщение в разговор, а не съм на линия",
"email-post-notif": "Изпращане на е-писмо, когато се появи отговор в темите, за които съм абониран(а).",

View File

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

View File

@@ -6,7 +6,9 @@
"greeting_no_name": "Здравейте",
"greeting_with_name": "Здравейте, %1",
"email.verify-your-email.subject": "Моля, потвърдете е-пощата си",
"email.verify.text1": "Адресът на е-пощата Ви е променен!",
"email.verify.text1": "Вие поискахте да променим или потвърдим адреса на е-пощата Ви",
"email.verify.text2": "Поради причини, свързани със сигурността, можем да променим или потвърдим адреса на е-поща, само когато притежанието ѝ вече е било установено чрез е-писмо. <strong>Ако не сте поискали това, няма нужда да правите нищо.</strong>",
"email.verify.text3": "След като потвърдите адреса на тази е-поща, ще променим текущия Ви адрес с този (%1).",
"welcome.text1": "Благодарим Ви, че се регистрирахте в %1",
"welcome.text2": "За да активирате напълно акаунта си, трябва да потвърдите е-пощата, с която сте се регистрирали.",
"welcome.text3": "Вашата заявка за регистрация беше приета от администратор. Вече можете да се впишете със своето потребителско име и парола.",

View File

@@ -22,16 +22,21 @@
"invalid-username-or-password": "Моля, въведете потребителско име и парола",
"invalid-search-term": "Грешен текст за търсене",
"invalid-url": "Грешен адрес",
"invalid-event": "Грешно събитие: %1",
"local-login-disabled": "Системата за местно вписване е изключена за непривилегированите акаунти.",
"csrf-invalid": "Не успяхме да Ви впишем, най-вероятно защото сесията Ви е изтекла. Моля, опитайте отново",
"invalid-path": "Грешен път",
"folder-exists": "Вече има папка с това име",
"invalid-pagination-value": "Грешен номер на странициране, трябва да бъде между %1 и %2",
"username-taken": "Потребителското име е заето",
"email-taken": "Е-пощата е заета",
"email-nochange": "Въведената е-поща е същата като съществуващата.",
"email-invited": "На тази е-поща вече е била изпратена покана",
"email-not-confirmed": "Няма да можете да публикувате съобщения, докато е-пощата Ви не бъде потвърдена. Моля, натиснете тук, за да потвърдите е-пощата си.",
"email-not-confirmed": "Публикуването в някои категории и теми ще бъде възможно едва след като е-пощата Ви бъде потвърдена. Щръкнете тук, за да Ви изпратим е-писмо за потвърждение.",
"email-not-confirmed-chat": "Няма да можете да пишете в разговори, докато е-пощата Ви не бъде потвърдена. Моля, натиснете тук, за да потвърдите е-пощата си.",
"email-not-confirmed-email-sent": "Вашата е-поща все още не е потвърдена. Моля, проверете входящата си кутия за писмото за потвърждение. Няма да можете да публикувате съобщения или да пишете в разговори, докато е-пощата Ви не бъде потвърдена.",
"no-email-to-confirm": "Този форум изисква потвърдена е-поща. Моля, натиснете тук, за да въведете е-поща",
"email-not-confirmed-email-sent": "Вашата е-поща все още не е потвърдена. Моля, проверете входящата си кутия за писмото за потвърждение. Възможно е да не можете да публикувате съобщения или да пишете в разговори, докато е-пощата Ви не бъде потвърдена.",
"no-email-to-confirm": "Нямате зададена е-поща. Тя е необходима за възстановяването на акаунта в случай на проблем, а може и да се изисква, за да пишете в някои категории. Натиснете тук, за да въведете е-поща.",
"user-doesnt-have-email": "Потребителят „%1“ няма зададена е-поща.",
"email-confirm-failed": "Не успяхме да потвърдим е-пощата Ви. Моля, опитайте отново по-късно.",
"confirm-email-already-sent": "Е-писмото за потвърждение вече е изпратено. Моля, почакайте още %1 минута/и, преди да изпратите ново.",
"sendmail-not-found": "Изпълнимият файл на „sendmail“ не може да бъде намерен. Моля, уверете се, че е инсталиран и изпълним за потребителя, чрез който е пуснат NodeBB.",
@@ -83,13 +88,23 @@
"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-make-banned-users-admin": "Не можете да давате администраторски права на блокирани потребители.",
"cant-remove-last-admin": "Вие сте единственият администратор. Добавете друг потребител като администратор, преди да премахнете себе си като администратор",
"account-deletion-disabled": "Изтриването на акаунт е забранено",
"cant-delete-admin": "Премахнете администраторските права от този акаунт, преди да го изтриете.",
@@ -165,8 +180,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": "Темата не може да бъде преместена в същата категория!",
@@ -177,5 +194,18 @@
"already-unblocked": "Този потребител вече е отблокиран",
"no-connection": "Изглежда има проблем с връзката Ви с Интернет",
"socket-reconnect-failed": "В момента сървърът е недостъпен. Натиснете тук, за да опитате отново, или опитайте пак по-късно.",
"plugin-not-whitelisted": "Добавката не може да бъде инсталирана само добавки, одобрени от пакетния мениджър на NodeBB могат да бъдат инсталирани чрез ACP"
"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": "Докладван потребител",
@@ -75,9 +77,6 @@
"modal-reason-custom": "Причина за докладването на това съдържание…",
"modal-submit": "Изпращане на доклада",
"modal-submit-success": "Съдържанието беше докладвано на модераторите.",
"modal-submit-confirm": "Потвърждаване на докладването",
"modal-submit-confirm-text": "Вече сте описали специалната си причина. Наистина ли искате да изпратите доклада си по бързата процедура?",
"modal-submit-confirm-text-help": "Изпращането на доклад по бързата процедура ще премахне описаната от Вас специалната причина.",
"bulk-actions": "Групови действия",
"bulk-resolve": "Разрешаване на доклад(и)",

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": "Потребители",
@@ -68,6 +70,7 @@
"firstpost": "Първа публикация",
"read_more": "още",
"more": "Още",
"none": "Нищо",
"posted_ago_by_guest": "публикувано %1 от гост",
"posted_ago_by": "публикувано %1 от %2",
"posted_ago": "публикувано %1",
@@ -93,6 +96,8 @@
"guest": "Гост",
"guests": "Гости",
"former_user": "Бивш потребител",
"system-user": "Системен",
"unknown-user": "Непознат потребител",
"updated.title": "Форумът е актуализиран",
"updated.message": "Този форум току-що беше актуализиран до най-новата версия. Натиснете тук, за да опресните страницата.",
"privacy": "Поверителност",

View File

@@ -35,8 +35,7 @@
"details.member_count": "Брой на членовете",
"details.creation_date": "Дата на създаване",
"details.description": "Описание",
"details.member-post-cids": "Категории, от които да се показват публикации",
"details.member-post-cids-help": "<strong>Забележка</strong>: Ако не изберете нито една категория, ще се смята, че са включени всички категории. Използвайте <code>CTRL</code> и <code>SHIFT</code>, за да изберете няколко възможности.",
"details.member-post-cids": "Идентификатори на категории, от които да се показват публикации",
"details.badge_preview": "Преглед на емблемата",
"details.change_icon": "Промяна на иконката",
"details.change_label_colour": "Промяна на цвета на етикета",

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