Compare commits

...

1599 Commits

Author SHA1 Message Date
Misty (Bot)
8d48455b04 chore: incrementing version number - v1.15.0-rc.0 2020-10-21 21:19:57 +00:00
Barış Soner Uşaklı
db63f5e3f0 fix: #8781 2020-10-21 16:30:14 -04:00
Julian Lam
177a961000 feat: new filter filter:teasers.configureStripTags 2020-10-21 14:04:52 -04:00
Baris Usakli
1a4c0decb7 fix: reset button loading html 2020-10-21 13:05:46 -04:00
Julian Lam
d68ffea80d feat: send 'Vary' header when ACAO header set 2020-10-21 10:34:38 -04:00
Misty (Bot)
c31cab3457 Latest translations and fallbacks 2020-10-21 09:10:48 +00:00
Misty (Bot)
3964872289 chore: update changelog for v1.15.0-beta.30 2020-10-21 01:10:28 +00:00
Misty (Bot)
2dd3c9622f chore: incrementing version number - v1.15.0-beta.30 2020-10-21 01:10:28 +00:00
Barış Soner Uşaklı
e6440c0d21 fix: #8779, fix move all
add new language keys
2020-10-20 20:53:45 -04:00
Barış Soner Uşaklı
1f43e98f8b fix: allow admins adding users to global moderators
add new test
2020-10-20 18:43:45 -04:00
Barış Soner Uşaklı
bbafa1b82a Revert "fix: [breaking] send configured config URL as origin if not custom"
This reverts commit 205a10308e.
2020-10-20 18:38:50 -04:00
Julian Lam
a691be5952 fix: incorrect logic for post history editable bool 2020-10-20 16:09:40 -04:00
Julian Lam
205a10308e fix: [breaking] send configured config URL as origin if not custom
This is a breaking change if your install uses multiple URLs to access. You will need to update the Access-Control-Allow-Origin header in ACP > Advanced > Headers to supply all URLs you use to access your site
2020-10-20 15:25:20 -04:00
Barış Soner Uşaklı
7a019494e8 feat: add filter.topics.getPostReplies 2020-10-20 12:00:56 -04:00
Julian Lam
7a8f704900 fix: #8776 some users unable to restore old versions via history 2020-10-20 10:40:23 -04:00
Misty (Bot)
df1cfc4caf Latest translations and fallbacks 2020-10-20 09:09:22 +00:00
Barış Soner Uşaklı
75024c3580 refactor: remove console.log, extra require 2020-10-20 00:29:44 -04:00
Barış Soner Uşaklı
b26e9b5993 fix: #8595, dont save escaped data when renaming groups 2020-10-20 00:24:34 -04:00
Barış Soner Uşaklı
ea31f50554 refactor: show more lines of stack trace 2020-10-19 22:43:18 -04:00
Barış Soner Uşaklı
3ee4936db6 fix: keep sortBy while searching 2020-10-19 22:16:34 -04:00
Barış Soner Uşaklı
85cfe49d65 fix: autocomplete.user on search page 2020-10-19 21:58:56 -04:00
Barış Soner Uşaklı
cf474ab246 fix: spec 2020-10-19 19:11:50 -04:00
Barış Soner Uşaklı
7bddec93ec fix: sortby 2020-10-19 18:56:39 -04:00
Misty (Bot)
1b50e1a062 Latest translations and fallbacks 2020-10-19 09:10:05 +00:00
Barış Soner Uşaklı
b3619d3d47 fix: #8774 2020-10-18 16:54:42 -04:00
Julian Lam
ff4fcc23b6 Update bundled logos with new branding (#8702)
* feat: updating logo assets, square logos missing still

* fix: squared logo for touch icon and notification fallback

* fix: update link to favicon

* feat: add default touch icon sizes, if one isn't uploaded

Co-authored-by: Barış Soner Uşaklı <barisusakli@gmail.com>
2020-10-18 01:41:04 -04:00
Barış Soner Uşaklı
c107649b40 fix: #8732 2020-10-18 01:33:03 -04:00
Barış Soner Uşaklı
e362c342a3 fix: #8630, sort extra deps 2020-10-17 23:56:42 -04:00
Barış Soner Uşaklı
d9a16855d0 refactor: posts api 2020-10-17 22:59:12 -04:00
Barış Soner Uşaklı
272e73da53 refactor: post restore/delete/purge 2020-10-17 21:24:33 -04:00
renovate[bot]
4bfd008781 chore(deps): update dependency lint-staged to v10.4.2 (#8773)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-17 20:24:02 -04:00
Barış Soner Uşaklı
9738e20207 refactor: merge post.edit
fix: dont fadeout/fadeint if title/post didnt change
2020-10-17 15:07:04 -04:00
renovate[bot]
bb85c059de chore(deps): update dependency eslint to v7.11.0 (#8747)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-17 01:19:22 -04:00
renovate[bot]
08a240fa8e chore(deps): update dependency lint-staged to v10.4.1 (#8771)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-17 01:03:52 -04:00
renovate[bot]
a471b1afb3 chore(deps): update dependency mocha to v8.2.0 (#8772)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-16 23:49:41 -04:00
Barış Soner Uşaklı
2279e37261 refactor: deprecate socket.emit('users.search') use api route 2020-10-16 23:30:22 -04:00
Barış Soner Uşaklı
083c74e059 refactor: api categories 2020-10-16 22:41:38 -04:00
Barış Soner Uşaklı
e78c498e84 fix: missing doTopicAction, fix wrong api params 2020-10-16 21:36:59 -04:00
Barış Soner Uşaklı
bc880ee0ca refactor: remove sockets.reqFromSocket 2020-10-16 21:05:00 -04:00
Barış Soner Uşaklı
8fd3c04480 fix: test 2020-10-16 20:36:24 -04:00
Barış Soner Uşaklı
9d81660e24 Revert "Revert "fix: appropriate 404 handling for write API calls""
This reverts commit 135c2d6c7d.
2020-10-16 20:21:52 -04:00
Barış Soner Uşaklı
135c2d6c7d Revert "fix: appropriate 404 handling for write API calls"
This reverts commit b6cce75d97.
2020-10-16 20:21:32 -04:00
Julian Lam
9ee3cb9b62 refactor: topic follow/ignore to use api lib 2020-10-16 12:30:14 -04:00
Julian Lam
68d6818bca refactor: topic tools' actions to use api lib 2020-10-16 12:02:51 -04:00
Julian Lam
21974a77f8 feat: topic reply to use api lib (also + missing file) 2020-10-16 11:01:18 -04:00
Julian Lam
40598b368e refactor: topic creation to use api lib 2020-10-16 11:01:18 -04:00
Julian Lam
b6cce75d97 fix: appropriate 404 handling for write API calls 2020-10-16 11:01:18 -04:00
Julian Lam
ede9435f0e feat: send 401 for invalid-uid 2020-10-16 11:01:18 -04:00
Misty (Bot)
854d61a257 Latest translations and fallbacks 2020-10-16 09:08:42 +00:00
Barış Soner Uşaklı
c913900ed6 feat: async/await admin/search 2020-10-16 00:05:55 -04:00
Barış Soner Uşaklı
2927509af3 feat: ignore test folder 2020-10-15 23:28:12 -04:00
Barış Soner Uşaklı
bf480ee58b refactor: setupApiRoute signature 2020-10-15 23:12:19 -04:00
Barış Soner Uşaklı
688d7a2cc2 refactor: remove unused middleware 2020-10-15 22:50:23 -04:00
Barış Soner Uşaklı
b2ff1594b8 fix: redis hget
'node_redis: The HGET command contains a invalid argument type.\n' +
'Only strings, dates and buffers are accepted. Please update your code to use valid argument types.'
2020-10-15 22:25:56 -04:00
Julian Lam
e98285dbbb fix: reimplementing isPrivilegedOrSelfAndPasswordMatch 2020-10-15 21:45:57 -04:00
Barış Soner Uşaklı
84a179f48c Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-10-15 20:51:55 -04:00
Julian Lam
3f347baadb fix: socket user bans 2020-10-15 20:31:25 -04:00
Julian Lam
14f9d8b0e5 feat: send back 403 on no-privileges error 2020-10-15 20:23:19 -04:00
Julian Lam
222b4c9533 fix: broken tests from api change 2020-10-15 19:33:20 -04:00
Julian Lam
2d252f2fa4 refactor: user bans to use api lib 2020-10-15 19:05:31 -04:00
Barış Soner Uşaklı
7d86be2bc2 fix: tests 2020-10-15 17:51:04 -04:00
Barış Soner Uşaklı
48a9b5d66e update logo 2020-10-15 17:31:03 -04:00
Barış Soner Uşaklı
e367c5403e refactor: move groups.leave, fix some tests 2020-10-15 17:29:38 -04:00
Barış Soner Uşaklı
bbbd9fee85 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-10-15 17:12:26 -04:00
Julian Lam
960e925e40 refactor: change password/user follow to use api lib 2020-10-15 17:09:39 -04:00
Barış Soner Uşaklı
081c4fa6d4 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-10-15 16:55:59 -04:00
Julian Lam
430e7f5834 refactor: user deletion to use api lib 2020-10-15 16:49:06 -04:00
Barış Soner Uşaklı
8ae1f81cf4 feat: refactor groups.delete 2020-10-15 16:36:53 -04:00
Julian Lam
77481947f0 refactor: socket profile update to use api lib 2020-10-15 16:22:40 -04:00
Julian Lam
31ae8a8323 refactor: socket profile update to use api lib 2020-10-15 16:21:54 -04:00
Barış Soner Uşaklı
d69e503d21 feat: move groups.join to api 2020-10-15 16:13:19 -04:00
Barış Soner Uşaklı
eed8deda61 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-10-15 16:07:39 -04:00
Barış Soner Uşaklı
51a60d3d46 fix: handler for group.join 2020-10-15 16:07:25 -04:00
Julian Lam
d07f0081b7 fix: add missing file 2020-10-15 15:52:07 -04:00
Julian Lam
23086daead refactor: user create and profile update to use api lib 2020-10-15 15:50:30 -04:00
Barış Soner Uşaklı
5e2caf19f5 refactor: use single function for api code 2020-10-15 12:12:01 -04:00
Barış Soner Uşaklı
25e4a09816 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-10-15 11:10:07 -04:00
Barış Soner Uşaklı
4418ff0716 fix: #8768 2020-10-15 11:09:57 -04:00
Julian Lam
cc6e995ee2 fix: api bug where user profile editing continued even if not allowed 2020-10-15 10:23:57 -04:00
Barış Soner Uşaklı
205e46647c Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-10-14 23:39:19 -04:00
Barış Soner Uşaklı
43afe7ffab refactor: async/await src/user/approval 2020-10-14 23:38:16 -04:00
renovate[bot]
3b88545b03 fix(deps): update dependency benchpressjs to v2.0.8 (#8767)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-14 23:37:44 -04:00
Barış Soner Uşaklı
bae0f343e1 fix: module build 2020-10-14 23:32:30 -04:00
Barış Soner Uşaklı
3881ac309f refactor: async/await install/web.js 2020-10-14 23:20:45 -04:00
Barış Soner Uşaklı
1fd2eba6f2 refactor: async/await
src/cli/manage.js
src/meta/build.js
src/meta/css.js
src/meta/js.js
2020-10-14 22:49:39 -04:00
Barış Soner Uşaklı
b295d15eae fix: tests 2020-10-14 20:02:32 -04:00
Barış Soner Uşaklı
d89477cad0 refactor: use app.render 2020-10-14 19:18:07 -04:00
renovate[bot]
42aed15b96 fix(deps): update dependency sharp to v0.26.2 (#8765)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-14 18:57:17 -04:00
Julian Lam
9dd3cc0483 feat: allow plugins to define api routes
via new plugin hook static:api.routes
2020-10-14 17:44:27 -04:00
Julian Lam
a4ba23899e feat: require https if nodebb is configured with https url 2020-10-14 14:28:04 -04:00
Julian Lam
20bb9c7ec8 fix: csrf token only on non-GET routes 2020-10-14 14:02:03 -04:00
Barış Soner Uşaklı
3326d80c11 feat: add nyc config 2020-10-14 12:27:17 -04:00
Barış Soner Uşaklı
3673accdb8 refactor: api module
only return promise if callback is undefined
dont append baseUrl if url already starts with api
correctly handle writeapi readapi response for data/error
remove unused onError
dont append empty ? to url for get routes
2020-10-14 11:05:50 -04:00
Julian Lam
a784d10fff refactor: api module returns promise, error-first cb if cb passed in
no more separate onSuccess onError callbacks

/cc @baris
2020-10-14 10:02:02 -04:00
Misty (Bot)
d52992de1b Latest translations and fallbacks 2020-10-14 09:09:02 +00:00
Barış Soner Uşaklı
4b9444f1a5 fix: avatar selector 2020-10-14 00:12:09 -04:00
Barış Soner Uşaklı
e6ea71c95a fix: test 2020-10-13 23:40:04 -04:00
Barış Soner Uşaklı
8c6a559188 fix: timestamp 2020-10-13 23:29:19 -04:00
Barış Soner Uşaklı
331d236f6e fix: #8763 2020-10-13 23:19:07 -04:00
Barış Soner Uşaklı
a481024d27 fix: lastonline again 2020-10-13 23:02:49 -04:00
Barış Soner Uşaklı
71d82ec8e0 fix: caret 2020-10-13 22:59:52 -04:00
Barış Soner Uşaklı
b6d5888334 Merge branch 'admin/users' 2020-10-13 22:58:04 -04:00
Barış Soner Uşaklı
97628e2ff2 fix: lastonline values 2020-10-13 22:57:18 -04:00
renovate[bot]
25c447df05 fix(deps): update dependency nodebb-rewards-essentials to v0.1.4 (#8764)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-13 22:46:47 -04:00
Barış Soner Uşaklı
872bacf1c4 Admin/users (#8762)
* feat: wip admin/users

* feat: more work

* feat: more fixes

* feat: #8662, verified/unverified user groups

* feat: add filter

* feat: change user search to use filters array

* refactor: remove unused search call

* fix: tests

* fix: cant join system groups

* fix: upgrade script
2020-10-13 22:42:50 -04:00
Barış Soner Uşaklı
1289c10568 fix: upgrade script 2020-10-13 22:12:28 -04:00
Barış Soner Uşaklı
59bbede8c7 fix: cant join system groups 2020-10-13 22:08:09 -04:00
Barış Soner Uşaklı
a411df1321 fix: tests 2020-10-13 21:04:07 -04:00
Barış Soner Uşaklı
dd7424e5b5 refactor: remove unused search call 2020-10-13 20:44:07 -04:00
Barış Soner Uşaklı
2d6ea6e505 Merge branch 'master' into admin/users 2020-10-13 20:43:48 -04:00
Barış Soner Uşaklı
a2edb86dfb feat: change user search to use filters array 2020-10-13 20:37:38 -04:00
Barış Soner Uşaklı
959314c921 feat: add filter 2020-10-13 17:07:26 -04:00
Julian Lam
bfaeb27c11 Merge branch 'write-api-csrf' 2020-10-13 17:01:51 -04:00
Julian Lam
1e07886f30 feat: require csrf token if not using bearer token 2020-10-13 16:58:44 -04:00
psychobunny
0e0f1506d2 fix: update server param to /api/v3 2020-10-13 15:06:42 -04:00
Barış Soner Uşaklı
933989e013 Merge branch 'master' into admin/users 2020-10-13 14:56:06 -04:00
Barış Soner Uşaklı
682e926c6b feat: #8662, verified/unverified user groups 2020-10-13 14:55:56 -04:00
psychobunny
c68653d035 fix: typo 2020-10-13 14:43:20 -04:00
psychobunny
7aa4d104af fix: testing openapi write tests 2020-10-13 14:43:20 -04:00
psychobunny
16873800a6 fix(openapi): users.yaml 2020-10-13 14:00:54 -04:00
psychobunny
7b2301ff9c fix: enable tests 2020-10-13 13:10:49 -04:00
psychobunny
54e6003a7c fix: test fix for write API
need to rewrite users.yaml to fix properly
2020-10-13 13:07:54 -04:00
Renovate Bot
dcf7235466 fix(deps): update dependency nodebb-theme-persona to v10.2.60 2020-10-13 12:11:22 -04:00
Julian Lam
30b3fedca4 fix: password reset to invalidate all existing reset tokens for that uid 2020-10-13 11:48:32 -04:00
Barış Soner Uşaklı
700e1e4340 feat: more fixes 2020-10-13 01:49:12 -04:00
Barış Soner Uşaklı
40a05b70ef feat: more work 2020-10-13 01:29:21 -04:00
Barış Soner Uşaklı
b038ac07d8 feat: wip admin/users 2020-10-13 00:29:38 -04:00
Barış Soner Uşaklı
ba2e1c4c7e fix: show more lines 2020-10-12 20:42:08 -04:00
Barış Soner Uşaklı
7beaf49028 feat: set unread false for guests 2020-10-12 15:16:58 -04:00
renovate[bot]
411fa8bc84 fix(deps): update dependency nodebb-plugin-mentions to v2.13.0 (#8758)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-12 14:42:55 -04:00
Barış Soner Uşaklı
01265d08f3 feat: add stack to deprecate message 2020-10-12 14:33:21 -04:00
Barış Soner Uşaklı
30d6a2b84e fix: #8756, pass missing req to mock 2020-10-12 14:29:25 -04:00
Barış Soner Uşaklı
1ee9384875 fix: #8757, allow all slashes in category route 2020-10-12 14:18:59 -04:00
Misty (Bot)
0a4fd50aac Latest translations and fallbacks 2020-10-12 09:09:31 +00:00
Barış Soner Uşaklı
d76229c061 feat: add checkbox tests 2020-10-12 00:18:34 -04:00
Barış Soner Uşaklı
e92d4719cc feat: add test for serialize/deserialize form 2020-10-12 00:04:20 -04:00
Barış Soner Uşaklı
7db224f689 fix: timeago test for dev/prod 2020-10-11 22:40:28 -04:00
Barış Soner Uşaklı
cecdd2915e fix: timeago test 2020-10-11 22:39:37 -04:00
Barış Soner Uşaklı
ae5fb103ca feat: disable write api tests until fixed 2020-10-11 22:28:07 -04:00
Barış Soner Uşaklı
dc29f4dca2 refactor: switch to using slugify module 2020-10-11 21:49:37 -04:00
Barış Soner Uşaklı
bddfcb5867 feat: #8734, add slugify module, deprecate utils.slugify 2020-10-11 21:25:31 -04:00
Barış Soner Uşaklı
f16c8268cf feat: #8734, move bootstrap-tagsinput to package.json 2020-10-11 19:52:01 -04:00
Barış Soner Uşaklı
eab7489ec5 feat: #8734, move deserialize/serialize to package.json 2020-10-11 19:28:46 -04:00
renovate[bot]
cd34bfb1ed fix(deps): update dependency nodebb-theme-persona to v10.2.59 (#8755)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-11 17:26:57 -04:00
Barış Soner Uşaklı
948f26143c feat: #5964, #8734 remove colorpicker 2020-10-11 16:05:52 -04:00
Barış Soner Uşaklı
c954db84e4 refactor: require style 2020-10-11 10:14:02 -04:00
Barış Soner Uşaklı
931d44b5e2 fix: undefined api require, @julianlam 2020-10-11 10:13:51 -04:00
renovate[bot]
a77ba71e05 fix(deps): update dependency nodebb-theme-persona to v10.2.58 (#8754)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-11 00:40:13 -04:00
Barış Soner Uşaklı
e2d407b769 fix: watch tooltip 2020-10-11 00:38:18 -04:00
Barış Soner Uşaklı
aedd28e0a6 fix: module name 2020-10-10 23:45:58 -04:00
Barış Soner Uşaklı
8f436eb881 fix: pin sortablejs 2020-10-10 23:41:51 -04:00
Barış Soner Uşaklı
3bbb4e269d Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-10-10 23:35:02 -04:00
Barış Soner Uşaklı
c721625a95 feat: #8734 remove unused files 2020-10-10 23:34:56 -04:00
Barış Soner Uşaklı
cc705e5e2b feat: #8734, move sortable to package.json 2020-10-10 23:24:13 -04:00
renovate[bot]
0399ffaf5f fix(deps): update dependency nodebb-plugin-composer-default to v6.4.4 (#8752)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-10 23:09:58 -04:00
renovate[bot]
f8e2324ce7 fix(deps): update dependency benchpressjs to v2.0.7 (#8733)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-10 23:07:58 -04:00
Barış Soner Uşaklı
75c9668656 fix: admin jquerui requires 2020-10-10 23:01:32 -04:00
Barış Soner Uşaklı
8c019a6a3b fix: timeago locale switch 2020-10-10 22:26:48 -04:00
Barış Soner Uşaklı
300a87559f feat: #8734, move bootbox to package.json 2020-10-10 22:15:34 -04:00
Barış Soner Uşaklı
420a312982 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-10-10 21:55:03 -04:00
Barış Soner Uşaklı
3b231360d3 feat: load jquery-form before using 2020-10-10 21:54:32 -04:00
Barış Soner Uşaklı
fda2aedfd8 feat: #8734, jquery-ui, jquery-form, timeago (#8748)
* feat: #8734, jquery-ui, jquery-form, timeago

get rid of forum/footer.js move that code to app.js & wait for app to load before calling ajaxify.end
make sockets.js a requirejs module
move jquery-ui to node_modules and load via requirejs
move jquery-form to node_modules and load via requirejs
move timeago to node_modules and load via requirejs
only include the css for needed jquery-ui widgets

* feat: keep socket/io global for backwards compat

* refactor: move socket listener to chat
2020-10-10 21:47:27 -04:00
renovate[bot]
666064bf46 fix(deps): update dependency nodebb-plugin-composer-default to v6.4.3 (#8750)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-10 21:46:42 -04:00
Misty (Bot)
ea830871c2 Latest translations and fallbacks 2020-10-10 09:06:14 +00:00
renovate[bot]
1c94220b45 fix(deps): update dependency nodebb-theme-persona to v10.2.57 (#8749)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-10 00:56:55 -04:00
Julian Lam
87e3f26fe4 feat(openapi): schema validation for write api definitions file 2020-10-09 16:38:43 -04:00
Renovate Bot
414fe19c6e fix(deps): update dependency nodebb-theme-persona to v10.2.56 2020-10-09 15:51:46 -04:00
Renovate Bot
1bc99411b5 fix(deps): update dependency nodebb-theme-slick to v1.2.39 2020-10-09 15:50:11 -04:00
Barış Soner Uşaklı
59311a63a0 feat: remove unused textcomplete file 2020-10-09 14:49:59 -04:00
Julian Lam
944a7e0e28 fix(deps): bump vanilla/persona 2020-10-09 14:25:40 -04:00
Barış Soner Uşaklı
ae3a231fce feat: #8734, remove semver.browser
use compare-versions as a module
2020-10-09 14:10:38 -04:00
renovate[bot]
43df4b8e15 fix(deps): update dependency nodebb-theme-lavender to v5.0.14 (#8739)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-09 12:57:09 -04:00
renovate[bot]
ba62ebb620 fix(deps): update dependency socket.io-client to v2.3.1 (#8700)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-09 12:56:39 -04:00
psychobunny
9a5b8a798a fix: category RSS feed was displaying deleted topics 2020-10-09 12:54:02 -04:00
renovate[bot]
45aceb26a5 fix(deps): update dependency nodebb-theme-slick to v1.2.37 (#8741)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-09 12:33:35 -04:00
renovate[bot]
0c7af5029b fix(deps): update dependency nodebb-theme-vanilla to v11.2.21 (#8740)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-09 12:26:30 -04:00
renovate[bot]
4207dde4c2 fix(deps): update dependency nodebb-theme-persona to v10.2.54 (#8736)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-09 12:22:27 -04:00
Barış Soner Uşaklı
1531536d46 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-10-09 12:20:24 -04:00
Barış Soner Uşaklı
2c1897b373 feat: #8734, move slideout to package.json 2020-10-09 12:20:09 -04:00
psychobunny
dbb4cfe9d6 style(openapi): break write API routes into individual files 2020-10-09 12:16:25 -04:00
psychobunny
ffac3c7902 style(openapi): move schemas and responses out of write.yaml 2020-10-09 12:16:25 -04:00
Barış Soner Uşaklı
9c157de05d feat: #8734, move tinycon to package.json 2020-10-09 12:01:51 -04:00
Barış Soner Uşaklı
45e8a4d588 fix: #8734 make nprogress module 2020-10-09 11:48:52 -04:00
Barış Soner Uşaklı
43589a744d feat: #8734, move visibilityjs to package.json 2020-10-09 11:35:52 -04:00
Julian Lam
8af30a51b5 fix: regression caused by 7545951725
/cc @psychobunny
2020-10-09 10:58:42 -04:00
Barış Soner Uşaklı
a46cbb623d feat: #8734, move nprogress to package.json 2020-10-09 10:53:07 -04:00
Barış Soner Uşaklı
e02c57d963 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-10-09 10:42:22 -04:00
Barış Soner Uşaklı
aa08f8826c feat: #8734 move r.js to package.json 2020-10-09 10:40:46 -04:00
renovate[bot]
70c085ba5d fix(deps): update dependency nodebb-theme-persona to v10.2.52 (#8735)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-09 10:22:26 -04:00
Misty (Bot)
d5d05e17af Latest translations and fallbacks 2020-10-09 09:11:15 +00:00
Barış Soner Uşaklı
12c8b1c2bc fix: dont allow adding duplicates to privileges page
hightlight uid/group if it is added again from autocomplete
2020-10-08 18:32:36 -04:00
Barış Soner Uşaklı
f259063f08 fix: #8728, dont add admins to table 2020-10-08 18:08:04 -04:00
cryptoethic
b3ed26ac2c feat: revoke user sessions above threshold (#8731)
* feat: revoke user sessions above threshold

* fix: removed translations from en-US

* fix: defined default maxUserSessions in install\data\defaults.json
2020-10-08 17:33:18 -04:00
Julian Lam
4a63c20a72 chore: some optimizations for codeclimate 2020-10-08 15:58:42 -04:00
Julian Lam
ebcb664b41 fix(writeapi): tests 2020-10-08 15:33:10 -04:00
Julian Lam
229eb2c2d8 fix(writeapi): tests 2020-10-08 15:33:10 -04:00
Julian Lam
b8703ba9f6 fix(writeapi): tests 2020-10-08 15:33:10 -04:00
Julian Lam
8ecef7b891 refactor: middleware.assert.* 2020-10-08 15:33:10 -04:00
Julian Lam
41f55b7a5a fix(writeapi): tests 2020-10-08 15:33:10 -04:00
Julian Lam
cfee431c53 feat(writeapi): commented-out stub code for file upload 2020-10-08 15:33:10 -04:00
Julian Lam
f870721fca feat(writeapi): file deletion route 2020-10-08 15:33:10 -04:00
Julian Lam
a55b381791 feat(writeapi): admin settings update route 2020-10-08 15:33:10 -04:00
Julian Lam
2ec838fc59 feat(writeapi): token generation/delete routes, ACP updates 2020-10-08 15:33:10 -04:00
Julian Lam
2928b9b87a style: updates to openapi files 2020-10-08 15:33:10 -04:00
Julian Lam
c7d15dfa94 feat: filter:settings.get plugin hook 2020-10-08 15:33:10 -04:00
Julian Lam
3ea1aa4780 refactor(writeapi): update route prefix to api/v3, default error option 2020-10-08 15:33:10 -04:00
Julian Lam
f67824719c chore(writeapi): cleanup 2020-10-08 15:33:10 -04:00
Julian Lam
0973feea16 feat(writeapi): post bookmarking 2020-10-08 15:33:10 -04:00
Julian Lam
9942c248eb feat(writeapi): post voting 2020-10-08 15:33:10 -04:00
Julian Lam
5e2a3ea6ec refactor(writeapi): post.tools.purge no longer a method 2020-10-08 15:33:10 -04:00
Julian Lam
414169fdfa feat(writeapi): post delete/restore/purge 2020-10-08 15:33:10 -04:00
Julian Lam
f66c2fb60f feat(writeapi): post editing 2020-10-08 15:33:10 -04:00
Julian Lam
1605e5e443 feat(writeapi): topic tags 2020-10-08 15:33:10 -04:00
Julian Lam
9be5629458 feat(writeapi): topic follow/ignore 2020-10-08 15:33:10 -04:00
Julian Lam
da25ce4d09 feat: topic delete/restore/purge/(un)pin/(un)lock 2020-10-08 15:33:10 -04:00
Julian Lam
675a62dadd fix: remove debug log 2020-10-08 15:33:10 -04:00
Julian Lam
5fc7e7bfd0 feat: add new api page to ACP menu 2020-10-08 15:33:10 -04:00
Julian Lam
49652e6f1b feat: management of API tokens via ACP 2020-10-08 15:33:10 -04:00
Julian Lam
adcadbb2b5 fix: tests 2020-10-08 15:33:10 -04:00
Julian Lam
cb9369f10e fix: bad merge w/ category ACP page 2020-10-08 15:33:10 -04:00
Julian Lam
a905d7f022 refactor: rewrite modules/api.js in AMD style 2020-10-08 15:33:10 -04:00
Julian Lam
8e89f34dbf fix: bad logic in group assertion middleware 2020-10-08 15:33:10 -04:00
Julian Lam
8e7baac6ef fix(writeapi): calls to profile editing routes 200 even if user DNE 2020-10-08 15:33:10 -04:00
Julian Lam
7757f965eb fix: errors thrown if no password sent in to profile edit route 2020-10-08 15:33:10 -04:00
Julian Lam
549ca11056 fix: bug where middlewares seemingly ran in parallel 2020-10-08 15:33:10 -04:00
Julian Lam
6096f74ab2 feat(writeapi): adding missing files 2020-10-08 15:33:10 -04:00
Julian Lam
4c833d0bf0 feat(writeapi): topic posting and replying 2020-10-08 15:33:10 -04:00
Julian Lam
40dc1c38d3 feat(writeapi): added DELETE /groups/:slug/membership/:uid route 2020-10-08 15:33:10 -04:00
Julian Lam
68ecf41ecf fix(writeapi): client-side group join API call 2020-10-08 15:33:10 -04:00
Julian Lam
e1c40b2792 style: allowing some es6 features client-side 2020-10-08 15:33:10 -04:00
Julian Lam
952dc211dd feat(writeapi): added group joining and deletion 2020-10-08 15:33:10 -04:00
Julian Lam
d044c3223e feat(writeapi): abstracted ajax calls out to new api module 2020-10-08 15:33:10 -04:00
Julian Lam
ba345e53e8 feat(writeapi): added POST /api/v1/groups 2020-10-08 15:33:10 -04:00
Julian Lam
49994f3a15 fix(openapi): moved write-api to public/openapi 2020-10-08 15:33:10 -04:00
Julian Lam
3072de4812 feat: added DELETE /api/v1/categories/:cid route 2020-10-08 15:33:10 -04:00
Julian Lam
e942ad8101 feat: added PUT /api/v1/categories/:cid route
Deprecated admin.categories.update socket call
Showing stack trace in console for errors, when in development mode
2020-10-08 15:33:10 -04:00
Julian Lam
dc666fd8a9 feat: added POST /api/v1/categories route 2020-10-08 15:33:10 -04:00
Julian Lam
a5af2dc819 feat: added PUT/DELETE /api/v1/users/:uid/ban routes 2020-10-08 15:33:10 -04:00
Julian Lam
db5c5b2cfb fix: follow route to match spec 2020-10-08 15:33:10 -04:00
Julian Lam
b5bbcbaeaa feat: added POST and DELETE /api/v1/users/:uid/follow routes 2020-10-08 15:33:10 -04:00
Julian Lam
7aed174ebc feat: added PUT /api/v1/users/:uid/password route 2020-10-08 15:33:10 -04:00
Julian Lam
af2e424ffe fix: missing one property in openapi doc 2020-10-08 15:33:10 -04:00
Julian Lam
a1ddc210b2 feat: added DELETE /api/v1/users/:uid and DELETE /api/v1/users 2020-10-08 15:33:10 -04:00
Julian Lam
d15d9e4492 fix(refactor): patching helpers.tryRoute for API routes, some re-org
Thanks @barisusakli for the tip
2020-10-08 15:33:10 -04:00
Julian Lam
d8879d21db fix: error handling with POST /api/v1/users 2020-10-08 15:33:10 -04:00
Julian Lam
58043e07ba fix: use POST call for user creation in ACP
- Not entirely sure about error handling yet, more research needed
- Also added socket method deprecation utility method
2020-10-08 15:33:10 -04:00
Julian Lam
bba2a4638c fix: user creation POST route returns user data, updated openapi spec 2020-10-08 15:33:10 -04:00
Julian Lam
91b79f1793 feat: added openapi.yaml file for BEST documentation 2020-10-08 15:33:10 -04:00
Julian Lam
7b6d43bcc8 feat: added checkRequired middleware for API calls 2020-10-08 15:33:10 -04:00
Julian Lam
fd67355b03 fix(writeapi): authenticate middleware logic to work better with await 2020-10-08 15:33:10 -04:00
Julian Lam
f6433ef2c5 fix(refactor): merging write-api auth middlewares with core middlewares 2020-10-08 15:33:10 -04:00
Julian Lam
ec5c48b188 feat: migrating write-api skeleton into core 2020-10-08 15:33:10 -04:00
Barış Soner Uşaklı
dc152a558c Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-10-08 09:55:25 -04:00
Barış Soner Uşaklı
7138d433b1 fix: selector, so it doesnt effect suggested topics 2020-10-08 09:55:15 -04:00
Misty (Bot)
af90b99706 Latest translations and fallbacks 2020-10-08 09:10:35 +00:00
renovate[bot]
bae2eadae9 fix(deps): update dependency nodebb-theme-persona to v10.2.51 (#8729)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-07 18:34:39 -04:00
Barış Soner Uşaklı
264818e517 fix: use proper api url
no need to parse all tags since https://api.github.com/repos/NodeBB/NodeBB/releases/latest gives the latest non-prerelease, non-draft releases
2020-10-07 18:21:23 -04:00
Barış Soner Uşaklı
8eb62e2210 fix: tests, get latest release tag recursively 2020-10-07 18:14:45 -04:00
renovate[bot]
804729fcec fix(deps): update dependency nodebb-theme-persona to v10.2.50 (#8727)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-07 17:50:03 -04:00
Julian Lam
fc603a5368 fix: use app.parseAndTranslate instead of benchpress.parse 2020-10-07 12:23:53 -04:00
psychobunny
20e0cc5cbb fix: sorted list delete button 2020-10-07 11:59:45 -04:00
psychobunny
cdb794888d style: linting 2020-10-07 11:47:44 -04:00
Misty (Bot)
174e239332 Latest translations and fallbacks 2020-10-07 09:09:45 +00:00
Barış Soner Uşaklı
ed092bf6b5 refactor: remove posts.tools.purge
moved the check to socketPosts.purge
2020-10-06 14:03:59 -04:00
Julian Lam
dde5b6b814 fix: unable to register async method as response hook listener
Also fixes #8723, /api/config now runs middleware.authenticateOrGuest
2020-10-06 09:32:13 -04:00
renovate[bot]
b01bc2ae0f fix(deps): update dependency nodebb-theme-persona to v10.2.49 (#8722)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-05 22:54:01 -04:00
renovate[bot]
0170261369 fix(deps): update dependency nodebb-theme-persona to v10.2.48 (#8721)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-05 22:10:20 -04:00
renovate[bot]
04b1daac16 fix(deps): update dependency nodebb-theme-persona to v10.2.47 (#8720)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-05 14:42:15 -04:00
Barış Soner Uşaklı
b955fd363d fix: dont allow sorting pinned topics on recent 2020-10-05 14:41:24 -04:00
Julian Lam
3c7f79cb8a fix: use console.info instead of console.log for sw registration 2020-10-05 13:45:09 -04:00
renovate[bot]
ba906d7d02 fix(deps): update dependency nodebb-theme-persona to v10.2.46 (#8719)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-05 13:32:39 -04:00
renovate[bot]
229421edbe fix(deps): update dependency nodebb-plugin-composer-default to v6.4.2 (#8718)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-05 13:15:10 -04:00
Barış Soner Uşaklı
1542a5d7e5 feat: remove post/header selector 2020-10-05 13:01:00 -04:00
Misty (Bot)
63696c400e chore: update changelog for v1.15.0-beta.29 2020-10-05 14:34:33 +00:00
Misty (Bot)
fca176d2bd chore: incrementing version number - v1.15.0-beta.29 2020-10-05 14:34:33 +00:00
Barış Soner Uşaklı
7cd83b9a6a fix: spec 2020-10-04 22:32:06 -04:00
Barış Soner Uşaklı
6924eb6c52 fix: spec 2020-10-04 22:15:56 -04:00
Barış Soner Uşaklı
cb2f6f7c4a fix: test 2020-10-04 22:11:41 -04:00
Barış Soner Uşaklı
7bf6d3b8eb fix: dont let mods load postqueue for a cid they are not a mod of 2020-10-04 22:10:24 -04:00
Barış Soner Uşaklı
2ea9768e00 fix: show disabled categories in admin&mods 2020-10-04 21:52:57 -04:00
Misty (Bot)
d93315e3ee Latest translations and fallbacks 2020-10-04 09:06:59 +00:00
renovate[bot]
b3a24f7410 fix(deps): update dependency nodebb-plugin-composer-default to v6.4.0 (#8716)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-03 22:04:26 -04:00
psychobunny
60afb110ef fix: prevent mutiple highlighted rows on category/topic pages 2020-10-03 17:12:42 -04:00
Misty (Bot)
6ee0cad289 Latest translations and fallbacks 2020-10-03 09:06:55 +00:00
Barış Soner Uşaklı
fbd85680fb fix: spec 2020-10-02 16:57:26 -04:00
renovate[bot]
c95a38987f fix(deps): update dependency nodebb-plugin-mentions to v2.11.0 (#8714)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-02 16:37:26 -04:00
renovate[bot]
fc2795d317 fix(deps): update dependency nodebb-theme-slick to v1.2.36 (#8713)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-02 16:37:15 -04:00
renovate[bot]
2b0deeb77a fix(deps): update dependency nodebb-theme-vanilla to v11.2.20 (#8715)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-02 16:35:38 -04:00
Barış Soner Uşaklı
5d9a868142 feat: category filter on post queue (#8710)
* feat: category filter on post queue

category filter module

* feat: add spec
2020-10-02 16:35:20 -04:00
renovate[bot]
f14b49457c fix(deps): update dependency nodebb-theme-persona to v10.2.45 (#8711)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-10-02 16:28:19 -04:00
Julian Lam
f1de084da3 fix: do not show TOC if fewer than 2 headings 2020-10-02 15:51:04 -04:00
psychobunny
caa8c00f89 fix: params cached in autocomplete module 2020-10-02 13:55:11 -04:00
psychobunny
7545951725 chore: refactor src/emailer.js 2020-10-02 11:01:39 -04:00
Misty (Bot)
c65ea5bfa6 Latest translations and fallbacks 2020-10-02 09:10:49 +00:00
Peter Jaszkowiak
1aa336d837 refactor: shared constants (#8707)
define plugin name and theme name regexs in one location for consistency

define various shared paths in one place for consistency
2020-10-01 23:02:44 -04:00
Barış Soner Uşaklı
e60357d20d feat: #6594, add top/popular sections to digest email (#8709) 2020-10-01 22:07:33 -04:00
Peter Jaszkowiak
55d5cccf2e Document deprecations and remove old ones (#8706)
* chore: document deprecation removal versions

* chore: remove deprecations 2+ versions old
2020-10-01 12:25:03 -04:00
Peter Jaszkowiak
017af63fb0 fix: #8686, deprecate plugin.json/library (#8705)
and also fix deprecated hooks with no alternative
2020-10-01 11:45:27 -04:00
Misty (Bot)
39b51707ce Latest translations and fallbacks 2020-10-01 09:09:51 +00:00
Julian Lam
d3951ebeaf fix: updating minimum node version in readme 2020-09-30 14:56:30 -04:00
psychobunny
5441651ea7 fix: update "install plugins" link to go to the download tab 2020-09-30 13:05:17 -04:00
renovate[bot]
1d0eaafb5f fix(deps): update dependency nodebb-theme-persona to v10.2.43 (#8701)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-30 13:00:37 -04:00
Barış Soner Uşaklı
72e82c4aca Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-09-30 12:57:30 -04:00
psychobunny
1761e13dbd feat: dedicated sorting buttons for plugin ordering in ACP 2020-09-30 12:49:34 -04:00
Barış Soner Uşaklı
c33dc90562 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-09-30 12:41:33 -04:00
Barış Soner Uşaklı
54737d3076 feat: #8233, search sub categories 2020-09-30 12:41:23 -04:00
psychobunny
c56236f081 fix: overflow on submitPluginUsage field 2020-09-30 12:30:23 -04:00
Julian Lam
38f88fc563 fix: #8699 tags route is case sensitive, though tags are not 2020-09-30 11:57:59 -04:00
Renovate Bot
2a1da61cd9 fix(deps): update dependency nodebb-theme-persona to v10.2.42 2020-09-30 10:09:27 -04:00
psychobunny
f4d76f1edd feat: move service-worker.js into its own file 2020-09-30 10:00:28 -04:00
Julian Lam
8437130ec2 fix: early button/anchor clicks do nothing
This reverts commit a395324b52, and
fixes the issue where the ACP became unusable because of the earlier
variant of this code.

Thanks @psychobunny for spotting.
2020-09-30 09:18:46 -04:00
Misty (Bot)
f693ce97bf Latest translations and fallbacks 2020-09-30 09:09:59 +00:00
Misty (Bot)
fd975a6694 chore: update changelog for v1.15.0-beta.28 2020-09-29 23:16:27 +00:00
Misty (Bot)
57f83162f9 chore: incrementing version number - v1.15.0-beta.28 2020-09-29 23:16:26 +00:00
Barış Soner Uşaklı
a395324b52 Revert "fix: early button/anchor clicks do nothing"
This reverts commit 966d3f7654.
2020-09-29 18:57:16 -04:00
psychobunny
14ba1a6dbb feat: analytics:maxCache setting in ACP
I removed a TODO from core. Watch your head as flying pigs are abound
2020-09-29 17:31:08 -04:00
Misty (Bot)
7067382494 chore: update changelog for v1.15.0-beta.27 2020-09-29 21:02:31 +00:00
Misty (Bot)
78fad24068 chore: incrementing version number - v1.15.0-beta.27 2020-09-29 21:02:30 +00:00
psychobunny
799dbec5af Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-09-29 15:17:34 -04:00
psychobunny
ffbf2d6d63 feat(openapi): refactor into indiv. files to match API & tpl routing 2020-09-29 15:17:09 -04:00
psychobunny
c7d27731b3 Revert "feat(openapi): refactor into indiv. files to match API & tpl routing"
This reverts commit 84f5e4cf3d.
2020-09-29 15:13:14 -04:00
renovate[bot]
9bdef70786 fix(deps): update dependency nodebb-theme-vanilla to v11.2.18 (#8697)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-29 14:50:19 -04:00
renovate[bot]
3e2816ae31 fix(deps): update dependency nodebb-theme-slick to v1.2.34 (#8696)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-29 14:46:27 -04:00
Julian Lam
f17d42ede6 fix(deps): bump persona 2020-09-29 14:42:24 -04:00
Julian Lam
966d3f7654 fix: early button/anchor clicks do nothing
This solves a small UX issue where clicking on a button (or anchor
that is not meant to be ajaxified) before ajaxify.end is called
leads to nothing happening because the appropriate click handler
has not been added.

This code will intercept premature clicks, wait until ajaxify.end
is called, and then re-send the click.
2020-09-29 14:40:38 -04:00
Barış Soner Uşaklı
ea0f3262f4 feat: #8695, allow sort for guests 2020-09-29 14:28:10 -04:00
Julian Lam
7f58e3ab09 fix: error on reset -p if plugin is not active
No need to throw error if plugin was not active, just silently OK
2020-09-29 14:01:30 -04:00
Renovate Bot
1e5621c049 fix(deps): update dependency sanitize-html to v2 2020-09-29 13:34:36 -04:00
psychobunny
84f5e4cf3d feat(openapi): refactor into indiv. files to match API & tpl routing 2020-09-29 11:49:17 -04:00
psychobunny
9c5b690799 feat: up recommended size to 512x512 + ACP labels for PWA 2020-09-29 08:30:34 -04:00
psychobunny
6478b32d0e feat: upload maskable icon for PWA 2020-09-29 07:49:21 -04:00
psychobunny
bf3c1c0878 fix: manifest test + remove duplicate test 2020-09-28 20:55:53 -04:00
Julian Lam
3fbddbe2ca fix(openapi): test for new trending plugins in ACP 2020-09-28 19:59:04 -04:00
Julian Lam
b12e8d6312 feat: show top 5 trending plugins in new tab in Extend > Plugins 2020-09-28 19:53:54 -04:00
Julian Lam
07af621381 fix: typo in getCompatiblePlugins 2020-09-28 19:53:54 -04:00
psychobunny
aa268d5eeb feat: register service worker, #8126 2020-09-28 17:46:43 -04:00
psychobunny
54705cc432 fix: typo 2020-09-28 17:45:30 -04:00
psychobunny
5172d73137 feat: add theme-color meta tag for browser address bar 2020-09-28 17:32:37 -04:00
psychobunny
f69697b3fa feat: basic service worker, minimum requirement for for a2hs; see #8126 2020-09-28 17:31:58 -04:00
psychobunny
31528a5202 fix: manifest - use absolute URL for start_url 2020-09-28 17:06:25 -04:00
psychobunny
46800b6639 fix: prefer webmanifest extension over json
https://w3c.github.io/manifest/#media-type-registration
2020-09-28 16:10:41 -04:00
psychobunny
4c1e717b2b fix: update notification delay ACP help text 2020-09-28 11:24:12 -04:00
psychobunny
4fc84e9f5c chore: lint notifications.js 2020-09-28 11:18:43 -04:00
psychobunny
5b427a0c3b feat: option in ACP to configure notification/email delay for chats 2020-09-28 11:15:45 -04:00
Renovate Bot
aacf8f22f5 chore(deps): update dependency eslint-plugin-import to v2.22.1 2020-09-28 10:35:51 -04:00
Misty (Bot)
f66cb05fcf Latest translations and fallbacks 2020-09-28 09:09:30 +00:00
Timothy Fike
f85fe7faff don't invite an already invited email (#8688)
* don't invite an already invited email

* add email-invited translation string
2020-09-27 22:11:25 -04:00
Timothy Fike
5078a8df25 ttl/pttl (#8689) 2020-09-27 22:10:46 -04:00
renovate[bot]
119ab71950 chore(deps): update dependency eslint to v7.10.0 (#8687)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-27 13:36:55 -04:00
Misty (Bot)
852ec92e93 Latest translations and fallbacks 2020-09-27 09:06:11 +00:00
Barış Soner Uşaklı
16039b1117 refactor: post edit 2020-09-25 15:54:55 -04:00
renovate[bot]
d0010c405e fix(deps): update dependency nodebb-theme-persona to v10.2.39 (#8684)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-25 15:21:52 -04:00
renovate[bot]
bb04f149f3 fix(deps): update dependency nodebb-theme-persona to v10.2.38 (#8683)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-25 14:58:26 -04:00
psychobunny
8dc11b3586 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-09-25 14:47:50 -04:00
psychobunny
b6f2f0e5d0 fix: #8681 change owner modal's search should check if user is banned 2020-09-25 14:47:22 -04:00
psychobunny
611f3c6155 feat: allow autocomplete to pass optional params to user.search 2020-09-25 14:46:25 -04:00
Misty (Bot)
5e01d28898 chore: update changelog for v1.15.0-beta.26 2020-09-25 18:42:10 +00:00
Misty (Bot)
62c440957e chore: incrementing version number - v1.15.0-beta.26 2020-09-25 18:42:10 +00:00
Julian Lam
f8032cd09b fix: add img-responsive to post queue post items 2020-09-25 12:22:58 -04:00
Misty (Bot)
7fa61fafbf Latest translations and fallbacks 2020-09-25 09:08:39 +00:00
Barış Soner Uşaklı
ff8a833a6d chore: up persona 2020-09-24 22:33:18 -04:00
Renovate Bot
30aa7e83a1 fix(deps): update dependency json2csv to v5.0.3 2020-09-24 20:19:23 -04:00
renovate[bot]
07172b6fe8 fix(deps): update dependency nodebb-theme-persona to v10.2.36 (#8680)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-24 19:19:17 -04:00
renovate[bot]
68a5e7e319 fix(deps): update dependency nodebb-theme-persona to v10.2.35 (#8679)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-24 18:32:32 -04:00
Renovate Bot
5a2adb4254 fix(deps): update dependency json2csv to v5.0.2 2020-09-24 16:43:04 -04:00
Julian Lam
5ddf70221c feat: upon plugin installation via ACP, check against nbbpm first 2020-09-24 15:06:47 -04:00
Misty (Bot)
8b855720f8 Latest translations and fallbacks 2020-09-24 09:10:01 +00:00
Barış Soner Uşaklı
342de83225 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-09-23 19:41:43 -04:00
Barış Soner Uşaklı
8e88ccd6a6 feat: up benchpress 2020-09-23 19:41:35 -04:00
psychobunny
4a0f54ae17 chore: up persona 2020-09-23 19:29:24 -04:00
Misty (Bot)
240a04b406 chore: update changelog for v1.15.0-beta.25 2020-09-23 17:27:28 +00:00
Misty (Bot)
1124d4ee41 chore: incrementing version number - v1.15.0-beta.25 2020-09-23 17:27:28 +00:00
psychobunny
2ad3305879 fix: language key in reset password 2020-09-23 11:46:02 -04:00
Julian Lam
0fffe28941 fix: issue where the last flag filter could not be removed 2020-09-23 10:24:06 -04:00
renovate[bot]
abe8377387 fix(deps): update dependency nodebb-theme-persona to v10.2.33 (#8675)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-23 08:30:48 -04:00
psychobunny
2cd5f959a0 feat: add row highlighting for popular and unread 2020-09-23 08:10:08 -04:00
psychobunny
48a8ec4ab2 feat: return to previous page and/or category after marking topic unread
... also return to category if pagination is active and previous page was another page in the thread
2020-09-23 07:57:45 -04:00
Misty (Bot)
6ebd2c80e7 Latest translations and fallbacks 2020-09-23 09:10:07 +00:00
Barış Soner Uşaklı
bd9b6c99e6 feat: add missing lang key 2020-09-23 01:04:58 -04:00
Barış Soner Uşaklı
032e600120 chore: up persona 2020-09-23 01:02:17 -04:00
Barış Soner Uşaklı
83d4e7efaa feat: add number of posters to topic 2020-09-23 00:59:42 -04:00
renovate[bot]
80dbf97a2f fix(deps): update dependency nodebb-theme-persona to v10.2.31 (#8673)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-22 22:45:05 -04:00
Misty (Bot)
72ab5ba1da chore: update changelog for v1.15.0-beta.24 2020-09-23 01:38:37 +00:00
Misty (Bot)
23ba071de7 chore: incrementing version number - v1.15.0-beta.24 2020-09-23 01:38:36 +00:00
Barış Soner Uşaklı
f2f3ba49b6 feat: hightlight matches in quick search
fix title hightlights
2020-09-22 21:20:02 -04:00
Barış Soner Uşaklı
e09f00ba0a Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-09-22 20:52:08 -04:00
Barış Soner Uşaklı
f8ef380b34 fix: multiword match highlight 2020-09-22 20:51:26 -04:00
renovate[bot]
7ecac97a95 fix(deps): update dependency nodebb-plugin-composer-default to v6.3.57 (#8672)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-22 20:26:57 -04:00
renovate[bot]
c8a75631ac fix(deps): update dependency nodebb-theme-persona to v10.2.30 (#8671)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-22 20:25:54 -04:00
Barış Soner Uşaklı
d38c872259 feat: add loading indicator 2020-09-22 20:22:50 -04:00
psychobunny
82ab6cd3b1 fix: tooltip placement on navbar search 2020-09-22 19:25:56 -04:00
psychobunny
5407bf48e5 chore: up persona 2020-09-22 19:19:50 -04:00
psychobunny
683c01b0d3 fix: rogue tooltip on navbar profile icon 2020-09-22 19:12:12 -04:00
psychobunny
4c2eab4b52 chore: up persona 2020-09-22 19:01:07 -04:00
Julian Lam
81595095da feat: allow plugins to override tags and tag counts 2020-09-22 15:58:24 -04:00
Barış Soner Uşaklı
445a840b88 fix: #8580, @julianlam 2020-09-22 10:18:26 -04:00
psychobunny
d989cb9988 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-09-21 22:27:44 -04:00
Barış Soner Uşaklı
bbf6889ecc fix: topic count on category page if filter is author 2020-09-21 22:24:38 -04:00
psychobunny
703ac1b685 fix: match api when modifying ajaxify.data.deleted (int, not bool) 2020-09-21 22:20:17 -04:00
Barış Soner Uşaklı
9a7c3c689f fix: lock/unlock toggle issue 2020-09-21 22:03:51 -04:00
psychobunny
91133b0f48 chore: up persona 2020-09-21 21:40:56 -04:00
Barış Soner Uşaklı
ac43cd8b6f fix: #8665, trim email before checking validity 2020-09-21 20:50:56 -04:00
Barış Soner Uşaklı
ccddbb15c9 feat: edit test 2020-09-21 15:15:30 -04:00
Barış Soner Uşaklı
e72fe25920 fix: editing posts saving uncessary data 2020-09-21 15:12:13 -04:00
Barış Soner Uşaklı
654d583059 fix: api spec 2020-09-21 15:00:40 -04:00
Barış Soner Uşaklı
4f14dc7a58 fix: #8640, add bookmarks to intFields 2020-09-21 14:57:00 -04:00
psychobunny
bcac080543 chore: up persona 2020-09-21 13:23:04 -04:00
psychobunny
9dc4db1f14 chore: up persona 2020-09-21 13:12:43 -04:00
psychobunny
9da69dc35b Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-09-21 13:12:05 -04:00
psychobunny
ba70a1bf88 chore: up persona 2020-09-21 13:11:49 -04:00
renovate[bot]
72cd5f139f fix(deps): update dependency nodebb-theme-persona to v10.2.24 (#8663)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-21 13:03:57 -04:00
renovate[bot]
55921ccf50 fix(deps): update dependency postcss to v8.0.6 (#8657)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-21 12:40:30 -04:00
renovate[bot]
0123209014 fix(deps): update dependency validator to v13.1.17 (#8659)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-21 12:40:12 -04:00
renovate[bot]
b175d671a2 fix(deps): update dependency sharp to v0.26.1 (#8660)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-21 12:39:54 -04:00
Barış Soner Uşaklı
02a48e1c64 fix: change user tooltip container to content 2020-09-21 12:04:29 -04:00
Barış Soner Uşaklı
fe2dc3101e fix: auth tests 2020-09-21 11:45:12 -04:00
Barış Soner Uşaklı
af43f0e48e fix: #8656, rename /api/me to /api/self 2020-09-21 11:11:56 -04:00
Misty (Bot)
9e7f5b9403 Latest translations and fallbacks 2020-09-21 09:09:16 +00:00
Misty (Bot)
bd10559121 Latest translations and fallbacks 2020-09-20 09:05:55 +00:00
Barış Soner Uşaklı
95c65e2da0 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-09-19 21:18:16 -04:00
Barış Soner Uşaklı
23de5613bd feat: add x-posts/x-votes keys 2020-09-19 21:17:44 -04:00
Misty (Bot)
4f9131fdc3 Latest translations and fallbacks 2020-09-19 09:06:43 +00:00
Barış Soner Uşaklı
047c414841 fix: add user tooltips to body
so they don't get cutoff  in containers with overflow:hidden
2020-09-18 21:28:52 -04:00
Misty (Bot)
e6ea208c06 chore: update changelog for v1.15.0-beta.23 2020-09-18 23:00:46 +00:00
Misty (Bot)
61a04eb9a0 chore: incrementing version number - v1.15.0-beta.23 2020-09-18 23:00:45 +00:00
Barış Soner Uşaklı
ddc0ac37ab feat: allow adding nested replies to a target component 2020-09-18 18:43:06 -04:00
Julian Lam
43571bac38 feat: hotkey "/" to open ACP search 2020-09-18 16:24:38 -04:00
Julian Lam
763cec31bd feat: ctr-s for save on privileges page too 2020-09-18 16:17:44 -04:00
Julian Lam
8093142340 feat: ctrl-s now saves on settingsv1/v2 forms
... because nobody ever uses ctrl-s on a browser window.
2020-09-18 15:40:16 -04:00
renovate[bot]
dc0a4a49b7 fix(deps): update dependency nodebb-widget-essentials to v4.1.2 (#8658)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-17 23:23:02 -04:00
Barış Soner Uşaklı
6669b23d9a feat: single href 2020-09-17 23:11:04 -04:00
Misty (Bot)
59ee74c282 chore: update changelog for v1.15.0-beta.22 2020-09-18 02:08:01 +00:00
Misty (Bot)
9c9329ee19 chore: incrementing version number - v1.15.0-beta.22 2020-09-18 02:08:01 +00:00
Barış Soner Uşaklı
22cd265434 fix: tests 2020-09-17 21:52:05 -04:00
Barış Soner Uşaklı
220297d501 fix: use correct topic count for category 2020-09-17 21:41:54 -04:00
Renovate Bot
2833624e4e chore(deps): update dependency lint-staged to v10.4.0 2020-09-16 09:31:34 -04:00
Misty (Bot)
8089542e09 chore: update changelog for v1.15.0-beta.21 2020-09-16 03:16:22 +00:00
Misty (Bot)
966cdc1376 chore: incrementing version number - v1.15.0-beta.21 2020-09-16 03:16:22 +00:00
Barış Soner Uşaklı
f1f82dd610 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-09-15 23:00:10 -04:00
Barış Soner Uşaklı
42298fe659 fix: clear old value on focus
hide results if input lost focus during search
2020-09-15 23:00:01 -04:00
Julian Lam
70d3ad025a fix(deps): postcss and autoprefixer version incompatibility 2020-09-15 20:34:56 -04:00
Renovate Bot
5ea172f9a6 fix(deps): update dependency nodebb-plugin-mentions to v2.10.0 2020-09-15 19:42:57 -04:00
Renovate Bot
606794818e fix(deps): update dependency autoprefixer to v10 2020-09-15 19:42:49 -04:00
Misty (Bot)
1650f30312 chore: update changelog for v1.15.0-beta.20 2020-09-15 23:21:06 +00:00
Misty (Bot)
c8e57ec195 chore: incrementing version number - v1.15.0-beta.20 2020-09-15 23:21:06 +00:00
Barış Soner Uşaklı
c9c9dd2f9b fix: skip elements if they dont have proper index 2020-09-15 18:49:11 -04:00
Misty (Bot)
9cde5105ad chore: update changelog for v1.15.0-beta.19 2020-09-15 20:20:42 +00:00
Misty (Bot)
2eb7c2842a chore: incrementing version number - v1.15.0-beta.19 2020-09-15 20:20:42 +00:00
Barış Soner Uşaklı
7148be2fd1 feat: allow passing in container to threadTools 2020-09-15 16:05:45 -04:00
Barış Soner Uşaklı
99f24c5997 fix: call to reskin 2020-09-15 09:55:52 -04:00
Renovate Bot
b1d781e858 chore(deps): update dependency eslint to v7.9.0 2020-09-14 16:12:28 -04:00
Misty (Bot)
b2ca968673 chore: update changelog for v1.15.0-beta.18 2020-09-14 18:55:07 +00:00
Misty (Bot)
e096791e3e chore: incrementing version number - v1.15.0-beta.18 2020-09-14 18:55:06 +00:00
Julian Lam
685633d031 fix(deps): bump theme versions 2020-09-14 14:31:15 -04:00
Barış Soner Uşaklı
7cd30650b2 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-09-14 14:28:03 -04:00
Barış Soner Uşaklı
437424375e feat: expose calculateTopicPostCount and getChildrenTree 2020-09-14 14:27:44 -04:00
Julian Lam
44309ee62f fix: move necro-post to be in-line with posts 2020-09-14 14:15:22 -04:00
Julian Lam
4fca79380a fix: tests, because redis is TOO FAST 2020-09-14 11:07:46 -04:00
Julian Lam
29b357bc66 refactor: expose new method for appending moderation note 2020-09-14 10:16:45 -04:00
Misty (Bot)
d617815823 chore: update changelog for v1.15.0-beta.17 2020-09-14 00:10:55 +00:00
Misty (Bot)
f1c2809220 chore: incrementing version number - v1.15.0-beta.17 2020-09-14 00:10:54 +00:00
renovate[bot]
8089387bae fix(deps): update dependency nodebb-plugin-composer-default to v6.3.56 (#8648)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-13 20:09:32 -04:00
Barış Soner Uşaklı
5e8c376115 fix: remove old test 2020-09-13 19:48:41 -04:00
Barış Soner Uşaklı
de824007d9 feat: allow custom req.query.filter on /unread /recent 2020-09-13 19:41:39 -04:00
Barış Soner Uşaklı
a8e18fdbe6 fix: client side crash if there are no topics 2020-09-13 19:40:01 -04:00
Misty (Bot)
21ae81b4af Latest translations and fallbacks 2020-09-13 09:06:13 +00:00
Barış Soner Uşaklı
38d3982bf1 fix: #8418
allow updating other profile fields when username isnt being changed
2020-09-12 21:48:56 -04:00
Barış Soner Uşaklı
4be693f2e7 feat: fullname search (#8641)
* feat: fullname search

* fix: take last element

* fix: attempt to fix psql like query

* feat: upgrade sript, another fix attempt

* fix: psql test

* fix: psql scan

* feat: add debug for test

* feat: test collate

* feat: cleanup

* fix: upgrade script
2020-09-11 23:20:49 -04:00
Barış Soner Uşaklı
9389749b79 feat: sorted set lex test 2020-09-11 21:12:49 -04:00
Renovate Bot
c5ca2609a6 fix(deps): update dependency nodebb-theme-persona to v10.2.22 2020-09-11 15:19:39 -04:00
Renovate Bot
8acdf3f615 fix(deps): update dependency nodebb-theme-vanilla to v11.2.16 2020-09-11 15:19:26 -04:00
Julian Lam
0891236142 fix: typo 2020-09-11 14:41:10 -04:00
Julian Lam
7e7366be13 fix: remove toolsVisible in post tools' menu [breaking] 2020-09-11 11:11:58 -04:00
Renovate Bot
ed0469b5bb fix(deps): update dependency nodebb-theme-persona to v10.2.21 2020-09-11 11:09:07 -04:00
Renovate Bot
134ebba636 fix(deps): update dependency nodebb-theme-vanilla to v11.2.15 2020-09-11 11:08:58 -04:00
Misty (Bot)
e08297ff73 chore: update changelog for v1.15.0-beta.16 2020-09-11 05:10:23 +00:00
Misty (Bot)
6043c9cbd8 chore: incrementing version number - v1.15.0-beta.16 2020-09-11 05:10:22 +00:00
Barış Soner Uşaklı
65d049c6f9 fix: tests 2020-09-11 00:55:43 -04:00
Barış Soner Uşaklı
2d5bd153e0 fix: check if unread_tids are followed 2020-09-11 00:39:45 -04:00
Renovate Bot
31635e3e58 fix(deps): update dependency nodebb-theme-vanilla to v11.2.14 2020-09-10 21:44:14 -04:00
Renovate Bot
2a13e583d4 fix(deps): update dependency nodebb-theme-persona to v10.2.20 2020-09-10 21:38:44 -04:00
Barış Soner Uşaklı
e90940949c fix: openapi 2020-09-10 18:50:07 -04:00
Barış Soner Uşaklı
c1c617b323 feat: add topicIndex to category page 2020-09-10 18:26:56 -04:00
renovate[bot]
4969c86909 fix(deps): update dependency mongodb to v3.6.2 (#8634)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-10 15:43:23 -04:00
Misty (Bot)
74f14829a0 Latest translations and fallbacks 2020-09-10 09:10:31 +00:00
Misty (Bot)
f878b92cc6 chore: update changelog for v1.15.0-beta.15 2020-09-09 21:28:17 +00:00
Misty (Bot)
10b94f9bfa chore: incrementing version number - v1.15.0-beta.15 2020-09-09 21:28:17 +00:00
Barış Soner Uşaklı
34eb1bd244 feat: up lavender/slick 2020-09-09 17:01:07 -04:00
renovate[bot]
8137cdc22d fix(deps): update dependency nodebb-theme-vanilla to v11.2.13 (#8633)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-09 16:56:56 -04:00
renovate[bot]
37e37c868d fix(deps): update dependency nodebb-theme-persona to v10.2.19 (#8632)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-09 16:56:27 -04:00
Barış Soner Uşaklı
632793b067 fix: dont use hardcoded fontawesome icons for lock pin 2020-09-09 16:40:03 -04:00
Barış Soner Uşaklı
f6d564667e feat: switch to using topic/select component for merge
automatically add the selected tids to the merge modal
2020-09-09 16:00:11 -04:00
Misty (Bot)
66ef90df9f Latest translations and fallbacks 2020-09-09 09:07:18 +00:00
Misty (Bot)
5e60d09201 chore: update changelog for v1.15.0-beta.14 2020-09-09 02:03:53 +00:00
Misty (Bot)
6ca4b86f7e chore: incrementing version number - v1.15.0-beta.14 2020-09-09 02:03:52 +00:00
Julian Lam
762e9fe88c feat: undo for posts move 2020-09-08 21:36:36 -04:00
Julian Lam
65d94a3b6d fix: #8629 and change undo timeout to 10 seconds 2020-09-08 21:35:20 -04:00
renovate[bot]
7ab8707285 fix(deps): update dependency nodebb-theme-vanilla to v11.2.12 (#8628)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-08 19:53:05 -04:00
renovate[bot]
2740655d2d fix(deps): update dependency nodebb-theme-persona to v10.2.18 (#8627)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-08 19:52:48 -04:00
Barış Soner Uşaklı
2bebdf017d fix: alert_id selector 2020-09-08 19:48:08 -04:00
Barış Soner Uşaklı
a78e1df965 fix: use text-right 2020-09-08 19:26:57 -04:00
Barış Soner Uşaklı
5a40d26b44 feat: #8626, new move posts modal 2020-09-08 19:22:38 -04:00
Julian Lam
885e0ebfde Revert "fix: bypass nbbpm for now"
This reverts commit 33c1bd5f01.
2020-09-08 11:42:35 -04:00
Julian Lam
61a8c6f037 chore: update commitlint config 2020-09-08 11:38:23 -04:00
Misty (Bot)
ca8d492b9a chore: update changelog for v1.15.0-beta.13 2020-09-08 14:08:41 +00:00
Misty (Bot)
bdd71c51a4 chore: incrementing version number - v1.15.0-beta.13 2020-09-08 14:08:41 +00:00
Misty (Bot)
0cec103489 Latest translations and fallbacks 2020-09-08 09:08:54 +00:00
renovate[bot]
d82a145b6f Update dependency nodebb-theme-slick to v1.2.32 (#8625)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-07 22:21:09 -04:00
renovate[bot]
d507ba3531 Update dependency @apidevtools/swagger-parser to v10.0.2 (#8622)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-07 21:51:53 -04:00
renovate[bot]
7738482be9 Update dependency husky to v4.3.0 (#8621)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-07 21:51:21 -04:00
renovate[bot]
fd6259c8f6 fix(deps): update dependency nodebb-theme-vanilla to v11.2.11 (#8624)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-07 21:51:06 -04:00
renovate[bot]
a1d310bd2c fix(deps): update dependency nodebb-theme-persona to v10.2.17 (#8623)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-07 21:50:56 -04:00
Barış Soner Uşaklı
a34b685c65 fix: remove lang keys, remove sounds menu 2020-09-07 21:44:23 -04:00
Barış Soner Uşaklı
8a752364a7 fix: lavender version 2020-09-07 21:09:03 -04:00
Misty (Bot)
61590c7e54 Latest translations and fallbacks 2020-09-07 09:08:02 +00:00
Barış Soner Uşaklı
5f10d67db5 Remove sounds (#8617)
* feat: remove sounds

* feat: remove more sounds

* feat: disable sounds plugin

* fix: openapi
2020-09-06 23:45:00 -04:00
renovate[bot]
251ea79bd2 fix(deps): update dependency nodebb-theme-slick to v1.2.30 (#8620)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-06 23:09:22 -04:00
Barış Soner Uşaklı
e3a0b4b1c1 fix: tests 2020-09-06 23:08:00 -04:00
Barış Soner Uşaklı
01681ab4bf Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-09-06 23:07:46 -04:00
renovate[bot]
0d85dc4818 fix(deps): update dependency nodebb-theme-persona to v10.2.16 (#8618)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-06 22:58:57 -04:00
renovate[bot]
b52301b1af fix(deps): update dependency nodebb-theme-vanilla to v11.2.10 (#8619)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-06 22:58:25 -04:00
Barış Soner Uşaklı
4bace773f9 fix: wider widget area 2020-09-06 22:48:50 -04:00
Barış Soner Uşaklı
5002e0f62c feat: refactor app.js 2020-09-06 22:36:09 -04:00
Barış Soner Uşaklı
19c448612d feat: remove global RELATIVE_PATH 2020-09-06 22:12:53 -04:00
Barış Soner Uşaklı
3cd3b7a172 feat: remove app.template 2020-09-06 22:07:39 -04:00
Barış Soner Uşaklı
630bac2aa5 feat: remove global window.templates 2020-09-06 21:55:31 -04:00
Barış Soner Uşaklı
fddeb5c0f8 feat: remove app.isConnected, use socket.connected 2020-09-06 21:51:45 -04:00
Barış Soner Uşaklı
33c1bd5f01 fix: bypass nbbpm for now 2020-09-06 21:46:35 -04:00
Barış Soner Uşaklı
46ab2711d4 fix: #8432, add CSP frame-ancestors 2020-09-06 17:10:43 -04:00
Barış Soner Uşaklı
6fc31df033 feat: use const/let 2020-09-06 17:04:43 -04:00
Barış Soner Uşaklı
4588e52120 fix: allow setting maximumAboutMeLength to 0 2020-09-05 18:30:39 -04:00
psychobunny
a38784f567 fix: additional commit for CF rocket loader 2020-09-04 22:43:03 -04:00
psychobunny
4d6659553b feat: allow nbb to work with cloudflare rocket loader 🚀 2020-09-04 22:29:21 -04:00
Barış Soner Uşaklı
53a5f1516e feat: move code 2020-09-04 22:16:38 -04:00
Barış Soner Uşaklı
b6917b9dee feat: #8602, dont send emails to unconfirmed addresses 2020-09-04 22:12:42 -04:00
renovate[bot]
69373fded7 fix(deps): update dependency nodebb-theme-vanilla to v11.2.9 (#8616)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-04 21:18:52 -04:00
renovate[bot]
3c0540c16e fix(deps): update dependency nodebb-theme-persona to v10.2.15 (#8614)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-04 20:58:04 -04:00
Barış Soner Uşaklı
94da9fe55e feat: add partials/footer/js.tpl
add ajaxify.coldLoad which gets called from partials/footer/js.tpl
2020-09-04 20:53:21 -04:00
Barış Soner Uşaklı
4031a8cab1 fix: stack trace 2020-09-04 17:34:47 -04:00
Barış Soner Uşaklı
54b497258f feat: add missing name to profile image upload 2020-09-04 01:16:11 -04:00
Barış Soner Uşaklı
b0a759223d feat: add action:user.removeCoverPicture 2020-09-04 01:06:10 -04:00
Barış Soner Uşaklı
962446a5ac feat: add user data to action:user.removeUploadedPicture 2020-09-04 00:55:16 -04:00
Barış Soner Uşaklı
9542ef1285 feat: add userData to action:user.delete 2020-09-04 00:40:58 -04:00
Barış Soner Uşaklı
a263897627 fix: #8604 2020-09-03 22:03:14 -04:00
Barış Soner Uşaklı
1b7ba2c8f1 feat: force upgrade scripts for test 2020-09-03 14:08:30 -04:00
Peter Jaszkowiak
64a457a441 fix(bug): #8611, custom route logic corrected (#8612) 2020-09-03 13:47:23 -04:00
Barış Soner Uşaklı
1e5981c0d6 feat: replace relative urls to absolute before sending email notifs
https://github.com/NodeBB/NodeBB/pull/8366/files
2020-09-03 12:02:07 -04:00
Barış Soner Uşaklı
c495aacc3e Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-09-03 11:30:39 -04:00
Barış Soner Uşaklı
57f67e2b91 fix: don't toggle elements if there is no inputEl 2020-09-03 11:29:34 -04:00
renovate[bot]
391102766f chore(deps): update dependency eslint to v7.8.1 (#8597)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-03 08:57:30 -04:00
renovate[bot]
5ba23f2404 fix(deps): update dependency socket.io-redis to v5.4.0 (#8600)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-03 08:54:25 -04:00
renovate[bot]
dc1f1db9a1 chore(deps): update dependency lint-staged to v10.3.0 (#8608)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-03 08:53:43 -04:00
renovate[bot]
97e3543e96 fix(deps): update dependency nodebb-theme-vanilla to v11.2.8 (#8599)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-03 08:52:36 -04:00
renovate[bot]
1bb0896e49 fix(deps): update dependency nodebb-theme-persona to v10.2.12 (#8598)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-03 08:52:27 -04:00
renovate[bot]
5fc2f5f996 Update dependency mongodb to v3.6.1 (#8603)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-03 08:52:12 -04:00
Misty (Bot)
b7db0f200e Latest translations and fallbacks 2020-09-03 09:08:32 +00:00
Misty (Bot)
0a24260571 chore: update changelog for v1.15.0-beta.12 2020-09-03 02:14:17 +00:00
Misty (Bot)
b852c9b7e0 chore: incrementing version number - v1.15.0-beta.12 2020-09-03 02:14:16 +00:00
Julian Lam
f743f92088 refactor: socket posts delete/restore/purge so tid is not necessary (#8607)
* refactor: socket posts delete/restore/purge so tid is not necessary

* refactor: stop trying to be fancy

* fix: tests to not pass in tid into posts.deletePosts

* fix: some more unnecessary tid passing
2020-09-02 21:51:35 -04:00
renovate[bot]
dfeb65bb95 fix(deps): update dependency nodebb-plugin-composer-default to v6.3.55 (#8606)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-09-02 19:58:16 -04:00
Misty (Bot)
f07ba8665e chore: update changelog for v1.15.0-beta.11 2020-09-02 18:29:34 +00:00
Misty (Bot)
c1ce7391e2 chore: incrementing version number - v1.15.0-beta.11 2020-09-02 18:29:34 +00:00
Barış Soner Uşaklı
09de364e93 feat: add client side action:flag.create 2020-09-02 14:06:04 -04:00
Misty (Bot)
2a4f4f5aec Latest translations and fallbacks 2020-09-02 09:09:47 +00:00
Misty (Bot)
b201bb2111 Latest translations and fallbacks 2020-09-01 09:06:02 +00:00
Misty (Bot)
9c34ecede6 chore: update changelog for v1.15.0-beta.10 2020-09-01 01:38:50 +00:00
Misty (Bot)
f252d4d73b chore: incrementing version number - v1.15.0-beta.10 2020-09-01 01:38:50 +00:00
renovate[bot]
05efeff619 chore(deps): update dependency mocha to v8.1.3 (#8588)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-08-31 21:17:06 -04:00
renovate[bot]
e1b9814219 chore(deps): update dependency eslint to v7.8.0 (#8594)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-08-31 21:16:51 -04:00
Julian Lam
0c20351702 feat: additional sorting options for flags
+ upvotes, +downvotes, +replies
2020-08-31 17:21:15 -04:00
Renovate Bot
27426c0629 fix(deps): update dependency nodebb-plugin-markdown to v8.12.1 2020-08-31 11:14:41 -04:00
Misty (Bot)
02a5fe9c68 Latest translations and fallbacks 2020-08-30 09:05:26 +00:00
Barış Soner Uşaklı
896fe9d65e fix: don't crash on outdated redis instances 2020-08-28 20:31:21 -04:00
Misty (Bot)
affc7927c5 chore: update changelog for v1.15.0-beta.9 2020-08-28 20:44:53 +00:00
Misty (Bot)
8dc513da24 chore: incrementing version number - v1.15.0-beta.9 2020-08-28 20:44:53 +00:00
Julian Lam
0e58d2b866 fix: update post-queue hook names 2020-08-28 11:50:21 -04:00
Misty (Bot)
3b960c3b64 chore: update changelog for v1.15.0-beta.8 2020-08-28 00:55:48 +00:00
Misty (Bot)
34bb869c96 chore: incrementing version number - v1.15.0-beta.8 2020-08-28 00:55:47 +00:00
Julian Lam
694f4b2bcf fix: accept/reject in post-queue instead of accept/delete 2020-08-27 20:05:08 -04:00
Misty (Bot)
e449ff9a4c chore: update changelog for v1.15.0-beta.7 2020-08-28 00:03:32 +00:00
Misty (Bot)
fd917b8eae chore: incrementing version number - v1.15.0-beta.7 2020-08-28 00:03:32 +00:00
Renovate Bot
64f4179ac5 fix(deps): update dependency nodebb-theme-vanilla to v11.2.5 2020-08-27 17:46:05 -04:00
Renovate Bot
777419b2e8 fix(deps): update dependency nodebb-theme-persona to v10.2.10 2020-08-27 17:42:14 -04:00
Julian Lam
8cc36de284 feat: new filter hook prior to post queue addition
filter:post.queue
2020-08-27 16:47:32 -04:00
Julian Lam
b587127560 fix: new openapi def for replies addition 2020-08-27 14:56:51 -04:00
Julian Lam
a9dfc9a74e feat: add replies to getPostSummaryByPids 2020-08-27 14:46:07 -04:00
Julian Lam
e0c7d65a92 Revert "feat: add reply count to getPostSummaryByPids"
This reverts commit de0f4aadb8.
2020-08-27 14:44:51 -04:00
Julian Lam
de0f4aadb8 feat: add reply count to getPostSummaryByPids 2020-08-27 13:21:18 -04:00
Misty (Bot)
a7f03b64b2 chore: update changelog for v1.15.0-beta.6 2020-08-27 14:08:45 +00:00
Misty (Bot)
a9019cbef5 chore: incrementing version number - v1.15.0-beta.6 2020-08-27 14:08:45 +00:00
Misty (Bot)
c25af08da0 Latest translations and fallbacks 2020-08-27 09:05:49 +00:00
Barış Soner Uşaklı
9f9164a9be fix: #8582 2020-08-26 22:04:18 -04:00
Julian Lam
fb3b4a0293 fix: debug logging 🐶 2020-08-26 22:03:04 -04:00
Julian Lam
56101ae5ae fix: ip-blacklist not working after #8580 2020-08-26 22:00:42 -04:00
Julian Lam
c681b4b2e0 fix: ip-blacklist not working after #8580 2020-08-26 22:00:42 -04:00
Julian Lam
dc5bd7601f fix: post-queue not working after #8580 2020-08-26 22:00:42 -04:00
Renovate Bot
efc30e97ec chore(deps): update dependency lint-staged to v10.2.13 2020-08-26 12:48:01 -04:00
Julian Lam
a93e19559d fix: #8411 missing language sources for ip-blacklist/post-queue 2020-08-26 11:20:34 -04:00
Julian Lam
4dc6e64a94 refactor: ip-blacklist and post-queue language files
closes #8411
2020-08-26 10:56:06 -04:00
Kyle Farris
2b785628e7 fix: removed invalid options for the sendmail transport (#8576)
* Removed invalid options for the sendmail transport that were causing Nodemailer to return the SMTPTransport instead.

* Removed options for rate limiting in admin email interface. Added new option for toggling whether to use pooled connections.
2020-08-26 10:46:59 -04:00
Julian Lam
6e805c1be7 feat: theme work for #8580, closes #8580 2020-08-26 10:38:21 -04:00
Julian Lam
b6b94a56dc refactor: moved ip-blacklist and post-queue styles/tpls to themes
This is a breaking change!, re: #8580
2020-08-26 10:36:29 -04:00
Misty (Bot)
073c4d7886 Latest translations and fallbacks 2020-08-26 09:05:41 +00:00
Misty (Bot)
0e90064e45 chore: update changelog for v1.15.0-beta.5 2020-08-26 02:04:46 +00:00
Misty (Bot)
81e4c4df97 chore: incrementing version number - v1.15.0-beta.5 2020-08-26 02:04:46 +00:00
Julian Lam
abb5e81d0d feat: allow undo of topic move 2020-08-25 21:43:05 -04:00
Julian Lam
cd8e7963de feat: added alert.timeoutfn
Also, various alert methods now pass two arguments,
alert and params
2020-08-25 21:42:59 -04:00
Julian Lam
bacee6b467 fix: missing localisation for topic move error 2020-08-25 21:40:40 -04:00
Julian Lam
5d60dce379 fix: select all checkbox does not re-enable bulk actions button 2020-08-25 21:11:17 -04:00
renovate[bot]
7ca967ee61 fix(deps): update dependency sharp to v0.26.0 (#8578)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-08-25 20:50:51 -04:00
renovate[bot]
c722b0e513 chore(deps): update dependency mocha to v8.1.2 (#8579)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-08-25 20:49:41 -04:00
Julian Lam
a4dbbc3749 feat: sort dependencies alphabetically
... when merging from install/package.json

/cc @pitaj
2020-08-25 11:06:51 -04:00
Misty (Bot)
6c4aed8cf4 chore: update changelog for v1.15.0-beta.4 2020-08-25 13:02:59 +00:00
Misty (Bot)
f2726a6df4 chore: incrementing version number - v1.15.0-beta.4 2020-08-25 13:02:59 +00:00
Barış Soner Uşaklı
9a84b4a9b7 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-08-25 08:51:24 -04:00
Barış Soner Uşaklı
55533b11e5 fix: dupes in unread followed topics 2020-08-25 08:51:15 -04:00
Andrew Rodrigues
af9f328cad feat: up persona 2020-08-25 08:40:11 -04:00
Barış Soner Uşaklı
39f4bbaa0e fix: wrong data passed to getCategories 2020-08-24 10:12:08 -04:00
Misty (Bot)
5f15afff39 Latest translations and fallbacks 2020-08-23 09:05:22 +00:00
Misty (Bot)
11e2ccaba6 chore: update changelog for v1.15.0-beta.3 2020-08-22 21:58:59 +00:00
Misty (Bot)
39178c2d41 chore: incrementing version number - v1.15.0-beta.3 2020-08-22 21:58:59 +00:00
Barış Soner Uşaklı
354e6ccc66 feat: banning a user will resolve their post flags 2020-08-22 17:34:19 -04:00
Barış Soner Uşaklı
4f7cfd5372 fix: openapi spec 2020-08-22 17:33:57 -04:00
Barış Soner Uşaklı
c4ad14cb68 fix: api spec 2020-08-22 17:30:34 -04:00
Barış Soner Uşaklı
91d9333a50 fix: username, email history disappering if content was deleted 2020-08-22 17:13:26 -04:00
Misty (Bot)
074d7dfd86 Latest translations and fallbacks 2020-08-22 09:05:26 +00:00
Andrew Rodrigues
9fd3775325 fix: up composer 2020-08-21 18:34:11 -04:00
Julian Lam
840cb5105f fix: package-install clobbering scoped nodebb plugins 2020-08-21 17:08:15 -04:00
Misty (Bot)
d8a9f1c3be chore: update changelog for v1.15.0-beta.2 2020-08-21 20:18:01 +00:00
Misty (Bot)
59b50d0ae4 chore: incrementing version number - v1.15.0-beta.2 2020-08-21 20:18:01 +00:00
Julian Lam
4b0cb26b34 fix: empty "manage" menu showing in ACP
... if no privileges corresponding to those menu items
are given
2020-08-21 15:42:04 -04:00
Julian Lam
cc2686057c fix: hide nodebb version in ACP for non-superadmins 2020-08-21 15:35:42 -04:00
Julian Lam
cf2f1e956a refactor: changed way middleware was exported 2020-08-21 15:29:40 -04:00
Julian Lam
f00595b32d fix: change how admin middlewares are exported 2020-08-21 15:11:54 -04:00
Julian Lam
ae68a254d7 fix: one less return, to appease codeclimate 2020-08-21 15:06:35 -04:00
Julian Lam
03bd76dea2 fix: inability to access /admin if not superadmin
There was an odd issue where non-superadmins could not use
the /admin route to access the ACP, even though they had
appropriate access. For whatever reason, it could not
be reliably reproduced on my dev. As it turns out, the
reason was because I was checking the wrong privilege,
and my dev database had this wrong privilege leftover
from the initial development of the ACP admin privileges
feature. Dumb.

Anyhow, that fixes this issue.
2020-08-21 15:00:51 -04:00
Barış Soner Uşaklı
29e3ab247d fix: #8560, fix old upgrade script
db.connect no longer exists at the root
2020-08-21 14:14:46 -04:00
Julian Lam
9cbe9389f5 fix: use promises in privilege save
... instead of jQuery Deferreds
2020-08-21 12:02:53 -04:00
Julian Lam
7a5daff4c9 fix: overzealous click handler on flag list row 2020-08-21 11:52:49 -04:00
Misty (Bot)
f425cecded Latest translations and fallbacks 2020-08-21 09:06:52 +00:00
Julian Lam
9608b44f21 fix: +comment, -debug log 2020-08-20 16:10:16 -04:00
Misty (Bot)
aeca19d5f4 chore: update changelog for v1.15.0-beta.1 2020-08-20 20:05:01 +00:00
Misty (Bot)
4fa57fbb25 chore: incrementing version number - v1.15.0-beta.1 2020-08-20 20:05:00 +00:00
Julian Lam
5415c01c51 feat: theme changes for #8571 2020-08-20 14:56:41 -04:00
Julian Lam
a3a2279358 feat: logic for bulk actions in flags list, #8571 2020-08-20 14:51:24 -04:00
Julian Lam
589216e720 fix: multiple alerts in the same millisecond overwrite each other 2020-08-20 14:32:20 -04:00
Julian Lam
6521e4dac4 Revert "feat: expose global/admin privileges to all routes"
This reverts commit 4737f937ee.
2020-08-20 13:21:30 -04:00
Julian Lam
2a948d32a4 Revert "test(openapi): missing commonprops addition"
This reverts commit 0dc55bbc80.
2020-08-20 13:21:26 -04:00
Julian Lam
0dc55bbc80 test(openapi): missing commonprops addition 2020-08-20 10:50:45 -04:00
Julian Lam
563937950a fix: reintroduce 20s delay for api tests 2020-08-20 10:40:24 -04:00
Julian Lam
4737f937ee feat: expose global/admin privileges to all routes
@barisusakli revert if necessary 😬
2020-08-20 10:36:11 -04:00
Julian Lam
b2271eb64f fix: client-side error in flags/detail
... as the filter form is no longer present in the details page
2020-08-20 10:36:11 -04:00
Misty (Bot)
bb7bd1b421 Latest translations and fallbacks 2020-08-20 09:06:54 +00:00
Andrew Rodrigues
7daba7ddc1 fix: #8570 2020-08-19 15:26:09 -04:00
Misty (Bot)
bff809831a chore: incrementing version number - v1.15.0-beta.0 2020-08-19 13:43:32 +00:00
Misty (Bot)
d9a050354d chore: incrementing version number - v1.14.3-beta.16 2020-08-19 13:38:05 +00:00
Renovate Bot
df61d0806f chore(deps): update dependency grunt to v1.3.0 2020-08-19 09:28:17 -04:00
Julian Lam
3efe2362e2 fix: sorting the flags list by newest is not considered a filter
... as it is default
2020-08-19 09:15:18 -04:00
Julian Lam
e047b72c87 feat: additional tests for #8569 2020-08-19 09:04:37 -04:00
Julian Lam
360aa00d5a fix: flag list tests due to breaking change in API 2020-08-19 09:04:37 -04:00
Misty (Bot)
07ebc81a2f Latest translations and fallbacks 2020-08-19 09:06:02 +00:00
Julian Lam
d935f03636 fix(openapi): tests 2020-08-18 21:42:36 -04:00
Julian Lam
334be11382 fix: no-widgets messaging in ACP + copy 2020-08-18 21:39:10 -04:00
Julian Lam
346db0d84d feat: flags list sorting, closes #8569 2020-08-18 21:03:59 -04:00
Julian Lam
cabe62a06c fix: #8568 perPage not acting like a filter 2020-08-18 18:49:59 -04:00
Misty (Bot)
1101fa3394 Latest translations and fallbacks 2020-08-18 09:12:04 +00:00
Renovate Bot
877cdfb9ad chore(deps): update commitlint monorepo to v9.1.2 2020-08-17 13:12:37 -04:00
Renovate Bot
49aeda01b9 fix(deps): update dependency ipaddr.js to v2 2020-08-17 13:12:14 -04:00
psychobunny
bd557af218 feat: up theme 2020-08-17 10:41:55 -04:00
Misty (Bot)
6bb60b0965 Latest translations and fallbacks 2020-08-17 09:06:03 +00:00
Misty (Bot)
e2a253f2cb chore: incrementing version number - v1.14.3-beta.15 2020-08-16 17:40:56 +00:00
Barış Soner Uşaklı
35a538ec2a feat: allow adding multiple users to group 2020-08-16 13:09:36 -04:00
Barış Soner Uşaklı
f1e82b6441 feat: add filter:group.getOwnersAndMembers 2020-08-16 12:03:21 -04:00
Misty (Bot)
7f57d39cd5 Latest translations and fallbacks 2020-08-16 09:05:31 +00:00
Misty (Bot)
2b930c894a Latest translations and fallbacks 2020-08-15 09:05:37 +00:00
renovate[bot]
f1398da2e1 chore(deps): update dependency eslint to v7.7.0 (#8564)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-08-14 20:54:59 -04:00
Julian Lam
9c70b6620e feat: pass uid into filter:flags.list 2020-08-14 16:27:02 -04:00
Barış Soner Uşaklı
31c2b7d946 fix: #8562 2020-08-14 14:10:47 -04:00
Julian Lam
2adae87949 fix: progress bar clobbering upgrade script name 2020-08-14 12:21:38 -04:00
Julian Lam
ac75c9a052 fix: tweak upgrade script progress bar to only update 100 times in total 2020-08-14 12:16:43 -04:00
Julian Lam
80a2a700ce fix: navigation title unescape upgrade script tweak 2020-08-14 12:06:34 -04:00
Julian Lam
7456a0e34e fix: new language key for error handling 2020-08-14 11:33:36 -04:00
Julian Lam
de8eebbd7c fix: upgrade scripts not run properly if schemaDate is present
Only affected VERY old installs that don't use schemaLog
2020-08-14 11:28:44 -04:00
Misty (Bot)
ea53c95d67 Latest translations and fallbacks 2020-08-14 09:05:50 +00:00
Barış Soner Uşaklı
0189945996 refactor: remove util.promisify calls 2020-08-14 00:05:03 -04:00
Julian Lam
45c8de129c feat: added security policy for github 2020-08-13 16:56:52 -04:00
Barış Soner Uşaklı
bfaf648ec3 fix: #8556, catch errors from admin check 2020-08-13 14:56:58 -04:00
Barış Soner Uşaklı
326827382a fix: upgrade script for 1.15.0 2020-08-13 14:17:43 -04:00
Renovate Bot
87674d6852 fix(deps): update dependency nodebb-theme-lavender to v5.1.0 2020-08-13 13:48:41 -04:00
Misty (Bot)
2aa36b649a Latest translations and fallbacks 2020-08-13 09:06:42 +00:00
Barış Soner Uşaklı
846b7d2430 refactor: change pwd change logic
add one more test
2020-08-12 22:09:22 -04:00
renovate[bot]
bb8f7c74be chore(deps): update dependency jsdom to v16.4.0 (#8554)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-08-12 21:17:52 -04:00
renovate[bot]
fde4f11038 chore(deps): update dependency eslint-config-airbnb-base to v14.2.0 (#8396)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-08-12 21:17:35 -04:00
Julian Lam
6e34b9efa2 fix(docs): updating changelog 2020-08-12 20:53:51 -04:00
Barış Soner Uşaklı
b97b51a8ac feat: up deps 2020-08-12 15:37:09 -04:00
Barış Soner Uşaklı
a333cb6ca4 feat: one more test 2020-08-12 13:46:30 -04:00
Barış Soner Uşaklı
ecda4ad8ad feat: tests for password change 2020-08-12 13:42:55 -04:00
Julian Lam
16cee1b03b fix: improper targetUid check during password change 2020-08-12 13:23:58 -04:00
Julian Lam
0903eb4b8c feat: limit privileges column to superadmins only 2020-08-12 13:00:55 -04:00
Misty (Bot)
9500871e47 chore: incrementing version number - v1.14.3-beta.14 2020-08-12 04:35:41 +00:00
Peter Jaszkowiak
1d170e0c1c fix: #8547, remove old deps during upgrade (#8557) 2020-08-11 14:32:44 -04:00
Julian Lam
12edd18b46 feat: use nodebb-scoped bootswatch
closes #8527
2020-08-11 13:43:25 -04:00
Barış Soner Uşaklı
6e91885836 feat: use assetBaseUrl instead of hardcoding 2020-08-11 11:09:46 -04:00
Barış Soner Uşaklı
3f01f4a2b8 Revert "feat: load timeago strings client-side"
This reverts commit 558a2d739c.
2020-08-11 11:06:46 -04:00
Julian Lam
558a2d739c feat: load timeago strings client-side
9adaccd036 introduced the ability to
configure an assetBaseUrl, but the timeago strings were still
calling a hardcoded value as it was handled server-side. There's
no need for the strings to be loaded until timeago is initialised.
2020-08-11 11:00:45 -04:00
Barış Soner Uşaklı
79e847d424 fix: #8558, only navigate if user is in same topic 2020-08-11 10:20:17 -04:00
Misty (Bot)
b5a2e4b69f chore: incrementing version number - v1.14.3-beta.13 2020-08-10 15:18:56 +00:00
Julian Lam
8ff09630b6 fix(openapi): new api definition 2020-08-10 10:35:44 -04:00
Julian Lam
9adaccd036 feat: +assetBaseUrl, -l10BaseUrl, -requireBaseUrl
Additional base URLs were necessary for benchpress and translator,
and in order to not clutter the API response with needless one-
time use base URLs, I decided to use a single base that is used
by all of the services, assetBaseUrl.
2020-08-10 10:23:52 -04:00
Misty (Bot)
75ef4bbe34 Latest translations and fallbacks 2020-08-09 09:05:53 +00:00
Barış Soner Uşaklı
b61a4da50c feat: #8550, add upgrade script test
flush test db after tests are complete
2020-08-07 20:20:02 -04:00
Barış Soner Uşaklı
33c5988c34 refactor: rewrite src/upgrade.js with async/await 2020-08-07 19:52:04 -04:00
Barış Soner Uşaklı
231d34d0aa fix: upgrade script 2020-08-07 19:26:18 -04:00
Barış Soner Uşaklı
8887f0edaa fix: don't allow duplicate upgrade script names 2020-08-07 18:57:40 -04:00
Misty (Bot)
f4c986a79a chore: incrementing version number - v1.14.3-beta.12 2020-08-07 20:10:21 +00:00
Julian Lam
9e3fd0e479 Revert "feat: #8493, plugin helper for standardised link/button injection"
This reverts commit 0bbb813e4b.
2020-08-07 12:25:17 -04:00
Sam Thompson
0bbb813e4b feat: #8493, plugin helper for standardised link/button injection 2020-08-07 11:48:04 -04:00
Julian Lam
d6297b28e9 fix: tests 2020-08-07 11:45:15 -04:00
Julian Lam
9f3b78118a fix: send hard 404 instead of soft 404 for missing modules
We used to send a soft 404 because require.js would error out on
a 404, but it seems years ago, error handling was added to the
require() call, so a hard 404 will not throw errors to the console
2020-08-07 11:32:07 -04:00
Renovate Bot
8032c8bdfe fix(deps): update dependency nodebb-theme-persona to v10.2.5 2020-08-07 10:52:40 -04:00
Misty (Bot)
8a6bc10eb1 Latest translations and fallbacks 2020-08-07 09:06:08 +00:00
Barış Soner Uşaklı
d6baf5c278 feat: show event/params on error 2020-08-06 11:25:13 -04:00
Julian Lam
68f8d6e3a1 fix: #8549 send 308 Permanent Redirect on topic/category shortlinks 2020-08-06 10:49:15 -04:00
Julian Lam
def16f9e97 feat: introduce overridable l10nBaseUrl config value 2020-08-06 10:49:15 -04:00
Misty (Bot)
9846498df7 Latest translations and fallbacks 2020-08-06 09:06:05 +00:00
Barış Soner Uşaklı
3fceb83c5e Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-08-05 22:32:26 -04:00
Barış Soner Uşaklı
58933c4cd1 feat: allow multiple empty lines 2020-08-05 22:32:13 -04:00
renovate[bot]
788a8bfe2a chore(deps): update dependency eslint-plugin-import to v2.22.0 (#8390)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-08-05 22:29:49 -04:00
Barış Soner Uşaklı
2c35d0ba87 refactor: change incrementViewCount and markAsRead to async/await 2020-08-05 22:05:35 -04:00
Barış Soner Uşaklı
dfabd0a3fe feat: remove administrator property from public routes 2020-08-05 14:24:00 -04:00
Renovate Bot
fe352eb1de chore(deps): update dependency mocha to v8.1.1 2020-08-04 15:27:35 -04:00
Barış Soner Uşaklı
4216c277d5 feat: focus username when modal is shown 2020-08-04 13:39:27 -04:00
Barış Soner Uşaklı
774e5d0429 feat: add helmet middlewares 2020-08-04 09:51:30 -04:00
Barış Soner Uşaklı
6812691d32 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-08-04 08:49:32 -04:00
Barış Soner Uşaklı
c39c51139b fix: remove default helmet 2020-08-04 08:49:23 -04:00
Misty (Bot)
3463fc51c6 Latest translations and fallbacks 2020-08-04 09:06:28 +00:00
Misty (Bot)
8618c32a72 chore: incrementing version number - v1.14.3-beta.11 2020-08-04 01:26:32 +00:00
Julian Lam
2ee6248316 refactor: for codeclimate 2020-08-03 21:01:36 -04:00
Julian Lam
a7071bb808 fix: map instead of forEach in privileges save 2020-08-03 20:50:17 -04:00
Julian Lam
a716a5529c feat: more discrete commit-on-save instead of commit-on-change w/ confirm modals (#8541)
* feat: privileges save button, #8537, WIP

* fix: disable firefox autocomplete on privilege form fields

* feat: closes #8537 privilege changes commit on save

- new language strings for confirmation and success modals/toasts
- indeterminate privilege handling (/cc @psychobunny)
- added new discard button
- both discard and save buttons now have confirmation dialogs

* fix(tests): remove duplicate template helper test

* fix(tests): broken template helper test

* feat: confirm dialogs for all privilege copy actions

Also, ability to add user to a privilege table without needing
to refresh the privilege table.

* feat: group row addition w/o table refresh

breaking: helpers.getUserPrivileges and helpers.getGroupPrivileges
no longer make socket calls to the following hooks:

- filter:privileges.list, filter:privileges.admin.list,
  filter:privileges.global.list, filter:privileges.groups.list,
  filter:privileges.admin.groups.list,
  filter:privileges.gloval.groups.list

The filters are still called, but done before the helper method
is called, and the results are passed in instead. This change
should only affect you if you directly call the helper methods,
otherwise the change is transparent.

* fix: stale ajaxify data on privilege category switch

* fix: implicit privileges not showing for user privs

* fix: groups, not group, also fix tests

* fix(tests): again

* fix: wrong tpl rendered when adding group to global priv table
2020-08-03 20:42:45 -04:00
Julian Lam
0f10e0836b fix: remove duplicate configuration for helmet-hsts 2020-08-03 20:40:44 -04:00
renovate[bot]
ad68a338c4 fix(deps): update dependency helmet to v4 (#8543)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-08-03 11:04:39 -04:00
renovate[bot]
37418375f2 chore(deps): update dependency eslint to v7.6.0 (#8540)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-08-03 11:03:33 -04:00
renovate[bot]
4160e8285f fix(deps): update dependency mongodb to v3.6.0 (#8535)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-08-03 11:03:14 -04:00
renovate[bot]
72a78833fe chore(deps): update dependency mocha to v8.1.0 (#8536)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-08-03 10:57:53 -04:00
Misty (Bot)
8da742e065 Latest translations and fallbacks 2020-08-03 09:06:00 +00:00
renovate[bot]
b30ecffbf2 fix(deps): update dependency nodebb-theme-persona to v10.2.4 (#8544)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-08-02 12:34:09 -04:00
Misty (Bot)
903c407171 Latest translations and fallbacks 2020-08-02 09:05:38 +00:00
Misty (Bot)
fa341714fd chore: incrementing version number - v1.14.3-beta.10 2020-08-01 01:41:46 +00:00
Barış Soner Uşaklı
e7a502e0aa feat: add ability to search groups in group details page 2020-07-31 21:21:15 -04:00
Barış Soner Uşaklı
335169f2b1 fix: don't process invalid topics, fallback to 0 score 2020-07-31 18:20:24 -04:00
Barış Soner Uşaklı
6924a22238 fix: tests 2020-07-31 14:54:16 -04:00
Barış Soner Uşaklı
bb224184d8 fix: #8539, enforce content checks for post queue 2020-07-31 13:37:14 -04:00
Barış Soner Uşaklı
776e34a80f refactor: rewrite src/install with async/await 2020-07-31 12:49:25 -04:00
Julian Lam
6c00ec8435 refactor: removed rather redundant flag reporters zset 2020-07-31 11:38:05 -04:00
Julian Lam
0f2b6f1ff7 fix: bug; additional reports could be added by the same user repeatedly 2020-07-31 11:38:05 -04:00
Barış Soner Uşaklı
519e665939 fix: #8538, go to first unread instead of last read 2020-07-31 10:34:10 -04:00
Misty (Bot)
029f477434 Latest translations and fallbacks 2020-07-31 09:06:17 +00:00
Barış Soner Uşaklı
0d698a079e fix: #8533, validate and retry password during setup 2020-07-30 22:48:24 -04:00
Barış Soner Uşaklı
9e80a9efdd fix: #8534, dont show modal on search 2020-07-30 22:33:11 -04:00
Misty (Bot)
9945c4099f chore: incrementing version number - v1.14.3-beta.9 2020-07-30 19:17:00 +00:00
Barış Soner Uşaklı
fb7bb8d400 feat: use category selector in category page
fix privilege shortcuts in group page after search
2020-07-30 14:55:28 -04:00
Barış Soner Uşaklı
560f3eb173 feat: css fixes 2020-07-30 12:39:10 -04:00
Barış Soner Uşaklı
91411cc47c feat: add privileges shortcut to groups list
fix issues with escape group names
2020-07-30 12:26:37 -04:00
Julian Lam
fcdbdf63a3 refactor: flags object in post tools 2020-07-30 09:53:16 -04:00
Misty (Bot)
caa78cc1f6 Latest translations and fallbacks 2020-07-30 09:06:18 +00:00
Barış Soner Uşaklı
f1974fb900 refactor: pass only needed data 2020-07-29 21:48:31 -04:00
Barış Soner Uşaklı
9f346c53ab fix: language string 2020-07-29 21:29:06 -04:00
Misty (Bot)
b5dcce9c29 chore: incrementing version number - v1.14.3-beta.8 2020-07-29 23:00:58 +00:00
Barış Soner Uşaklı
f89ec20574 feat: allow passing groupName to user.search 2020-07-29 18:32:08 -04:00
Julian Lam
292d490443 feat: #8531, closes #8531 2020-07-29 16:57:28 -04:00
Julian Lam
c705e08a76 feat: allow direct link to flag from post tools, #8531 2020-07-29 16:55:18 -04:00
Barış Soner Uşaklı
8415d2f014 fix: api test 2020-07-29 14:29:07 -04:00
Barış Soner Uşaklı
c4829fd8c2 feat: allow changing requirejs base url 2020-07-29 14:14:45 -04:00
Barış Soner Uşaklı
9df871bee2 fix: tests 2020-07-29 12:53:36 -04:00
Barış Soner Uşaklı
bbc7737e14 feat: ability to clear cache from acp 2020-07-29 12:50:18 -04:00
Barış Soner Uşaklı
69fb15276c fix: tests 2020-07-29 12:19:07 -04:00
Barış Soner Uşaklı
8d8117ffa1 feat: reduce amount of data loaded on acp admin page
get rid of socket call and use ajaxify.data.categories
2020-07-29 11:57:20 -04:00
Barış Soner Uşaklı
7331faed9f fix: reverse uid checks 2020-07-29 11:48:32 -04:00
Barış Soner Uşaklı
303bffdb5f feat: remove require fallback for plugins 2020-07-29 11:19:29 -04:00
Barış Soner Uşaklı
2dfe9d49f4 fix: acp view category button if category is a link 2020-07-29 09:25:21 -04:00
Barış Soner Uşaklı
52718ce0ba fix: remove old test 2020-07-29 09:14:23 -04:00
Barış Soner Uşaklı
f5f7d8926b Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-07-29 08:22:27 -04:00
Barış Soner Uşaklı
762b0be4b4 feat: remove /assets/stylesheet.css 2020-07-29 08:20:41 -04:00
Barış Soner Uşaklı
6250a2e242 feat: add node 14 2020-07-28 21:36:08 -04:00
Misty (Bot)
d580cf01c3 Latest translations and fallbacks 2020-07-28 09:06:14 +00:00
Barış Soner Uşaklı
5e5815f051 fix: #8515, fix login redirect on subfolder 2020-07-27 22:28:07 -04:00
Misty (Bot)
2531c44cdf chore: incrementing version number - v1.14.3-beta.7 2020-07-28 02:05:58 +00:00
Barış Soner Uşaklı
f48d155670 fix: tests 2020-07-27 21:50:07 -04:00
Barış Soner Uşaklı
fd4c3cda42 fix: #4695, remove new notif alert 2020-07-27 21:34:21 -04:00
Julian Lam
8473e165a6 fix: too small sortable handle for ACP>Manage>Categories
The handle was initially just the icon, but now it is the icon
and the category label itself.
2020-07-27 16:07:52 -04:00
Misty (Bot)
97088f6887 chore: incrementing version number - v1.14.3-beta.6 2020-07-27 17:43:36 +00:00
Misty (Bot)
93d1ceccdd Latest translations and fallbacks 2020-07-27 17:18:47 +00:00
Misty (Bot)
43e9c25d26 Latest translations and fallbacks 2020-07-27 17:09:09 +00:00
Barış Soner Uşaklı
db07dd8565 fix: less fixes for category dropdown 2020-07-27 13:03:34 -04:00
Barış Soner Uşaklı
24535a62e7 feat: make category tools in acp a dropdown
add view category, view privileges into dropdown
2020-07-27 12:39:32 -04:00
Barış Soner Uşaklı
37e56d94ce feat: series upload 2020-07-27 11:46:14 -04:00
renovate[bot]
7a59c2fc71 fix(deps): update dependency nodebb-theme-persona to v10.2.1 (#8529)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-07-25 20:48:05 -04:00
Barış Soner Uşaklı
8bd63f61e0 feat: resolve flag on delete/purge/ban/delete account 2020-07-25 18:26:09 -04:00
Barış Soner Uşaklı
c54b6b9c7e refactor: startup 2020-07-25 09:44:50 -04:00
Barış Soner Uşaklı
57135761ca fix: move check inside lock 2020-07-25 09:26:08 -04:00
Barış Soner Uşaklı
af91c26a6f refactor: get rid of bind calls 2020-07-25 09:14:13 -04:00
Barış Soner Uşaklı
e045436c07 feat: 8502, don't change topics sitemaps on every reply
sort by topic creation in ascending order
2020-07-24 16:11:18 -04:00
Barış Soner Uşaklı
0a9ea91fea feat: allow building custom languages during dev 2020-07-24 15:47:28 -04:00
Misty (Bot)
a33a8a5a27 chore: incrementing version number - v1.14.3-beta.5 2020-07-24 19:07:39 +00:00
Barış Soner Uşaklı
cc86f079e1 feat: add link-plugins.sh 2020-07-24 15:04:14 -04:00
Barış Soner Uşaklı
79009d8775 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-07-24 14:55:37 -04:00
Barış Soner Uşaklı
d1cb405d86 fix: #7351, display less errors with location and error message 2020-07-24 14:54:01 -04:00
Renovate Bot
d24a4bd305 fix(deps): update dependency nodebb-plugin-composer-default to v6.3.53 2020-07-24 14:53:24 -04:00
Julian Lam
345fd72b30 fix: use shorter git url, #8527 2020-07-24 14:42:43 -04:00
Barış Soner Uşaklı
609e37a67b feat: remove deprecated utils.walk 2020-07-24 14:29:08 -04:00
Julian Lam
b714ed22e7 fix(deps): bump themes
closes #8510
2020-07-24 14:11:30 -04:00
Julian Lam
55b0e902fb feat: consolidation of flags to reduce flagspam, #8510
Squashed commit of the following:

commit c6d0939620
Author: Julian Lam <julian@nodebb.org>
Date:   Fri Jul 24 13:41:32 2020 -0400

    fix: more tests

commit 32f9af2a87
Merge: e50907535 4eae927d1
Author: Julian Lam <julian@nodebb.org>
Date:   Fri Jul 24 10:53:04 2020 -0400

    Merge remote-tracking branch 'origin/master' into singleton-flags

commit e509075351
Author: Julian Lam <julian@nodebb.org>
Date:   Fri Jul 24 10:52:46 2020 -0400

    fix: controllers-admin test

commit fd5af99e30
Author: Julian Lam <julian@nodebb.org>
Date:   Fri Jul 17 17:26:55 2020 -0400

    fix(tests): dummy commit to trigger travisCI

commit c452a6ffcf
Author: Julian Lam <julian@nodebb.org>
Date:   Fri Jul 17 17:05:09 2020 -0400

    fix(openapi): openapi spec changes

commit 8089a74e89
Author: Julian Lam <julian@nodebb.org>
Date:   Fri Jul 17 15:48:00 2020 -0400

    fix: reversing the order of reports for display purposes

commit a099892b37
Author: Julian Lam <julian@nodebb.org>
Date:   Fri Jul 17 15:45:44 2020 -0400

    refactor: run all flag creation calls in a single batch

commit b24999682f
Author: Julian Lam <julian@nodebb.org>
Date:   Fri Jul 17 15:08:23 2020 -0400

    feat: handling multiple reporters per flag, #8510

commit 08c75c0200
Author: Julian Lam <julian@nodebb.org>
Date:   Thu Jul 16 20:53:18 2020 -0400

    feat: upgrade script for #8510
2020-07-24 14:10:37 -04:00
Barış Soner Uşaklı
3761f05c98 feat: change invalid language codes to default lang 2020-07-24 12:22:24 -04:00
Barış Soner Uşaklı
a294e1cdd1 feat: add npx, fixes ghfw 2020-07-24 12:03:35 -04:00
Barış Soner Uşaklı
ce6b20c4b7 feat: remove topics.async.getTopicData usage 2020-07-24 12:02:16 -04:00
Barış Soner Uşaklı
0cea713691 feat: remove deprecated checkGlobalPrivacySettings 2020-07-24 11:42:37 -04:00
Barış Soner Uşaklı
a0da2ba774 feat: remove deprecated isAdmin method 2020-07-24 11:40:21 -04:00
Barış Soner Uşaklı
2cdb935f1d feat: remove file.isFileTypeAllowed 2020-07-24 11:21:26 -04:00
Barış Soner Uşaklı
4eae927d14 feat: remove deprecated hooks 2020-07-24 10:39:51 -04:00
renovate[bot]
8c498fa1c9 chore(deps): update dependency @apidevtools/swagger-parser to v10.0.1 (#8517)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-07-24 10:05:13 -04:00
renovate[bot]
75fb2a478e fix(deps): update dependency commander to v6 (#8518)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-07-24 10:04:59 -04:00
Barış Soner Uşaklı
9869064ec5 feat: update readme 2020-07-24 10:02:07 -04:00
Barış Soner Uşaklı
b39e014047 feat: up node version to 10 2020-07-24 10:01:24 -04:00
renovate[bot]
c872bd8b22 chore(deps): update dependency nyc to v15.1.0 (#8353)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-07-24 10:00:12 -04:00
renovate[bot]
b2be329cfd chore(deps): update dependency eslint to v7.5.0 (#8463)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-07-24 09:57:27 -04:00
renovate[bot]
82ada1bd78 chore(deps): update dependency jsdom to v16.3.0 (#8483)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-07-24 09:57:00 -04:00
renovate[bot]
b2dc6d60ab chore(deps): update dependency grunt to v1.2.1 (#8462)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-07-24 09:56:41 -04:00
renovate[bot]
f1cc4e29f4 fix(deps): update dependency archiver to v5 (#8523)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-07-24 09:56:16 -04:00
renovate[bot]
2941b9f982 fix(deps): update dependency lru-cache to v6 (#8490)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-07-24 09:55:48 -04:00
renovate[bot]
9c17a6779c fix(deps): update dependency connect-redis to v5 (#8480)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-07-24 09:55:33 -04:00
Misty (Bot)
55b3e376c6 chore: incrementing version number - v1.14.3-beta.4 2020-07-24 06:01:31 +00:00
psychobunny
4c90fac412 fix: cursor for category select 2020-07-24 01:30:16 -04:00
psychobunny
bc26883aed refactor: setting codeclimate to A 2020-07-23 23:23:35 -04:00
psychobunny
8769e28b28 fix: api docs for admin/manage/groups/x 2020-07-23 23:00:02 -04:00
Barış Soner Uşaklı
b9cff5775c fix: edge case in test
if user is created the other one will be renamed
2020-07-23 21:42:23 -04:00
psychobunny
a6ae69737b Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-07-23 18:34:20 -04:00
psychobunny
10e4ae629c feat: highlight privs row if group is added / navigating from group page 2020-07-23 18:34:07 -04:00
psychobunny
53f6139b8c feat: prevent navigation away from groups page if changes are unsaved 2020-07-23 18:06:55 -04:00
psychobunny
2c83278f97 feat: quick access dropdown on groups page to access privileges page 2020-07-23 17:59:52 -04:00
Barış Soner Uşaklı
42af4b572b fix: api tests 2020-07-23 16:54:36 -04:00
Barış Soner Uşaklı
844f2b4ed0 feat: #8524, allow editing category of queued topic 2020-07-23 16:43:56 -04:00
Barış Soner Uşaklı
7260646d6c fix: #8500, allow regular users select topics on unread 2020-07-23 09:27:00 -04:00
Barış Soner Uşaklı
4658121a7d fix: don't crash if content is undefined 2020-07-22 17:03:29 -04:00
Misty (Bot)
5a5abf3c4e chore: incrementing version number - v1.14.3-beta.3 2020-07-22 16:08:50 +00:00
Barış Soner Uşaklı
fefe994af5 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-07-22 11:46:22 -04:00
Barış Soner Uşaklı
ff3c343532 feat: remove js-enabled 2020-07-22 11:46:10 -04:00
renovate[bot]
ac257a6586 fix(deps): update dependency nodebb-plugin-composer-default to v6.3.52 (#8522)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-07-22 11:41:11 -04:00
Misty (Bot)
bbab183fec chore: incrementing version number - v1.14.3-beta.2 2020-07-22 14:54:41 +00:00
Barış Soner Uşaklı
ec05783507 feat: remove js-enabled.css 2020-07-22 10:38:52 -04:00
Barış Soner Uşaklı
a3c8d45626 fix: crash if csrfToken does not exist 2020-07-21 21:07:31 -04:00
Barış Soner Uşaklı
6f889c9c83 fix: try again 2020-07-21 20:53:25 -04:00
Barış Soner Uşaklı
a46adb3fd5 fix: more tests 2020-07-21 20:43:16 -04:00
Barış Soner Uşaklı
65395ae59d fix: tests 2020-07-21 20:32:36 -04:00
Barış Soner Uşaklı
72c60d19c2 fix: tests 2020-07-21 20:08:40 -04:00
Barış Soner Uşaklı
67ca5e3256 fix: tests 2020-07-21 18:26:26 -04:00
Barış Soner Uşaklı
2a5f8ab27e feat: dont load all subscribers at once
increase batch to 500
2020-07-21 18:19:46 -04:00
Barış Soner Uşaklı
23a9a334cd feat: short more info 2020-07-21 18:08:53 -04:00
Misty (Bot)
2c06f6ace1 chore: incrementing version number - v1.14.3-beta.1 2020-07-21 01:43:15 +00:00
Barış Soner Uşaklı
2485a55092 feat: #8521, allow editing title before posting from queue 2020-07-20 21:28:17 -04:00
Barış Soner Uşaklı
8ddc8dd10f refactor: make msg pretty 2020-07-20 17:58:42 -04:00
Barış Soner Uşaklı
764969ab29 feat: show language when key isn't found 2020-07-20 17:56:03 -04:00
Barış Soner Uşaklı
1e7397b1b8 feat: allow searching categories in ACP 2020-07-20 13:17:08 -04:00
renovate[bot]
f06b1cecba fix(deps): update dependency nodebb-theme-persona to v10.1.68 (#8520)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-07-19 20:49:04 -04:00
Barış Soner Uşaklı
320008cd49 feat: #8509, don't scroll chat to bottom if user scrolled up 2020-07-19 14:34:31 -04:00
renovate[bot]
b5df576646 fix(deps): update dependency nodebb-plugin-mentions to v2.9.3 (#8516)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-07-18 22:03:20 -04:00
Renovate Bot
649c64e4d4 fix(deps): update dependency nodebb-plugin-dbsearch to v4.1.2 2020-07-17 16:46:25 -04:00
psychobunny
06143ca7d7 feat: added quick link to edit privileges on the category edit page 2020-07-17 16:27:47 -04:00
Renovate Bot
91bdc12a16 fix(deps): update dependency nodebb-plugin-mentions to v2.9.2 2020-07-17 15:46:25 -04:00
Renovate Bot
9e2c3ce005 chore(deps): update dependency @apidevtools/swagger-parser to v10 2020-07-16 19:42:20 -04:00
Barış Soner Uşaklı
3653151143 fix: #8508, dont allow moving topics if not moderator of target category 2020-07-16 16:47:49 -04:00
Julian Lam
1e14af4503 fix: composer textarea placeholder l10n /cc @pitaj 2020-07-16 16:25:36 -04:00
Renovate Bot
0e13fd0fc1 fix(deps): update dependency nodebb-plugin-composer-default to v6.3.51 2020-07-16 10:08:45 -04:00
Misty (Bot)
3f87d5f9d0 chore: incrementing version number - v1.14.3-beta.0 2020-07-16 14:03:48 +00:00
Julian Lam
9fb9185fa7 feat: hide some filters behind 'more filters' button 2020-07-16 09:32:20 -04:00
Julian Lam
d52d7bdb10 feat: collapsible daily flags graph 2020-07-16 09:03:03 -04:00
Julian Lam
e3e55f25d0 refactor: flag sanity checks, +feat: flag limits
- Added new config flag:limitPerTarget, to disallow flags after an item has
  already been flagged x times (default 0, or infinite)
- New zset flags:byTarget, score is the number of times a flag has been made
  against that item
- "already-flagged" translation key removed, now "post-already-flagged" or
  "user-already-flagged" -- this fixed bug where flagging a user you've already
  flagged would tell you you've already flagged this post already.
- Refactored Flags.canFlag to throw errors only, instead of returning boolean
- Updated ACP form inputs for reputation settings page to be more bootstrappy
- +1 upgrade script
2020-07-15 17:10:49 -04:00
Misty (Bot)
cd94c24a86 chore: update changelog for v1.14.2 2020-07-15 16:03:40 +00:00
Misty (Bot)
e085c8463c Revert "chore: update changelog for v1.14.2"
This reverts commit 488e69fd80.
2020-07-15 16:01:10 +00:00
Misty (Bot)
1e4d683f4e chore: incrementing version number - v1.14.2
(cherry picked from commit 28970b030d)
Signed-off-by: Misty (Bot) <deploy@nodebb.org>
2020-07-15 16:00:31 +00:00
Misty (Bot)
488e69fd80 chore: update changelog for v1.14.2 2020-07-15 16:00:31 +00:00
Renovate Bot
c54287fe9c fix(deps): update dependency nodebb-plugin-mentions to v2.9.1 2020-07-15 10:36:58 -04:00
Julian Lam
65240a178e fix: #8499 2020-07-14 13:40:51 -04:00
Julian Lam
1441720962 feat: logic for flag note editing, #8499 2020-07-14 13:38:28 -04:00
Julian Lam
f85a45c722 feat: logic for flag note deletion, #8499 2020-07-14 13:38:28 -04:00
Andrew Rodrigues
63fb2ad7d9 chore: up theme 2020-07-14 12:59:29 -04:00
Misty (Bot)
9d1465d0da chore: incrementing version number - v1.14.2-beta.1 2020-07-14 13:25:39 +00:00
Barış Soner Uşaklı
5e984d10f0 fix: #8500 2020-07-13 16:02:32 -04:00
Renovate Bot
0ca7e28ad0 chore(deps): update commitlint monorepo to v9.1.1 2020-07-13 15:31:37 -04:00
Julian Lam
2286ee2a61 fix: invalid session error modal during logout
A brief flash can be seen, but this is exacerbated by slow
connections and/or slow server response.
2020-07-13 15:17:46 -04:00
Renovate Bot
7730e7da23 fix(deps): update dependency nodebb-plugin-mentions to v2.9.0 2020-07-11 13:53:18 -04:00
Julian Lam
3379d65f36 feat: fire action:flag.showModal on flag modal appearance 2020-07-10 14:40:13 -04:00
Barış Soner Uşaklı
00d39fb32c feat: #8460, export groups members as csv 2020-07-10 13:12:14 -04:00
Andrew Rodrigues
15aabfd3a5 chore: up theme 2020-07-10 12:23:44 -04:00
Julian Lam
2fba0a1405 Merge branch 'master' of github.com:NodeBB/NodeBB 2020-07-10 11:50:55 -04:00
Barış Soner Uşaklı
b3a88331bf fix: #8488 2020-07-10 11:06:18 -04:00
Barış Soner Uşaklı
393f19b461 feat: pass connection options to socket.io-adapter-mongo 2020-07-10 08:39:49 -04:00
Barış Soner Uşaklı
3dcf538773 feat: #8023, allow wildcard search for uid/email 2020-07-09 23:57:54 -04:00
renovate[bot]
4e9743abb3 fix(deps): update dependency nodebb-theme-persona to v10.1.62 (#8485)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-07-09 23:15:35 -04:00
Andrew Rodrigues
599c5015c8 chore: up theme 2020-07-09 21:45:17 -04:00
Barış Soner Uşaklı
6235b31c2b feat: up composer 2020-07-09 19:11:26 -04:00
Barış Soner Uşaklı
46a6686300 fix: category search in selector 2020-07-09 19:08:01 -04:00
Barış Soner Uşaklı
73ddf1cb98 fix: groups.updateCover 2020-07-09 18:12:51 -04:00
Barış Soner Uşaklı
c513b88dff feat: #8427, daily downvote limits 2020-07-09 12:51:05 -04:00
Misty (Bot)
fca4ee312e chore: incrementing version number - v1.14.2-beta.0 2020-07-09 01:58:10 +00:00
Barış Soner Uşaklı
4adbf87c6c feat: warn user if whitelisted tags are less than minTags 2020-07-08 21:36:48 -04:00
renovate[bot]
ab244ca6cc fix(deps): update dependency nodebb-plugin-composer-default to v6.3.49 (#8479)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-07-08 17:24:32 -04:00
Julian Lam
60bf488f54 fix(docs): bad changelog 2020-07-08 16:19:58 -04:00
Julian Lam
26c744090e Revert "chore: update changelog for v1.14.1"
This reverts commit d4c16086a3.
2020-07-08 16:15:19 -04:00
Misty (Bot)
31203b162f chore: incrementing version number - v1.14.1
(cherry picked from commit ddf5c3bf7f)
Signed-off-by: Misty (Bot) <deploy@nodebb.org>
2020-07-08 20:13:42 +00:00
Misty (Bot)
d4c16086a3 chore: update changelog for v1.14.1 2020-07-08 20:13:42 +00:00
Barış Soner Uşaklı
658dd03b03 feat: add tools to recent/unread (#8477)
* feat: add tools to recent/unread

* fix: open api spec

* fix: more api spec
2020-07-08 14:09:10 -04:00
renovate[bot]
14eafcb6b8 fix(deps): update dependency nodebb-theme-persona to v10.1.60 (#8478)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-07-08 14:08:49 -04:00
Misty (Bot)
e8ecef6bff chore: incrementing version number - v1.14.1-beta.3 2020-07-08 00:57:31 +00:00
Julian Lam
943a344aaa fix(deps): bump nodebb-plugin-composer-default to 6.3.48 2020-07-07 20:41:49 -04:00
Barış Soner Uşaklı
0d9461b185 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-07-07 20:19:20 -04:00
renovate[bot]
9f06f12cb9 fix(deps): update dependency nodebb-plugin-dbsearch to v4.1.1 (#8476)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-07-07 20:13:30 -04:00
Barış Soner Uşaklı
c2ca02dfc7 fix: #8474
make isPrimary and isCluster always booleans
they were strings when using ./nodebb start and boolean if they were in config.json and started with node app.js
2020-07-07 20:13:14 -04:00
Julian Lam
8853cd1aa5 fix(tests): another shot in the dark 2020-07-07 19:52:50 -04:00
Julian Lam
9458d90b5e fix(tests): shot in the dark 2020-07-07 18:00:11 -04:00
Julian Lam
4f51838df8 feat: fire new hooks on chat message editing 2020-07-07 17:31:10 -04:00
Barış Soner Uşaklı
7b04d8970d fix: show stack properly 2020-07-07 12:47:14 -04:00
Barış Soner Uşaklı
ace312e068 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-07-07 12:24:30 -04:00
Barış Soner Uşaklı
bdc4d9e75b feat: add back redis tests 2020-07-07 12:24:20 -04:00
Misty (Bot)
b8d9b6b1e1 chore: incrementing version number - v1.14.1-beta.2 2020-07-07 16:23:11 +00:00
Barış Soner Uşaklı
8461a1796d feat: remove redis test 2020-07-07 12:08:36 -04:00
renovate[bot]
857900f17c fix(deps): update dependency nodebb-plugin-composer-default to v6.3.47 (#8473)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-07-07 11:37:57 -04:00
Julian Lam
9a6b87d261 fix: editing chat messages does not go through content sanity checks 2020-07-06 16:27:13 -04:00
Barış Soner Uşaklı
d6c619cf1a fix: don't show blocked users under nested replies 2020-07-06 15:50:19 -04:00
renovate[bot]
eb51cfd419 fix(deps): update dependency nodebb-plugin-dbsearch to v4.1.0 (#8471)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-07-06 12:19:23 -04:00
Barış Soner Uşaklı
b60e1cbf50 fix: #8469, action:topic.changeOwner, action:post.changeOwner 2020-07-06 12:12:26 -04:00
Barış Soner Uşaklı
87dd6c83eb fix: tests 2020-07-05 21:06:25 -04:00
Barış Soner Uşaklı
746222d6c6 fix: handle scan/zscan returning duplicate elements on redis
increase count on redis zscan
2020-07-05 20:49:18 -04:00
renovate[bot]
ee38e05daa fix(deps): update dependency nodebb-theme-persona to v10.1.59 (#8468)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-07-05 17:47:18 -04:00
Barış Soner Uşaklı
9eb748b985 fix: #8467, fix url to merged topic in subfolder installs 2020-07-05 17:41:39 -04:00
renovate[bot]
519e035dd1 fix(deps): update dependency nodebb-widget-essentials to v4.1.1 (#8466)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-07-04 17:03:37 -04:00
Barış Soner Uşaklı
5f1865c0b7 fix: openapi 2020-07-04 16:54:18 -04:00
Barış Soner Uşaklı
65c0adc720 fix: openapi 2020-07-04 16:49:33 -04:00
Barış Soner Uşaklı
ac6b571ed5 fix: dont allow searching by email/ip if not privileged 2020-07-04 16:43:44 -04:00
Barış Soner Uşaklı
fef04fcf6b fix: missing backgroundImage #8386 2020-07-04 16:08:05 -04:00
Barış Soner Uşaklı
02ac44cc5a fix: dont allow searching by ip/banned/flagged for regular users 2020-07-04 10:19:05 -04:00
Barış Soner Uşaklı
057b783df7 feat: use covered query 2020-07-03 23:23:42 -04:00
renovate[bot]
412ca4ae71 fix(deps): update dependency @nodebb/socket.io-adapter-mongo to v3.0.1 (#8464)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-07-03 16:59:17 -04:00
Julian Lam
c468942f14 fix(openapi): tests 2020-07-03 12:12:07 -04:00
Julian Lam
f3441fce4f fix: admin privileges client-side regression 2020-07-03 11:39:34 -04:00
Billy Ohgren
89062d8e70 add filename to less render call (#8459) 2020-07-03 09:16:47 -04:00
Julian Lam
da29b947bf feat: add js-enabled.css to list of preloaded css files 2020-07-02 22:51:42 -04:00
Barış Soner Uşaklı
e95cd28f6f Zscan (#8458)
* feat: zscan

* fix: mongodb tests

* feat: scan, ip search starts with
2020-07-02 20:11:53 -04:00
Misty (Bot)
be85123ad5 chore: incrementing version number - v1.14.1-beta.1 2020-07-02 22:14:19 +00:00
Barış Soner Uşaklı
723fe8e8e0 feat: zscan (#8457)
* feat: zscan

* fix: mongodb tests
2020-07-02 17:59:20 -04:00
Misty (Bot)
c279875aa6 chore: incrementing version number - v1.14.1-beta.0 2020-07-02 17:43:02 +00:00
Barış Soner Uşaklı
59a2ace6f7 fix: only add blocksCount for self and admins 2020-07-01 23:16:20 -04:00
Barış Soner Uşaklı
fd20e5c62c fix: tests 2020-07-01 23:05:40 -04:00
Barış Soner Uşaklı
bd228d5ee7 feat: fix blocksCount not being returned on user profile
add hook action:user.blocks.toggle
2020-07-01 22:56:18 -04:00
Julian Lam
f992af05b6 fix: better changelog 2020-07-01 21:37:57 -04:00
Julian Lam
a761e31f02 revert: bad changelog 2020-07-01 21:31:48 -04:00
Misty (Bot)
bb73d6a4ae chore: incrementing version number - v1.14.0
(cherry picked from commit 1c0eb70046)
Signed-off-by: Misty (Bot) <deploy@nodebb.org>
2020-07-02 01:28:06 +00:00
Misty (Bot)
cffae0f149 chore: update changelog for v1.14.0 2020-07-02 01:28:06 +00:00
Misty (Bot)
fe908cc022 Latest translations and fallbacks 2020-07-01 09:05:28 +00:00
Renovate Bot
5a713d85df fix(deps): update dependency nodebb-plugin-composer-default to v6.3.46 2020-06-30 16:14:58 -04:00
Julian Lam
6cb31791ff feat: polish for user blocks UX 2020-06-30 15:02:36 -04:00
Barış Soner Uşaklı
eb9704f85e feat: #8450, next/prev link tags on /unread /recent 2020-06-30 11:34:32 -04:00
Renovate Bot
e80100b5b0 chore(deps): update dependency smtp-server to v3.7.0 2020-06-30 08:59:47 -04:00
Misty (Bot)
a1a5424047 Latest translations and fallbacks 2020-06-30 09:05:40 +00:00
renovate[bot]
bbd8504946 fix(deps): update dependency nodebb-plugin-mentions to v2.8.3 (#8449)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-06-29 23:07:47 -04:00
Andrew Rodrigues
19f9af94ee chore: bump persona 2020-06-29 21:40:12 -04:00
Julian Lam
6931f29d53 feat: allow flagging of user acounts from post tools menu 2020-06-29 19:49:52 -04:00
Renovate Bot
e7ec5550f3 Update dependency nodebb-theme-vanilla to v11.1.32 2020-06-29 17:52:21 -04:00
Renovate Bot
706fc118f2 Update dependency nodebb-theme-persona to v10.1.57 2020-06-29 17:52:10 -04:00
Renovate Bot
05a6f424a5 Update dependency nodebb-theme-vanilla to v11.1.31 2020-06-29 15:42:05 -04:00
Renovate Bot
6bb0070d03 Update dependency nodebb-theme-persona to v10.1.56 2020-06-29 15:29:41 -04:00
Misty (Bot)
1b1e9b6725 Latest translations and fallbacks 2020-06-29 09:06:13 +00:00
Misty (Bot)
e66b526ca0 Latest translations and fallbacks 2020-06-28 09:05:21 +00:00
Barış Soner Uşaklı
fd400a008d fix: don't show in unreplied if score is null 2020-06-27 21:28:23 -04:00
Barış Soner Uşaklı
e09ab3dc19 feat: closes #8440, allow configuring max topic count 2020-06-27 18:11:27 -04:00
Barış Soner Uşaklı
0d0b951380 fix: lint 2020-06-26 18:25:42 -04:00
Barış Soner Uşaklı
37b6b8fd48 fix: upgrade script to unescape navigation titles 2020-06-26 18:08:34 -04:00
Barış Soner Uşaklı
f0ce309d03 fix: test 2020-06-26 15:26:15 -04:00
Barış Soner Uşaklı
2355d9d5dd fix: escape navigation item fields, theme:id, category fields 2020-06-26 15:19:18 -04:00
Renovate Bot
903673d24c Update dependency nodebb-plugin-mentions to v2.8.2 2020-06-26 12:22:41 -04:00
Misty (Bot)
c0857f6390 Latest translations and fallbacks 2020-06-26 09:05:58 +00:00
Julian Lam
5c7d37c0ae Revert "fix(deps): update dependency nodebb-plugin-mentions to v2.8.0"
This reverts commit d40720f9e6.
2020-06-25 22:38:58 -04:00
Renovate Bot
d40720f9e6 fix(deps): update dependency nodebb-plugin-mentions to v2.8.0 2020-06-25 20:42:22 -04:00
Barış Soner Uşaklı
023de94ef8 fix: show controls @julianlam 2020-06-25 17:08:09 -04:00
Misty (Bot)
9b20d0ce20 Latest translations and fallbacks 2020-06-25 09:07:32 +00:00
Barış Soner Uşaklı
e53a18f219 fix: #8437, #8433 2020-06-24 23:04:24 -04:00
Barış Soner Uşaklı
bffb830d87 feat: add missing translation key 2020-06-24 16:20:50 -04:00
Barış Soner Uşaklı
c3c8b19a36 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-06-24 16:10:51 -04:00
Barış Soner Uşaklı
0d112b3605 refactor: make code climate happier? 2020-06-24 16:10:06 -04:00
renovate[bot]
c1991abe6f fix(deps): update dependency nodebb-plugin-composer-default to v6.3.44 (#8436)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-06-24 16:04:28 -04:00
Barış Soner Uşaklı
c718b7293e feat: #3783, min/max tags per category 2020-06-24 16:02:57 -04:00
Barış Soner Uşaklı
ed4b5caf2c fix: copy settings showing empty category selection 2020-06-24 16:02:01 -04:00
renovate[bot]
3349274439 chore(deps): update dependency eslint to v7.3.1 (#8417)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-06-24 15:35:20 -04:00
renovate[bot]
6a8f54fd6b fix(deps): update dependency winston to v3.3.3 (#8431)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-06-24 15:35:08 -04:00
renovate[bot]
a860a793ef fix(deps): update dependency nodebb-theme-persona to v10.1.55 (#8434)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-06-24 15:34:59 -04:00
renovate[bot]
272b4992c2 fix(deps): update dependency nodebb-theme-vanilla to v11.1.30 (#8435)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-06-24 15:34:47 -04:00
Barış Soner Uşaklı
0482fb2998 feat: use tags partial instead of post_bar 2020-06-24 15:31:49 -04:00
Barış Soner Uşaklı
8482a54a68 fix: don't init autocomplete if user doesn't have privs 2020-06-24 10:22:50 -04:00
Barış Soner Uşaklı
00d8ce2663 fix: only allow valid uids 2020-06-23 15:47:10 -04:00
Barış Soner Uşaklı
4f6b6c5631 feat: hide elements if search element is a direct child of dropdown
this fixes themes if they put the search input inside the dropdown
2020-06-23 12:37:12 -04:00
Misty (Bot)
d50f7c7dfa Latest translations and fallbacks 2020-06-23 09:06:09 +00:00
Barış Soner Uşaklı
0ddfb6b088 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-06-23 00:55:10 -04:00
Barış Soner Uşaklı
6aecc1770c feat: increase wait 2020-06-23 00:54:58 -04:00
renovate[bot]
b5a68a4440 fix(deps): update dependency nodebb-theme-vanilla to v11.1.29 (#8429)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-06-23 00:49:06 -04:00
renovate[bot]
3ffb6fded3 fix(deps): update dependency nodebb-theme-persona to v10.1.54 (#8428)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-06-23 00:48:53 -04:00
Barış Soner Uşaklı
f03ca0867b fix: tests 2020-06-23 00:46:59 -04:00
Barış Soner Uşaklı
8383992dcc feat: move export functions into child processes 2020-06-23 00:23:46 -04:00
Renovate Bot
54310d69e4 fix(deps): update dependency winston to v3.3.2 2020-06-22 14:16:42 -04:00
Renovate Bot
569b7664ed chore(deps): update commitlint monorepo to v9 2020-06-22 13:31:24 -04:00
Renovate Bot
11244348ae fix(deps): update dependency nodebb-plugin-spam-be-gone to v0.7.2 2020-06-22 12:09:14 -04:00
renovate[bot]
fd628570c5 fix(deps): update dependency winston to v3.3.1 (#8421)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-06-22 12:08:50 -04:00
Barış Soner Uşaklı
48b41debe6 fix: vulnerability in cover and admin uploads (#8419)
* fix: vulnerability in cover and admin uploads

* fix: remove old test

* fix: update tests
2020-06-22 12:08:35 -04:00
Misty (Bot)
76c577fa3c Latest translations and fallbacks 2020-06-21 09:05:12 +00:00
Barış Soner Uşaklı
e80379dc0e feat: display stack trace on winston.error 2020-06-20 23:32:12 -04:00
Misty (Bot)
55f8f99bcd Latest translations and fallbacks 2020-06-20 09:05:21 +00:00
Julian Lam
040e6a9a4c fix: reverse tabnabbing exploit in post images 2020-06-19 13:40:36 -04:00
Barış Soner Uşaklı
af790e3f5e refactor: shorter code 2020-06-19 12:03:33 -04:00
Barış Soner Uşaklı
d1c1cb2cc1 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-06-19 11:51:48 -04:00
Barış Soner Uşaklı
e8f0da6e42 refactor: shorter code 2020-06-19 11:51:41 -04:00
Misty (Bot)
757cfe80be Latest translations and fallbacks 2020-06-19 09:05:58 +00:00
Barış Soner Uşaklı
79a7f89235 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-06-18 23:24:40 -04:00
Barış Soner Uşaklı
2bcf7f72d2 fix: follower count going out of sync with real follower count 2020-06-18 23:24:03 -04:00
Barış Soner Uşaklı
bef37e27cb fix: test lock for user create (#8415)
* fix: test lock for user create

* fix: redis hdel with undefined

* feat: add test for undefined key in deleteObjectFields
2020-06-18 23:16:48 -04:00
Barış Soner Uşaklı
f0526bff9f fix: add mising timestamp 2020-06-18 15:41:58 -04:00
Barış Soner Uşaklı
a680a95e73 feat: add filter:user.getFields to match topic/posts 2020-06-17 11:46:42 -04:00
Renovate Bot
157e744473 chore(deps): update dependency lint-staged to v10.2.11 2020-06-17 09:22:00 -04:00
Misty (Bot)
f5b3713313 Latest translations and fallbacks 2020-06-17 09:05:42 +00:00
Barış Soner Uşaklı
bfd7eafe5b fix: ban 2020-06-16 22:43:03 -04:00
Barış Soner Uşaklı
b459592a4e Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-06-16 14:58:09 -04:00
Barış Soner Uşaklı
f70d1648c6 feat: show more relevant snippets 2020-06-16 14:58:02 -04:00
Manuel Valle
056f85f864 Topic hooks extension (#8413)
* Update data.js with new hook

Implemented new 'filter:topic.getFields' hook as in posts

* Update data.js

* Update data.js
2020-06-16 13:50:07 -04:00
Julian Lam
4cae893f49 fix(openapi): tests for #8412 2020-06-16 11:58:28 -04:00
Julian Lam
365996e7e6 fix(deps): #8412 bump themes 2020-06-16 11:36:03 -04:00
Julian Lam
35a06a8419 feat: #8412 breadcrumbs for ip-blacklist/post queue/flags 2020-06-16 11:34:44 -04:00
Misty (Bot)
7fe9c1a26d Latest translations and fallbacks 2020-06-16 09:05:31 +00:00
Julian Lam
5a367ecbb4 fix: remove use of 'hidden' class in navbar toggling 2020-06-15 17:35:05 -04:00
Julian Lam
f909ed2541 feat: show editor in post diffs if available 2020-06-15 17:16:44 -04:00
Julian Lam
2515aa77ba fix: bug where category privs page thought it was on admin 2020-06-15 16:33:38 -04:00
Julian Lam
b3115ea813 fix: #8410 2020-06-15 15:43:28 -04:00
Misty (Bot)
cdf81159df Latest translations and fallbacks 2020-06-15 18:42:49 +00:00
Julian Lam
225cac1855 fix(deps): bump persona/vanilla, closes #8408 2020-06-15 14:24:55 -04:00
Julian Lam
d5af976915 feat: #8408 flags' quick assignment 2020-06-15 14:22:59 -04:00
Julian Lam
d5578c9906 fix: tests breaking due to #8406 2020-06-15 14:09:47 -04:00
Barış Soner Uşaklı
42466d3c6e fix: add missing translations 2020-06-15 12:39:10 -04:00
Julian Lam
cb5ba76b08 feat: bump themes, closes #8406 2020-06-15 11:05:28 -04:00
Julian Lam
58b3d608fc feat: allow post diffs to be restored, #8406 2020-06-15 11:03:04 -04:00
Barış Soner Uşaklı
7ed1a0140a fix: #8401, #8237
switch to @nodebb/socket.io-adapter-mongo
2020-06-14 22:49:59 -04:00
Barış Soner Uşaklı
18d892398f fix: add timestamp to initial username history 2020-06-13 13:55:48 -04:00
Misty (Bot)
8f81651e2f Latest translations and fallbacks 2020-06-12 16:20:33 +00:00
renovate[bot]
3c3e1515aa fix(deps): update dependency sharp to v0.25.4 (#8403)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-06-12 12:16:12 -04:00
renovate[bot]
904463659e fix(deps): update dependency nodebb-theme-vanilla to v11.1.25 (#8405)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-06-12 12:02:55 -04:00
renovate[bot]
44273a64d0 fix(deps): update dependency nodebb-theme-persona to v10.1.50 (#8404)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-06-12 12:01:09 -04:00
renovate[bot]
90570660f0 fix(deps): update dependency mongodb to v3.5.9 (#8402)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-06-12 10:48:48 -04:00
Renovate Bot
102a60040e chore(deps): update dependency lint-staged to v10.2.10 2020-06-12 10:43:22 -04:00
Barış Soner Uşaklı
53a9517d54 fix: crash in export posts if post content is undefined 2020-06-12 10:29:07 -04:00
Renovate Bot
78b7382c3f fix(deps): update dependency nodebb-plugin-composer-default to v6.3.43 2020-06-11 17:57:27 -04:00
renovate[bot]
f4bace03d4 chore(deps): update dependency mocha to v8 (#8393)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-06-11 17:23:12 -04:00
renovate[bot]
2ae68f9bda fix(deps): update dependency validator to v13.1.1 (#8397)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-06-11 17:20:46 -04:00
Barış Soner Uşaklı
3a80a1651a feat: add missing translation 2020-06-11 12:52:25 -04:00
Barış Soner Uşaklı
0041c02465 fix: messaging unread
dont mark chat room unread and then read right away for the user sending the message
2020-06-10 20:49:41 -04:00
Barış Soner Uşaklı
96cb94dcc6 feat: up composer 2020-06-10 17:14:12 -04:00
renovate[bot]
ad6e3634a5 fix(deps): update dependency validator to v13.1.0 (#8391)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-06-10 17:10:42 -04:00
renovate[bot]
eec03de81e fix(deps): update dependency nodebb-theme-vanilla to v11.1.24 (#8395)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-06-10 17:10:24 -04:00
renovate[bot]
908467400d fix(deps): update dependency nodebb-theme-persona to v10.1.49 (#8394)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-06-10 17:10:13 -04:00
Barış Soner Uşaklı
6349fa03e1 feat: more search changes 2020-06-10 16:56:05 -04:00
Barış Soner Uşaklı
4b38533b15 feat: more merge/search fixes 2020-06-10 15:11:57 -04:00
Barış Soner Uşaklı
066b442e18 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-06-10 12:48:45 -04:00
Barış Soner Uşaklı
bb3aa54006 feat: merge changes
allow selecting main topic to merge into
allow specifying a new title for merge topic
upon merge go to correct topic
new tests for merging with options
2020-06-10 12:48:32 -04:00
Barış Soner Uşaklı
a024cc1344 fix: whitespace 2020-06-10 09:44:03 -04:00
Barış Soner Uşaklı
0595e71078 fix: typo 2020-06-10 09:29:56 -04:00
Barış Soner Uşaklı
89b010249d fix: #8392, clear group member cache when group is renamed 2020-06-10 08:48:42 -04:00
Barış Soner Uşaklı
8591f5d2cc fix: return false 2020-06-10 08:02:07 -04:00
Barış Soner Uşaklı
5fd05dc942 feat: more search & merge fixes 2020-06-09 16:49:56 -04:00
Barış Soner Uşaklı
c4bdeae06e feat: merge improvements wip 2020-06-09 15:26:41 -04:00
Renovate Bot
87ce31d1f5 fix(deps): update dependency postcss to v7.0.32 2020-06-09 11:47:38 -04:00
Renovate Bot
cd1375cbd5 chore(deps): update dependency eslint to v7.2.0 2020-06-09 11:47:27 -04:00
Renovate Bot
dde830db9a fix(deps): update dependency nodebb-plugin-composer-default to v6.3.41 2020-06-09 11:47:11 -04:00
Barış Soner Uşaklı
a255c8f6fd fix: language 2020-06-09 11:44:04 -04:00
renovate[bot]
cf0f8f64a9 fix(deps): update dependency nodebb-plugin-composer-default to v6.3.40 (#8388)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-06-09 11:00:10 -04:00
Barış Soner Uşaklı
8627bee541 fix: #8386, use backgroundImage everywhere 2020-06-09 10:39:55 -04:00
Julian Lam
6a96944247 fix(openapi): api change for #8387 2020-06-09 10:25:19 -04:00
Julian Lam
e97a2b71fe fix(deps): bump themes, closes #8387 2020-06-09 10:09:03 -04:00
Julian Lam
4acb3fb210 feat: #8387 expose global and admin privs to flags detail page 2020-06-09 10:06:37 -04:00
Misty (Bot)
2287963388 chore: latest translations and fallbacks 2020-06-08 21:22:20 +00:00
Barış Soner Uşaklı
3be4d5f7d5 feat: redirect /me to user profile 2020-06-08 15:37:20 -04:00
Barış Soner Uşaklı
d92032dad1 fix: prevent logout form from submitting 2020-06-08 15:09:11 -04:00
Julian Lam
ccac6a3568 fix(deps): bump themes 2020-06-08 14:22:34 -04:00
Julian Lam
daeceb45bd fix: missing space in ACP menu dropdown 2020-06-08 13:48:05 -04:00
Julian Lam
4d60eac60f feat: #8384 options to delete account, content, or both 2020-06-08 13:42:28 -04:00
Julian Lam
942cc4b132 fix: #8385 2020-06-08 13:42:28 -04:00
renovate[bot]
036e6ef51b fix(deps): update dependency nodebb-theme-persona to v10.1.46 (#8382)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-06-08 10:33:50 -04:00
renovate[bot]
7caeb27310 fix(deps): update dependency nodebb-theme-vanilla to v11.1.21 (#8383)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-06-08 10:33:34 -04:00
Julian Lam
67aca822e6 feat: account content deletion, closes #8381 2020-06-08 08:43:31 -04:00
Renovate Bot
4b577a527a chore(deps): update dependency eslint-plugin-import to v2.21.1 2020-06-08 07:00:14 -04:00
Renovate Bot
aeefc60beb fix(deps): update dependency nodebb-plugin-composer-default to v6.3.39 2020-06-07 17:16:13 -04:00
Julian Lam
656b391fc5 feat: add missing language files for #8347 2020-06-07 14:37:39 -04:00
Julian Lam
9ae7fd3edb fix: acp language keys from #8347 not updated in tx config 2020-06-07 14:24:55 -04:00
Misty (Bot)
8019d316e2 Latest translations and fallbacks 2020-06-06 09:28:28 +00:00
Barış Soner Uşaklı
50703db879 fix: #8363, dont break history 2020-06-05 18:24:11 -04:00
Barış Soner Uşaklı
0c265a41d4 fix: #8363, go to hash when entering topic 2020-06-05 17:56:31 -04:00
Julian Lam
a82e9bd7f6 feat: privileges for Admin Control Panel (#8355)
* feat: acp privileges (WIP)

* fix: restore global privilege hooks

* refactor: using cid 0 in admin privs

* fix: no need for zebrastripe-reset

* feat: manage:categories privilege WIP

* feat: renamed prefix to admin:, settigns and dashboard privs

* fix: nofocus on acp privs group find modal

* refactor: privileges.x.get() to not used hardcoded privs

* fix: crash if unable to get latest version

* feat: setting acp priv

* Revert "fix: crash if unable to get latest version"

This reverts commit afdb235f48.

* feat: user/privilege acp privs

* fix: category selector in manage/privileges

* fix: guests potentially becoming admins

* fix: bug in setting admin privs

* fix: some last minute things + api docs

* fix: some more last minute fixes
2020-06-05 15:26:51 -04:00
Renovate Bot
7f6ff0b1a5 fix(deps): update dependency nodebb-plugin-composer-default to v6.3.37 2020-06-05 15:18:51 -04:00
Renovate Bot
6b2ea07745 fix(deps): update dependency nodebb-plugin-composer-default to v6.3.36 2020-06-05 13:36:20 -04:00
Barış Soner Uşaklı
30cc83c033 fix: #8374, revert event delete 2020-06-05 12:56:20 -04:00
Julian Lam
09184f4027 fix: new language tag for select_tags 2020-06-05 12:35:53 -04:00
Barış Soner Uşaklı
fd6bf0c927 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-06-05 11:31:47 -04:00
Renovate Bot
2d582df74f fix(deps): update dependency nodebb-plugin-composer-default to v6.3.35 2020-06-05 11:10:14 -04:00
Julian Lam
260a482caa fix: remove duplicate link to manage/tags in settings/tags 2020-06-05 10:27:07 -04:00
Misty (Bot)
73055bfccc Latest translations and fallbacks 2020-06-05 09:29:55 +00:00
renovate[bot]
124125f7dd chore(deps): update dependency lint-staged to v10.2.9 (#8369)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-06-04 22:43:04 -04:00
Barış Soner Uşaklı
3a078f59ec fix: tests 2020-06-04 22:06:03 -04:00
renovate[bot]
771ea194b3 fix(deps): update dependency nodebb-theme-persona to v10.1.45 (#8372)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-06-04 21:49:18 -04:00
renovate[bot]
f8ee981bee fix(deps): update dependency nodebb-theme-vanilla to v11.1.20 (#8373)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-06-04 21:49:07 -04:00
renovate[bot]
d2463bb454 fix(deps): update dependency socket.io-redis to v5.3.0 (#8370)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-06-04 21:47:36 -04:00
Barış Soner Uşaklı
1b5d5425b4 fix: handle search tag permission as well 2020-06-04 21:42:38 -04:00
Barış Soner Uşaklı
2100a03c1a refactor: change name to privileges to match other apis 2020-06-04 21:31:02 -04:00
cryptoethic
f6b92d241a fix: checking correct permissions for user search (#8371)
* fix: checking correct permissions for user search

* fix: missing permissions porperty in openapi /api/search
2020-06-04 21:27:43 -04:00
Barış Soner Uşaklı
c1d8b9bb5a Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-06-04 14:12:12 -04:00
Barış Soner Uşaklı
7786187e84 fix: change event name so it doesnt trigger complete event
add data to complete event
2020-06-04 14:12:04 -04:00
Misty (Bot)
5dc8982da3 Latest translations and fallbacks 2020-06-04 09:30:15 +00:00
Barış Soner Uşaklı
842b8abb84 feat: add buildHeaderAsync (#8367)
* feat: add buildHeaderAsync

make helphers.notAllowed async

* fix: remove csrf from buildHeader

* fix: remove unused method, use middleware

* fix: /post/pid redirect doesn't need buildHeader

use buildHeaderAsync
2020-06-04 01:14:46 -04:00
Barış Soner Uşaklı
dcb85ee7a1 #8344 (#8346)
* feat: wip

* feat: wrap middlewares

* feat: middleware errors

* feat: more middleware changes

* fix: remove unused async

* fix: prevent version errors from blocking acp render

* feat: wrap more middlewares
2020-06-03 20:18:42 -04:00
Julian Lam
023942da7d refactor: making rendering of header and footer async functions
* refactor: make middleware.admin.renderHeader async

* refactor: making rendering of header and footer async functions

* fix: use app.renderAsync instead of promifying it
2020-06-03 19:07:08 -04:00
Renovate Bot
f6ad9605c6 fix(deps): update dependency nodebb-theme-vanilla to v11.1.19 2020-06-03 11:56:20 -04:00
Renovate Bot
cb28e6cfd1 fix(deps): update dependency nodebb-theme-persona to v10.1.44 2020-06-03 11:55:23 -04:00
Julian Lam
8ea1634824 feat: #8360 flag quick actions for delete/restore/purge 2020-06-03 11:49:25 -04:00
Julian Lam
6b1d1acb48 fix(style): more switch..case 2020-06-03 11:46:57 -04:00
Renovate Bot
331b1a85bb chore(deps): update dependency lint-staged to v10.2.8 2020-06-03 11:36:52 -04:00
Julian Lam
922d49be0b fix(style): switch..case 2020-06-03 11:26:08 -04:00
renovate[bot]
d7ab0894d4 fix(deps): update dependency nodebb-plugin-composer-default to v6.3.34 (#8357)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-06-02 16:23:52 -04:00
Julian Lam
d135b6f763 fix(style): enforcing "better" indentation for switch..case 2020-06-02 14:23:38 -04:00
Barış Soner Uşaklı
75b3a81dad fix: clear error log before checking
fix intermittent test failure due to analytics being written every 10 seconds
2020-06-01 23:00:26 -04:00
Barış Soner Uşaklı
5a2b515431 feat: #8349, remove user posts from queue if user is deleted 2020-06-01 22:29:56 -04:00
Barış Soner Uşaklı
e603ebc0c6 fix: #8323, let admins send validation emails without timeout 2020-06-01 21:54:47 -04:00
Peter Jaszkowiak
de7ec47f13 fix: #8352, remove webfonts (#8354) 2020-06-01 11:06:23 -04:00
Misty (Bot)
b31482092d Latest translations and fallbacks 2020-06-01 09:29:58 +00:00
Julian Lam
da90fd562e fix: more tests 2020-05-31 21:22:07 -04:00
Julian Lam
98dffa3af8 fix: tests due to 0633ad327 2020-05-31 21:09:19 -04:00
Misty (Bot)
bad23159d2 Latest translations and fallbacks 2020-05-31 09:29:35 +00:00
Barış Soner Uşaklı
2c9e865763 fix: retry failed setObject calls 2020-05-30 15:49:34 -04:00
Misty (Bot)
d7b2f163f2 Latest translations and fallbacks 2020-05-30 09:28:34 +00:00
Julian Lam
0633ad3277 fix: acp menu items
- Shuffled items in settings
- Moved post-queue and ip-blacklist to front-end
- Removed Settings > Sockets, merged with Settings > Advanced
2020-05-29 16:42:09 -04:00
Julian Lam
a83f4259e8 fix: re-jigged tags acp pages 2020-05-29 15:28:34 -04:00
Renovate Bot
c40471793f fix(deps): update dependency nodebb-plugin-composer-default to v6.3.33 2020-05-29 11:57:56 -04:00
Julian Lam
a51fff8bd1 refactor: remove general menu from ACP (#8347)
* refactor: remove general menu from ACP

* fix: incorrect translation keys, fixed tests
2020-05-29 09:59:22 -04:00
Renovate Bot
d1df08269f chore(deps): update dependency lint-staged to v10.2.7 2020-05-29 09:55:33 -04:00
Renovate Bot
27ab36ac84 fix(deps): update dependency nodebb-plugin-spam-be-gone to v0.7.1 2020-05-28 16:42:27 -04:00
renovate[bot]
dabff9728f fix(deps): update dependency nodebb-theme-persona to v10.1.43 (#8343)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-05-28 15:31:23 -04:00
renovate[bot]
8224127fcf fix(deps): update dependency mongodb to v3.5.8 (#8342)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-05-28 09:21:16 -04:00
Misty (Bot)
3338c3112e Latest translations and fallbacks 2020-05-28 09:31:32 +00:00
Barış Soner Uşaklı
5b009e0712 feat: up plugins 2020-05-27 22:22:10 -04:00
Barış Soner Uşaklı
9ffcb6f7ba feat: add results into results container 2020-05-27 21:38:49 -04:00
Barış Soner Uşaklı
f12d448ef5 feat: quick search changes 2020-05-27 20:58:54 -04:00
Barış Soner Uşaklı
bb1a56f0fe feat: move quick search into search module
so it can be used directly
2020-05-27 14:37:34 -04:00
Barış Soner Uşaklı
47d73a2ab4 fix: move checks into timeout 2020-05-27 13:25:30 -04:00
Barış Soner Uşaklı
a9315aee7d fix: #8339, add missing translation 2020-05-27 13:10:33 -04:00
Barış Soner Uşaklı
84c20f919b fix: don't explode if server sends checkSession 2020-05-27 13:07:51 -04:00
Barış Soner Uşaklı
5781a2dc65 feat: fix session mismatch errors by clearing cookie on logout (#8338)
* feat: fix session mismatch errors by clearing cookie on logout

* feat: remove app.upateHeader

ported from 2.0

* feat: handle if user doesn't click button and just refreshes page
2020-05-27 12:15:02 -04:00
Misty (Bot)
938c232377 Latest translations and fallbacks 2020-05-27 09:31:05 +00:00
Julian Lam
f0e59c149d fix: eliminate unnecessary try..catch 2020-05-27 00:13:00 -04:00
Julian Lam
a66fe01377 fix: test breakages from 8d995d1eb6 2020-05-27 00:11:53 -04:00
Barış Soner Uşaklı
7d484fc0ad refactor: use getSortedSetMembers 2020-05-26 22:56:54 -04:00
Barış Soner Uşaklı
0009f54e6e feat: add getSortedSetMembers 2020-05-26 22:55:28 -04:00
Barış Soner Uşaklı
2727f472ed feat: add the data from page into filter:middleware.renderHeader 2020-05-26 22:08:54 -04:00
Barış Soner Uşaklı
ec5582b53c feat: add privilege give/rescind hooks (#8336)
* feat: add privilege give/rescind hooks

action:privileges.categories.give/rescind
action:privileges.global.give/rescind

breaking change, privileges.categories.give/rescind and privileges.global.give/rescind use full privilege name for groups ie `groups:find` instead of `find`

* fix: tests, privileges renamed
2020-05-26 21:57:38 -04:00
Julian Lam
a0e243eea1 fix(openapi): schema for new flags api 2020-05-26 21:17:42 -04:00
Julian Lam
cf00cda07c refactor: src/flags.js because codeclimate 2020-05-26 20:40:55 -04:00
Julian Lam
8d995d1eb6 refactor: flags detail page
- Show account moderation history
- Ban and delete quick actions

Squashed commit of the following:

commit 0e782e65f4d48ae814708e510ec9d01bcdd914e0
Author: Julian Lam <julian@nodebb.org>
Date:   Tue May 26 20:24:53 2020 -0400

    fix(deps): use persona 10.1.41/vanilla 11.1.17

commit 369e073d3c3189d8ce181eb3d573489cbe54d4fc
Author: Julian Lam <julian@nodebb.org>
Date:   Tue May 26 20:23:24 2020 -0400

    fix: allow ban and delete exported methods to have cbs

commit b83a086ea31a77ec82d161306c0b9bc115cb2a3a
Merge: 525aae1ea 256ee45d3
Author: Julian Lam <julian@nodebb.org>
Date:   Tue May 26 08:54:25 2020 -0400

    Merge remote-tracking branch 'origin/master' into flags-improvements

commit 525aae1ea2e5d0103028a0f0c8dde05f172d088e
Author: Julian Lam <julian@nodebb.org>
Date:   Tue May 26 08:53:39 2020 -0400

    feat: integrate ban history and username changes to flag history list

commit 3e68ad28ba266f4c8620a676aa7f463f0a9d1df7
Author: Julian Lam <julian@nodebb.org>
Date:   Mon May 25 18:22:53 2020 -0400

    feat: allow ban and deletion from flag details page

commit a559ea1d8e8883385c2876868d855a0b93516c54
Author: Julian Lam <julian@nodebb.org>
Date:   Mon May 25 18:22:00 2020 -0400

    feat: export banAccount and deleteAccount methods from accounts module
2020-05-26 20:27:16 -04:00
Ali Cihan
256ee45d37 typo (#8334) 2020-05-26 08:09:42 -04:00
Misty (Bot)
d2edf0c371 Latest translations and fallbacks 2020-05-26 09:31:25 +00:00
renovate[bot]
a20af6e21e fix(deps): update dependency nodebb-theme-persona to v10.1.40 (#8332)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-05-25 22:45:07 -04:00
Barış Soner Uşaklı
f3afba6156 feat: filter followed tids by category 2020-05-25 21:14:49 -04:00
Barış Soner Uşaklı
1b9e8928eb feat: use getSortedSetsMembers to load followed tids 2020-05-25 16:59:53 -04:00
Renovate Bot
ecaa9b76f3 chore(deps): update dependency mocha to v7.2.0 2020-05-24 14:52:45 -04:00
Renovate Bot
e62d892af6 chore(deps): update dependency eslint to v7.1.0 2020-05-24 14:52:33 -04:00
Misty (Bot)
31edcdee7d Latest translations and fallbacks 2020-05-24 09:28:49 +00:00
Misty (Bot)
8eb89156fb Latest translations and fallbacks 2020-05-23 09:28:47 +00:00
Barış Soner Uşaklı
a015af4a41 feat: add batch size to cursors 2020-05-22 20:25:26 -04:00
Barış Soner Uşaklı
0a31e3e6b0 fix: #8320, dont load moderators separately for each category 2020-05-22 15:03:51 -04:00
Barış Soner Uşaklı
11bb6abb51 fix: show stack trace on startup errors 2020-05-22 15:02:23 -04:00
Barış Soner Uşaklı
9600ede579 feat: up cache size 2020-05-22 13:06:21 -04:00
Barış Soner Uşaklı
d6c2764fe7 fix: don't trigger quick search if val doesn't change 2020-05-22 12:00:05 -04:00
Barış Soner Uşaklı
69a8793306 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-05-22 11:19:20 -04:00
Barış Soner Uşaklı
6f78113ee3 fix: prevent duplicate search triggers
if app.handleSearch is called from a plugin in action:ajaxify.end events are fired multiple time
2020-05-22 11:18:16 -04:00
Renovate Bot
78d562b3a0 chore(deps): update dependency lint-staged to v10.2.6 2020-05-22 11:12:35 -04:00
Renovate Bot
cc206b4d9c fix(deps): update dependency nodebb-plugin-spam-be-gone to v0.7.0 2020-05-22 11:12:11 -04:00
Barış Soner Uşaklı
7f24200c73 feat: add folder to filter:uploadImage and filter:uploadFile 2020-05-22 10:00:24 -04:00
Misty (Bot)
478c8dd72b Latest translations and fallbacks 2020-05-22 09:29:35 +00:00
Barış Soner Uşaklı
3ec05eeaf8 fix: user faster method if sorting by smallest set 2020-05-21 22:57:48 -04:00
Barış Soner Uşaklı
3b6d57e497 refactor: move code 2020-05-21 22:20:01 -04:00
Barış Soner Uşaklı
4ee3543ea4 feat: tweak intersection code, add tests 2020-05-21 22:12:58 -04:00
Julian Lam
6f504c4142 Remove allowFileUploads ACP option (#8324)
* feat: allow awaitable upgrade scripts

* feat: allowFileUploads removal upgrade script

* refactor: remove unnecessary ACP option `allowFileUploads`

* fix: updated upgrade script template to not use callback arg

* fix: upgrade script as per @baris

* fix: add missing await

* fix: add missing await
2020-05-21 16:06:35 -04:00
Julian Lam
01bff2ae05 fix: add txt to list of default allowed file extensions 2020-05-21 15:44:49 -04:00
Julian Lam
827d42a931 fix(deps): bump composer-default 2020-05-21 15:33:31 -04:00
Barış Soner Uşaklı
ada45a34d5 fix: search post snipets incase content is plain text 2020-05-21 14:14:37 -04:00
Barış Soner Uşaklı
e5228179c1 Mongo intersection (#8322)
* feat: intersection without aggregation

* feat: intersection

* feat: remove debug code
2020-05-20 19:13:47 -04:00
Renovate Bot
a26011e756 chore(deps): update dependency lint-staged to v10.2.4 2020-05-20 15:10:19 -04:00
Barış Soner Uşaklı
d484731d8c fix: derp includes 2020-05-20 12:58:14 -04:00
Barış Soner Uşaklı
6108064ea8 feat: change to contains to match scoped modules
replace recursive function with loop
2020-05-20 12:43:20 -04:00
Julian Lam
e327d1247e Revert "fix: #8142 invalid session warning if server-side session destroyed"
This reverts commit 526b3cd9ec.
2020-05-20 11:27:13 -04:00
Barış Soner Uşaklı
f2907908c9 fix: another test fix 2020-05-20 09:08:27 -04:00
Barış Soner Uşaklı
feb748a44d fix: tests 2020-05-20 08:55:07 -04:00
Julian Lam
a665881b35 fix(deps): bump composer-default 2020-05-19 22:17:08 -04:00
Barış Soner Uşaklı
cb662e15ce feat: improve grunt restart/rebuild speed 2020-05-19 21:15:51 -04:00
Barış Soner Uşaklı
2a00b0e973 fix: utils.params({url: ''}) 2020-05-19 17:42:44 -04:00
Renovate Bot
bf8a2c2e9e fix(deps): update dependency nodebb-plugin-composer-default to v6.3.29 2020-05-19 14:45:15 -04:00
Barış Soner Uşaklı
4263efa091 feat: don't overwrite req.query.lang if it exists 2020-05-19 14:18:07 -04:00
Misty (Bot)
2203398efc Latest translations and fallbacks 2020-05-19 09:29:49 +00:00
Barış Soner Uşaklı
12c6bc2e07 feat: convert queries so they used indices directly 2020-05-19 00:22:54 -04:00
renovate[bot]
a532e2bb83 fix(deps): update dependency postcss to v7.0.30 (#8288)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-05-18 09:52:01 -04:00
Julian Lam
ae2db423ee feat: cookie SameSite property
More information:
https://tools.ietf.org/html/draft-ietf-httpbis-cookie-same-site-00#section-4.1.1
https://web.dev/samesite-cookies-explained/
2020-05-17 14:56:47 -04:00
Renovate Bot
0437ecc2ea fix(deps): update dependency sharp to v0.25.3 2020-05-17 14:28:21 -04:00
Barış Soner Uşaklı
7a801abade fix: tests on redis 2020-05-16 22:49:34 -04:00
Barış Soner Uşaklı
8bf980cb63 fix: tests, handle no sessions 2020-05-16 22:17:20 -04:00
Barış Soner Uşaklı
a0d76ff0a6 fix: #8318, clean expired sessions on login and get 2020-05-16 20:20:47 -04:00
Barış Soner Uşaklı
2587112f9d feat: if only one value is passed used faster function 2020-05-16 09:36:17 -04:00
Misty (Bot)
981db6429a Latest translations and fallbacks 2020-05-16 09:27:39 +00:00
Barış Soner Uşaklı
a032e12b7e fix: tests 2020-05-16 00:25:44 -04:00
Barış Soner Uşaklı
81e33b9391 fix: #8317 2020-05-15 22:10:50 -04:00
Julian Lam
526b3cd9ec fix: #8142 invalid session warning if server-side session destroyed
Resolved regression caused by 5a0c7c1497
2020-05-15 16:41:35 -04:00
Barış Soner Uşaklı
5fd81c5c04 fix: check privileges before exporting post/topic data 2020-05-15 15:44:39 -04:00
Barış Soner Uşaklı
f0323b6cfa feat: closes #8316, add more data to export profile 2020-05-15 15:29:28 -04:00
Barış Soner Uşaklı
1d3fa3bc4e feat: throw error if uid is missing for update 2020-05-15 15:23:01 -04:00
Barış Soner Uşaklı
dfae664e29 fix: exporting posts 2020-05-15 10:59:38 -04:00
Barış Soner Uşaklı
bdda022238 fix: undefined uid when downloading posts 2020-05-15 10:52:04 -04:00
Misty (Bot)
5e3760d276 Latest translations and fallbacks 2020-05-15 09:33:38 +00:00
Barış Soner Uşaklı
a219285e10 feat: ignore mongodb playground file 2020-05-14 23:10:36 -04:00
Barış Soner Uşaklı
40b5cbab2c refactor: remove console.log 2020-05-14 16:19:50 -04:00
Barış Soner Uşaklı
765b8156d5 feat: parse quick search tpl even if no results
allows showing "no results found" in theme
2020-05-14 16:19:32 -04:00
Misty (Bot)
83b5a20c7c Latest translations and fallbacks 2020-05-14 09:31:51 +00:00
Julian Lam
45dfeeb033 fix(openapi): broken tests 2020-05-13 12:45:18 -04:00
Barış Soner Uşaklı
1ba6929cb3 fix: #8311, fix allowUserHomePage value
was always sending 1 even if allowUserHomePage was disabled in acp
2020-05-13 12:35:58 -04:00
Barış Soner Uşaklı
0e58fa33eb feat: match hook property to topic property 2020-05-13 12:18:30 -04:00
Barış Soner Uşaklı
bfad457275 feat: add methods for adding/removing tags from topics 2020-05-12 23:00:45 -04:00
Barış Soner Uşaklı
e20ad5c56e fix: dont crash if topic is null 2020-05-12 22:42:55 -04:00
Barış Soner Uşaklı
1f992cf371 fix: if category in selector has url use it 2020-05-12 15:00:39 -04:00
Barış Soner Uşaklı
c47a1c4df4 fix: convert cids to string for comparison 2020-05-12 14:57:37 -04:00
Barış Soner Uşaklı
97c086aba9 fix: missing await 2020-05-12 12:18:30 -04:00
Renovate Bot
28df9abadd chore(deps): update dependency eslint to v7 2020-05-12 12:05:42 -04:00
Julian Lam
aa4ae78b63 fix(docs): added titles to all routes 2020-05-11 20:33:22 -04:00
Julian Lam
9fd5c439b2 feat: write-api update, WIP 2020-05-11 20:33:22 -04:00
Barış Soner Uşaklı
4e14cb5767 fix: add missing schema item 2020-05-11 14:20:03 -04:00
renovate[bot]
f246057a73 fix(deps): update dependency nodebb-plugin-composer-default to v6.3.28 (#8309)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-05-11 11:48:52 -04:00
Barış Soner Uşaklı
337be368eb fix: category selector disabled categories 2020-05-11 09:25:28 -04:00
Misty (Bot)
928a94426b Latest translations and fallbacks 2020-05-11 09:30:43 +00:00
Barış Soner Uşaklı
a73c755b05 feat: closes #8308, edit post notif for watched topic posts 2020-05-10 22:21:32 -04:00
renovate[bot]
6d57d8446a fix(deps): update dependency nodebb-plugin-composer-default to v6.3.27 (#8307)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-05-09 15:18:13 -04:00
Barış Soner Uşaklı
edf9fe3b7f feat: add null tests for sorted sets 2020-05-09 10:38:56 -04:00
Barış Soner Uşaklı
8c8cdc9946 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-05-09 09:19:02 -04:00
Barış Soner Uşaklı
6a5e86dc66 fix: #8305, don't use null values 2020-05-09 09:18:31 -04:00
Misty (Bot)
b4494cb876 Latest translations and fallbacks 2020-05-09 09:28:11 +00:00
Barış Soner Uşaklı
aad0880f7c feat: add filter:categories.getRecentTopicReplies
pass req.query to getRecentTopicReplies
2020-05-08 22:36:16 -04:00
Barış Soner Uşaklı
7e42988489 refactor: shorter function 2020-05-08 20:27:04 -04:00
Opliko
c4545381d7 feat: Add hooks for user blocks (#8296)
* Add hooks for user blocks

* change naming

* Fix the filter...

fixes #8109
2020-05-08 14:42:02 -04:00
Julian Lam
87c1687d17 feat(docs): updated changelog 2020-05-08 11:02:09 -04:00
Misty (Bot)
ee583e80d1 chore: incrementing version number - v1.13.3 2020-05-08 14:53:25 +00:00
Barış Soner Uşaklı
d09bd2cfdf fix: #8302, send string to writeFileSync 2020-05-08 09:26:33 -04:00
Barış Soner Uşaklı
7d08184372 fix: winston showing json object 2020-05-07 12:48:39 -04:00
Misty (Bot)
64c3310aa4 Latest translations and fallbacks 2020-05-07 09:30:50 +00:00
Julian Lam
6765de3db3 fix: sortable topics even if only 1 pinned topic 2020-05-06 15:42:45 -04:00
Julian Lam
dd2bc18927 fix: #8298, use class name added by jQueryUI instead
This reverts commit 2e57d8ac31.
2020-05-06 15:26:55 -04:00
Julian Lam
158d923196 fix(deps): #8298 bump persona 2020-05-06 15:21:24 -04:00
Julian Lam
2e57d8ac31 fix: discoverability of topic reordering, re: #8298 2020-05-06 15:18:00 -04:00
Barış Soner Uşaklı
a969c5cec9 feat: allow activating additional plugins for testing via config.json 2020-05-06 13:57:03 -04:00
Julian Lam
f2c725c658 fix: topic search shortcut for macs 2020-05-06 12:55:54 -04:00
Misty (Bot)
6567e47494 Latest translations and fallbacks 2020-05-06 09:29:39 +00:00
Barış Soner Uşaklı
0431d75f0d fix: #8297, uids.length is different than topics.length 2020-05-05 21:32:07 -04:00
Julian Lam
fcb81cb8ca fix: #8297 guest handles shown in category.tpl 2020-05-05 20:42:02 -04:00
Renovate Bot
89d1764715 fix(deps): update dependency nodebb-plugin-composer-default to v6.3.25 2020-05-05 15:32:03 -04:00
Barış Soner Uşaklı
16a98eaf50 fix: only add to set if numRecentReplies>0 2020-05-05 14:12:46 -04:00
Barış Soner Uşaklı
b25b51bd97 feat: add action:post.updatePostVoteCount 2020-05-05 13:09:17 -04:00
Barış Soner Uşaklı
5e1404542c Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-05-05 09:43:10 -04:00
Barış Soner Uşaklı
be305410fb fix: #8293, don't show error if there are no self messages 2020-05-05 09:42:29 -04:00
renovate[bot]
a69f0b29af fix(deps): update dependency jquery to v3.5.1 [security] (#8281)
* fix(deps): update dependency jquery to v3.5.0 [security]

* fix(deps): bump jquery

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Julian Lam <julian@nodebb.org>
2020-05-05 09:05:52 -04:00
Barış Soner Uşaklı
6c59683b16 refactor: change to action:categories.updateRecentTid 2020-05-04 21:17:05 -04:00
Barış Soner Uşaklı
ecd622fdf5 fix: failing tests @julianlam 2020-05-04 15:02:04 -04:00
Barış Soner Uşaklı
3a23ddaba5 feat: move plugin tests to separate file 2020-05-04 14:23:45 -04:00
Barış Soner Uşaklı
a72e44290b feat: remove node14 for now 2020-05-04 13:19:23 -04:00
Barış Soner Uşaklı
51933c1fcb feat: add filter:categories.updateRecentTid 2020-05-04 13:09:34 -04:00
Barış Soner Uşaklı
478ed6c16f refactor: match core field name pinned 2020-05-04 12:37:42 -04:00
Julian Lam
0053e779e8 feat: response:router.page, dep. filter variant 2020-05-04 09:52:36 -04:00
Barış Soner Uşaklı
a6bb9f4364 fix: #3321, run plugin tests for installed plugins 2020-05-03 22:59:03 -04:00
Barış Soner Uşaklı
3d0db9630f fix: remove deprecated mocha.opts 2020-05-03 22:55:50 -04:00
Barış Soner Uşaklı
84383d3995 fix: spec 2020-05-03 22:00:25 -04:00
Barış Soner Uşaklı
9839346ec3 fix: #8290, if there are no filters go to ?reset=1
dont count ?page=1 as a filter
2020-05-03 14:48:15 -04:00
Misty (Bot)
2cf0a9b62d Latest translations and fallbacks 2020-05-03 09:27:35 +00:00
Barış Soner Uşaklı
5ebcdb1806 fix: #8287, fix users:flags as well 2020-05-02 15:34:58 -04:00
renovate[bot]
919034a7db fix(deps): update dependency nodebb-rewards-essentials to v0.1.3 (#8289)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-05-02 14:03:30 -04:00
Barış Soner Uşaklı
2d07634494 fix: #8283, update gdpr link again 2020-05-02 13:47:49 -04:00
Barış Soner Uşaklı
4f1128fd2b fix: add missing await 2020-05-02 13:34:19 -04:00
Barış Soner Uşaklı
9d153fd388 fix: #8287, dont readd user after deletion
don't add user uid back to users:* sorted sets if they are deleted
upgrade script to fix users:* sorted sets
2020-05-02 13:27:16 -04:00
Barış Soner Uşaklı
4d6b2ec3ce fix: missing await 2020-05-01 23:54:17 -04:00
Barış Soner Uşaklı
0391856d7d fix: #8286, rescind notif when its resolved/rejected 2020-05-01 13:32:20 -04:00
Misty (Bot)
c0e441d3b2 Latest translations and fallbacks 2020-05-01 09:28:46 +00:00
Barış Soner Uşaklı
3fcbd69149 feat: reduce infinite scroll area 2020-04-30 19:22:38 -04:00
Barış Soner Uşaklı
0ca84bd9f4 fix: #8284, parse ToS on register
rewrite intersitials to async/await
2020-04-30 15:13:14 -04:00
Barış Soner Uşaklı
17d664e098 fix: #8283, point to official site 2020-04-30 13:22:16 -04:00
psychobunny
275e837bcf fix: jquery xhtml violations 2020-04-29 20:46:00 -04:00
renovate[bot]
25d509c42c fix(deps): update dependency mongodb to v3.5.7 (#8279)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-04-29 12:59:21 -04:00
Opliko
4855f1deca fix:#8274 Don't escape HTML in manage users (#8275)
Perhaps the HTML for managing groups should ba actually rendered as HTML to serve its function. fixes #8274
2020-04-28 20:32:15 -04:00
Barış Soner Uşaklı
0c7c70edaf fix: crash in topic controller 2020-04-28 17:27:31 -04:00
psychobunny
fe03effe7d Revert "fix: crash when res.locals.linkTags is undefined"
This reverts commit 7cab2b0fea.
2020-04-28 17:27:06 -04:00
Andrew Rodrigues
7cab2b0fea fix: crash when res.locals.linkTags is undefined 2020-04-28 15:49:06 -04:00
renovate[bot]
98b70c6b8e Update dependency nodebb-plugin-composer-default to v6.3.24 (#8276)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-04-28 12:10:27 -04:00
Renovate Bot
9f9267ce54 Update dependency lint-staged to v10.2.0 2020-04-28 10:42:33 -04:00
Renovate Bot
39a861f182 Update dependency mocha to v7.1.2 2020-04-26 16:11:01 -04:00
Misty (Bot)
75aaba3f4e Latest translations and fallbacks 2020-04-25 09:27:49 +00:00
Barış Soner Uşaklı
87a6ff0dce Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-04-24 22:02:23 -04:00
Barış Soner Uşaklı
e80b81010c fix: #8272 user link in digest email 2020-04-24 22:02:10 -04:00
Renovate Bot
5ed4a1087c chore(deps): update dependency coveralls to v3.1.0 2020-04-24 21:55:49 -04:00
Julian Lam
23a0b8c54c fix(openapi): v14 test fix 2020-04-24 17:45:40 -04:00
Julian Lam
a1b050e28d feat: let's start testing node v14 👿 2020-04-24 17:11:00 -04:00
Barış Soner Uşaklı
9ffdab02d0 fix: tag of /api/unread/total 2020-04-24 12:37:21 -04:00
Julian Lam
5a1c6ee7ed fix: response hook logic
After some more thought, a response hook should be checking for
whether headers are sent, and executing (or not executing) the
default logic in that case.

Before, we were relying on hooks to call data.next() to continue
execution, but it makes more sense to have the listener either
send a response or not, and handle the behaviour afterwards.
2020-04-24 11:51:33 -04:00
Julian Lam
ccc6118d30 Testing suite integration for openapi spec (#8263)
* feat: testing suite integration for openapi spec

The testing suite now takes the openapi spec into account. It will
check each route defined, make a call to it, and compare the
response with the defined schema. Any mismatches will cause the
test to fail.

* fix(openapi): removed debug stuff from tests

* fix(openapi): fixed some tests

* fix(openapi): added additional check to tests, test fixes

* fix(openapi): better tests, fixed spec errors

* fix(openapi): bad conditional in test

* fix: oops

* fix(openapi): more tests fixing

* fix(openapi): more tests

* fix(openapi): fix some more tests

* fix: verbose'd an info log

* fix: topic pagination route returns schema-optimized pagination block

* fix(openapi): more test/spec fixes

* fix(openapi): accidentally sending in authenticated jar for anon routes

* fix(openapi): more test/spec fixes

* fix(openapi): more spec fixes

* fix: timestampReadable Invalid Date

* fix(openapi): more tests... almost there

* fix(openapi): more tests fixing

* fix(openapi): finally all tests passing

* fix(openapi): added reverse test to compare response to spec

... and fixed all the tests that broke

* fix: remove tests related to group covers, as route is gone

* fix(openapi): broken test on travis

* fix(openapi): broken test on travis

* fix(openapi): broken test on travis

* fix(openapi): object cache is not present for psql

* fix: tests

Co-authored-by: Barış Soner Uşaklı <barisusakli@gmail.com>
2020-04-23 21:50:08 -04:00
Julian Lam
6edf02d4a5 fix: remove upload picture test (avatars) 2020-04-23 19:57:41 -04:00
Julian Lam
442fe65f5a fix: remove tests related to group covers, as route is gone 2020-04-23 19:47:39 -04:00
Barış Soner Uşaklı
4eafe0f057 fix: #8269, return array of topics from hook 2020-04-23 11:32:24 -04:00
Misty (Bot)
267567a086 Latest translations and fallbacks 2020-04-21 09:34:14 +00:00
Misty (Bot)
c1429fbbf1 Latest translations and fallbacks 2020-04-20 09:30:00 +00:00
Opliko
47e7e9572c Add loading=lazy tag to avatars
There is no reason why avatars should be a blocking reasorce, and browsers are now adding support for lazy loading of images (and iframes). According to [caniuse.com](https://caniuse.com/#feat=loading-lazy-attr) 62% of users use a browser that supports this attribute.

So there doesn't seem to be any downside to just adding this attribute here. It won't affect browsers that don't support it and might speed up page loads on browsers that do.
2020-04-19 13:33:23 -04:00
Opliko
6e5ebb6184 feat: manifest.json improvements from #8126 (#8264)
* feat: manifest.json improvements from #8126

* Fix short title placeholder

* use lowercase letters for hex colors
2020-04-19 13:32:49 -04:00
Renovate Bot
51eccef58b chore(deps): pin dependency @apidevtools/swagger-parser to 9.0.1 2020-04-19 10:16:07 -04:00
Julian Lam
d09c6ae0de fix(deps): actually, swagger-parser is a dev dependency 2020-04-19 10:12:55 -04:00
Julian Lam
f172073551 fix(deps): missing @apidevtools/swagger-parser 2020-04-19 10:12:04 -04:00
Barış Soner Uşaklı
153456278b feat: show error if json is invalid 2020-04-17 13:24:52 -04:00
Julian Lam
d342a28c16 fix(openapi): remove account and group upload routes
re: #8260
2020-04-17 10:10:13 -04:00
Julian Lam
ef52461fb6 fix: remove dead picture upload code #8260 2020-04-17 10:08:18 -04:00
Julian Lam
058a15dbb2 fix(openapi): more fleshing out 2020-04-16 22:46:27 -04:00
Julian Lam
bae88e089a fix(openapi): fleshed out admin routes 2020-04-16 21:57:04 -04:00
Julian Lam
5bcaf71501 fix: path.resolve to logs file 2020-04-16 20:46:03 -04:00
Julian Lam
8387178b25 feat(openapi): merging openapi-test branch into master 2020-04-16 20:39:15 -04:00
Barış Soner Uşaklı
ba6d3fd372 fix: only trigger infinitescroll on scroll end 2020-04-16 12:21:40 -04:00
Barış Soner Uşaklı
c7ea84a2ae fix: wrong data returned in available.groups 2020-04-15 22:40:32 -04:00
Julian Lam
ab4bd7e146 fix(openapi): added some descriptions 2020-04-15 14:44:05 -04:00
Misty (Bot)
d678793cd4 Latest translations and fallbacks 2020-04-15 09:40:29 +00:00
renovate[bot]
b0c30ceba0 fix(deps): update dependency nodebb-theme-persona to v10.1.37 (#8258)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-04-15 01:35:56 -04:00
Julian Lam
2395d2be2e fix(openapi): added PostsObject component 2020-04-14 20:58:17 -04:00
Renovate Bot
28777f676c fix(deps): update dependency archiver to v4 2020-04-14 16:59:02 -04:00
Julian Lam
803d083e0b Revert "Remove nodejs 12 from compatible list"
This reverts commit 14aed18449.
2020-04-14 13:50:16 -04:00
renovate[bot]
492360673d fix(deps): update dependency mongodb to v3.5.6 (#8256)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-04-14 11:24:24 -04:00
Julian Lam
1b425ef108 fix: no focus on find user modal 2020-04-14 10:18:20 -04:00
Julian Lam
bcbf98aa4c fix: accidental fp precision on flag and acp dash graphs 2020-04-14 10:16:02 -04:00
xinbenlv
14aed18449 Remove nodejs 12 from compatible list
https://community.nodebb.org/topic/14670/consider-add-to-documentation-node-version
2020-04-13 21:19:35 -04:00
Peter Jaszkowiak
e68156e1f2 fix(deps): bump dependencies (#8239)
* fix(deps): bump dependencies

* fix(deps): commander@5

* fix(deps): use @nodebb/mubsub
2020-04-13 15:50:20 -04:00
Julian Lam
f2f6fbf15a fix: #8232, unresolvable session mismatch on register cancel 2020-04-13 13:26:27 -04:00
Barış Soner Uşaklı
e440d617d4 fix: pin jquery to 3.4.1, #8252 2020-04-13 11:40:29 -04:00
Jonson Petard
e6a1741c2e Support package manager: cnpm and pnpm (#8222)
* feat: support pnpm, cnpm

* feat: store supportedPackageManager in default package.json

* feat: store supportedPackageManager in src/cli/package-install.js

Co-authored-by: a632079 <a632079@qq.com>
2020-04-13 09:59:52 -04:00
hb90dev
3ce885fff2 fixes sitemap base url issue when using with subfolder (#8247)
* fixes sitemap base url issue when using with subfolder

* fixes sitemap base url issue when using with subfolder

* uses directly relative path

* removes prefix variable
2020-04-13 09:57:24 -04:00
Barış Soner Uşaklı
d77036dbd1 fix: #8249, don't send move notifications for deleted posts/topics 2020-04-13 09:52:18 -04:00
Misty (Bot)
d387cc231e Latest translations and fallbacks 2020-04-10 09:29:03 +00:00
Renovate Bot
30a2598364 chore(deps): update dependency husky to v4.2.5 2020-04-09 18:49:39 -04:00
renovate[bot]
92b55ef580 fix(deps): update dependency jsesc to v3.0.1 (#8243)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-04-09 17:23:22 -04:00
Renovate Bot
0a65011833 chore(deps): update dependency husky to v4.2.4 2020-04-09 12:55:28 -04:00
Renovate Bot
a9e686397e chore(deps): update dependency lint-staged to v10.1.3 2020-04-09 10:30:27 -04:00
Julian Lam
23dd2727f2 fix(openapi): finished moving all category objects out 2020-04-08 22:15:49 -04:00
Julian Lam
c939f8c66d fix(openapi): changed some descriptions 2020-04-08 22:15:40 -04:00
Julian Lam
55d0a9ffea fix(openapi): added CategoryObject component 2020-04-08 22:06:22 -04:00
Julian Lam
646fac1e53 fix(openapi): removed repeated breadcrumb blocks in favour of $ref 2020-04-08 17:06:26 -04:00
Julian Lam
ac579f9dc2 fix(openapi): remove all repeated pagination blocks in favour of 2020-04-08 17:04:00 -04:00
Julian Lam
1cf62095dc fix(openapi): removed warning for category mods route 2020-04-08 16:42:18 -04:00
Julian Lam
3a5c6e07f9 fix(openapi): normalising the file for programmatic updates 2020-04-08 16:24:20 -04:00
Renovate Bot
bb70cebb2c fix(deps): update dependency jsesc to v3 2020-04-08 09:59:50 -04:00
Misty (Bot)
0252e149d9 Latest translations and fallbacks 2020-04-08 09:30:21 +00:00
Julian Lam
65c78de6fe feat(openapi): move all commonprops out for commonprops component 2020-04-07 17:13:15 -04:00
psychobunny
cd5065572c feat: moved component specs into separate files 2020-04-07 16:17:00 -04:00
Julian Lam
2425f4533f feat(openapi): added template to commonprops 2020-04-07 16:08:30 -04:00
Julian Lam
64d79fe5f6 feat: added UserObject, UserObjectFull, Breadcrumb, Pagination component 2020-04-07 15:32:22 -04:00
psychobunny
ae3e90d693 feat: added some summary and descriptions 2020-04-07 15:29:59 -04:00
Misty (Bot)
390dbb1bf3 Latest translations and fallbacks 2020-04-07 09:29:49 +00:00
Barış Soner Uşaklı
442c018ec0 feat: add some descriptions 2020-04-07 00:23:10 -04:00
Barış Soner Uşaklı
eade13f928 feat: common schema 2020-04-06 23:49:41 -04:00
Barış Soner Uşaklı
7ae7647704 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-04-06 23:44:04 -04:00
Barış Soner Uşaklı
683e58511b Revert "feat: openapi component"
This reverts commit 1af5507ac7.
2020-04-06 23:44:00 -04:00
Barış Soner Uşaklı
1af5507ac7 feat: openapi component 2020-04-06 23:40:08 -04:00
Julian Lam
32985eb12e Merge remote-tracking branch 'refs/remotes/origin/master' 2020-04-06 21:27:49 -04:00
Julian Lam
7b31fb34a7 fix: missing descriptions for common properties 2020-04-06 21:11:24 -04:00
Barış Soner Uşaklı
9987813f30 feat: add page query param to docs 2020-04-06 21:09:49 -04:00
Barış Soner Uşaklı
bbddaadf51 feat: tag route doc 2020-04-06 21:00:08 -04:00
Julian Lam
03739b6f83 fix: some definitions in read API spec 2020-04-06 10:28:32 -04:00
renovate[bot]
ac98775f23 fix(deps): update dependency pg to v8 (#8227)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-04-05 12:57:14 -04:00
renovate[bot]
a3789e28f8 chore(deps): update dependency nyc to v15.0.1 (#8231)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-04-05 12:55:44 -04:00
renovate[bot]
e1919c90d0 chore(deps): update dependency lint-staged to v10.1.2 (#8235)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-04-05 12:36:25 -04:00
Julian Lam
455d42bcfa fix: tagged all routes in read api spec 2020-04-03 15:30:50 -04:00
Julian Lam
1136a369f3 feat: local redoc view on development mode only 2020-04-03 14:10:13 -04:00
Julian Lam
c82a263788 Revert "fix: override ACAO header for read API spec file"
This reverts commit 240d90919b.
2020-04-03 12:41:52 -04:00
Julian Lam
240d90919b fix: override ACAO header for read API spec file 2020-04-03 12:31:19 -04:00
Julian Lam
7b155dab74 feat: added auto-generated, slimmed-down openapi 3.0 file for read api 2020-04-03 12:07:50 -04:00
Barış Soner Uşaklı
59cf0e80d2 fix: throw error if topic does not exist 2020-04-02 22:56:59 -04:00
Barış Soner Uşaklı
e93578b81d fix: hookname 2020-04-02 16:14:56 -04:00
Barış Soner Uşaklı
0d1b5a7fb1 fix: #8230, add hook getUserDataByUserSlug 2020-04-02 16:00:48 -04:00
psychobunny
15d6975e96 fix: ignore case for group details route 2020-04-02 12:45:01 -04:00
Barış Soner Uşaklı
740e598a5d fix: lint 2020-04-01 22:03:31 -04:00
Barış Soner Uşaklı
8e23dec84b fix: lint 2020-04-01 21:57:28 -04:00
Barış Soner Uşaklı
00e299e93e feat: closes #8229, add targetUid to action:password.change 2020-04-01 00:11:55 -04:00
Renovate Bot
944a6f5850 chore(deps): update dependency lint-staged to v10.1.1 2020-03-31 10:25:23 -04:00
Misty (Bot)
bb565b0a81 Latest translations and fallbacks 2020-03-31 09:30:44 +00:00
Renovate Bot
30bd233bfc chore(deps): update dependency lint-staged to v10.1.0 2020-03-30 09:49:06 -04:00
Renovate Bot
811c3aee09 chore(deps): update dependency eslint-config-airbnb-base to v14.1.0 2020-03-30 09:05:36 -04:00
Renovate Bot
c5a7242dbe chore(deps): update dependency jsdom to v16.2.2 2020-03-30 09:05:11 -04:00
Renovate Bot
b92c1600f5 chore(deps): update dependency eslint-plugin-import to v2.20.2 2020-03-30 09:03:20 -04:00
Renovate Bot
0ad4b55628 chore(deps): update dependency lint-staged to v10.0.10 2020-03-30 09:03:12 -04:00
Renovate Bot
f497ee6268 fix(deps): update dependency validator to v13 2020-03-30 09:02:58 -04:00
Renovate Bot
14458087ca chore(deps): update dependency coveralls to v3.0.11 2020-03-30 09:02:30 -04:00
Renovate Bot
22681945cf chore(deps): update dependency smtp-server to v3.6.0 2020-03-30 09:02:18 -04:00
Barış Soner Uşaklı
23571224b5 feat: add parent cids to body class 2020-03-26 12:04:04 -04:00
Misty (Bot)
aabddea2b7 Latest translations and fallbacks 2020-03-24 09:29:53 +00:00
Misty (Bot)
5e849c6b52 Latest translations and fallbacks 2020-03-23 09:29:16 +00:00
Barış Soner Uşaklı
080317300a fix: #8221, fix parent selection 2020-03-22 12:32:12 -04:00
Barış Soner Uşaklı
071506eb7d fix: invite properly 2020-03-20 22:18:14 -04:00
Barış Soner Uşaklı
8f4b99a41c fix: admins not seeing invite button 2020-03-20 22:14:13 -04:00
renovate[bot]
dd660c8778 fix(deps): update dependency sharp to v0.25.2 (#8220)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-03-20 17:37:37 -04:00
Misty (Bot)
68afd01f67 Latest translations and fallbacks 2020-03-20 09:29:31 +00:00
renovate[bot]
c535654142 chore(deps): update dependency mocha to v7.1.1 (#8215)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-03-19 10:18:57 -04:00
Barış Soner Uşaklı
0b5fac75b0 fix: #8217, add missing lang key 2020-03-19 10:03:46 -04:00
Misty (Bot)
fc06f90346 Latest translations and fallbacks 2020-03-19 09:30:33 +00:00
Julian Lam
ee6cb412bc fix(deps): bump markdown 2020-03-17 09:49:22 -04:00
renovate[bot]
5535c50c39 fix(deps): update dependency mongodb to v3.5.5 (#8205)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-03-16 23:18:40 -04:00
renovate[bot]
b0864e7c24 chore(deps): update dependency grunt to v1.1.0 (#8214)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-03-16 23:18:20 -04:00
Julian Lam
93acd13999 fix: #8206 first message in chat has false newSet 2020-03-16 21:15:04 -04:00
Julian Lam
5aa76cdf2f feat: pass in target element in action:topic.tools.load 2020-03-13 10:30:48 -04:00
Barış Soner Uşaklı
d080c7b04c feat: add 2 hooks for modifying privileges 2020-03-12 12:25:51 -04:00
renovate[bot]
776fe9d2ea chore(deps): update dependency husky to v4.2.3 (#8162)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Barış Soner Uşaklı <barisusakli@gmail.com>
2020-03-11 13:38:18 -04:00
renovate[bot]
13d8f6f117 chore(deps): update dependency lint-staged to v10.0.8 (#8180)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-03-11 13:07:09 -04:00
renovate[bot]
4cdb31318c chore(deps): update dependency eslint-plugin-import to v2.20.1 (#8081)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-03-11 12:35:57 -04:00
renovate[bot]
fbd95a504b chore(deps): update dependency jsdom to v16.2.1 (#8165)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-03-11 12:32:25 -04:00
renovate[bot]
2052f14c19 fix(deps): update dependency sitemap to v6 (#8198)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-03-11 12:26:22 -04:00
Barış Soner Uşaklı
2f9c7c626f fix: #8203, fix user invites refreshing page 2020-03-11 12:21:46 -04:00
Barış Soner Uşaklı
f07f4f8e1a fix: #8202, filter non-existing users in search by uid 2020-03-11 12:19:20 -04:00
psychobunny
266061c31a fix: notification bodyShort truncated if there is a comma in topic title 2020-03-10 11:26:08 -04:00
Misty (Bot)
af5c6b8824 Latest translations and fallbacks 2020-03-10 09:31:44 +00:00
Renovate Bot
6d98d5a100 fix(deps): update dependency nodebb-plugin-composer-default to v6.3.23 2020-03-09 12:45:13 -04:00
renovate[bot]
2de9e5a7cf Update dependency postcss to v7.0.27 (#8166)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-03-07 21:26:25 -05:00
renovate[bot]
21e91c91fc fix(deps): update dependency sharp to v0.25.1 (#8199)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-03-07 21:26:10 -05:00
Misty (Bot)
d0075ed9a3 Latest translations and fallbacks 2020-03-06 09:29:55 +00:00
Julian Lam
1efb238a9a refactor: getUsersCSV to use batch lib 2020-03-05 17:51:34 -05:00
psychobunny
b67af70da4 fix: hsts max-age missing translation 2020-03-05 13:59:10 -05:00
Misty (Bot)
41572be879 Latest translations and fallbacks 2020-03-05 09:30:18 +00:00
psychobunny
e1c6c3b267 refactor: reorganized socket.io admin modules 2020-03-03 16:33:13 -05:00
Misty (Bot)
22ee2b8d06 Latest translations and fallbacks 2020-03-03 09:30:57 +00:00
Barış Soner Uşaklı
5e91a67e78 feat: add user ip to admin/dev/info 2020-03-02 11:18:15 -05:00
Misty (Bot)
07e7872622 Latest translations and fallbacks 2020-03-01 09:28:56 +00:00
renovate[bot]
e01f05e321 fix(deps): update dependency nodebb-plugin-composer-default to v6.3.22 (#8193)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-28 23:07:53 -05:00
Barış Soner Uşaklı
cba5b23e23 feat: change option name 2020-02-28 22:02:46 -05:00
Barış Soner Uşaklı
80f1bcad20 fix: call next 2020-02-28 21:24:51 -05:00
Baris Usakli
476f6717c4 feat: add no-build to ./nodebb setup 2020-02-28 15:53:16 -05:00
Baris Usakli
05bee6291d fix: try travis fix again 2020-02-28 11:50:00 -05:00
Baris Usakli
bc9e92a11c fix: try fixing psql on travis 2020-02-28 11:29:28 -05:00
Baris Usakli
cf6eadb91a fix: dont let regular users see other users watched categories 2020-02-28 11:02:22 -05:00
Barış Soner Uşaklı
4083a6e39b feat: add awaitable socket.emit 2020-02-27 19:22:19 -05:00
Barış Soner Uşaklı
6e5de39ba0 fix: also fix updating bookmark if sorting is newest_to_oldest 2020-02-27 18:56:22 -05:00
Barış Soner Uşaklı
32ada7c4e7 fix: #8188, fix bookmark if sorting is newest_to_oldest 2020-02-27 17:21:36 -05:00
Andrew Rodrigues
ac241fb830 fix: duplicate ID + label 2020-02-27 11:32:19 -05:00
Misty (Bot)
53720354de Latest translations and fallbacks 2020-02-27 09:30:23 +00:00
Andrew Rodrigues
d2bd746c99 chore: bump persona 2020-02-26 18:04:45 -05:00
renovate[bot]
1e1467aa0d Update dependency mocha to v7.1.0 (#8183)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-26 12:29:43 -05:00
Julian Lam
f0db240a1d fix: #8184 global mods unable to revoke other user sessions 2020-02-26 12:26:52 -05:00
Misty (Bot)
7eb0053bd4 Latest translations and fallbacks 2020-02-26 09:30:45 +00:00
renovate[bot]
da111b7cc4 Update dependency mongodb to v3.5.4 (#8182)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-25 16:01:05 -05:00
Julian Lam
d38f7e7973 Update Dockerfile
... to run build step before starting
2020-02-25 09:40:47 -05:00
Misty (Bot)
c71e4de8a8 Latest translations and fallbacks 2020-02-25 09:32:00 +00:00
Barış Soner Uşaklı
e72a29b3fd fix: return null if field does not exist 2020-02-24 18:07:51 -05:00
Barış Soner Uşaklı
14e7866745 fix: #8179, limit length of location/website/fullname, check grouptitle 2020-02-24 16:58:51 -05:00
Misty (Bot)
307c72a58b Latest translations and fallbacks 2020-02-24 09:30:52 +00:00
Misty (Bot)
8f2029faed Latest translations and fallbacks 2020-02-23 09:30:04 +00:00
renovate[bot]
9daa21ffcf fix(deps): update dependency nodebb-theme-slick to v1.2.29 (#8177)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-22 23:07:40 -05:00
renovate[bot]
7d6a983be8 fix(deps): update dependency nodebb-theme-vanilla to v11.1.16 (#8178)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-22 22:35:44 -05:00
Barış Soner Uşaklı
326367556f fix: tag key 2020-02-22 21:16:51 -05:00
renovate[bot]
3acc24b0b6 fix(deps): update dependency nodebb-theme-persona to v10.1.35 (#8176)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-22 16:09:53 -05:00
Barış Soner Uşaklı
bc93b5676c fix: #8175 2020-02-22 16:01:04 -05:00
Opliko
41c20761e1 Remove deprecated mongo connection options, fixes #8079 (#8174)
fix #8079 
Unified Topology changes the concept of connecting and causes isConnected to always return true, making any reconnection options useless. Next major version of the driver will remove isConnected entirely.
So:
- reconnect tries
- reconnectInterval
- autoReconnect

Are deprecated and don't really do anything anymore (when unified topology is used at least) other than causing warnings at startup since the 3.4 version of the driver (the current version used by NodeBB is 3.5).

Reference: http://mongodb.github.io/node-mongodb-native/3.5/reference/unified-topology/
2020-02-21 20:15:07 -05:00
Andrew Rodrigues
3c9689a5ac feat: settings sorted list (#8170)
* feat: settings sorted list

see https://github.com/NodeBB/nodebb-plugin-quickstart/pull/9/files for sample
2020-02-21 12:18:09 -05:00
renovate[bot]
7cc63f7d2c fix(deps): update dependency sharp to v0.24.1 (#8164)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-21 08:06:05 -05:00
Julian Lam
667608a02c fix: #8168 re-allowing slashes in homePageRoute
Resolves regression introduced by b0f3e48ac2
2020-02-19 12:24:41 -05:00
Misty (Bot)
307f8716b7 Latest translations and fallbacks 2020-02-19 09:31:50 +00:00
Julian Lam
eddbd86837 fix: tweak to session validation in addHeaders 2020-02-18 16:08:23 -05:00
Barış Soner Uşaklı
630f5d5b85 fix: only call clearCookie for logged in users 2020-02-18 16:06:05 -05:00
Misty (Bot)
316913b9bb Latest translations and fallbacks 2020-02-16 09:29:39 +00:00
Misty (Bot)
f1d58989d8 Latest translations and fallbacks 2020-02-15 09:29:21 +00:00
Barış Soner Uşaklı
067034082f fix: #6422, update deleted/restored messages 2020-02-14 23:26:54 -05:00
Misty (Bot)
20fbab9723 Latest translations and fallbacks 2020-02-14 09:30:37 +00:00
Barış Soner Uşaklı
4d0636f847 fix: #8163, prevent account deletion 2020-02-13 11:31:20 -05:00
renovate[bot]
f4ed35c998 chore(deps): update dependency husky to v4.2.2 (#8160)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-12 11:25:44 -05:00
renovate[bot]
4b90713717 fix(deps): update dependency mongodb to v3.5.3 (#8161)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-12 11:25:29 -05:00
Barış Soner Uşaklı
5a0c7c1497 fix: register 2020-02-11 21:46:34 -05:00
renovate[bot]
a5f3c2a2c2 fix(deps): update dependency nodebb-widget-essentials to v4.1.0 (#8159)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-11 17:03:01 -05:00
Barış Soner Uşaklı
e74954407f fix: #8157, update recent tid when post is moved 2020-02-11 15:30:15 -05:00
renovate[bot]
7fde180a28 fix(deps): update dependency request to v2.88.2 (#8158)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-11 14:19:56 -05:00
Misty (Bot)
99a3ca7582 Latest translations and fallbacks 2020-02-11 09:30:48 +00:00
Barış Soner Uşaklı
b73aa84ddc fix: tests 2020-02-10 14:30:40 -05:00
Barış Soner Uşaklı
dd3893b134 fix: move start/stop every iteration 2020-02-10 13:49:04 -05:00
Barış Soner Uşaklı
4abe5eb7ff Revert "fix: #8154, move start/stop every iteration"
This reverts commit 300c04cef9.
2020-02-10 13:47:34 -05:00
Barış Soner Uşaklı
300c04cef9 fix: #8154, move start/stop every iteration 2020-02-10 13:47:15 -05:00
Barış Soner Uşaklı
690bb69d03 fix: #8154, respect stop 2020-02-10 13:21:01 -05:00
Barış Soner Uşaklı
f23bc347b1 fix: #8156 dont allow loading members from hidden groups 2020-02-10 13:20:10 -05:00
Barış Soner Uşaklı
03a02e5d1d fix: #8155, don't validate name on update if groupName didn't change 2020-02-10 13:16:45 -05:00
renovate[bot]
ef964b11a8 fix(deps): update dependency redis to v3 (#8152)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-09 11:14:09 -05:00
renovate[bot]
1037de0216 chore(deps): update dependency jsdom to v16 (#8114)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-09 11:14:00 -05:00
renovate[bot]
d8efc6b653 fix(deps): update dependency rimraf to v3.0.2 (#8153)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-09 11:10:35 -05:00
Baris Usakli
236e1e6859 fix: return correct number of suggested topics 2020-02-07 14:50:18 -05:00
Baris Usakli
2e79480179 fix: #8151, don't crash if taskbar doesn't have element 2020-02-07 12:04:37 -05:00
Julian Lam
398f0120b8 fix: logic for determining dailyStats hour vars
Reverts 9ecdb92f7c and fixes it
properly.
2020-02-07 11:35:45 -05:00
Julian Lam
9ecdb92f7c fix: fix daily analytics being one day off 2020-02-07 11:20:59 -05:00
Julian Lam
0b9ad416cb fix: remove debug line 2020-02-07 10:51:24 -05:00
Julian Lam
79737c53fd feat: guard against accidental ommision
...of analytics: prefix in get*StatsForSet methods
2020-02-07 10:28:40 -05:00
Julian Lam
14655f8745 fix: no decimal places for category analytics 2020-02-07 10:22:13 -05:00
Julian Lam
d6e3f3f058 fix: #8142, broken site if no server-side session (#8148)
* fix: #8142, broken site if no server-side session

During the `addHeader` middleware, a check is now done to see if
`req.session.meta` is present. This value is only present if the user
has a valid server-side session.  If it is missing, then it is probably
safe to assume that the server-side session was deleted (either
intentionally or accidentally). In that scenario, the client-side cookie
should be cleared.

Also, there was an issue where the sessionRefresh flag was never cleared
after a successful login, so that was fixed too.

* feat: exported method to get cookie config

* fix: don't clear cookie if cookie is being set

* fix: socket.io tests

Co-authored-by: Barış Soner Uşaklı <barisusakli@gmail.com>
2020-02-06 15:52:37 -05:00
Julian Lam
0885ec6858 fix: #8144 pluginHooks in maintenance mode middleware 2020-02-06 15:43:14 -05:00
Julian Lam
146388aac8 docs: updated changelog 2020-02-05 16:51:00 -05:00
Misty (Bot)
beafd6139f chore: incrementing version number - v1.13.2 2020-02-05 16:04:20 -05:00
Barış Soner Uşaklı
a5ef6b53b8 fix: admin relogin 2020-02-03 11:04:20 -05:00
Barış Soner Uşaklı
c35a21d7f0 fix: #8135 2020-01-31 22:56:55 -05:00
Baris Usakli
1e50616c13 fix: handle mkdirp0.5->1.0x so it doesn't break upgrade 2020-01-31 15:05:50 -05:00
renovate[bot]
157832131d chore(deps): update dependency eslint to v6.8.0 (#8062)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-01-31 14:14:42 -05:00
renovate[bot]
d5b3d56296 Update dependency postcss to v7.0.26 (#8048)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-01-31 14:14:23 -05:00
renovate[bot]
976e26a958 chore(deps): update dependency nyc to v15 (#8094)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-01-31 14:13:54 -05:00
renovate[bot]
eb4a1a5772 chore(deps): update commitlint monorepo (#8100)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-01-31 14:13:41 -05:00
renovate[bot]
cdfbcbb9ce chore(deps): update dependency lint-staged to v10.0.7 (#8132)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-01-31 14:13:25 -05:00
Baris Usakli
87225a90c3 fix: #8134, upgrade mkdirp to 1.0.x 2020-01-31 14:10:00 -05:00
Misty (Bot)
5ed7fc0ffa Latest translations and fallbacks 2020-01-31 09:30:22 +00:00
renovate[bot]
16ab641dd1 fix(deps): update dependency connect-redis to v4.0.4 (#8143)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-01-30 11:20:48 -05:00
renovate[bot]
726ba71c57 fix(deps): update dependency rimraf to v3.0.1 (#8138)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-01-30 10:56:53 -05:00
renovate[bot]
f07b4bfa62 fix(deps): update dependency validator to v12.2.0 (#8136)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-01-30 09:10:14 -05:00
renovate[bot]
b370333c6a chore(deps): update dependency mocha to v7 (#8106)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-01-30 09:09:38 -05:00
Julian Lam
b959c24a2b Merge branch 'master' of github.com:NodeBB/NodeBB 2020-01-29 12:47:55 -05:00
Julian Lam
111ed802cf fix: onSuccessfulLogin not working
In scenarios where onSuccessfulLogin was not called in the SSO plugin,
core's calling of onSuccessfulLogin was prematurely returning, because
it was checking the wrong value.

This commit fixes the issue by checking a different value.
2020-01-29 12:47:48 -05:00
renovate[bot]
6d7131fbc5 fix(deps): update dependency nodebb-theme-persona to v10.1.34 (#8140)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-01-28 13:33:30 -05:00
Barış Soner Uşaklı
8c48f94b96 fix: #8139, dont allow restore if not deleted by self 2020-01-28 13:03:58 -05:00
Barış Soner Uşaklı
9969dd6335 fix: use view_deleted when filtering, closes #8137 2020-01-28 12:42:57 -05:00
Barış Soner Uşaklı
d927b763c1 fix: escape invalid rules 2020-01-26 22:18:07 -05:00
Barış Soner Uşaklı
66febb8071 feat: add test for isOnline 2020-01-26 21:51:05 -05:00
Barış Soner Uşaklı
3cca929a88 fix: add missing await 2020-01-26 21:35:04 -05:00
Barış Soner Uşaklı
df2c785127 feat: add test for change post owner 2020-01-24 15:24:01 -05:00
Barış Soner Uşaklı
0ae1eb4f6e fix: missing await in SocketPosts.changeOwner 2020-01-24 14:28:27 -05:00
Renovate Bot
dd440ce902 chore(deps): update dependency husky to v4 2020-01-24 13:34:09 -05:00
Andrew Rodrigues
027f3f2256 chore: bump themes 2020-01-24 06:58:11 -05:00
Barış Soner Uşaklı
23810cc64b fix: #8133, check if user is in room before removing 2020-01-23 22:40:14 -05:00
Barış Soner Uşaklı
30c503611c refactor: messaging 2020-01-23 22:19:15 -05:00
Barış Soner Uşaklı
cd1fa27a8b fix: add missing await 2020-01-23 22:19:00 -05:00
Barış Soner Uşaklı
ee4304b443 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-01-23 22:13:07 -05:00
Barış Soner Uşaklı
f799f017ab fix: missing await 2020-01-23 22:04:49 -05:00
Baris Usakli
418c174d56 fix: dont return flag data to client 2020-01-23 12:48:21 -05:00
Barış Soner Uşaklı
51236df4ed fix: check if user has read priv before flagging 2020-01-22 12:14:50 -05:00
Barış Soner Uşaklı
1f13ab8a19 fix: restrict getUsersInRoom to members 2020-01-22 11:46:26 -05:00
Andrew Rodrigues
236a173009 chore: bump vanilla 2020-01-21 16:37:32 -05:00
Andrew Rodrigues
82ace391cb chore: bump persona 2020-01-21 15:58:13 -05:00
Barış Soner Uşaklı
3077eb9428 fix: remove unused conditional, dont add dupe messages 2020-01-21 15:17:31 -05:00
Julian Lam
ecc579a29c fix: tests for messaging 2020-01-21 14:35:50 -05:00
Julian Lam
594cd7e176 fix: #8127 user join system message duplicated
- Now showing user-join message for chat owner in addition to the newly
  added user
- If a modal already exists for a room when createModal is called, don't
  return null, return the modal
2020-01-21 13:57:16 -05:00
Julian Lam
106c141ff5 fix: background-size in taskbar images 2020-01-21 13:57:15 -05:00
renovate[bot]
c510a2c4f2 fix(deps): update dependency nodebb-theme-persona to v10.1.31 (#8129)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-01-21 13:49:55 -05:00
renovate[bot]
0e49cfb98d fix(deps): update dependency mongodb to v3.5.2 (#8092)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-01-21 13:49:36 -05:00
Renovate Bot
66992a556c chore(deps): update dependency lint-staged to v10.0.1 2020-01-20 15:18:18 -05:00
Barış Soner Uşaklı
1b08f37612 fix: tests, was using hardcoded message id 2020-01-20 11:15:26 -05:00
Barış Soner Uşaklı
bfaba89557 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-01-20 10:59:22 -05:00
Julian Lam
8bb5e71ebe fix: typo in #8116 2020-01-20 10:21:27 -05:00
Julian Lam
3fac09b1ab fix: build step defaults to series instead of parallel
- The logic for the build step now defaults to series instead of
  parallel, unless more than 4 CPU cores are detected by the os
  library.
- The `--series` flag still exists, and will enforce build in
  series, as before.
2020-01-20 10:21:27 -05:00
Julian Lam
8e5a2276af feat: check flag values on save (assignee and state) (#8122)
* feat: add assignee checking when updating flag

Prior to this, it was possible to update the assignee to any value (or
any user. This commit adds checking to allow only admins, global
moderators, or in the case of flagged posts, moderators.

Also some prep work was added for value checking `state`.

* feat: value checking `state` on flag update

The state should be one of the constants defined earlier in the file.
2020-01-20 10:19:23 -05:00
Misty (Bot)
ddce77b343 Latest translations and fallbacks 2020-01-20 09:29:52 +00:00
Barış Soner Uşaklı
6a63c1a100 fix: escape system message, don't allow editing system messages 2020-01-19 22:20:43 -05:00
Barış Soner Uşaklı
c8fb7f9246 fix: escape register query param 2020-01-19 22:03:18 -05:00
Barış Soner Uşaklı
8c6a7954cf fix: delete upload 2020-01-19 14:57:06 -05:00
Renovate Bot
d74eecfbe8 chore(deps): update dependency lint-staged to v10 2020-01-19 14:23:07 -05:00
Barış Soner Uşaklı
153b1a0eaa fix: check uploadName 2020-01-19 11:56:13 -05:00
Misty (Bot)
1656738359 Latest translations and fallbacks 2020-01-19 09:29:07 +00:00
Barış Soner Uşaklı
01d1ae78c8 fix: #8120, bubble errors from static hooks 2020-01-17 13:30:57 -05:00
Barış Soner Uşaklı
b0f3e48ac2 fix: escape bootswatchSkin and homepageRoute 2020-01-17 11:48:00 -05:00
Barış Soner Uşaklı
3e52557689 fix: change owner missing await 2020-01-17 11:16:23 -05:00
yossizahn
09d55581d8 Fix: ACP > manage > group: save disableLeave (#8123)
* Fix: ACP > manage > group: save disableLeave

* Fix eslint comma-dangle
2020-01-17 09:38:23 -05:00
renovate[bot]
16e8f49655 fix(deps): update dependency sharp to v0.24.0 (#8121)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-01-16 15:59:37 -05:00
Barış Soner Uşaklı
e3952674ba fix: hsts always enabled 2020-01-15 19:32:14 -05:00
Barış Soner Uşaklı
b7a57996f7 fix: escape topic.thumb 2020-01-15 18:53:08 -05:00
renovate[bot]
ca10f8f073 fix(deps): update dependency nodebb-plugin-composer-default to v6.3.21 (#8119)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-01-15 12:07:25 -05:00
Baris Usakli
842916ea42 Merge branch 'master' of https://github.com/NodeBB/NodeBB 2020-01-15 11:36:39 -05:00
Baris Usakli
4eb9652a2a fix: #8112, don't crash hook returns no data 2020-01-15 11:36:27 -05:00
Opliko
740de034fa #8115 - log post owner changes (#8117)
* log post owner changes

* log each post separately

* use map instad of a loop
2020-01-15 11:05:57 -05:00
Opliko
879acc85ae Add disable/enable category to category edit page (#8118) 2020-01-14 17:30:56 -05:00
Barış Soner Uşaklı
e06c1bfcd2 fix: escape config.userLang/acpLang, don't allow invalid language codes 2020-01-13 12:27:50 -05:00
renovate[bot]
df5e3a7394 fix(deps): update dependency nodebb-widget-essentials to v4.0.18 (#8111)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-01-09 20:22:10 -05:00
Barış Soner Uşaklı
61da8c29ac fix: group create/join/update name validation 2020-01-07 15:40:54 -05:00
Barış Soner Uşaklı
48f086279c fix: don't crash if groupData is missing 2020-01-07 10:39:35 -05:00
Barış Soner Uşaklı
5a8217de01 fix: #8105, fix export json on page load 2020-01-04 10:34:20 -05:00
arite
527745310d fix: #8103, fix advanced menu not displaying in ACP 2020-01-04 00:27:20 -05:00
Renovate Bot
5e6233969e Update dependency nodebb-theme-vanilla to v11.1.13 2020-01-03 16:42:49 -05:00
Renovate Bot
81c5ca15eb Update dependency nodebb-plugin-mentions to v2.7.4 2020-01-03 14:26:59 -05:00
Misty (Bot)
ac567bc10a Latest translations and fallbacks 2020-01-02 09:49:08 +00:00
Misty (Bot)
5410b5d6da Latest translations and fallbacks 2020-01-01 09:47:53 +00:00
Misty (Bot)
223225378e Latest translations and fallbacks 2019-12-31 09:49:04 +00:00
Barış Soner Uşaklı
10989cccaa fix: meta description missing if url doesn't have post index 2019-12-30 22:19:00 -05:00
Misty (Bot)
0aae421417 Latest translations and fallbacks 2019-12-30 09:48:38 +00:00
Misty (Bot)
fd056b58fb Latest translations and fallbacks 2019-12-29 09:48:18 +00:00
Misty (Bot)
bb1515ce56 Latest translations and fallbacks 2019-12-28 09:48:24 +00:00
Barış Soner Uşaklı
c1b1ee61f3 fix: create user modal instantly closing 2019-12-27 09:51:41 -05:00
Barış Soner Uşaklı
9d074731f4 fix: login with weak password 2019-12-26 20:17:54 -05:00
Misty (Bot)
b9679df784 Latest translations and fallbacks 2019-12-26 09:49:04 +00:00
Barış Soner Uşaklı
f6d7a24a67 fix: dont check password strength on login 2019-12-24 09:07:17 -05:00
Misty (Bot)
9a4a48bc45 Latest translations and fallbacks 2019-12-20 09:49:13 +00:00
Julian Lam
2edc6960d0 docs: updated changelog 2019-12-19 15:21:11 -05:00
Misty (Bot)
cc6758a0f1 chore: incrementing version number - v1.13.1 2019-12-19 15:17:41 -05:00
2822 changed files with 48534 additions and 25981 deletions

View File

@@ -7,7 +7,6 @@ node_modules/
logs/
/public/templates
/public/uploads
/public/sounds
/public/vendor
/public/src/modules/string.js
.idea/

View File

@@ -24,7 +24,7 @@
"consistent-return": "off",
"func-names": "off",
"no-tabs": "off",
"indent": ["error", "tab"],
"indent": ["error", "tab", { "SwitchCase": 1 }],
"no-eq-null": "off",
"camelcase": "off",
"no-new": "off",
@@ -121,7 +121,7 @@
// "comma-spacing": "off",
// "no-trailing-spaces": "off",
// "key-spacing": "off",
// "no-multiple-empty-lines": "off",
"no-multiple-empty-lines": "off"
// "spaced-comment": "off",
// "space-in-parens": "off",
// "block-spacing": "off",

9
.github/SECURITY.md vendored Normal file
View File

@@ -0,0 +1,9 @@
# Reporting a security vulnerability
NodeBB's security policy is based around a private bug bounty program. Users are invited to explore NodeBB for vulnerabilities, and report them to the NodeBB team so that they can be patched.
If you have found a security vulnerability, **do not post it onto our GitHub tracker**. Some security vulnerabilities are quite severe and discretion is recommended. Email the NodeBB Security Team at security@nodebb.org, instead.
# Bug Bounty Program
Security vulnerability reports may be eligible for a bounty based on severity and confirmation from NodeBB team members. For full details regarding our bug bounty program, including the bounty amounts, please consult the following page: https://blog.nodebb.org/bounty

4
.gitignore vendored
View File

@@ -1,3 +1,4 @@
dist/
yarn.lock
npm-debug.log
node_modules/
@@ -27,7 +28,6 @@ pidfile
# templates
/public/templates
/public/sounds
/public/uploads
/test/uploads
@@ -66,3 +66,5 @@ test/files/normalise.jpg.png
test/files/normalise-resized.jpg
package-lock.json
/package.json
*.mongodb
link-plugins.sh

4
.mocharc.yml Normal file
View File

@@ -0,0 +1,4 @@
reporter: dot
timeout: 25000
exit: true
bail: true

View File

@@ -14,7 +14,7 @@ before_script:
- "mongo mydb_test --eval 'db.createUser({user:\"travis\", pwd: \"test\", roles: []});'"
- sh -c "if [ '$DB' = 'mongodb' ]; then node app --setup=\"{\\\"url\\\":\\\"http://127.0.0.1:4567\\\",\\\"secret\\\":\\\"abcdef\\\",\\\"database\\\":\\\"mongo\\\",\\\"mongo:host\\\":\\\"127.0.0.1\\\",\\\"mongo:port\\\":27017,\\\"mongo:username\\\":\\\"\\\",\\\"mongo:password\\\":\\\"\\\",\\\"mongo:database\\\":0,\\\"admin:username\\\":\\\"admin\\\",\\\"admin:email\\\":\\\"test@example.org\\\",\\\"admin:password\\\":\\\"hAN3Eg8W\\\",\\\"admin:password:confirm\\\":\\\"hAN3Eg8W\\\"}\" --ci=\"{\\\"host\\\":\\\"127.0.0.1\\\",\\\"port\\\":27017,\\\"database\\\":\\\"travis_ci_test\\\"}\"; fi"
- sh -c "if [ '$DB' = 'redis' ]; then node app --setup=\"{\\\"url\\\":\\\"http://127.0.0.1:4567/forum\\\",\\\"secret\\\":\\\"abcdef\\\",\\\"database\\\":\\\"redis\\\",\\\"redis:host\\\":\\\"127.0.0.1\\\",\\\"redis:port\\\":6379,\\\"redis:password\\\":\\\"\\\",\\\"redis:database\\\":0,\\\"admin:username\\\":\\\"admin\\\",\\\"admin:email\\\":\\\"test@example.org\\\",\\\"admin:password\\\":\\\"hAN3Eg8W\\\",\\\"admin:password:confirm\\\":\\\"hAN3Eg8W\\\"}\" --ci=\"{\\\"host\\\":\\\"127.0.0.1\\\",\\\"port\\\":6379,\\\"database\\\":1}\"; fi"
- sh -c "if [ '$DB' = 'postgres' ]; then psql -c 'create database nodebb;' -U postgres; psql -c 'create database travis_ci_test;' -U postgres; node app --setup=\"{\\\"url\\\":\\\"http://127.0.0.1:4567\\\",\\\"secret\\\":\\\"abcdef\\\",\\\"database\\\":\\\"postgres\\\",\\\"postgres:host\\\":\\\"127.0.0.1\\\",\\\"postgres:port\\\":5432,\\\"postgres:password\\\":\\\"\\\",\\\"postgres:database\\\":\\\"nodebb\\\",\\\"admin:username\\\":\\\"admin\\\",\\\"admin:email\\\":\\\"test@example.org\\\",\\\"admin:password\\\":\\\"hAN3Eg8W\\\",\\\"admin:password:confirm\\\":\\\"hAN3Eg8W\\\"}\" --ci=\"{\\\"host\\\":\\\"127.0.0.1\\\",\\\"port\\\":5432,\\\"username\\\":\\\"postgres\\\",\\\"database\\\":\\\"travis_ci_test\\\"}\"; fi"
- sh -c "if [ '$DB' = 'postgres' ]; then psql -c 'create database nodebb;' -U postgres; psql -c 'create database travis_ci_test;' -U postgres; node app --setup=\"{\\\"url\\\":\\\"http://127.0.0.1:4567\\\",\\\"secret\\\":\\\"abcdef\\\",\\\"database\\\":\\\"postgres\\\",\\\"postgres:host\\\":\\\"127.0.0.1\\\",\\\"postgres:port\\\":5433,\\\"postgres:password\\\":\\\"\\\",\\\"postgres:database\\\":\\\"nodebb\\\",\\\"admin:username\\\":\\\"admin\\\",\\\"admin:email\\\":\\\"test@example.org\\\",\\\"admin:password\\\":\\\"hAN3Eg8W\\\",\\\"admin:password:confirm\\\":\\\"hAN3Eg8W\\\"}\" --ci=\"{\\\"host\\\":\\\"127.0.0.1\\\",\\\"port\\\":5433,\\\"username\\\":\\\"postgres\\\",\\\"database\\\":\\\"travis_ci_test\\\"}\"; fi"
after_success:
- "npm run coveralls"
language: node_js
@@ -23,7 +23,7 @@ dist: xenial
env:
global:
- PGUSER=postgres
- PGPORT=5432
- PGPORT=5433
- CXX=g++-4.8
jobs:
- "DB=mongodb TEST_ENV=production"
@@ -39,8 +39,8 @@ addons:
- g++-4.8
- mongodb-org-server
node_js:
- "14"
- "12"
- "10"
branches:
only:
- master

View File

@@ -251,6 +251,106 @@ trans.zh_CN = public/language/zh-CN/modules.json
trans.zh_TW = public/language/zh-TW/modules.json
type = KEYVALUEJSON
[nodebb.post-queue]
file_filter = public/language/<lang>/post-queue.json
source_file = public/language/en-GB/post-queue.json
source_lang = en_GB
trans.ar = public/language/ar/post-queue.json
trans.bg = public/language/bg/post-queue.json
trans.bn = public/language/bn/post-queue.json
trans.cs = public/language/cs/post-queue.json
trans.da = public/language/da/post-queue.json
trans.de = public/language/de/post-queue.json
trans.el = public/language/el/post-queue.json
trans.en@pirate = public/language/en-x-pirate/post-queue.json
trans.en_US = public/language/en-US/post-queue.json
trans.es = public/language/es/post-queue.json
trans.et = public/language/et/post-queue.json
trans.fa_IR = public/language/fa-IR/post-queue.json
trans.fi = public/language/fi/post-queue.json
trans.fr = public/language/fr/post-queue.json
trans.gl = public/language/gl/post-queue.json
trans.he = public/language/he/post-queue.json
trans.hr = public/language/hr/post-queue.json
trans.hu = public/language/hu/post-queue.json
trans.id = public/language/id/post-queue.json
trans.it = public/language/it/post-queue.json
trans.ja = public/language/ja/post-queue.json
trans.ko = public/language/ko/post-queue.json
trans.lt = public/language/lt/post-queue.json
trans.lv = public/language/lv/post-queue.json
trans.ms = public/language/ms/post-queue.json
trans.nb = public/language/nb/post-queue.json
trans.nl = public/language/nl/post-queue.json
trans.pl = public/language/pl/post-queue.json
trans.pt_BR = public/language/pt-BR/post-queue.json
trans.pt_PT = public/language/pt-PT/post-queue.json
trans.ro = public/language/ro/post-queue.json
trans.ru = public/language/ru/post-queue.json
trans.rw = public/language/rw/post-queue.json
trans.sc = public/language/sc/post-queue.json
trans.sk = public/language/sk/post-queue.json
trans.sl = public/language/sl/post-queue.json
trans.sr = public/language/sr/post-queue.json
trans.sv = public/language/sv/post-queue.json
trans.th = public/language/th/post-queue.json
trans.tr = public/language/tr/post-queue.json
trans.uk = public/language/uk/post-queue.json
trans.vi = public/language/vi/post-queue.json
trans.zh_CN = public/language/zh-CN/post-queue.json
trans.zh_TW = public/language/zh-TW/post-queue.json
type = KEYVALUEJSON
[nodebb.ip-blacklist]
file_filter = public/language/<lang>/ip-blacklist.json
source_file = public/language/en-GB/ip-blacklist.json
source_lang = en_GB
trans.ar = public/language/ar/ip-blacklist.json
trans.bg = public/language/bg/ip-blacklist.json
trans.bn = public/language/bn/ip-blacklist.json
trans.cs = public/language/cs/ip-blacklist.json
trans.da = public/language/da/ip-blacklist.json
trans.de = public/language/de/ip-blacklist.json
trans.el = public/language/el/ip-blacklist.json
trans.en@pirate = public/language/en-x-pirate/ip-blacklist.json
trans.en_US = public/language/en-US/ip-blacklist.json
trans.es = public/language/es/ip-blacklist.json
trans.et = public/language/et/ip-blacklist.json
trans.fa_IR = public/language/fa-IR/ip-blacklist.json
trans.fi = public/language/fi/ip-blacklist.json
trans.fr = public/language/fr/ip-blacklist.json
trans.gl = public/language/gl/ip-blacklist.json
trans.he = public/language/he/ip-blacklist.json
trans.hr = public/language/hr/ip-blacklist.json
trans.hu = public/language/hu/ip-blacklist.json
trans.id = public/language/id/ip-blacklist.json
trans.it = public/language/it/ip-blacklist.json
trans.ja = public/language/ja/ip-blacklist.json
trans.ko = public/language/ko/ip-blacklist.json
trans.lt = public/language/lt/ip-blacklist.json
trans.lv = public/language/lv/ip-blacklist.json
trans.ms = public/language/ms/ip-blacklist.json
trans.nb = public/language/nb/ip-blacklist.json
trans.nl = public/language/nl/ip-blacklist.json
trans.pl = public/language/pl/ip-blacklist.json
trans.pt_BR = public/language/pt-BR/ip-blacklist.json
trans.pt_PT = public/language/pt-PT/ip-blacklist.json
trans.ro = public/language/ro/ip-blacklist.json
trans.ru = public/language/ru/ip-blacklist.json
trans.rw = public/language/rw/ip-blacklist.json
trans.sc = public/language/sc/ip-blacklist.json
trans.sk = public/language/sk/ip-blacklist.json
trans.sl = public/language/sl/ip-blacklist.json
trans.sr = public/language/sr/ip-blacklist.json
trans.sv = public/language/sv/ip-blacklist.json
trans.th = public/language/th/ip-blacklist.json
trans.tr = public/language/tr/ip-blacklist.json
trans.uk = public/language/uk/ip-blacklist.json
trans.vi = public/language/vi/ip-blacklist.json
trans.zh_CN = public/language/zh-CN/ip-blacklist.json
trans.zh_TW = public/language/zh-TW/ip-blacklist.json
type = KEYVALUEJSON
[nodebb.register]
file_filter = public/language/<lang>/register.json
source_file = public/language/en-GB/register.json
@@ -1850,304 +1950,304 @@ trans.zh_CN = public/language/zh-CN/admin/extend/widgets.json
trans.zh_TW = public/language/zh-TW/admin/extend/widgets.json
type = KEYVALUEJSON
[nodebb.admin-general-dashboard]
file_filter = public/language/<lang>/admin/general/dashboard.json
source_file = public/language/en-GB/admin/general/dashboard.json
[nodebb.admin-dashboard]
file_filter = public/language/<lang>/admin/dashboard.json
source_file = public/language/en-GB/admin/dashboard.json
source_lang = en_GB
trans.ar = public/language/ar/admin/general/dashboard.json
trans.bg = public/language/bg/admin/general/dashboard.json
trans.bn = public/language/bn/admin/general/dashboard.json
trans.cs = public/language/cs/admin/general/dashboard.json
trans.da = public/language/da/admin/general/dashboard.json
trans.de = public/language/de/admin/general/dashboard.json
trans.el = public/language/el/admin/general/dashboard.json
trans.en@pirate = public/language/en-x-pirate/admin/general/dashboard.json
trans.en_US = public/language/en-US/admin/general/dashboard.json
trans.es = public/language/es/admin/general/dashboard.json
trans.et = public/language/et/admin/general/dashboard.json
trans.fa_IR = public/language/fa-IR/admin/general/dashboard.json
trans.fi = public/language/fi/admin/general/dashboard.json
trans.fr = public/language/fr/admin/general/dashboard.json
trans.gl = public/language/gl/admin/general/dashboard.json
trans.he = public/language/he/admin/general/dashboard.json
trans.hr = public/language/hr/admin/general/dashboard.json
trans.hu = public/language/hu/admin/general/dashboard.json
trans.id = public/language/id/admin/general/dashboard.json
trans.it = public/language/it/admin/general/dashboard.json
trans.ja = public/language/ja/admin/general/dashboard.json
trans.ko = public/language/ko/admin/general/dashboard.json
trans.lt = public/language/lt/admin/general/dashboard.json
trans.lv = public/language/lv/admin/general/dashboard.json
trans.ms = public/language/ms/admin/general/dashboard.json
trans.nb = public/language/nb/admin/general/dashboard.json
trans.nl = public/language/nl/admin/general/dashboard.json
trans.pl = public/language/pl/admin/general/dashboard.json
trans.pt_BR = public/language/pt-BR/admin/general/dashboard.json
trans.pt_PT = public/language/pt-PT/admin/general/dashboard.json
trans.ro = public/language/ro/admin/general/dashboard.json
trans.ru = public/language/ru/admin/general/dashboard.json
trans.rw = public/language/rw/admin/general/dashboard.json
trans.sc = public/language/sc/admin/general/dashboard.json
trans.sk = public/language/sk/admin/general/dashboard.json
trans.sl = public/language/sl/admin/general/dashboard.json
trans.sr = public/language/sr/admin/general/dashboard.json
trans.sv = public/language/sv/admin/general/dashboard.json
trans.th = public/language/th/admin/general/dashboard.json
trans.tr = public/language/tr/admin/general/dashboard.json
trans.uk = public/language/uk/admin/general/dashboard.json
trans.vi = public/language/vi/admin/general/dashboard.json
trans.zh_CN = public/language/zh-CN/admin/general/dashboard.json
trans.zh_TW = public/language/zh-TW/admin/general/dashboard.json
trans.ar = public/language/ar/admin/dashboard.json
trans.bg = public/language/bg/admin/dashboard.json
trans.bn = public/language/bn/admin/dashboard.json
trans.cs = public/language/cs/admin/dashboard.json
trans.da = public/language/da/admin/dashboard.json
trans.de = public/language/de/admin/dashboard.json
trans.el = public/language/el/admin/dashboard.json
trans.en@pirate = public/language/en-x-pirate/admin/dashboard.json
trans.en_US = public/language/en-US/admin/dashboard.json
trans.es = public/language/es/admin/dashboard.json
trans.et = public/language/et/admin/dashboard.json
trans.fa_IR = public/language/fa-IR/admin/dashboard.json
trans.fi = public/language/fi/admin/dashboard.json
trans.fr = public/language/fr/admin/dashboard.json
trans.gl = public/language/gl/admin/dashboard.json
trans.he = public/language/he/admin/dashboard.json
trans.hr = public/language/hr/admin/dashboard.json
trans.hu = public/language/hu/admin/dashboard.json
trans.id = public/language/id/admin/dashboard.json
trans.it = public/language/it/admin/dashboard.json
trans.ja = public/language/ja/admin/dashboard.json
trans.ko = public/language/ko/admin/dashboard.json
trans.lt = public/language/lt/admin/dashboard.json
trans.lv = public/language/lv/admin/dashboard.json
trans.ms = public/language/ms/admin/dashboard.json
trans.nb = public/language/nb/admin/dashboard.json
trans.nl = public/language/nl/admin/dashboard.json
trans.pl = public/language/pl/admin/dashboard.json
trans.pt_BR = public/language/pt-BR/admin/dashboard.json
trans.pt_PT = public/language/pt-PT/admin/dashboard.json
trans.ro = public/language/ro/admin/dashboard.json
trans.ru = public/language/ru/admin/dashboard.json
trans.rw = public/language/rw/admin/dashboard.json
trans.sc = public/language/sc/admin/dashboard.json
trans.sk = public/language/sk/admin/dashboard.json
trans.sl = public/language/sl/admin/dashboard.json
trans.sr = public/language/sr/admin/dashboard.json
trans.sv = public/language/sv/admin/dashboard.json
trans.th = public/language/th/admin/dashboard.json
trans.tr = public/language/tr/admin/dashboard.json
trans.uk = public/language/uk/admin/dashboard.json
trans.vi = public/language/vi/admin/dashboard.json
trans.zh_CN = public/language/zh-CN/admin/dashboard.json
trans.zh_TW = public/language/zh-TW/admin/dashboard.json
type = KEYVALUEJSON
[nodebb.admin-general-homepage]
file_filter = public/language/<lang>/admin/general/homepage.json
source_file = public/language/en-GB/admin/general/homepage.json
[nodebb.admin-settings-homepage]
file_filter = public/language/<lang>/admin/settings/homepage.json
source_file = public/language/en-GB/admin/settings/homepage.json
source_lang = en_GB
trans.ar = public/language/ar/admin/general/homepage.json
trans.bg = public/language/bg/admin/general/homepage.json
trans.bn = public/language/bn/admin/general/homepage.json
trans.cs = public/language/cs/admin/general/homepage.json
trans.da = public/language/da/admin/general/homepage.json
trans.de = public/language/de/admin/general/homepage.json
trans.el = public/language/el/admin/general/homepage.json
trans.en@pirate = public/language/en-x-pirate/admin/general/homepage.json
trans.en_US = public/language/en-US/admin/general/homepage.json
trans.es = public/language/es/admin/general/homepage.json
trans.et = public/language/et/admin/general/homepage.json
trans.fa_IR = public/language/fa-IR/admin/general/homepage.json
trans.fi = public/language/fi/admin/general/homepage.json
trans.fr = public/language/fr/admin/general/homepage.json
trans.gl = public/language/gl/admin/general/homepage.json
trans.he = public/language/he/admin/general/homepage.json
trans.hr = public/language/hr/admin/general/homepage.json
trans.hu = public/language/hu/admin/general/homepage.json
trans.id = public/language/id/admin/general/homepage.json
trans.it = public/language/it/admin/general/homepage.json
trans.ja = public/language/ja/admin/general/homepage.json
trans.ko = public/language/ko/admin/general/homepage.json
trans.lt = public/language/lt/admin/general/homepage.json
trans.lv = public/language/lv/admin/general/homepage.json
trans.ms = public/language/ms/admin/general/homepage.json
trans.nb = public/language/nb/admin/general/homepage.json
trans.nl = public/language/nl/admin/general/homepage.json
trans.pl = public/language/pl/admin/general/homepage.json
trans.pt_BR = public/language/pt-BR/admin/general/homepage.json
trans.pt_PT = public/language/pt-PT/admin/general/homepage.json
trans.ro = public/language/ro/admin/general/homepage.json
trans.ru = public/language/ru/admin/general/homepage.json
trans.rw = public/language/rw/admin/general/homepage.json
trans.sc = public/language/sc/admin/general/homepage.json
trans.sk = public/language/sk/admin/general/homepage.json
trans.sl = public/language/sl/admin/general/homepage.json
trans.sr = public/language/sr/admin/general/homepage.json
trans.sv = public/language/sv/admin/general/homepage.json
trans.th = public/language/th/admin/general/homepage.json
trans.tr = public/language/tr/admin/general/homepage.json
trans.uk = public/language/uk/admin/general/homepage.json
trans.vi = public/language/vi/admin/general/homepage.json
trans.zh_CN = public/language/zh-CN/admin/general/homepage.json
trans.zh_TW = public/language/zh-TW/admin/general/homepage.json
trans.ar = public/language/ar/admin/settings/homepage.json
trans.bg = public/language/bg/admin/settings/homepage.json
trans.bn = public/language/bn/admin/settings/homepage.json
trans.cs = public/language/cs/admin/settings/homepage.json
trans.da = public/language/da/admin/settings/homepage.json
trans.de = public/language/de/admin/settings/homepage.json
trans.el = public/language/el/admin/settings/homepage.json
trans.en@pirate = public/language/en-x-pirate/admin/settings/homepage.json
trans.en_US = public/language/en-US/admin/settings/homepage.json
trans.es = public/language/es/admin/settings/homepage.json
trans.et = public/language/et/admin/settings/homepage.json
trans.fa_IR = public/language/fa-IR/admin/settings/homepage.json
trans.fi = public/language/fi/admin/settings/homepage.json
trans.fr = public/language/fr/admin/settings/homepage.json
trans.gl = public/language/gl/admin/settings/homepage.json
trans.he = public/language/he/admin/settings/homepage.json
trans.hr = public/language/hr/admin/settings/homepage.json
trans.hu = public/language/hu/admin/settings/homepage.json
trans.id = public/language/id/admin/settings/homepage.json
trans.it = public/language/it/admin/settings/homepage.json
trans.ja = public/language/ja/admin/settings/homepage.json
trans.ko = public/language/ko/admin/settings/homepage.json
trans.lt = public/language/lt/admin/settings/homepage.json
trans.lv = public/language/lv/admin/settings/homepage.json
trans.ms = public/language/ms/admin/settings/homepage.json
trans.nb = public/language/nb/admin/settings/homepage.json
trans.nl = public/language/nl/admin/settings/homepage.json
trans.pl = public/language/pl/admin/settings/homepage.json
trans.pt_BR = public/language/pt-BR/admin/settings/homepage.json
trans.pt_PT = public/language/pt-PT/admin/settings/homepage.json
trans.ro = public/language/ro/admin/settings/homepage.json
trans.ru = public/language/ru/admin/settings/homepage.json
trans.rw = public/language/rw/admin/settings/homepage.json
trans.sc = public/language/sc/admin/settings/homepage.json
trans.sk = public/language/sk/admin/settings/homepage.json
trans.sl = public/language/sl/admin/settings/homepage.json
trans.sr = public/language/sr/admin/settings/homepage.json
trans.sv = public/language/sv/admin/settings/homepage.json
trans.th = public/language/th/admin/settings/homepage.json
trans.tr = public/language/tr/admin/settings/homepage.json
trans.uk = public/language/uk/admin/settings/homepage.json
trans.vi = public/language/vi/admin/settings/homepage.json
trans.zh_CN = public/language/zh-CN/admin/settings/homepage.json
trans.zh_TW = public/language/zh-TW/admin/settings/homepage.json
type = KEYVALUEJSON
[nodebb.admin-general-languages]
file_filter = public/language/<lang>/admin/general/languages.json
source_file = public/language/en-GB/admin/general/languages.json
[nodebb.admin-settings-languages]
file_filter = public/language/<lang>/admin/settings/languages.json
source_file = public/language/en-GB/admin/settings/languages.json
source_lang = en_GB
trans.ar = public/language/ar/admin/general/languages.json
trans.bg = public/language/bg/admin/general/languages.json
trans.bn = public/language/bn/admin/general/languages.json
trans.cs = public/language/cs/admin/general/languages.json
trans.da = public/language/da/admin/general/languages.json
trans.de = public/language/de/admin/general/languages.json
trans.el = public/language/el/admin/general/languages.json
trans.en@pirate = public/language/en-x-pirate/admin/general/languages.json
trans.en_US = public/language/en-US/admin/general/languages.json
trans.es = public/language/es/admin/general/languages.json
trans.et = public/language/et/admin/general/languages.json
trans.fa_IR = public/language/fa-IR/admin/general/languages.json
trans.fi = public/language/fi/admin/general/languages.json
trans.fr = public/language/fr/admin/general/languages.json
trans.gl = public/language/gl/admin/general/languages.json
trans.he = public/language/he/admin/general/languages.json
trans.hr = public/language/hr/admin/general/languages.json
trans.hu = public/language/hu/admin/general/languages.json
trans.id = public/language/id/admin/general/languages.json
trans.it = public/language/it/admin/general/languages.json
trans.ja = public/language/ja/admin/general/languages.json
trans.ko = public/language/ko/admin/general/languages.json
trans.lt = public/language/lt/admin/general/languages.json
trans.lv = public/language/lv/admin/general/languages.json
trans.ms = public/language/ms/admin/general/languages.json
trans.nb = public/language/nb/admin/general/languages.json
trans.nl = public/language/nl/admin/general/languages.json
trans.pl = public/language/pl/admin/general/languages.json
trans.pt_BR = public/language/pt-BR/admin/general/languages.json
trans.pt_PT = public/language/pt-PT/admin/general/languages.json
trans.ro = public/language/ro/admin/general/languages.json
trans.ru = public/language/ru/admin/general/languages.json
trans.rw = public/language/rw/admin/general/languages.json
trans.sc = public/language/sc/admin/general/languages.json
trans.sk = public/language/sk/admin/general/languages.json
trans.sl = public/language/sl/admin/general/languages.json
trans.sr = public/language/sr/admin/general/languages.json
trans.sv = public/language/sv/admin/general/languages.json
trans.th = public/language/th/admin/general/languages.json
trans.tr = public/language/tr/admin/general/languages.json
trans.uk = public/language/uk/admin/general/languages.json
trans.vi = public/language/vi/admin/general/languages.json
trans.zh_CN = public/language/zh-CN/admin/general/languages.json
trans.zh_TW = public/language/zh-TW/admin/general/languages.json
trans.ar = public/language/ar/admin/settings/languages.json
trans.bg = public/language/bg/admin/settings/languages.json
trans.bn = public/language/bn/admin/settings/languages.json
trans.cs = public/language/cs/admin/settings/languages.json
trans.da = public/language/da/admin/settings/languages.json
trans.de = public/language/de/admin/settings/languages.json
trans.el = public/language/el/admin/settings/languages.json
trans.en@pirate = public/language/en-x-pirate/admin/settings/languages.json
trans.en_US = public/language/en-US/admin/settings/languages.json
trans.es = public/language/es/admin/settings/languages.json
trans.et = public/language/et/admin/settings/languages.json
trans.fa_IR = public/language/fa-IR/admin/settings/languages.json
trans.fi = public/language/fi/admin/settings/languages.json
trans.fr = public/language/fr/admin/settings/languages.json
trans.gl = public/language/gl/admin/settings/languages.json
trans.he = public/language/he/admin/settings/languages.json
trans.hr = public/language/hr/admin/settings/languages.json
trans.hu = public/language/hu/admin/settings/languages.json
trans.id = public/language/id/admin/settings/languages.json
trans.it = public/language/it/admin/settings/languages.json
trans.ja = public/language/ja/admin/settings/languages.json
trans.ko = public/language/ko/admin/settings/languages.json
trans.lt = public/language/lt/admin/settings/languages.json
trans.lv = public/language/lv/admin/settings/languages.json
trans.ms = public/language/ms/admin/settings/languages.json
trans.nb = public/language/nb/admin/settings/languages.json
trans.nl = public/language/nl/admin/settings/languages.json
trans.pl = public/language/pl/admin/settings/languages.json
trans.pt_BR = public/language/pt-BR/admin/settings/languages.json
trans.pt_PT = public/language/pt-PT/admin/settings/languages.json
trans.ro = public/language/ro/admin/settings/languages.json
trans.ru = public/language/ru/admin/settings/languages.json
trans.rw = public/language/rw/admin/settings/languages.json
trans.sc = public/language/sc/admin/settings/languages.json
trans.sk = public/language/sk/admin/settings/languages.json
trans.sl = public/language/sl/admin/settings/languages.json
trans.sr = public/language/sr/admin/settings/languages.json
trans.sv = public/language/sv/admin/settings/languages.json
trans.th = public/language/th/admin/settings/languages.json
trans.tr = public/language/tr/admin/settings/languages.json
trans.uk = public/language/uk/admin/settings/languages.json
trans.vi = public/language/vi/admin/settings/languages.json
trans.zh_CN = public/language/zh-CN/admin/settings/languages.json
trans.zh_TW = public/language/zh-TW/admin/settings/languages.json
type = KEYVALUEJSON
[nodebb.admin-general-navigation]
file_filter = public/language/<lang>/admin/general/navigation.json
source_file = public/language/en-GB/admin/general/navigation.json
[nodebb.admin-settings-navigation]
file_filter = public/language/<lang>/admin/settings/navigation.json
source_file = public/language/en-GB/admin/settings/navigation.json
source_lang = en_GB
trans.ar = public/language/ar/admin/general/navigation.json
trans.bg = public/language/bg/admin/general/navigation.json
trans.bn = public/language/bn/admin/general/navigation.json
trans.cs = public/language/cs/admin/general/navigation.json
trans.da = public/language/da/admin/general/navigation.json
trans.de = public/language/de/admin/general/navigation.json
trans.el = public/language/el/admin/general/navigation.json
trans.en@pirate = public/language/en-x-pirate/admin/general/navigation.json
trans.en_US = public/language/en-US/admin/general/navigation.json
trans.es = public/language/es/admin/general/navigation.json
trans.et = public/language/et/admin/general/navigation.json
trans.fa_IR = public/language/fa-IR/admin/general/navigation.json
trans.fi = public/language/fi/admin/general/navigation.json
trans.fr = public/language/fr/admin/general/navigation.json
trans.gl = public/language/gl/admin/general/navigation.json
trans.he = public/language/he/admin/general/navigation.json
trans.hr = public/language/hr/admin/general/navigation.json
trans.hu = public/language/hu/admin/general/navigation.json
trans.id = public/language/id/admin/general/navigation.json
trans.it = public/language/it/admin/general/navigation.json
trans.ja = public/language/ja/admin/general/navigation.json
trans.ko = public/language/ko/admin/general/navigation.json
trans.lt = public/language/lt/admin/general/navigation.json
trans.lv = public/language/lv/admin/general/navigation.json
trans.ms = public/language/ms/admin/general/navigation.json
trans.nb = public/language/nb/admin/general/navigation.json
trans.nl = public/language/nl/admin/general/navigation.json
trans.pl = public/language/pl/admin/general/navigation.json
trans.pt_BR = public/language/pt-BR/admin/general/navigation.json
trans.pt_PT = public/language/pt-PT/admin/general/navigation.json
trans.ro = public/language/ro/admin/general/navigation.json
trans.ru = public/language/ru/admin/general/navigation.json
trans.rw = public/language/rw/admin/general/navigation.json
trans.sc = public/language/sc/admin/general/navigation.json
trans.sk = public/language/sk/admin/general/navigation.json
trans.sl = public/language/sl/admin/general/navigation.json
trans.sr = public/language/sr/admin/general/navigation.json
trans.sv = public/language/sv/admin/general/navigation.json
trans.th = public/language/th/admin/general/navigation.json
trans.tr = public/language/tr/admin/general/navigation.json
trans.uk = public/language/uk/admin/general/navigation.json
trans.vi = public/language/vi/admin/general/navigation.json
trans.zh_CN = public/language/zh-CN/admin/general/navigation.json
trans.zh_TW = public/language/zh-TW/admin/general/navigation.json
trans.ar = public/language/ar/admin/settings/navigation.json
trans.bg = public/language/bg/admin/settings/navigation.json
trans.bn = public/language/bn/admin/settings/navigation.json
trans.cs = public/language/cs/admin/settings/navigation.json
trans.da = public/language/da/admin/settings/navigation.json
trans.de = public/language/de/admin/settings/navigation.json
trans.el = public/language/el/admin/settings/navigation.json
trans.en@pirate = public/language/en-x-pirate/admin/settings/navigation.json
trans.en_US = public/language/en-US/admin/settings/navigation.json
trans.es = public/language/es/admin/settings/navigation.json
trans.et = public/language/et/admin/settings/navigation.json
trans.fa_IR = public/language/fa-IR/admin/settings/navigation.json
trans.fi = public/language/fi/admin/settings/navigation.json
trans.fr = public/language/fr/admin/settings/navigation.json
trans.gl = public/language/gl/admin/settings/navigation.json
trans.he = public/language/he/admin/settings/navigation.json
trans.hr = public/language/hr/admin/settings/navigation.json
trans.hu = public/language/hu/admin/settings/navigation.json
trans.id = public/language/id/admin/settings/navigation.json
trans.it = public/language/it/admin/settings/navigation.json
trans.ja = public/language/ja/admin/settings/navigation.json
trans.ko = public/language/ko/admin/settings/navigation.json
trans.lt = public/language/lt/admin/settings/navigation.json
trans.lv = public/language/lv/admin/settings/navigation.json
trans.ms = public/language/ms/admin/settings/navigation.json
trans.nb = public/language/nb/admin/settings/navigation.json
trans.nl = public/language/nl/admin/settings/navigation.json
trans.pl = public/language/pl/admin/settings/navigation.json
trans.pt_BR = public/language/pt-BR/admin/settings/navigation.json
trans.pt_PT = public/language/pt-PT/admin/settings/navigation.json
trans.ro = public/language/ro/admin/settings/navigation.json
trans.ru = public/language/ru/admin/settings/navigation.json
trans.rw = public/language/rw/admin/settings/navigation.json
trans.sc = public/language/sc/admin/settings/navigation.json
trans.sk = public/language/sk/admin/settings/navigation.json
trans.sl = public/language/sl/admin/settings/navigation.json
trans.sr = public/language/sr/admin/settings/navigation.json
trans.sv = public/language/sv/admin/settings/navigation.json
trans.th = public/language/th/admin/settings/navigation.json
trans.tr = public/language/tr/admin/settings/navigation.json
trans.uk = public/language/uk/admin/settings/navigation.json
trans.vi = public/language/vi/admin/settings/navigation.json
trans.zh_CN = public/language/zh-CN/admin/settings/navigation.json
trans.zh_TW = public/language/zh-TW/admin/settings/navigation.json
type = KEYVALUEJSON
[nodebb.admin-general-social]
file_filter = public/language/<lang>/admin/general/social.json
source_file = public/language/en-GB/admin/general/social.json
[nodebb.admin-settings-social]
file_filter = public/language/<lang>/admin/settings/social.json
source_file = public/language/en-GB/admin/settings/social.json
source_lang = en_GB
trans.ar = public/language/ar/admin/general/social.json
trans.bg = public/language/bg/admin/general/social.json
trans.bn = public/language/bn/admin/general/social.json
trans.cs = public/language/cs/admin/general/social.json
trans.da = public/language/da/admin/general/social.json
trans.de = public/language/de/admin/general/social.json
trans.el = public/language/el/admin/general/social.json
trans.en@pirate = public/language/en-x-pirate/admin/general/social.json
trans.en_US = public/language/en-US/admin/general/social.json
trans.es = public/language/es/admin/general/social.json
trans.et = public/language/et/admin/general/social.json
trans.fa_IR = public/language/fa-IR/admin/general/social.json
trans.fi = public/language/fi/admin/general/social.json
trans.fr = public/language/fr/admin/general/social.json
trans.gl = public/language/gl/admin/general/social.json
trans.he = public/language/he/admin/general/social.json
trans.hr = public/language/hr/admin/general/social.json
trans.hu = public/language/hu/admin/general/social.json
trans.id = public/language/id/admin/general/social.json
trans.it = public/language/it/admin/general/social.json
trans.ja = public/language/ja/admin/general/social.json
trans.ko = public/language/ko/admin/general/social.json
trans.lt = public/language/lt/admin/general/social.json
trans.lv = public/language/lv/admin/general/social.json
trans.ms = public/language/ms/admin/general/social.json
trans.nb = public/language/nb/admin/general/social.json
trans.nl = public/language/nl/admin/general/social.json
trans.pl = public/language/pl/admin/general/social.json
trans.pt_BR = public/language/pt-BR/admin/general/social.json
trans.pt_PT = public/language/pt-PT/admin/general/social.json
trans.ro = public/language/ro/admin/general/social.json
trans.ru = public/language/ru/admin/general/social.json
trans.rw = public/language/rw/admin/general/social.json
trans.sc = public/language/sc/admin/general/social.json
trans.sk = public/language/sk/admin/general/social.json
trans.sl = public/language/sl/admin/general/social.json
trans.sr = public/language/sr/admin/general/social.json
trans.sv = public/language/sv/admin/general/social.json
trans.th = public/language/th/admin/general/social.json
trans.tr = public/language/tr/admin/general/social.json
trans.uk = public/language/uk/admin/general/social.json
trans.vi = public/language/vi/admin/general/social.json
trans.zh_CN = public/language/zh-CN/admin/general/social.json
trans.zh_TW = public/language/zh-TW/admin/general/social.json
trans.ar = public/language/ar/admin/settings/social.json
trans.bg = public/language/bg/admin/settings/social.json
trans.bn = public/language/bn/admin/settings/social.json
trans.cs = public/language/cs/admin/settings/social.json
trans.da = public/language/da/admin/settings/social.json
trans.de = public/language/de/admin/settings/social.json
trans.el = public/language/el/admin/settings/social.json
trans.en@pirate = public/language/en-x-pirate/admin/settings/social.json
trans.en_US = public/language/en-US/admin/settings/social.json
trans.es = public/language/es/admin/settings/social.json
trans.et = public/language/et/admin/settings/social.json
trans.fa_IR = public/language/fa-IR/admin/settings/social.json
trans.fi = public/language/fi/admin/settings/social.json
trans.fr = public/language/fr/admin/settings/social.json
trans.gl = public/language/gl/admin/settings/social.json
trans.he = public/language/he/admin/settings/social.json
trans.hr = public/language/hr/admin/settings/social.json
trans.hu = public/language/hu/admin/settings/social.json
trans.id = public/language/id/admin/settings/social.json
trans.it = public/language/it/admin/settings/social.json
trans.ja = public/language/ja/admin/settings/social.json
trans.ko = public/language/ko/admin/settings/social.json
trans.lt = public/language/lt/admin/settings/social.json
trans.lv = public/language/lv/admin/settings/social.json
trans.ms = public/language/ms/admin/settings/social.json
trans.nb = public/language/nb/admin/settings/social.json
trans.nl = public/language/nl/admin/settings/social.json
trans.pl = public/language/pl/admin/settings/social.json
trans.pt_BR = public/language/pt-BR/admin/settings/social.json
trans.pt_PT = public/language/pt-PT/admin/settings/social.json
trans.ro = public/language/ro/admin/settings/social.json
trans.ru = public/language/ru/admin/settings/social.json
trans.rw = public/language/rw/admin/settings/social.json
trans.sc = public/language/sc/admin/settings/social.json
trans.sk = public/language/sk/admin/settings/social.json
trans.sl = public/language/sl/admin/settings/social.json
trans.sr = public/language/sr/admin/settings/social.json
trans.sv = public/language/sv/admin/settings/social.json
trans.th = public/language/th/admin/settings/social.json
trans.tr = public/language/tr/admin/settings/social.json
trans.uk = public/language/uk/admin/settings/social.json
trans.vi = public/language/vi/admin/settings/social.json
trans.zh_CN = public/language/zh-CN/admin/settings/social.json
trans.zh_TW = public/language/zh-TW/admin/settings/social.json
type = KEYVALUEJSON
[nodebb.admin-general-sounds]
file_filter = public/language/<lang>/admin/general/sounds.json
source_file = public/language/en-GB/admin/general/sounds.json
[nodebb.admin-settings-sounds]
file_filter = public/language/<lang>/admin/settings/sounds.json
source_file = public/language/en-GB/admin/settings/sounds.json
source_lang = en_GB
trans.ar = public/language/ar/admin/general/sounds.json
trans.bg = public/language/bg/admin/general/sounds.json
trans.bn = public/language/bn/admin/general/sounds.json
trans.cs = public/language/cs/admin/general/sounds.json
trans.da = public/language/da/admin/general/sounds.json
trans.de = public/language/de/admin/general/sounds.json
trans.el = public/language/el/admin/general/sounds.json
trans.en@pirate = public/language/en-x-pirate/admin/general/sounds.json
trans.en_US = public/language/en-US/admin/general/sounds.json
trans.es = public/language/es/admin/general/sounds.json
trans.et = public/language/et/admin/general/sounds.json
trans.fa_IR = public/language/fa-IR/admin/general/sounds.json
trans.fi = public/language/fi/admin/general/sounds.json
trans.fr = public/language/fr/admin/general/sounds.json
trans.gl = public/language/gl/admin/general/sounds.json
trans.he = public/language/he/admin/general/sounds.json
trans.hr = public/language/hr/admin/general/sounds.json
trans.hu = public/language/hu/admin/general/sounds.json
trans.id = public/language/id/admin/general/sounds.json
trans.it = public/language/it/admin/general/sounds.json
trans.ja = public/language/ja/admin/general/sounds.json
trans.ko = public/language/ko/admin/general/sounds.json
trans.lt = public/language/lt/admin/general/sounds.json
trans.lv = public/language/lv/admin/general/sounds.json
trans.ms = public/language/ms/admin/general/sounds.json
trans.nb = public/language/nb/admin/general/sounds.json
trans.nl = public/language/nl/admin/general/sounds.json
trans.pl = public/language/pl/admin/general/sounds.json
trans.pt_BR = public/language/pt-BR/admin/general/sounds.json
trans.pt_PT = public/language/pt-PT/admin/general/sounds.json
trans.ro = public/language/ro/admin/general/sounds.json
trans.ru = public/language/ru/admin/general/sounds.json
trans.rw = public/language/rw/admin/general/sounds.json
trans.sc = public/language/sc/admin/general/sounds.json
trans.sk = public/language/sk/admin/general/sounds.json
trans.sl = public/language/sl/admin/general/sounds.json
trans.sr = public/language/sr/admin/general/sounds.json
trans.sv = public/language/sv/admin/general/sounds.json
trans.th = public/language/th/admin/general/sounds.json
trans.tr = public/language/tr/admin/general/sounds.json
trans.uk = public/language/uk/admin/general/sounds.json
trans.vi = public/language/vi/admin/general/sounds.json
trans.zh_CN = public/language/zh-CN/admin/general/sounds.json
trans.zh_TW = public/language/zh-TW/admin/general/sounds.json
trans.ar = public/language/ar/admin/settings/sounds.json
trans.bg = public/language/bg/admin/settings/sounds.json
trans.bn = public/language/bn/admin/settings/sounds.json
trans.cs = public/language/cs/admin/settings/sounds.json
trans.da = public/language/da/admin/settings/sounds.json
trans.de = public/language/de/admin/settings/sounds.json
trans.el = public/language/el/admin/settings/sounds.json
trans.en@pirate = public/language/en-x-pirate/admin/settings/sounds.json
trans.en_US = public/language/en-US/admin/settings/sounds.json
trans.es = public/language/es/admin/settings/sounds.json
trans.et = public/language/et/admin/settings/sounds.json
trans.fa_IR = public/language/fa-IR/admin/settings/sounds.json
trans.fi = public/language/fi/admin/settings/sounds.json
trans.fr = public/language/fr/admin/settings/sounds.json
trans.gl = public/language/gl/admin/settings/sounds.json
trans.he = public/language/he/admin/settings/sounds.json
trans.hr = public/language/hr/admin/settings/sounds.json
trans.hu = public/language/hu/admin/settings/sounds.json
trans.id = public/language/id/admin/settings/sounds.json
trans.it = public/language/it/admin/settings/sounds.json
trans.ja = public/language/ja/admin/settings/sounds.json
trans.ko = public/language/ko/admin/settings/sounds.json
trans.lt = public/language/lt/admin/settings/sounds.json
trans.lv = public/language/lv/admin/settings/sounds.json
trans.ms = public/language/ms/admin/settings/sounds.json
trans.nb = public/language/nb/admin/settings/sounds.json
trans.nl = public/language/nl/admin/settings/sounds.json
trans.pl = public/language/pl/admin/settings/sounds.json
trans.pt_BR = public/language/pt-BR/admin/settings/sounds.json
trans.pt_PT = public/language/pt-PT/admin/settings/sounds.json
trans.ro = public/language/ro/admin/settings/sounds.json
trans.ru = public/language/ru/admin/settings/sounds.json
trans.rw = public/language/rw/admin/settings/sounds.json
trans.sc = public/language/sc/admin/settings/sounds.json
trans.sk = public/language/sk/admin/settings/sounds.json
trans.sl = public/language/sl/admin/settings/sounds.json
trans.sr = public/language/sr/admin/settings/sounds.json
trans.sv = public/language/sv/admin/settings/sounds.json
trans.th = public/language/th/admin/settings/sounds.json
trans.tr = public/language/tr/admin/settings/sounds.json
trans.uk = public/language/uk/admin/settings/sounds.json
trans.vi = public/language/vi/admin/settings/sounds.json
trans.zh_CN = public/language/zh-CN/admin/settings/sounds.json
trans.zh_TW = public/language/zh-TW/admin/settings/sounds.json
type = KEYVALUEJSON
[nodebb.admin-manage-admins-mods]
@@ -2300,56 +2400,6 @@ trans.zh_CN = public/language/zh-CN/admin/manage/groups.json
trans.zh_TW = public/language/zh-TW/admin/manage/groups.json
type = KEYVALUEJSON
[nodebb.admin-manage-ip-blacklist]
file_filter = public/language/<lang>/admin/manage/ip-blacklist.json
source_file = public/language/en-GB/admin/manage/ip-blacklist.json
source_lang = en_GB
trans.ar = public/language/ar/admin/manage/ip-blacklist.json
trans.bg = public/language/bg/admin/manage/ip-blacklist.json
trans.bn = public/language/bn/admin/manage/ip-blacklist.json
trans.cs = public/language/cs/admin/manage/ip-blacklist.json
trans.da = public/language/da/admin/manage/ip-blacklist.json
trans.de = public/language/de/admin/manage/ip-blacklist.json
trans.el = public/language/el/admin/manage/ip-blacklist.json
trans.en@pirate = public/language/en-x-pirate/admin/manage/ip-blacklist.json
trans.en_US = public/language/en-US/admin/manage/ip-blacklist.json
trans.es = public/language/es/admin/manage/ip-blacklist.json
trans.et = public/language/et/admin/manage/ip-blacklist.json
trans.fa_IR = public/language/fa-IR/admin/manage/ip-blacklist.json
trans.fi = public/language/fi/admin/manage/ip-blacklist.json
trans.fr = public/language/fr/admin/manage/ip-blacklist.json
trans.gl = public/language/gl/admin/manage/ip-blacklist.json
trans.he = public/language/he/admin/manage/ip-blacklist.json
trans.hr = public/language/hr/admin/manage/ip-blacklist.json
trans.hu = public/language/hu/admin/manage/ip-blacklist.json
trans.id = public/language/id/admin/manage/ip-blacklist.json
trans.it = public/language/it/admin/manage/ip-blacklist.json
trans.ja = public/language/ja/admin/manage/ip-blacklist.json
trans.ko = public/language/ko/admin/manage/ip-blacklist.json
trans.lt = public/language/lt/admin/manage/ip-blacklist.json
trans.lv = public/language/lv/admin/manage/ip-blacklist.json
trans.ms = public/language/ms/admin/manage/ip-blacklist.json
trans.nb = public/language/nb/admin/manage/ip-blacklist.json
trans.nl = public/language/nl/admin/manage/ip-blacklist.json
trans.pl = public/language/pl/admin/manage/ip-blacklist.json
trans.pt_BR = public/language/pt-BR/admin/manage/ip-blacklist.json
trans.pt_PT = public/language/pt-PT/admin/manage/ip-blacklist.json
trans.ro = public/language/ro/admin/manage/ip-blacklist.json
trans.ru = public/language/ru/admin/manage/ip-blacklist.json
trans.rw = public/language/rw/admin/manage/ip-blacklist.json
trans.sc = public/language/sc/admin/manage/ip-blacklist.json
trans.sk = public/language/sk/admin/manage/ip-blacklist.json
trans.sl = public/language/sl/admin/manage/ip-blacklist.json
trans.sr = public/language/sr/admin/manage/ip-blacklist.json
trans.sv = public/language/sv/admin/manage/ip-blacklist.json
trans.th = public/language/th/admin/manage/ip-blacklist.json
trans.tr = public/language/tr/admin/manage/ip-blacklist.json
trans.uk = public/language/uk/admin/manage/ip-blacklist.json
trans.vi = public/language/vi/admin/manage/ip-blacklist.json
trans.zh_CN = public/language/zh-CN/admin/manage/ip-blacklist.json
trans.zh_TW = public/language/zh-TW/admin/manage/ip-blacklist.json
type = KEYVALUEJSON
[nodebb.admin-manage-privileges]
file_filter = public/language/<lang>/admin/manage/privileges.json
source_file = public/language/en-GB/admin/manage/privileges.json
@@ -2400,56 +2450,6 @@ trans.zh_CN = public/language/zh-CN/admin/manage/privileges.json
trans.zh_TW = public/language/zh-TW/admin/manage/privileges.json
type = KEYVALUEJSON
[nodebb.admin-manage-post-queue]
file_filter = public/language/<lang>/admin/manage/post-queue.json
source_file = public/language/en-GB/admin/manage/post-queue.json
source_lang = en_GB
trans.ar = public/language/ar/admin/manage/post-queue.json
trans.bg = public/language/bg/admin/manage/post-queue.json
trans.bn = public/language/bn/admin/manage/post-queue.json
trans.cs = public/language/cs/admin/manage/post-queue.json
trans.da = public/language/da/admin/manage/post-queue.json
trans.de = public/language/de/admin/manage/post-queue.json
trans.el = public/language/el/admin/manage/post-queue.json
trans.en@pirate = public/language/en-x-pirate/admin/manage/post-queue.json
trans.en_US = public/language/en-US/admin/manage/post-queue.json
trans.es = public/language/es/admin/manage/post-queue.json
trans.et = public/language/et/admin/manage/post-queue.json
trans.fa_IR = public/language/fa-IR/admin/manage/post-queue.json
trans.fi = public/language/fi/admin/manage/post-queue.json
trans.fr = public/language/fr/admin/manage/post-queue.json
trans.gl = public/language/gl/admin/manage/post-queue.json
trans.he = public/language/he/admin/manage/post-queue.json
trans.hr = public/language/hr/admin/manage/post-queue.json
trans.hu = public/language/hu/admin/manage/post-queue.json
trans.id = public/language/id/admin/manage/post-queue.json
trans.it = public/language/it/admin/manage/post-queue.json
trans.ja = public/language/ja/admin/manage/post-queue.json
trans.ko = public/language/ko/admin/manage/post-queue.json
trans.lt = public/language/lt/admin/manage/post-queue.json
trans.lv = public/language/lv/admin/manage/post-queue.json
trans.ms = public/language/ms/admin/manage/post-queue.json
trans.nb = public/language/nb/admin/manage/post-queue.json
trans.nl = public/language/nl/admin/manage/post-queue.json
trans.pl = public/language/pl/admin/manage/post-queue.json
trans.pt_BR = public/language/pt-BR/admin/manage/post-queue.json
trans.pt_PT = public/language/pt-PT/admin/manage/post-queue.json
trans.ro = public/language/ro/admin/manage/post-queue.json
trans.ru = public/language/ru/admin/manage/post-queue.json
trans.rw = public/language/rw/admin/manage/post-queue.json
trans.sc = public/language/sc/admin/manage/post-queue.json
trans.sk = public/language/sk/admin/manage/post-queue.json
trans.sl = public/language/sl/admin/manage/post-queue.json
trans.sr = public/language/sr/admin/manage/post-queue.json
trans.sv = public/language/sv/admin/manage/post-queue.json
trans.th = public/language/th/admin/manage/post-queue.json
trans.tr = public/language/tr/admin/manage/post-queue.json
trans.uk = public/language/uk/admin/manage/post-queue.json
trans.vi = public/language/vi/admin/manage/post-queue.json
trans.zh_CN = public/language/zh-CN/admin/manage/post-queue.json
trans.zh_TW = public/language/zh-TW/admin/manage/post-queue.json
type = KEYVALUEJSON
[nodebb.admin-manage-registration]
file_filter = public/language/<lang>/admin/manage/registration.json
source_file = public/language/en-GB/admin/manage/registration.json

File diff suppressed because it is too large Load Diff

View File

@@ -19,5 +19,4 @@ ENV NODE_ENV=production \
EXPOSE 4567
CMD ./nodebb start
CMD node ./nodebb build ; node ./nodebb start

View File

@@ -1,95 +1,31 @@
'use strict';
var async = require('async');
var fork = require('child_process').fork;
var env = process.env;
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;
var updateWorker;
var initWorker;
var incomplete = [];
var running = 0;
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 nconf = require('nconf');
nconf.file({
file: 'config.json',
});
nconf.defaults({
base_dir: __dirname,
views_dir: './build/public/templates',
});
var winston = require('winston');
winston.configure({
transports: [
new winston.transports.Console({
handleExceptions: true,
}),
],
});
var db = require('./src/database');
module.exports = function (grunt) {
var args = [];
var initArgs = ['--build'];
if (!grunt.option('verbose')) {
args.push('--log-level=info');
initArgs.push('--log-level=info');
}
function update(action, filepath, target) {
var updateArgs = args.slice();
var compiling;
var time = Date.now();
if (target === 'lessUpdated_Client') {
compiling = 'clientCSS';
} else if (target === 'lessUpdated_Admin') {
compiling = 'acpCSS';
} else if (target === 'clientUpdated') {
compiling = 'js';
} else if (target === 'templatesUpdated') {
compiling = 'tpl';
} else if (target === 'langUpdated') {
compiling = 'lang';
} else if (target === 'serverUpdated') {
// Do nothing, just restart
}
if (compiling && !incomplete.includes(compiling)) {
incomplete.push(compiling);
}
updateArgs.push('--build');
updateArgs.push(incomplete.join(','));
worker.kill();
if (updateWorker) {
updateWorker.kill('SIGKILL');
}
updateWorker = fork('app.js', updateArgs, { env: env });
running += 1;
updateWorker.on('exit', function () {
running -= 1;
if (running === 0) {
worker = fork('app.js', args, {
env: env,
});
worker.on('message', function () {
if (incomplete.length) {
incomplete = [];
if (grunt.option('verbose')) {
grunt.log.writeln('NodeBB restarted in ' + (Date.now() - time) + ' ms');
}
}
});
}
});
nconf.set('log-level', 'info');
}
prestart.setupWinston();
grunt.initConfig({
watch: {},
@@ -99,148 +35,169 @@ module.exports = function (grunt) {
grunt.registerTask('default', ['watch']);
grunt.registerTask('init', function () {
grunt.registerTask('init', async function () {
var done = this.async();
async.waterfall([
function (next) {
db.init(next);
},
function (next) {
db.getSortedSetRange('plugins:active', 0, -1, next);
},
function (plugins, next) {
addBaseThemes(plugins, next);
},
function (plugins, next) {
if (!plugins.includes('nodebb-plugin-composer-default')) {
plugins.push('nodebb-plugin-composer-default');
}
let plugins = [];
if (!process.argv.includes('--core')) {
await db.init();
plugins = await db.getSortedSetRange('plugins:active', 0, -1);
addBaseThemes(plugins);
if (!plugins.includes('nodebb-plugin-composer-default')) {
plugins.push('nodebb-plugin-composer-default');
}
if (!plugins.includes('nodebb-theme-persona')) {
plugins.push('nodebb-theme-persona');
}
}
if (process.argv.includes('--core')) {
plugins = [];
}
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 lessUpdated_Client = plugins.map(p => 'node_modules/' + p + '/**/*.less');
const lessUpdated_Admin = plugins.map(p => 'node_modules/' + p + '/**/*.less');
const clientUpdated = plugins.map(p => 'node_modules/' + p + '/**/*.js');
const templatesUpdated = plugins.map(p => 'node_modules/' + p + '/**/*.tpl');
const langUpdated = plugins.map(p => 'node_modules/' + p + '/**/*.json');
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'));
grunt.config(['watch'], {
lessUpdated_Client: {
files: [
'public/less/*.less',
'!public/less/admin/**/*.less',
...lessUpdated_Client,
'!node_modules/nodebb-*/node_modules/**',
'!node_modules/nodebb-*/.git/**',
],
options: {
interval: 1000,
},
},
lessUpdated_Admin: {
files: [
'public/less/admin/**/*.less',
...lessUpdated_Admin,
'!node_modules/nodebb-*/node_modules/**',
'!node_modules/nodebb-*/.git/**',
],
options: {
interval: 1000,
},
},
clientUpdated: {
files: [
'public/src/**/*.js',
...clientUpdated,
'!node_modules/nodebb-*/node_modules/**',
'node_modules/benchpressjs/build/benchpress.js',
'!node_modules/nodebb-*/.git/**',
],
options: {
interval: 1000,
},
},
serverUpdated: {
files: ['*.js', 'install/*.js', 'src/**/*.js', '!src/upgrades/**'],
options: {
interval: 1000,
},
},
templatesUpdated: {
files: [
'src/views/**/*.tpl',
...templatesUpdated,
'!node_modules/nodebb-*/node_modules/**',
'!node_modules/nodebb-*/.git/**',
],
options: {
interval: 1000,
},
},
langUpdated: {
files: [
'public/language/en-GB/*.json',
'public/language/en-GB/**/*.json',
...langUpdated,
'!node_modules/nodebb-*/node_modules/**',
'!node_modules/nodebb-*/.git/**',
'!node_modules/nodebb-*/plugin.json',
'!node_modules/nodebb-*/package.json',
'!node_modules/nodebb-*/theme.json',
],
options: {
interval: 1000,
},
},
});
next();
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');
grunt.config(['watch'], {
styleUpdated_Client: {
files: [
'public/less/**/*.less',
...styleUpdated_Client,
],
options: {
interval: 1000,
},
},
], done);
styleUpdated_Admin: {
files: [
'public/less/**/*.less',
...styleUpdated_Admin,
],
options: {
interval: 1000,
},
},
clientUpdated: {
files: [
'public/src/**/*.js',
...clientUpdated,
'node_modules/benchpressjs/build/benchpress.js',
],
options: {
interval: 1000,
},
},
serverUpdated: {
files: [
'app.js',
'install/*.js',
'src/**/*.js',
'public/src/modules/translator.js',
'public/src/modules/helpers.js',
'public/src/utils.js',
serverUpdated,
'!src/upgrades/**',
],
options: {
interval: 1000,
},
},
templatesUpdated: {
files: [
'src/views/**/*.tpl',
...templatesUpdated,
],
options: {
interval: 1000,
},
},
langUpdated: {
files: [
'public/language/en-GB/*.json',
'public/language/en-GB/**/*.json',
...langUpdated,
],
options: {
interval: 1000,
},
},
});
const build = require('./src/meta/build');
if (!grunt.option('skip')) {
await build.build(true);
}
run();
done();
});
grunt.task.run('init');
env.NODE_ENV = 'development';
if (grunt.option('skip')) {
function run() {
if (worker) {
worker.kill();
}
worker = fork('app.js', args, {
env: env,
});
} else {
initWorker = fork('app.js', initArgs, {
env: env,
});
initWorker.on('exit', function () {
worker = fork('app.js', args, {
env: env,
});
});
}
grunt.event.on('watch', update);
grunt.task.run('init');
grunt.event.removeAllListeners('watch');
grunt.event.on('watch', function update(action, filepath, target) {
var compiling;
if (target === 'styleUpdated_Client') {
compiling = 'clientCSS';
} else if (target === 'styleUpdated_Admin') {
compiling = 'acpCSS';
} else if (target === 'clientUpdated') {
compiling = 'js';
} else if (target === 'templatesUpdated') {
compiling = 'tpl';
} else if (target === 'langUpdated') {
compiling = 'lang';
} else if (target === 'serverUpdated') {
// empty require cache
const paths = ['./src/meta/build.js', './src/meta/index.js'];
paths.forEach(p => delete require.cache[require.resolve(p)]);
return run();
}
require('./src/meta/build').build([compiling], function (err) {
if (err) {
winston.error(err.stack);
}
if (worker) {
worker.send({ compiling: compiling });
}
});
});
};
function addBaseThemes(plugins, callback) {
const themeId = plugins.find(p => p.startsWith('nodebb-theme-'));
function addBaseThemes(plugins) {
let themeId = plugins.find(p => p.includes('nodebb-theme-'));
if (!themeId) {
return setImmediate(callback, null, plugins);
return plugins;
}
function getBaseRecursive(themeId) {
let baseTheme;
do {
try {
const baseTheme = require(themeId + '/theme').baseTheme;
if (baseTheme) {
plugins.push(baseTheme);
getBaseRecursive(baseTheme);
}
baseTheme = require(themeId + '/theme').baseTheme;
} catch (err) {
console.log(err);
}
}
getBaseRecursive(themeId);
callback(null, plugins);
if (baseTheme) {
plugins.push(baseTheme);
themeId = baseTheme;
}
} while (baseTheme);
return plugins;
}

View File

@@ -1,4 +1,4 @@
# <img alt="NodeBB" src="http://i.imgur.com/mYxPPtB.png" />
# ![NodeBB](public/images/logo.svg)
[![Build Status](https://travis-ci.org/NodeBB/NodeBB.svg?branch=master)](https://travis-ci.org/NodeBB/NodeBB)
[![Coverage Status](https://coveralls.io/repos/github/NodeBB/NodeBB/badge.svg?branch=master)](https://coveralls.io/github/NodeBB/NodeBB?branch=master)
@@ -48,8 +48,8 @@ Our minimalist "Persona" theme gets you going right away, no coding experience r
NodeBB requires the following software to be installed:
* A version of Node.js at least 8 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions))
* Redis, version 2.8.9 or greater **or** MongoDB, version 2.6 or greater
* A version of Node.js at least 12 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions))
* MongoDB, version 2.6 or greater **or** Redis, version 2.8.9 or greater
* nginx, version 1.3.13 or greater (**only if** intending to use nginx to proxy requests to a NodeBB)
## Installation

3
app.js
View File

@@ -31,10 +31,11 @@ const path = require('path');
const file = require('./src/file');
process.env.NODE_ENV = process.env.NODE_ENV || 'production';
global.env = process.env.NODE_ENV || 'production';
// Alternate configuration file support
const configFile = path.resolve(__dirname, nconf.any(['config', 'CONFIG']) || 'config.json');
const configFile = path.resolve(__dirname, nconf.any(['config', 'CONFIG']) || 'config.json');
const configExists = file.existsSync(configFile) || (nconf.get('url') && nconf.get('secret') && nconf.get('database'));

View File

@@ -1,3 +1,25 @@
'use strict';
module.exports = { extends: ['@commitlint/config-angular'] };
module.exports = {
extends: ['@commitlint/config-angular'],
rules: {
'type-enum': [
2,
'always',
[
'breaking',
'build',
'chore',
'ci',
'docs',
'feat',
'fix',
'perf',
'refactor',
'revert',
'style',
'test',
],
],
},
};

View File

@@ -32,9 +32,8 @@
"registrationType": "normal",
"registrationApprovalType": "normal",
"allowAccountDelete": 1,
"allowFileUploads": 0,
"privateUploads": 0,
"allowedFileExtensions": "png,jpg,bmp",
"allowedFileExtensions": "png,jpg,bmp,txt",
"allowUserHomePage": 1,
"allowMultipleBadges": 0,
"maximumFileSize": 2048,
@@ -71,6 +70,8 @@
"reputation:disabled": 0,
"downvote:disabled": 0,
"disableSignatures": 0,
"downvotesPerDay": 10,
"downvotesPerUserPerDay": 3,
"min:rep:downvote": 0,
"min:rep:flag": 0,
"min:rep:profile-picture": 0,
@@ -78,12 +79,15 @@
"min:rep:website": 0,
"min:rep:aboutme": 0,
"min:rep:signature": 0,
"flags:limitPerTarget": 0,
"notificationType_upvote": "notification",
"notificationType_new-topic": "notification",
"notificationType_new-reply": "notification",
"notificationType_post-edit": "notification",
"notificationType_follow": "notification",
"notificationType_new-chat": "notification",
"notificationType_group-invite": "notification",
"notificationType_group-request-membership": "notification",
"notificationType_mention": "notification",
"notificationType_new-register": "notification",
"notificationType_post-queue": "notification",
@@ -106,10 +110,11 @@
"maximumInvites": 0,
"username:disableEdit": 0,
"email:disableEdit": 0,
"email:sendmail:rateLimit": 2,
"email:sendmail:rateDelta": 1000,
"email:smtpTransport:pool": false,
"hideFullname": 0,
"hideEmail": 0,
"allowGuestHandles": 0,
"recentMaxTopics": 200,
"disableRecentCategoryFilter": 0,
"maximumRelatedTopics": 0,
"disableEmailSubscriptions": 0,
@@ -128,5 +133,6 @@
"timeagoCutoff": 30,
"necroThreshold": 7,
"categoryWatchState": "watching",
"submitPluginUsage": 1
"submitPluginUsage": 1,
"maxUserSessions": 10
}

View File

@@ -1,58 +1,51 @@
'use strict';
var async = require('async');
var prompt = require('prompt');
var winston = require('winston');
const prompt = require('prompt');
const winston = require('winston');
var questions = {
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,
postgres: require('../src/database/postgres').questions,
};
module.exports = function (config, callback) {
async.waterfall([
function (next) {
winston.info('\nNow configuring ' + config.database + ' database:');
getDatabaseConfig(config, next);
},
function (databaseConfig, next) {
saveDatabaseConfig(config, databaseConfig, next);
},
], callback);
module.exports = async function (config) {
winston.info('\nNow configuring ' + config.database + ' database:');
const databaseConfig = await getDatabaseConfig(config);
return saveDatabaseConfig(config, databaseConfig);
};
function getDatabaseConfig(config, callback) {
async function getDatabaseConfig(config) {
if (!config) {
return callback(new Error('aborted'));
throw new Error('invalid config, aborted');
}
if (config.database === 'redis') {
if (config['redis:host'] && config['redis:port']) {
callback(null, config);
} else {
prompt.get(questions.redis, callback);
return config;
}
return await promptGet(questions.redis);
} else if (config.database === 'mongo') {
if ((config['mongo:host'] && config['mongo:port']) || config['mongo:uri']) {
callback(null, config);
} else {
prompt.get(questions.mongo, callback);
return config;
}
return await promptGet(questions.mongo);
} else if (config.database === 'postgres') {
if (config['postgres:host'] && config['postgres:port']) {
callback(null, config);
} else {
prompt.get(questions.postgres, callback);
return config;
}
} else {
return callback(new Error('unknown database : ' + config.database));
return await promptGet(questions.postgres);
}
throw new Error('unknown database : ' + config.database);
}
function saveDatabaseConfig(config, databaseConfig, callback) {
function saveDatabaseConfig(config, databaseConfig) {
if (!databaseConfig) {
return callback(new Error('aborted'));
throw new Error('invalid config, aborted');
}
// Translate redis properties into redis object
@@ -86,13 +79,13 @@ function saveDatabaseConfig(config, databaseConfig, callback) {
ssl: databaseConfig['postgres:ssl'],
};
} else {
return callback(new Error('unknown database : ' + config.database));
throw new Error('unknown database : ' + config.database);
}
var allQuestions = questions.redis.concat(questions.mongo).concat(questions.postgres);
const allQuestions = questions.redis.concat(questions.mongo).concat(questions.postgres);
for (var x = 0; x < allQuestions.length; x += 1) {
delete config[allQuestions[x].name];
}
callback(null, config);
return config;
}

View File

@@ -2,7 +2,7 @@
"name": "nodebb",
"license": "GPL-3.0",
"description": "NodeBB Forum",
"version": "1.13.0",
"version": "1.15.0-rc.0",
"homepage": "http://www.nodebb.org",
"repository": {
"type": "git",
@@ -11,15 +11,21 @@
"main": "app.js",
"scripts": {
"start": "node loader.js",
"lint": "eslint --cache ./nodebb .",
"lint": "npx eslint --cache ./nodebb .",
"pretest": "npm run lint",
"test": "nyc --reporter=html --reporter=text-summary mocha",
"test": "npx nyc --reporter=html --reporter=text-summary npx mocha",
"coveralls": "nyc report --reporter=text-lcov | coveralls && rm -r coverage"
},
"nyc": {
"exclude": [
"src/upgrades/*",
"test/*"
]
},
"husky": {
"hooks": {
"pre-commit": "lint-staged",
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
"pre-commit": "npx lint-staged",
"commit-msg": "npx commitlint -E HUSKY_GIT_PARAMS"
}
},
"lint-staged": {
@@ -29,129 +35,146 @@
]
},
"dependencies": {
"ace-builds": "^1.2.9",
"archiver": "^3.0.0",
"async": "^3.0.1",
"autoprefixer": "^9.4.6",
"@adactive/bootstrap-tagsinput": "^0.8.2",
"ace-builds": "^1.4.9",
"archiver": "^5.0.0",
"async": "^3.2.0",
"autoprefixer": "^10.0.0",
"bcryptjs": "2.4.3",
"benchpressjs": "^2.0.0",
"body-parser": "^1.18.2",
"bootstrap": "^3.4.0",
"bootswatch": "git://github.com/thomaspark/bootswatch.git#c41a8f066feb8950c6f9c6bcf5a3c37d1085404e",
"chart.js": "^2.7.1",
"benchpressjs": "2.0.8",
"body-parser": "^1.19.0",
"bootbox": "4.4.0",
"bootstrap": "^3.4.1",
"chart.js": "^2.9.3",
"cli-graph": "^3.2.2",
"clipboard": "^2.0.1",
"colors": "^1.1.2",
"commander": "^3.0.0",
"compression": "^1.7.1",
"clipboard": "^2.0.6",
"colors": "^1.4.0",
"commander": "^6.0.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-multiparty": "^2.1.0",
"connect-pg-simple": "^6.0.0",
"connect-redis": "4.0.3",
"cookie-parser": "^1.4.3",
"cron": "^1.3.0",
"cropperjs": "^1.2.2",
"csurf": "^1.9.0",
"connect-multiparty": "^2.2.0",
"connect-pg-simple": "^6.1.0",
"connect-redis": "5.0.0",
"cookie-parser": "^1.4.5",
"cron": "^1.8.2",
"cropperjs": "^1.5.6",
"csurf": "^1.11.0",
"daemon": "^1.1.0",
"diff": "^4.0.1",
"express": "^4.16.2",
"express-session": "^1.15.6",
"express-useragent": "^1.0.12",
"graceful-fs": "^4.1.11",
"helmet": "^3.11.0",
"html-to-text": "^5.0.0",
"ipaddr.js": "^1.5.4",
"jquery": "^3.2.1",
"jsesc": "2.5.2",
"json-2-csv": "^3.0.0",
"jsonwebtoken": "^8.4.0",
"less": "^3.10.3",
"diff": "^4.0.2",
"express": "^4.17.1",
"express-session": "^1.17.0",
"express-useragent": "^1.0.13",
"graceful-fs": "^4.2.3",
"helmet": "^4.0.0",
"html-to-text": "^5.1.1",
"ipaddr.js": "^2.0.0",
"jquery": "3.5.1",
"jquery-deserialize": "2.0.0-rc1",
"jquery-form": "4.3.0",
"jquery-serializeobject": "1.0.0",
"jquery-ui": "1.12.1",
"jsesc": "3.0.1",
"json2csv": "5.0.3",
"jsonwebtoken": "^8.5.1",
"less": "^3.11.1",
"lodash": "^4.17.15",
"logrotate-stream": "^0.2.5",
"lru-cache": "5.1.1",
"logrotate-stream": "^0.2.6",
"lru-cache": "6.0.0",
"material-design-lite": "^1.3.0",
"mime": "^2.2.0",
"mkdirp": "^0.5.1",
"mongodb": "3.4.0",
"morgan": "^1.9.1",
"mousetrap": "^1.6.1",
"mubsub-nbb": "^1.5.1",
"mime": "^2.4.4",
"mkdirp": "^1.0.4",
"mongodb": "3.6.2",
"morgan": "^1.10.0",
"mousetrap": "^1.6.5",
"@nodebb/bootswatch": "3.4.2",
"@nodebb/mubsub": "1.7.0",
"@nodebb/socket.io-adapter-mongo": "3.1.0",
"nconf": "^0.10.0",
"nodebb-plugin-composer-default": "6.3.20",
"nodebb-plugin-dbsearch": "4.0.7",
"nodebb-plugin-emoji": "^3.0.0",
"nodebb-plugin-composer-default": "6.4.4",
"nodebb-plugin-dbsearch": "4.1.2",
"nodebb-plugin-emoji": "^3.3.0",
"nodebb-plugin-emoji-android": "2.0.0",
"nodebb-plugin-markdown": "8.11.0",
"nodebb-plugin-mentions": "2.7.3",
"nodebb-plugin-markdown": "8.12.1",
"nodebb-plugin-mentions": "2.13.0",
"nodebb-plugin-soundpack-default": "1.0.0",
"nodebb-plugin-spam-be-gone": "0.6.7",
"nodebb-rewards-essentials": "0.1.2",
"nodebb-theme-lavender": "5.0.11",
"nodebb-theme-persona": "10.1.30",
"nodebb-theme-slick": "1.2.28",
"nodebb-theme-vanilla": "11.1.12",
"nodebb-widget-essentials": "4.0.17",
"nodemailer": "^6.0.0",
"passport": "^0.4.0",
"nodebb-plugin-spam-be-gone": "0.7.2",
"nodebb-rewards-essentials": "0.1.4",
"nodebb-theme-lavender": "5.0.14",
"nodebb-theme-persona": "10.2.60",
"nodebb-theme-slick": "1.2.39",
"nodebb-theme-vanilla": "11.2.22",
"nodebb-widget-essentials": "4.1.2",
"nodemailer": "^6.4.6",
"nprogress": "0.2.0",
"passport": "^0.4.1",
"passport-http-bearer": "^1.0.1",
"passport-local": "1.0.0",
"pg": "^7.4.0",
"pg-cursor": "^2.0.0",
"postcss": "7.0.21",
"pg": "^8.0.2",
"pg-cursor": "^2.1.9",
"postcss": "8.0.6",
"postcss-clean": "1.1.0",
"promise-polyfill": "^8.0.0",
"promise-polyfill": "^8.1.3",
"prompt": "^1.0.0",
"redis": "2.8.0",
"request": "2.88.0",
"rimraf": "3.0.0",
"redis": "3.0.2",
"request": "2.88.2",
"request-promise-native": "^1.0.8",
"requirejs": "2.3.6",
"rimraf": "3.0.2",
"rss": "^1.2.2",
"sanitize-html": "^1.16.3",
"semver": "^7.0.0",
"serve-favicon": "^2.4.5",
"sharp": "0.23.4",
"sitemap": "^5.0.0",
"sanitize-html": "^2.0.0",
"semver": "^7.2.1",
"serve-favicon": "^2.5.0",
"sharp": "0.26.2",
"sitemap": "^6.1.0",
"slideout": "1.0.1",
"socket.io": "2.3.0",
"socket.io-adapter-cluster": "^1.0.1",
"socket.io-adapter-mongo": "^2.0.4",
"socket.io-adapter-postgres": "^1.2.1",
"socket.io-client": "2.3.0",
"socket.io-redis": "5.2.0",
"socket.io-client": "2.3.1",
"socket.io-redis": "5.4.0",
"socketio-wildcard": "2.0.0",
"spdx-license-list": "^6.0.0",
"sortablejs": "1.10.2",
"spdx-license-list": "^6.1.0",
"spider-detector": "2.0.0",
"textcomplete": "^0.17.1",
"textcomplete.contenteditable": "^0.1.1",
"timeago": "^1.6.7",
"tinycon": "0.6.8",
"toobusy-js": "^0.5.1",
"uglify-es": "^3.3.9",
"validator": "12.1.0",
"winston": "3.2.1",
"validator": "13.1.17",
"visibilityjs": "2.0.2",
"winston": "3.3.3",
"xml": "^1.0.1",
"xregexp": "^4.1.1",
"xregexp": "^4.3.0",
"zxcvbn": "^4.4.2"
},
"devDependencies": {
"@commitlint/cli": "8.2.0",
"@commitlint/config-angular": "8.2.0",
"coveralls": "3.0.9",
"eslint": "6.7.0",
"eslint-config-airbnb-base": "14.0.0",
"eslint-plugin-import": "2.18.2",
"grunt": "1.0.4",
"@apidevtools/swagger-parser": "10.0.2",
"@commitlint/cli": "9.1.2",
"@commitlint/config-angular": "9.1.2",
"coveralls": "3.1.0",
"eslint": "7.11.0",
"eslint-config-airbnb-base": "14.2.0",
"eslint-plugin-import": "2.22.1",
"grunt": "1.3.0",
"grunt-contrib-watch": "1.1.0",
"husky": "3.1.0",
"jsdom": "15.2.1",
"lint-staged": "9.4.2",
"mocha": "6.2.2",
"husky": "4.3.0",
"jsdom": "16.4.0",
"lint-staged": "10.4.2",
"mocha": "8.2.0",
"mocha-lcov-reporter": "1.3.0",
"nyc": "14.1.1",
"smtp-server": "3.5.0"
"nyc": "15.1.0",
"smtp-server": "3.7.0"
},
"bugs": {
"url": "https://github.com/NodeBB/NodeBB/issues"
},
"engines": {
"node": ">=8"
"node": ">=10"
},
"maintainers": [
{

View File

@@ -1,21 +1,26 @@
'use strict';
var winston = require('winston');
var express = require('express');
var bodyParser = require('body-parser');
var fs = require('fs');
var path = require('path');
var childProcess = require('child_process');
var less = require('less');
var async = require('async');
var uglify = require('uglify-es');
var nconf = require('nconf');
var Benchpress = require('benchpressjs');
const winston = require('winston');
const express = require('express');
const bodyParser = require('body-parser');
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');
var app = express();
var server;
const Benchpress = require('benchpressjs');
const { paths } = require('../src/constants');
var formats = [
const app = express();
let server;
const formats = [
winston.format.colorize(),
];
@@ -42,50 +47,50 @@ winston.configure({
],
});
var web = module.exports;
const web = module.exports;
var scripts = [
const scripts = [
'node_modules/jquery/dist/jquery.js',
'public/vendor/xregexp/xregexp.js',
'public/vendor/xregexp/unicode/unicode-base.js',
'node_modules/xregexp/xregexp-all.js',
'public/src/modules/slugify.js',
'public/src/utils.js',
'public/src/installer/install.js',
'node_modules/zxcvbn/dist/zxcvbn.js',
];
var installing = false;
var success = false;
var error = false;
var launchUrl;
let installing = false;
let success = false;
let error = false;
let launchUrl;
web.install = function (port) {
web.install = async function (port) {
port = port || 4567;
winston.info('Launching web installer on port ' + port);
app.use(express.static('public', {}));
app.engine('tpl', function (filepath, options, callback) {
async.waterfall([
function (next) {
fs.readFile(filepath, 'utf-8', next);
},
function (buffer, next) {
Benchpress.compileParse(buffer.toString(), options, next);
},
], callback);
filepath = filepath.replace(/\.tpl$/, '.js');
Benchpress.__express(filepath, options, callback);
});
app.set('view engine', 'tpl');
app.set('views', path.join(__dirname, '../src/views'));
const viewsDir = path.join(paths.baseDir, 'build/public/templates');
app.set('views', viewsDir);
app.use(bodyParser.urlencoded({
extended: true,
}));
async.parallel([compileLess, compileJS, copyCSS, loadDefaults], function (err) {
if (err) {
winston.error(err);
}
try {
await Promise.all([
compileLess(),
compileJS(),
copyCSS(),
loadDefaults(),
]);
setupRoutes();
launchExpress(port);
});
} catch (err) {
winston.error(err.stack);
}
};
@@ -180,117 +185,97 @@ function install(req, res) {
});
}
function launch(req, res) {
res.json({});
server.close();
req.setTimeout(0);
var child;
async function launch(req, res) {
try {
res.json({});
server.close();
req.setTimeout(0);
var child;
if (!nconf.get('launchCmd')) {
child = childProcess.spawn('node', ['loader.js'], {
detached: true,
stdio: ['ignore', 'ignore', 'ignore'],
});
if (!nconf.get('launchCmd')) {
child = childProcess.spawn('node', ['loader.js'], {
detached: true,
stdio: ['ignore', 'ignore', 'ignore'],
});
console.log('\nStarting NodeBB');
console.log(' "./nodebb stop" to stop the NodeBB server');
console.log(' "./nodebb log" to view server output');
console.log(' "./nodebb restart" to restart NodeBB');
} else {
// Use launchCmd instead, if specified
child = childProcess.exec(nconf.get('launchCmd'), {
detached: true,
stdio: ['ignore', 'ignore', 'ignore'],
});
}
var filesToDelete = [
'installer.css',
'installer.min.js',
'bootstrap.min.css',
];
async.each(filesToDelete, function (filename, next) {
fs.unlink(path.join(__dirname, '../public', filename), next);
}, function (err) {
if (err) {
winston.warn('Unable to remove installer files');
console.log('\nStarting NodeBB');
console.log(' "./nodebb stop" to stop the NodeBB server');
console.log(' "./nodebb log" to view server output');
console.log(' "./nodebb restart" to restart NodeBB');
} else {
// Use launchCmd instead, if specified
child = childProcess.exec(nconf.get('launchCmd'), {
detached: true,
stdio: ['ignore', 'ignore', 'ignore'],
});
}
const filesToDelete = [
'installer.css',
'installer.min.js',
'bootstrap.min.css',
];
await Promise.all(
filesToDelete.map(
filename => fs.promises.unlink(path.join(__dirname, '../public', filename))
)
);
child.unref();
process.exit(0);
});
}
function compileLess(callback) {
fs.readFile(path.join(__dirname, '../public/less/install.less'), function (err, style) {
if (err) {
return winston.error('Unable to read LESS install file: ', err);
}
less.render(style.toString(), function (err, css) {
if (err) {
return winston.error('Unable to compile LESS: ', err);
}
fs.writeFile(path.join(__dirname, '../public/installer.css'), css.css, callback);
});
});
}
function compileJS(callback) {
var code = '';
async.eachSeries(scripts, function (srcPath, next) {
fs.readFile(path.join(__dirname, '..', srcPath), function (err, buffer) {
if (err) {
return next(err);
}
code += buffer.toString();
next();
});
}, function (err) {
if (err) {
return callback(err);
}
try {
var minified = uglify.minify(code, {
compress: false,
});
if (!minified.code) {
return callback(new Error('[[error:failed-to-minify]]'));
}
fs.writeFile(path.join(__dirname, '../public/installer.min.js'), minified.code, callback);
} catch (e) {
callback(e);
}
});
}
function copyCSS(next) {
async.waterfall([
function (next) {
fs.readFile(path.join(__dirname, '../node_modules/bootstrap/dist/css/bootstrap.min.css'), 'utf8', next);
},
function (src, next) {
fs.writeFile(path.join(__dirname, '../public/bootstrap.min.css'), src, next);
},
], next);
}
function loadDefaults(next) {
var setupDefaultsPath = path.join(__dirname, '../setup.json');
fs.access(setupDefaultsPath, fs.constants.F_OK | fs.constants.R_OK, function (err) {
if (err) {
// setup.json not found or inaccessible, proceed with no defaults
return setImmediate(next);
}
winston.info('[installer] Found setup.json, populating default values');
nconf.file({
file: setupDefaultsPath,
});
next();
} catch (err) {
winston.error(err.stack);
throw err;
}
}
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) });
await fs.promises.writeFile(path.join(__dirname, '../public/installer.css'), css.css);
} catch (err) {
winston.error('Unable to compile LESS: \n' + err.stack);
throw err;
}
}
async function compileJS() {
let code = '';
for (const srcPath of scripts) {
// eslint-disable-next-line no-await-in-loop
const buffer = await fs.promises.readFile(path.join(__dirname, '..', srcPath));
code += buffer.toString();
}
const minified = uglify.minify(code, {
compress: false,
});
if (!minified.code) {
throw new Error('[[error:failed-to-minify]]');
}
await fs.promises.writeFile(path.join(__dirname, '../public/installer.min.js'), minified.code);
}
async function copyCSS() {
const src = await fs.promises.readFile(
path.join(__dirname, '../node_modules/bootstrap/dist/css/bootstrap.min.css'), 'utf8'
);
await fs.promises.writeFile(path.join(__dirname, '../public/bootstrap.min.css'), src);
}
async function loadDefaults() {
const setupDefaultsPath = path.join(__dirname, '../setup.json');
try {
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') {
throw err;
}
}
winston.info('[installer] Found setup.json, populating default values');
nconf.file({
file: setupDefaultsPath,
});
}

View File

@@ -87,22 +87,22 @@ Loader.addWorkerEvents = function (worker) {
worker.on('message', function (message) {
if (message && typeof message === 'object' && message.action) {
switch (message.action) {
case 'restart':
console.log('[cluster] Restarting...');
Loader.restart();
break;
case 'pubsub':
workers.forEach(function (w) {
w.send(message);
});
break;
case 'socket.io':
workers.forEach(function (w) {
if (w !== worker) {
case 'restart':
console.log('[cluster] Restarting...');
Loader.restart();
break;
case 'pubsub':
workers.forEach(function (w) {
w.send(message);
}
});
break;
});
break;
case 'socket.io':
workers.forEach(function (w) {
if (w !== worker) {
w.send(message);
}
});
break;
}
}
});
@@ -231,7 +231,7 @@ fs.open(pathToConfig, 'r', function (err) {
cwd: process.cwd(),
});
fs.writeFileSync(pidFilePath, process.pid);
fs.writeFileSync(pidFilePath, String(process.pid));
}
async.series([

View File

@@ -5,7 +5,6 @@
"socket": true,
"ajaxify": true,
"config": true,
"RELATIVE_PATH": true,
"utils": true,
"overrides": true,
"componentHandler": true,
@@ -18,24 +17,24 @@
"jquery": true,
"amd": true,
"browser": true,
"es6": false
"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": 5,
"ecmaVersion": 6,
"ecmaFeatures": {
"arrowFunctions": false,
"classes": false,
"defaultParams": false,
"destructuring": false,
"experimentalObjectRestSpread": false,
"blockBindings": false,
"forOf": false,
@@ -49,9 +48,7 @@
"objectLiteralShorthandProperties": false,
"impliedStrict": false,
"restParams": false,
"spread": false,
"superInFunctions": false,
"templateStrings": false
"superInFunctions": false
}
}
}

View File

@@ -63,7 +63,6 @@
"socket": true,
"ajaxify": true,
"config": true,
"RELATIVE_PATH": true,
"utils": true,
"overrides": true,
"componentHandler": true,

View File

@@ -1,13 +1,13 @@
<html>
<head>
<title>Excessive Load Warning</title>
<link href='https://fonts.googleapis.com/css?family=Ubuntu:400,500,700' rel='stylesheet' type='text/css'>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type="text/css">
body {
background: #00A9EA;
color: white;
font-family: 'Ubuntu', sans-serif;
/* see public/less/admin/vars.less for documentation on system font family */
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
text-align: center;
-webkit-transform-style: preserve-3d;
-moz-transform-style: preserve-3d;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 13 KiB

16
public/images/logo.svg Normal file
View File

@@ -0,0 +1,16 @@
<svg xmlns="http://www.w3.org/2000/svg" width="321" height="75" viewBox="0 0 321 75">
<defs>
<radialGradient id="nodebb-a" cx="65.599%" cy="0%" r="169.036%" fx="65.599%" fy="0%" gradientTransform="matrix(-.5183 .5916 -.38031 -.80624 .996 -.388)">
<stop offset="0%" stop-color="#2A6CBE"/>
<stop offset="38.688%" stop-color="#2062BC"/>
<stop offset="49.182%" stop-color="#1F5FBC"/>
<stop offset="66.583%" stop-color="#1C5ABD"/>
<stop offset="85.354%" stop-color="#1956BC"/>
<stop offset="100%" stop-color="#1851BE"/>
</radialGradient>
</defs>
<g fill="none" transform="translate(1 1)">
<path fill="#000306" stroke="#000306" stroke-width=".275" d="M195.810017,20 C210.691849,20 221.256813,28.7272272 221.484017,45.845679 C221.490864,46.3615394 221.461776,47.1194739 221.396754,48.1194827 C221.328352,49.1714504 220.455158,49.9897119 219.400969,49.9897119 L179.110557,49.9897119 C179.110557,56.6336943 182.723978,64.2757202 196.378026,64.2757202 C204.088827,64.2757202 211.625406,61.928339 218.987763,57.2335766 L219.553745,56.8677968 C220.246813,56.4139645 221.17656,56.6079034 221.630392,57.3009716 C221.757029,57.4943637 221.837254,57.7144077 221.864806,57.943925 C222.131013,60.1615294 222.004084,61.5832211 221.484017,62.2089999 C220.452051,63.4507301 210.901843,73 196.378026,73 C180.58738,73 169,61.8765432 169,46.3909465 C169,31.3415638 180.019372,20 195.810017,20 Z M162.92733,0 C164.031899,-4.2495073e-16 164.92733,0.8954305 164.92733,2 L164.928075,44.1266361 C164.975781,44.8118124 165,45.5058194 165,46.2079256 C165,61.5334332 153.460581,73 138,73 C122.427386,73 111,61.5334332 111,46.2079256 C111,30.882418 122.427386,19.4158511 138,19.4158511 C144.981278,19.4158511 151.163029,21.7538895 155.843826,25.7295173 L155.843557,4.54188628 C155.843557,2.03347175 157.877029,4.60788274e-16 160.385444,0 L162.92733,0 Z M81,20 C96.4605809,20 108,31.3415638 108,46.5 C108,61.6584362 96.4605809,73 81,73 C65.4273859,73 54,61.6584362 54,46.5 C54,31.3415638 65.4273859,20 81,20 Z M27.324263,20 C41.6099773,20 50,29.1649049 50,41.7801268 L50,67.5 C50,69.4329966 48.4329966,71 46.5,71 L42.2494331,71 C41.1448636,71 40.2494331,70.1045695 40.2494331,69 L40.2494331,42.5348837 C40.2494331,34.3403805 35.8276644,28.6257928 26.3038549,28.6257928 C10.0816327,28.6257928 9.75718821,35.7795705 9.75069932,44.6831843 L9.75056689,71 L2,71 C0.8954305,71 1.3527075e-16,70.1045695 0,69 L0,35.2932975 L0,35.2932975 C0,24.3935718 19.1609977,20 27.324263,20 Z M81,28.7242798 C70.8049793,28.7242798 63.6348548,36.4670782 63.6348548,46.5 C63.6348548,56.3148148 70.8049793,64.2757202 81,64.2757202 C91.1950207,64.2757202 98.3651452,56.3148148 98.3651452,46.5 C98.3651452,36.4670782 91.1950207,28.7242798 81,28.7242798 Z M138,28.2362872 C127.804979,28.2362872 120.634855,36.0644241 120.634855,46.2079256 C120.634855,56.1309161 127.804979,64.179564 138,64.179564 C148.195021,64.179564 155.365145,56.1309161 155.365145,46.2079256 C155.365145,36.0644241 148.195021,28.2362872 138,28.2362872 Z M195.810017,28.7242798 C186.721876,28.7242798 180.473779,33.9588477 179.224159,41.8106996 L211.259858,41.8106996 C210.010238,33.9588477 204.443752,28.7242798 195.810017,28.7242798 Z"/>
<path fill="url(#nodebb-a)" d="M277,19 L276.999615,57.7303365 C276.99251,64.180962 276.88949,68.6242617 276.88949,73 L276.88949,73 L255.649055,73 C242.962262,73 236,67.06 236,57.7257143 C236,51.4771429 239.558488,46.9257143 245.1283,45.0742857 C240.564149,43.1457143 237.779243,38.8257143 237.779243,33.5028571 C237.779243,24.8628571 244.664149,19 256.732074,19 L256.732074,19 L277,19 Z M299.267926,19 C311.335851,19 318.220757,24.8628571 318.220757,33.5028571 C318.220757,38.8257143 315.435851,43.1457143 310.8717,45.0742857 C316.441512,46.9257143 320,51.4771429 320,57.7257143 C320,67.06 313.037738,73 300.350945,73 L279.11051,73 L279.11051,73 C279.11051,68.6242617 279.00749,64.180962 279.000385,57.7303365 L279,19 L299.267926,19 Z M266.092452,49.8571429 L256.499999,49.8571429 C250.156602,49.8571429 246.984904,52.2485714 246.984904,56.9542857 C246.984904,61.8914286 249.924527,64.36 255.726414,64.36 L255.726414,64.36 L260.754716,64.36 C264.777358,64.36 266.092452,62.4314286 266.092452,56.5685714 L266.092452,56.5685714 L266.092452,49.8571429 Z M299.500001,49.8571429 L289.907548,49.8571429 L289.907548,56.5685714 C289.907548,62.4314286 291.222642,64.36 295.245284,64.36 L300.273586,64.36 C306.075473,64.36 309.015096,61.8914286 309.015096,56.9542857 C309.015096,52.2485714 305.843398,49.8571429 299.500001,49.8571429 Z M266.169811,27.64 L257.350942,27.64 C251.703772,27.64 248.764149,30.1857143 248.764149,34.5057143 C248.764149,38.8257143 251.703772,41.3714286 257.350942,41.3714286 L257.350942,41.3714286 L266.169811,41.3714286 L266.169811,27.64 Z M298.649058,27.64 L289.830189,27.64 L289.830189,41.3714286 L298.649058,41.3714286 C304.296228,41.3714286 307.235851,38.8257143 307.235851,34.5057143 C307.235851,30.1857143 304.296228,27.64 298.649058,27.64 Z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.9 KiB

BIN
public/images/logo@3x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

BIN
public/images/touch/144.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

BIN
public/images/touch/192.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

BIN
public/images/touch/36.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
public/images/touch/48.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
public/images/touch/512.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

BIN
public/images/touch/72.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
public/images/touch/96.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@@ -1,3 +0,0 @@
/*
The following stylesheet is only included on pages that can execute javascript
*/

View File

@@ -2,6 +2,7 @@
"events": "أحداث",
"no-events": "لا توجد أحداث",
"control-panel": "لوحة تحكم الأحداث",
"delete-events": "Delete Events",
"filters": "Filters",
"filters-apply": "Apply Filters",
"filter-type": "Event Type",

View File

@@ -0,0 +1,79 @@
{
"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,7 +1,9 @@
{
"you-are-on": "Info - You are on <strong>%1:%2</strong>",
"you-are-on": "You are on <strong>%1:%2</strong>",
"ip": "IP <strong>%1</strong>",
"nodes-responded": "%1 nodes responded within %2ms!",
"host": "host",
"primary": "primary / run jobs",
"pid": "pid",
"nodejs": "nodejs",
"online": "online",

View File

@@ -1,4 +1,5 @@
{
"trending": "Trending",
"installed": "منصبة",
"active": "مفعلة",
"inactive": "معطلة",

View File

@@ -1,7 +1,7 @@
{
"available": "Available Widgets",
"explanation": "Select a widget from the dropdown menu and then drag and drop it into a template's widget area on the left.",
"none-installed": "No widgets found! Activate the essential widgets plugin in the <a href=\"%1\">plugins</a> control panel.",
"none-installed": "No widgets found! Activate the widget essentials plugin in the <a href=\"%1\">plugins</a> control panel.",
"clone-from": "Clone widgets from",
"containers.available": "Available Containers",
"containers.explanation": "Drag and drop on top of any active widget",

View File

@@ -11,6 +11,7 @@
"num-recent-replies": "# of Recent Replies",
"ext-link": "External Link",
"is-section": "Treat this category as a section",
"tag-whitelist": "Tag Whitelist",
"upload-image": "Upload Image",
"delete-image": "Remove",
"category-image": "Category Image",
@@ -26,6 +27,8 @@
"enable": "Enable",
"disable": "Disable",
"edit": "Edit",
"analytics": "Analytics",
"view-category": "View category",
"select-category": "Select Category",
"set-parent-category": "Set Parent Category",
@@ -63,7 +66,6 @@
"alert.create-success": "Category successfully created!",
"alert.none-active": "You have no active categories.",
"alert.create": "Create a Category",
"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
"alert.confirm-purge": "<p class=\"lead\">Do you really want to purge this category \"%1\"?</p><h5><strong class=\"text-danger\">Warning!</strong> All topics and posts in this category will be purged!</h5> <p class=\"help-block\">Purging a category will remove all topics and posts, and delete the category from the database. If you want to remove a category <em>temporarily</em>, you'll want to \"disable\" the category instead.</p>",
"alert.purge-success": "Category purged!",
"alert.copy-success": "Settings Copied!",
@@ -75,7 +77,9 @@
"alert.user-search": "Search for a user here...",
"alert.find-group": "Find a Group",
"alert.group-search": "Search for a group here...",
"alert.not-enough-whitelisted-tags": "Whitelisted tags are less than minimum tags, you need to create more whitelisted tags!",
"collapse-all": "Collapse All",
"expand-all": "Expand All",
"disable-on-create": "Disable on create"
"disable-on-create": "Disable on create",
"no-matches": "No matches"
}

View File

@@ -9,7 +9,7 @@
"default": "System default",
"default-help": "<em>System default</em> means the user has not explicitly overridden the global forum setting for digests, which is currently: &quot;<strong>%1</strong>&quot;",
"resend": "Resend Digest",
"resend-all-confirm": "Are you sure you wish to mnually execute this digest run?",
"resend-all-confirm": "Are you sure you wish to manually execute this digest run?",
"resent-single": "Manual digest resend completed",
"resent-day": "Daily digest resent",
"resent-week": "Weekly digest resent",
@@ -18,4 +18,4 @@
"manual-run": "Manual digest run:",
"no-delivery-data": "No delivery data found"
}
}

View File

@@ -8,6 +8,9 @@
"hidden": "Hidden",
"private": "Private",
"edit": "Edit",
"delete": "Delete",
"privileges": "Privileges",
"download-csv": "CSV",
"search-placeholder": "Search",
"create": "Create Group",
"description-placeholder": "A short description about your group",

View File

@@ -1,8 +1,9 @@
{
"global": "Global",
"global.no-users": "No user-specific global privileges.",
"admin": "Admin",
"group-privileges": "Group Privileges",
"user-privileges": "User Privileges",
"edit-privileges": "Edit Privileges",
"chat": "Chat",
"upload-images": "Upload Images",
"upload-files": "Upload Files",
@@ -31,5 +32,22 @@
"downvote-posts": "Downvote Posts",
"delete-topics": "Delete Topics",
"purge": "Purge",
"moderate": "Moderate"
"moderate": "Moderate",
"admin-dashboard": "Dashboard",
"admin-categories": "Categories",
"admin-privileges": "Privileges",
"admin-users": "Users",
"admin-settings": "Settings",
"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
"alert.confirm-save": "Please confirm your intention to save these privileges",
"alert.saved": "Privilege changes saved and applied",
"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
"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.no-undo": "<em>This action cannot be undone.</em>",
"alert.admin-warning": "Administrators implicitly get all privileges"
}

View File

@@ -3,17 +3,16 @@
"bg-color": "Background Colour",
"text-color": "Text Colour",
"create-modify": "Create & Modify Tags",
"description": "Select tags via clicking and/or dragging, use shift to select multiple.",
"description": "Select tags by clicking or dragging, use <code>CTRL</code> to select multiple tags.",
"create": "Create Tag",
"modify": "Modify Tags",
"rename": "Rename Tags",
"delete": "Delete Selected Tags",
"search": "Search for tags...",
"settings": "Click <a href=\"%1\">here</a> to visit the tag settings page.",
"settings": "Tags Settings",
"name": "Tag Name",
"alerts.editing-multiple": "Editing multiple tags",
"alerts.editing-x": "Editing \"%1\" tag",
"alerts.editing": "Editing tag(s)",
"alerts.confirm-delete": "Do you want to delete the selected tags?",
"alerts.update-success": "Tag Updated!"
}

View File

@@ -12,23 +12,18 @@
"unban": "Unban User(s)",
"reset-lockout": "Reset Lockout",
"reset-flags": "Reset Flags",
"delete": "Delete User(s)",
"purge": "Delete User(s) and Content",
"delete": "Delete <strong>User(s)</strong>",
"delete-content": "Delete User(s) <strong>Content</strong>",
"purge": "Delete <strong>User(s)</strong> and <strong>Content</strong>",
"download-csv": "Download CSV",
"manage-groups": "Manage Groups",
"add-group": "Add Group",
"invite": "Invite",
"new": "New User",
"pills.latest": "Latest Users",
"filter-by": "Filter by",
"pills.unvalidated": "Not Validated",
"pills.no-posts": "No Posts",
"pills.top-posters": "Top Posters",
"pills.top-rep": "Most Reputation",
"pills.inactive": "Inactive",
"pills.flagged": "Most Flagged",
"pills.validated": "Validated",
"pills.banned": "Banned",
"pills.search": "User Search",
"50-per-page": "50 per page",
"100-per-page": "100 per page",
@@ -93,9 +88,11 @@
"alerts.validate-email-success": "Emails validated",
"alerts.validate-force-password-reset-success": "User(s) passwords have been reset and their existing sessions have been revoked.",
"alerts.password-reset-confirm": "Do you want to send password reset email(s) to these user(s)?",
"alerts.confirm-delete": "<b>Warning!</b><br/>Do you really want to delete user(s)?<br/> This action is not reversable! Only the user account will be deleted, their posts and topics will remain.",
"alerts.confirm-delete": "<strong>Warning!</strong><p>Do you really want to delete <strong>user(s)</strong>?</p><p>This action is not reversible! Only the user account will be deleted, their posts and topics will remain.</p>",
"alerts.delete-success": "User(s) Deleted!",
"alerts.confirm-purge": "<b>Warning!</b><br/>Do you really want to delete user(s) and their content?<br/> This action is not reversable! All user data and content will be erased!",
"alerts.confirm-delete-content": "<strong>Warning!</strong><p>Do you really want to delete these user(s) <strong>content</strong>?</p><p>This action is not reversible! The users' accounts will remain, but their posts and topics will be deleted.</p>",
"alerts.delete-content-success": "User(s) Content Deleted!",
"alerts.confirm-purge": "<strong>Warning!</strong><p>Do you really want to delete <strong>user(s) and their content</strong>?</p><p>This action is not reversible! All user data and content will be erased!</p>",
"alerts.create": "Create User",
"alerts.button-create": "Create",
"alerts.button-cancel": "Cancel",
@@ -105,5 +102,5 @@
"alerts.prompt-email": "Emails: ",
"alerts.email-sent-to": "An invitation email has been sent to %1",
"alerts.x-users-found": "%1 user(s) found! Search took %2 ms."
"alerts.x-users-found": "%1 user(s) found, (%2 seconds)"
}

View File

@@ -1,11 +1,6 @@
{
"dashboard": "Dashboard",
"section-general": "عام",
"general/dashboard": "اللوحة الرئيسية",
"general/homepage": "الصفحة الرئيسية",
"general/navigation": "التصفح",
"general/languages": "اللغات",
"general/sounds": "الأصوات",
"general/social": "شبكات التواصل",
"section-manage": "إدارة",
"manage/categories": "الأقسام",
@@ -22,17 +17,22 @@
"section-settings": "إعدادات",
"settings/general": "عامة",
"settings/reputation": "السمعة",
"settings/homepage": "Home Page",
"settings/navigation": "Navigation",
"settings/reputation": "Reputation & Flags",
"settings/email": "البريد الإلكتروني",
"settings/user": "الأعضاء",
"settings/group": "المجموعات",
"settings/user": "Users",
"settings/group": "Groups",
"settings/guest": "الزوار",
"settings/uploads": "الرفع",
"settings/post": "المشاركة",
"settings/chat": "الدردشة",
"settings/languages": "Languages",
"settings/post": "Posts",
"settings/chat": "Chats",
"settings/pagination": "ترقيم الصفحات",
"settings/tags": "الكلمات المفتاحية",
"settings/notifications": "التنبيهات",
"settings/sounds": "Sounds",
"settings/social": "Social",
"settings/cookies": "Cookies",
"settings/web-crawler": "Web Crawler",
"settings/sockets": "Sockets",
@@ -70,7 +70,7 @@
"logout": "Log out",
"view-forum": "View Forum",
"search.placeholder": "Search for settings",
"search.placeholder": "Press &quot;/&quot; to search for settings",
"search.no-results": "No results...",
"search.search-forum": "Search the forum for <strong></strong>",
"search.keep-typing": "Type more to see results...",

View File

@@ -5,6 +5,8 @@
"maintenance-mode.message": "Maintenance Message",
"headers": "Headers",
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
"headers.csp-frame-ancestors-help": "'none', 'self'(default) or list of URIs to allow.",
"headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB",
"headers.acao": "Access-Control-Allow-Origin",
"headers.acao-regex": "Access-Control-Allow-Origin Regular Expression",
@@ -15,14 +17,24 @@
"headers.acah": "Access-Control-Allow-Headers",
"hsts": "Strict Transport Security",
"hsts.enabled": "Enabled HSTS (recommended)",
"hsts.maxAge": "HSTS Max Age",
"hsts.subdomains": "Include subdomains in HSTS header",
"hsts.preload": "Allow preloading of HSTS header",
"hsts.help": "If enabled, an HSTS header will be set for this site. You can elect to include subdomains and preloading flags in your header. If in doubt, you can leave these unchecked. <a href=\"%1\">More information <i class=\"fa fa-external-link\"></i></a>",
"traffic-management": "Traffic Management",
"traffic.help": "NodeBB deploys equipped with a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.",
"traffic.help": "NodeBB uses a module that automatically denies requests in high-traffic situations. You can tune these settings here, although the defaults are a good starting point.",
"traffic.enable": "Enable Traffic Management",
"traffic.event-lag": "Event Loop Lag Threshold (in milliseconds)",
"traffic.event-lag-help": "Lowering this value decreases wait times for page loads, but will also show the \"excessive load\" message to more users. (Restart required)",
"traffic.lag-check-interval": "Check Interval (in milliseconds)",
"traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)"
"traffic.lag-check-interval-help": "Lowering this value causes NodeBB to become more sensitive to spikes in load, but may also cause the check to become too sensitive. (Restart required)",
"sockets.settings": "WebSocket Settings",
"sockets.max-attempts": "Max Reconnection Attempts",
"sockets.default-placeholder": "Default: %1",
"sockets.delay": "Reconnection Delay",
"analytics.settings": "Analytics Settings",
"analytics.max-cache": "Analytics Cache Max Value",
"analytics.max-cache-help": "On high-traffic installs, the cache could be exhausted continuously if there are more concurrent active users than the Max Cache value. (Restart required)"
}

View File

@@ -6,6 +6,7 @@
"max-length": "Maximum length of chat messages",
"max-room-size": "Maximum number of users in chat rooms",
"delay": "Time between chat messages in milliseconds",
"notification-delay": "Notification delay for chat messages. (0 for no delay)",
"restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)",
"restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)"
}

View File

@@ -8,5 +8,6 @@
"consent.blank-localised-default": "Leave blank to use NodeBB localised defaults",
"settings": "Settings",
"cookie-domain": "Session cookie domain",
"max-user-sessions": "Max active sessions per user",
"blank-default": "Leave blank for default"
}

View File

@@ -4,10 +4,7 @@
"address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.",
"from": "From Name",
"from-help": "The from name to display in the email.",
"sendmail-rate-limit": "Send <em>X</em> emails...",
"sendmail-rate-delta": "... every <em>X</em> milliseconds",
"sendmail-rate-help": "Instructs the NodeBB mailer to limit the number of messages sent at once in order to not overwhelm email receiving services. These options do not apply if SMTP Transport is enabled (below).",
"smtp-transport": "SMTP Transport",
"smtp-transport.enabled": "Use an external email server to send emails",
"smtp-transport-help": "You can select from a list of well-known services or enter a custom one.",
@@ -25,6 +22,8 @@
"smtp-transport.username": "Username",
"smtp-transport.username-help": "<b>For the Gmail service,</b> enter the full email address here, especially if you are using a Google Apps managed domain.",
"smtp-transport.password": "Password",
"smtp-transport.pool": "Enable pooled connections",
"smtp-transport.pool-help": "Pooling connections prevents NodeBB from creating a new connection for every email. This option only applies if SMTP Transport is enabled.",
"template": "Edit Email Template",
"template.select": "Select Email Template",

View File

@@ -1,35 +1,44 @@
{
"site-settings": "Site Settings",
"title": "Site Title",
"title.url": "URL",
"site-settings": "اعدادات الموقع",
"title": "عنوان الموقع",
"title.short": "عنوان قصير",
"title.short-placeholder": "ان لم تقم بكتابة عنوان مختصر, سيتم استخدام عنوان الموقع الكلي",
"title.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.name": "Your Community Name",
"title.name": "اسم المنتدي",
"title.show-in-header": "Show Site Title in Header",
"browser-title": "Browser Title",
"browser-title": "عنوان المتصفح",
"browser-title-help": "If no browser title is specified, the site title will be used",
"title-layout": "Title Layout",
"title-layout-help": "Define how the browser title will be structured ie. &#123;pageTitle&#125; | &#123;browserTitle&#125;",
"description.placeholder": "A short description about your community",
"description": "Site Description",
"keywords": "Site Keywords",
"description": "وصف الموقع",
"keywords": "الكلمات الدليله للموقع",
"keywords-placeholder": "Keywords describing your community, comma-separated",
"logo": "Site Logo",
"logo.image": "Image",
"logo": "شعار الموقع",
"logo.image": "صورة",
"logo.image-placeholder": "Path to a logo to display on forum header",
"logo.upload": "Upload",
"logo.url": "URL",
"logo.upload": "رفع",
"logo.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.alt-text": "Alt Text",
"logo.alt-text": "نص بديل",
"log.alt-text-placeholder": "Alternative text for accessibility",
"favicon": "Favicon",
"favicon.upload": "Upload",
"touch-icon": "Homescreen/Touch Icon",
"touch-icon.upload": "Upload",
"touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.",
"favicon": "صورة المفضله",
"favicon.upload": "رفع",
"pwa": "Progressive Web App",
"touch-icon": "Touch Icon",
"touch-icon.upload": "رفع",
"touch-icon.help": "Recommended size and format: 512x512, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.",
"maskable-icon": "Maskable (Homescreen) Icon",
"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 default sort by",
"outgoing-links.whitelist": "Domains to whitelist for bypassing the warning page"
"search-default-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"
}

View File

@@ -3,6 +3,7 @@
"private-groups": "Private Groups",
"private-groups.help": "If enabled, joining of groups requires the approval of the group owner <em>(Default: enabled)</em>",
"private-groups.warning": "<strong>Beware!</strong> If this option is disabled and you have private groups, they automatically become public.",
"allow-multiple-badges": "Allow Multiple Badges",
"allow-multiple-badges-help": "This flag can be used to allow users to select multiple group badges, requires theme support.",
"max-name-length": "Maximum Group Name Length",
"max-title-length": "Maximum Group Title Length",

View File

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

View File

@@ -2,6 +2,5 @@
"notifications": "Notifications",
"welcome-notification": "Welcome Notification",
"welcome-notification-link": "Welcome Notification Link",
"welcome-notification-uid": "Welcome Notification User (UID)",
"notification-alert-timeout": "Notification Alert Timeout"
"welcome-notification-uid": "Welcome Notification User (UID)"
}

View File

@@ -42,6 +42,7 @@
"unread.cutoff": "Unread cutoff days",
"unread.min-track-last": "Minimum posts in topic before tracking last read",
"recent": "Recent Settings",
"recent.max-topics": "Maximum topics on /recent",
"recent.categoryFilter.disable": "Disable filtering of topics in ignored categories on the /recent page",
"signature": "Signature Settings",
"signature.disable": "Disable signatures",

View File

@@ -5,10 +5,16 @@
"votes-are-public": "All Votes Are Public",
"thresholds": "Activity Thresholds",
"min-rep-downvote": "Minimum reputation to downvote posts",
"downvotes-per-day": "Downvotes per day (set to 0 for unlimited downvotes)",
"downvotes-per-user-per-day": "Downvotes per user per day (set to 0 for unlimited downvotes)",
"min-rep-flag": "Minimum reputation to flag posts",
"min-rep-website": "Minimum reputation to add \"Website\" to user profile",
"min-rep-aboutme": "Minimum reputation to add \"About me\" to user profile",
"min-rep-signature": "Minimum reputation to add \"Signature\" to user profile",
"min-rep-profile-picture": "Minimum reputation to add \"Profile Picture\" to user profile",
"min-rep-cover-picture": "Minimum reputation to add \"Cover Picture\" to user profile"
"min-rep-cover-picture": "Minimum reputation to add \"Cover Picture\" to user profile",
"flags": "Flag Settings",
"flags.limit-per-target": "Maximum number of times something can be flagged",
"flags.limit-per-target-placeholder": "Default: 0"
}

View File

@@ -0,0 +1,9 @@
{
"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

@@ -1,10 +1,10 @@
{
"tag": "Tag Settings",
"link-to-manage": "Manage Tags",
"min-per-topic": "Minimum Tags per Topic",
"max-per-topic": "Maximum Tags per Topic",
"min-length": "Minimum Tag Length",
"max-length": "Maximum Tag Length",
"goto-manage": "Click here to visit the tag management page.",
"related-topics": "Related Topics",
"max-related-topics": "Maximum related topics to display (if supported by theme)"
}

View File

@@ -9,7 +9,7 @@
"allow-login-with.email": "البريد الالكتروني فقط",
"account-settings": "إعدادت الحساب",
"gdpr_enabled": "Enable GDPR consent collection",
"gdpr_enabled_help": "When enabled, all new registrants will be required to explicitly give consent for data collection and usage under the <a href=\"https://eugdpr.org/the-regulation/gdpr-faqs/\">General Data Protection Regulation (GDPR)</a>. <strong>Note</strong>: Enabling GDPR does not force pre-existing users to provide consent. To do so, you will need to install the GDPR plugin.",
"gdpr_enabled_help": "When enabled, all new registrants will be required to explicitly give consent for data collection and usage under the <a href=\"https://ec.europa.eu/info/priorities/justice-and-fundamental-rights/data-protection/2018-reform-eu-data-protection-rules/eu-data-protection-rules_en\">General Data Protection Regulation (GDPR)</a>. <strong>Note</strong>: Enabling GDPR does not force pre-existing users to provide consent. To do so, you will need to install the GDPR plugin.",
"disable-username-changes": "عدم السماح بتغيير اسم المستخدم",
"disable-email-changes": "عدم السماح بتغيير البريد الالكتروني",
"disable-password-changes": "عدم السماح بتغيير كلمة المرور",
@@ -76,4 +76,4 @@
"categoryWatchState.watching": "Watching",
"categoryWatchState.notwatching": "Not Watching",
"categoryWatchState.ignoring": "Ignoring"
}
}

View File

@@ -21,6 +21,8 @@
"reset.notify.text1": "نحيطك علما أن كلمة مرورك قد تم تغييرها في %1",
"reset.notify.text2": "إن لم يكن لديك علم بهذا، المرجو إشعار مدبر النظام بأسرع مايمكن.",
"digest.latest_topics": "آخر المستجدات من %1",
"digest.top-topics": "Top topics from %1",
"digest.popular-topics": "Popular topics from %1",
"digest.cta": "انقر هنا لمشاهدة %1",
"digest.unsub.info": "تم إرسال هذا الإشعار بآخر المستجدات وفقا لخيارات تسجيلكم.",
"digest.day": "يوم",

View File

@@ -26,6 +26,7 @@
"invalid-pagination-value": "رقم الصفحة غير صحيح ، يجب أن يكون بين %1 و %2 .",
"username-taken": "اسم المستخدم مأخوذ",
"email-taken": "البريد الالكتروني مأخوذ",
"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-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.",
@@ -138,8 +139,13 @@
"not-enough-reputation-min-rep-signature": "You do not have enough reputation to add a signature",
"not-enough-reputation-min-rep-profile-picture": "You do not have enough reputation to add a profile picture",
"not-enough-reputation-min-rep-cover-picture": "You do not have enough reputation to add a cover picture",
"already-flagged": "لقد بلغت عن هذه المشاركة من قبل.",
"post-already-flagged": "You have already flagged this post",
"user-already-flagged": "You have already flagged this user",
"post-flagged-too-many-times": "This post has been flagged by others already",
"user-flagged-too-many-times": "This user has been flagged by others already",
"self-vote": "You cannot vote on your own post",
"too-many-downvotes-today": "You can only downvote %1 times a day",
"too-many-downvotes-today-user": "You can only downvote a user %1 times a day",
"reload-failed": "المنتدى واجه مشكلة أثناء إعادة التحميل: \"%1\". سيواصل المنتدى خدمة العملاء السابقين لكن يجب عليك إلغاء أي تغيير قمت به قبل إعادة التحميل.",
"registration-error": "حدث خطأ أثناء التسجيل",
"parse-error": "حدث خطأ ما أثناء تحليل استجابة الخادم",
@@ -157,10 +163,12 @@
"invalid-session-text": "يبدو أن فترة التسجيل لم تعد قائمة او هي غير مطابقة مع الخادم. يرجى إعادة تحميل هذه الصفحة.",
"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!",
"cannot-block-self": "You cannot block yourself!",
"cannot-block-privileged": "You cannot block administrators or global moderators",
"cannot-block-guest": "Guest are not able to block other users",
"already-blocked": "This user is already blocked",
"already-unblocked": "This user is already unblocked",
"no-connection": "There seems to be a problem with your internet connection"
"no-connection": "There seems to be a problem with your internet connection",
"plugin-not-whitelisted": "Unable to install plugin &ndash; only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP"
}

View File

@@ -1,56 +1,71 @@
{
"state": "State",
"reporter": "Reporter",
"reported-at": "Reported At",
"description": "Description",
"state": "الحالة",
"reports": "Reports",
"first-reported": "First Reported",
"no-flags": "Hooray! No flags found.",
"assignee": "Assignee",
"update": "Update",
"updated": "Updated",
"assignee": "المحال إليه",
"update": "تحديث",
"updated": "تم التحديث",
"target-purged": "The content this flag referred to has been purged and is no longer available.",
"graph-label": "Daily Flags",
"quick-filters": "Quick Filters",
"filter-active": "There are one or more filters active in this list of flags",
"filter-reset": "Remove Filters",
"filters": "Filter Options",
"filter-reset": "ازالة الفلاتر",
"filters": "خيارات الفلتر",
"filter-reporterId": "Reporter UID",
"filter-targetUid": "Flagged UID",
"filter-type": "Flag Type",
"filter-type-all": "All Content",
"filter-type-post": "Post",
"filter-type-user": "User",
"filter-state": "State",
"filter-type": "عنوان العلامة",
"filter-type-all": "كل المحتوي",
"filter-type-post": "مشاركة",
"filter-type-user": "مستخدم",
"filter-state": "الحالة",
"filter-assignee": "Assignee UID",
"filter-cid": "Category",
"filter-quick-mine": "Assigned to me",
"filter-cid-all": "All categories",
"apply-filters": "Apply Filters",
"more-filters": "More Filters",
"quick-links": "Quick Links",
"quick-actions": "اجراءات سريعه",
"flagged-user": "Flagged User",
"view-profile": "View Profile",
"start-new-chat": "Start New Chat",
"view-profile": "مشاهدة الملف الشخصي",
"start-new-chat": "بدء محادثه جديده",
"go-to-target": "View Flag Target",
"assign-to-me": "Assign To Me",
"delete-post": "حذف المشاركة",
"purge-post": "Purge Post",
"restore-post": "استرجاع المشاركة",
"user-view": "View Profile",
"user-edit": "Edit Profile",
"user-view": "مشاهدة الملف الشخصي",
"user-edit": "تعديل الملف الشخصي",
"notes": "Flag Notes",
"add-note": "Add Note",
"add-note": "اضافة ملاحظة",
"no-notes": "No shared notes.",
"delete-note-confirm": "Are you sure you want to delete this flag note?",
"note-added": "Note Added",
"note-deleted": "Note Deleted",
"history": "Flag History",
"back": "Back to Flags List",
"history": "Account &amp; Flag History",
"no-history": "No flag history.",
"state-all": "All states",
"state-open": "New/Open",
"state-wip": "Work in Progress",
"state-resolved": "Resolved",
"state-rejected": "Rejected",
"state-resolved": "تم حلها",
"state-rejected": "تم رفضها",
"no-assignee": "Not Assigned",
"note-added": "Note Added",
"sort": "Sort by",
"sort-newest": "Newest first",
"sort-oldest": "Oldest first",
"sort-reports": "Most reports",
"sort-all": "All flag types...",
"sort-posts-only": "Posts only...",
"sort-downvotes": "Most downvotes",
"sort-upvotes": "Most upvotes",
"sort-replies": "Most replies",
"modal-title": "Report Inappropriate Content",
"modal-body": "Please specify your reason for flagging %1 %2 for review. Alternatively, use one of the quick report buttons if applicable.",
@@ -62,5 +77,9 @@
"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."
"modal-submit-confirm-text-help": "Submitting a quick report will overwrite any custom reasons defined.",
"bulk-actions": "Bulk Actions",
"bulk-resolve": "Resolve Flag(s)",
"bulk-success": "%1 flags updated"
}

View File

@@ -30,6 +30,7 @@
"header.unread": "غير مقروء",
"header.tags": "وسم",
"header.popular": "الأكثر شهرة",
"header.top": "Top",
"header.users": "المستخدمين",
"header.groups": "المجموعات",
"header.chats": "المحادثات",
@@ -51,13 +52,17 @@
"users": "الأعضاء",
"topics": "المواضيع",
"posts": "المشاركات",
"x-posts": "%1 posts",
"best": "الأفضل",
"votes": "Votes",
"x-votes": "%1 votes",
"voters": "Voters",
"upvoters": "الموافقين",
"upvoted": "مصوت بالموجب",
"downvoters": "مصوتين بالسالب",
"downvoted": "مصوت بالسالب",
"views": "المشاهدات",
"posters": "Posters",
"reputation": "السمعة",
"lastpost": "Last post",
"firstpost": "First post",

View File

@@ -1,6 +1,7 @@
{
"chat.chatting_with": "Chat with",
"chat.placeholder": "أكتب رسالة دردشة هنا، اضغط ENTER للإرسال",
"chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
"chat.send": "أرسل",
"chat.no_active": "لا يوجد لديك دردشات نشطة.",
"chat.user_typing": "%1 يكتب رسالة...",
@@ -12,6 +13,7 @@
"chat.recent-chats": "آخر الدردشات",
"chat.contacts": "الأصدقاء",
"chat.message-history": "تاريخ الرسائل",
"chat.message-deleted": "Message Deleted",
"chat.options": "Chat options",
"chat.pop-out": "افتح الدردشة في نافذة خاصة",
"chat.minimize": "Minimize",
@@ -57,6 +59,7 @@
"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",
"bootbox.ok": "OK",
"bootbox.cancel": "إلغاء",
"bootbox.confirm": "تأكيد",

View File

@@ -35,6 +35,7 @@
"user_posted_to_dual": "<strong>%1</strong> and <strong>%2</strong> have posted replies to: <strong>%3</strong>",
"user_posted_to_multiple": "<strong>%1</strong> and %2 others have posted replies to: <strong>%3</strong>",
"user_posted_topic": "<strong>%1</strong> أنشأ موضوعًا جديدًا: <strong>%2</strong>",
"user_edited_post": "<strong>%1</strong> has edited a post in <strong>%2</strong>",
"user_started_following_you": "<strong>%1</strong> صار يتابعك.",
"user_started_following_you_dual": "<strong>%1</strong> and <strong>%2</strong> started following you.",
"user_started_following_you_multiple": "<strong>%1</strong> and %2 others started following you.",
@@ -42,6 +43,9 @@
"new_register_multiple": "There are <strong>%1</strong> registration requests awaiting review.",
"flag_assigned_to_you": "تم تخصيص العلامة 1% لك",
"post_awaiting_review": "Post awaiting review",
"profile-exported": "<strong>%1</strong> profile exported, click to download",
"posts-exported": "<strong>%1</strong> posts exported, click to download",
"uploads-exported": "<strong>%1</strong> uploads exported, click to download",
"email-confirmed": "تم التحقق من عنوان البريد الإلكتروني",
"email-confirmed-message": "شكرًا على إثبات صحة عنوان بريدك الإلكتروني. صار حسابك مفعلًا بالكامل.",
"email-confirm-error-message": "حدث خطأ أثناء التحقق من عنوان بريدك الإلكتروني. ربما رمز التفعيل خاطئ أو انتهت صلاحيته.",
@@ -53,6 +57,7 @@
"notificationType_upvote": "عندما يوافقك احدهم على منشورك",
"notificationType_new-topic": "When someone you follow posts a topic",
"notificationType_new-reply": "When a new reply is posted in a topic you are watching",
"notificationType_post-edit": "When a post is edited in a topic you are watching",
"notificationType_follow": "When someone starts following you",
"notificationType_new-chat": "When you receive a chat message",
"notificationType_group-invite": "When you receive a group invite",

View File

@@ -7,6 +7,7 @@
"wrong_reset_code.message": "رمز إعادة التعين غير صحيح، يرجى المحاولة مرة أخرى أو <a href='/reset'>اطلب رمزا جديدا</a>",
"new_password": "كلمة المرور الجديدة",
"repeat_password": "تأكيد كلمة المرور",
"changing_password": "Changing Password",
"enter_email": "يرجى إدخال <strong>عنوان البريد الإلكتروني</strong> الخاص بك وسوف نرسل لك رسالة بالبريد الالكتروني مع تعليمات حول كيفية إستعادة حسابك.",
"enter_email_address": "ادخل عنوان البريد الإلكتروني",
"password_reset_sent": "If the specified address corresponds to an existing user account, a password reset email was sent. Please note that only one email will be sent per minute.",

View File

@@ -44,5 +44,6 @@
"search-preferences-saved": "تم حفظ تفضيلات البحث",
"search-preferences-cleared": "تم ازالة تفضيلات البحث",
"show-results-as": "عرض النتائج كـ",
"see-more-results": "See more results (%1)"
"see-more-results": "See more results (%1)",
"search-in-category": "Search in \"%1\""
}

View File

@@ -3,5 +3,6 @@
"tags": "الكلمات الدلالية",
"enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
"enter_tags_here_short": "أدخل الكلمات الدلالية...",
"no_tags": "لا يوجد كلمات دلالية بعد."
"no_tags": "لا يوجد كلمات دلالية بعد.",
"select_tags": "Select Tags"
}

View File

@@ -1,7 +1,5 @@
{
"topic": "موضوع",
"topic_id": "معرف الموضوع",
"topic_id_placeholder": "أدخل معرف الموضوع",
"no_topics_found": "لا توجد مواضيع !",
"no_posts_found": "لا توجد مشاركات!",
"post_is_deleted": "هذه المشاركة محذوفة!",
@@ -36,8 +34,11 @@
"ban-ip": "Ban IP",
"view-history": "Edit History",
"bookmark_instructions": "اضغط هنا للعودة لأخر مشاركة مقروءة في الموضوع",
"flag_title": "إشعار بمشاركة مخلة.",
"merged_message": "This topic has been merged into <a href=\"/topic/%1\">%2</a>",
"flag-post": "Flag this post",
"flag-user": "Flag this user",
"already-flagged": "Already Flagged",
"view-flag-report": "View Flag Report",
"merged_message": "This topic has been merged into <a href=\"%1\">%2</a>",
"deleted_message": "هذه المشاركة محذوفة. فقط من لهم صلاحية الإشراف على ا لمشاركات يمكنهم معاينتها.",
"following_topic.message": "ستستلم تنبيها عند كل مشاركة جديدة في هذا الموضوع.",
"not_following_topic.message": "You will see this topic in the unread topics list, but you will not receive notifications when somebody posts to this topic.",
@@ -78,7 +79,12 @@
"thread_tools.purge_confirm": "هل أنت متأكد أنك تريد تطهير هذا الموضوع؟",
"thread_tools.merge_topics": "Merge Topics",
"thread_tools.merge": "Merge",
"topic_move_success": "تم نقل هذا الموضوع إلى %1 بنجاح",
"topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
"topic_move_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
"topic_move_all_success": "All topics will be moved to \"%1\" shortly. Click here to undo.",
"topic_move_undone": "Topic move undone",
"topic_move_posts_success": "Posts will be moved shortly. Click here to undo.",
"topic_move_posts_undone": "Post move undone",
"post_delete_confirm": "هل أنت متأكد أنك تريد حذف هذه المشاركة؟",
"post_restore_confirm": "هل أنت متأكد أنك تريد استعادة هذه المشاركة؟",
"post_purge_confirm": "هل أنت متأكد أنك تريد تطهير هذه المشاركة؟",
@@ -96,14 +102,21 @@
"fork_topic": "فرع الموضوع",
"fork_topic_instruction": "إضغط على المشاركات التي تريد تفريعها",
"fork_no_pids": "لم تختر أي مشاركة",
"no-posts-selected": "No posts selected!",
"x-posts-selected": "%1 post(s) selected",
"x-posts-will-be-moved-to-y": "%1 post(s) will be moved to \"%2\"",
"fork_pid_count": "1% مشاركة محددة",
"fork_success": "تم إنشاء فرع للموضوع بنجاح! إضغط هنا لمعاينة الفرع.",
"delete_posts_instruction": "Click the posts you want to delete/purge",
"merge_topics_instruction": "Click the topics you want to merge",
"move_posts_instruction": "Click the posts you want to move",
"merge_topics_instruction": "Click the topics you want to merge or search for them",
"merge-topic-list-title": "List of topics to be merged",
"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.",
"change_owner_instruction": "Click the posts you want to assign to another user",
"composer.title_placeholder": "أدخل عنوان موضوعك هنا...",
"composer.handle_placeholder": "اﻹسم",
"composer.handle_placeholder": "Enter your name/handle here",
"composer.discard": "نبذ التغييرات",
"composer.submit": "حفظ",
"composer.replying_to": "الرد على %1",
@@ -134,6 +147,9 @@
"diffs.no-revisions-description": "This post has <strong>%1</strong> revisions.",
"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.post-restored": "Post successfully restored to earlier revision",
"timeago_later": "%1 later",
"timeago_earlier": "%1 earlier"
}

View File

@@ -1,20 +1,27 @@
{
"banned": "محظور",
"offline": "غير متصل",
"deleted": "Deleted",
"deleted": "محذوف",
"username": "إسم المستخدم",
"joindate": "تاريخ الإنضمام",
"postcount": "عدد المشاركات",
"email": "البريد الإلكتروني",
"confirm_email": "تأكيد عنوان البريد الإلكتروني",
"account_info": "معلومات الحساب",
"admin_actions_label": "Administrative Actions",
"ban_account": "حظر الحساب",
"ban_account_confirm": "هل تريد حقاً حظر هاذا العضو؟",
"unban_account": "إزالة حظر الحساب",
"delete_account": "حذف الحساب",
"delete_account_confirm": "Are you sure you want to delete your account? <br /><strong>This action is irreversible and you will not be able to recover any of your data</strong><br /><br />Enter your password to confirm that you wish to destroy this account.",
"delete_this_account_confirm": "هل انت متأكد من رغبتك بحذف هذا الحساب؟ <br /> <strong>هذا الإجراء لا رجعة فيه ولن تتمكن من استرداد أي بيانات</strong><br /><br />",
"delete_account_as_admin": "Delete <strong>Account</strong>",
"delete_content": "Delete Account <strong>Content</strong>",
"delete_all": "Delete <strong>Account</strong> and <strong>Content</strong>",
"delete_account_confirm": "Are you sure you want to anonymize your posts and delete your account?<br /><strong>This action is irreversible and you will not be able to recover any of your data</strong><br /><br />Enter your password to confirm that you wish to destroy this account.",
"delete_this_account_confirm": "Are you sure you want to delete this account while leaving its contents behind?<br /><strong>This action is irreversible, posts will be anonymized, and you will not be able to restore post associations with the deleted account</strong><br /><br />",
"delete_account_content_confirm": "Are you sure you want to delete this account's content (posts/topics/uploads)? <br /><strong>This action is irreversible and you will not be able to recover any data</strong><br /><br />",
"delete_all_confirm": "Are you sure you want to delete this account and all of its content (posts/topics/uploads)? <br /><strong>This action is irreversible and you will not be able to recover any data</strong><br /><br />",
"account-deleted": "تم حذف الحساب",
"account-content-deleted": "Account content deleted",
"fullname": "الاسم الكامل",
"website": "الموقع الإلكتروني",
"location": "الموقع",
@@ -104,12 +111,7 @@
"posts_per_page": "الردود في كل صفحة",
"max_items_per_page": "أقصى %1",
"acp_language": "Admin Page Language",
"notification_sounds": "تشغيل صوت عند تلقي تنبيه",
"notifications_and_sounds": "التنبيهات والأصوات",
"incoming-message-sound": "صوت الرسالة الواردة",
"outgoing-message-sound": "صوت الرسائل الصادرة",
"notification-sound": "صوت التنبيهات",
"no-sound": "بدون صوت",
"notifications": "Notifications",
"upvote-notif-freq": "معدل تكرار تنبيهات التصويت للأعلى",
"upvote-notif-freq.all": "كل التصويتات للأعلى",
"upvote-notif-freq.first": "First Per Post",
@@ -144,6 +146,7 @@
"info.ban-history": "سجل الحظر الأحدث",
"info.no-ban-history": "هذا المستخدم لم يتم حظره مطلقا",
"info.banned-until": "محظور حتى %1",
"info.banned-expiry": "Expiry",
"info.banned-permanently": "محظور بشكل دائم",
"info.banned-reason-label": "سبب",
"info.banned-no-reason": "لم يتم إعطاء سبب.",
@@ -170,7 +173,10 @@
"consent.right_to_erasure_description": "At any time, you are able to revoke your consent to data collection and/or processing by deleting your account. Your individual profile can be deleted, although your posted content will remain. If you wish to delete both your account <strong>and</strong> your content, please contact the administrative team for this website.",
"consent.right_to_data_portability": "You have the Right to Data Portability",
"consent.right_to_data_portability_description": "You may request from us a machine-readable export of any collected data about you and your account. You can do so by clicking the appropriate button below.",
"consent.export_profile": "Export Profile (.csv)",
"consent.export_profile": "Export Profile (.json)",
"consent.export-profile-success": "Exporting profile, you will get a notification when it is complete.",
"consent.export_uploads": "Export Uploaded Content (.zip)",
"consent.export_posts": "Export Posts (.csv)"
"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."
}

View File

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

View File

@@ -0,0 +1,79 @@
{
"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,7 +1,9 @@
{
"you-are-on": "Информация — Вие сте на <strong>%1:%2</strong>",
"you-are-on": "Вие сте на <strong>%1:%2</strong>",
"ip": "IP <strong>%1</strong>",
"nodes-responded": "%1 възела отговориха в рамките на %2мсек!",
"host": "сървър",
"primary": "основен / изпълнение на задачите",
"pid": "ид. на процеса",
"nodejs": "nodejs",
"online": "на линия",

View File

@@ -1,4 +1,5 @@
{
"trending": "Популярни",
"installed": "Инсталирани",
"active": "Включени",
"inactive": "Изключени",

View File

@@ -11,6 +11,7 @@
"num-recent-replies": "Брой на скорошните отговори",
"ext-link": "Външна връзка",
"is-section": "Използване на тази категория като раздел",
"tag-whitelist": "Списък от разрешени етикети",
"upload-image": "Качване на изображение",
"delete-image": "Премахване",
"category-image": "Изображение на категорията",
@@ -26,6 +27,8 @@
"enable": "Включване",
"disable": "Изключване",
"edit": "Редактиране",
"analytics": "Анализи",
"view-category": "Преглед на категорията",
"select-category": "Изберете категория",
"set-parent-category": "Задайте базова категория",
@@ -63,7 +66,6 @@
"alert.create-success": "Категорията е създадена успешно!",
"alert.none-active": "Нямате активни категории.",
"alert.create": "Създаване на категория",
"alert.confirm-moderate": "<strong>Наистина ли искате да дадете правомощието за модериране на тази потребителска група?</strong> Тази група е публична и всеки може свободно да се присъедини към нея.",
"alert.confirm-purge": "<p class=\"lead\">Наистина ли искате да изтриете категорията „%1“?</p><h5><strong class=\"text-danger\">Внимание!</strong> Всички теми и публикации в тази категория ще бъдат изтрити!</h5> <p class=\"help-block\">Изтриването на категорията ще премахне всички теми и публикации, и ще изтрие категорията от базата данни. Ако искате да премахнете категорията <em>временно</em>, можете просто да я „изключите“.</p>",
"alert.purge-success": "Категорията е изтрита!",
"alert.copy-success": "Настройките са копирани!",
@@ -75,7 +77,9 @@
"alert.user-search": "Потърсете потребител тук…",
"alert.find-group": "Търсене на група",
"alert.group-search": "Потърсете група тук…",
"alert.not-enough-whitelisted-tags": "Разрешените етикети са по-малко от минимума. Трябва да създадете още разрешени етикети!",
"collapse-all": "Свиване на всички",
"expand-all": "Разгъване на всички",
"disable-on-create": "Изключване при създаване"
"disable-on-create": "Изключване при създаване",
"no-matches": "Няма съвпадения"
}

View File

@@ -18,4 +18,4 @@
"manual-run": "Ръчно разпращане на резюмето:",
"no-delivery-data": "Няма данни за доставката"
}
}

View File

@@ -8,6 +8,9 @@
"hidden": "Скрита",
"private": "Частна",
"edit": "Редактиране",
"delete": "Изтриване",
"privileges": "Правомощия",
"download-csv": "CSV",
"search-placeholder": "Търсене",
"create": "Създаване на група",
"description-placeholder": "Кратко описание на групата",

View File

@@ -1,8 +1,9 @@
{
"global": "Глобални",
"global.no-users": "Няма глобални правомощия за отделни потребители.",
"admin": "Администратор",
"group-privileges": "Правомощия за групите",
"user-privileges": "Правомощия за потребителите",
"edit-privileges": "Редактиране на правомощията",
"chat": "Разговор",
"upload-images": "Качване на изображения",
"upload-files": "Качване на файлове",
@@ -31,5 +32,22 @@
"downvote-posts": "Отрицателно гласуване за публикации",
"delete-topics": "Изтриване на теми",
"purge": "Изчистване",
"moderate": "Модериране"
"moderate": "Модериране",
"admin-dashboard": "Табло",
"admin-categories": "Категории",
"admin-privileges": "Правомощия",
"admin-users": "Потребители",
"admin-settings": "Настройки",
"alert.confirm-moderate": "<strong>Наистина ли искате да дадете правомощието за модериране на тази потребителска група?</strong> Тази група е публична и всеки може свободно да се присъедини към нея.",
"alert.confirm-save": "Моля, потвърдете желанието си да запазите тези правомощия",
"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.no-undo": "<em>Това действие е необратимо.</em>",
"alert.admin-warning": "Администраторите имат всички правомощия по подразбиране"
}

View File

@@ -3,17 +3,16 @@
"bg-color": "Цвят на фона",
"text-color": "Цвят на текста",
"create-modify": "Създаване и редактиране на етикети",
"description": "Изберете етикетите чрез щракване или влачене. Използвайте „Shift“, за да изберете няколко етикета.",
"description": "Изберете етикетите чрез щракване или влачене. Използвайте <code>CTRL</code>, за да изберете няколко етикета.",
"create": "Създаване на етикет",
"modify": "Редактиране на етикети",
"rename": "Преименуване на етикети",
"delete": "Изтриване на избраните етикети",
"search": "Търсене на етикети…",
"settings": "Натиснете <a href=\"%1\">тук</a>, за да отворите страницата с настройки на етикета.",
"settings": "Настройки за етикетите",
"name": "Име на етикета",
"alerts.editing-multiple": "Редактиране на множество етикети",
"alerts.editing-x": "Редактиране на етикета „%1“",
"alerts.editing": "Редактиране на етикет(и)",
"alerts.confirm-delete": "Наистина ли искате да изтриете избраните етикети?",
"alerts.update-success": "Етикетът е променен!"
}

View File

@@ -12,23 +12,18 @@
"unban": "Деблокиране на потребителя/ите",
"reset-lockout": "Нулиране на заключването",
"reset-flags": "Анулиране на докладите",
"delete": "Изтриване на потребителя/ите",
"purge": "Изтриване на потребителя/ите и съдържанието",
"delete": "Изтриване на <strong>потребителя/ите</strong>",
"delete-content": "Изтриване на <strong>съдържанието</strong> на потребителя/ите",
"purge": "Изтриване на <strong>потребителя/ите</strong> и <strong>съдържанието</strong>",
"download-csv": "Сваляне във формат „CSV“",
"manage-groups": "Управление на групите",
"add-group": "Добавяне на група",
"invite": "Покана",
"new": "Нов потребител",
"pills.latest": "Последни потребители",
"filter-by": "Филтриране по",
"pills.unvalidated": "Няма потвърдена е-поща",
"pills.no-posts": "Няма публикации",
"pills.top-posters": "С най-много публикации",
"pills.top-rep": "С най-много репутация",
"pills.inactive": "Недеен",
"pills.flagged": "С най-много доклади",
"pills.validated": "Потвърдена",
"pills.banned": "Блокиран",
"pills.search": "Търсене на потребители",
"50-per-page": "50 на страница",
"100-per-page": "100 на страница",
@@ -93,9 +88,11 @@
"alerts.validate-email-success": "Е-пощите са проверени",
"alerts.validate-force-password-reset-success": "Паролата на потребителя (или паролите на потребителите) беше подновена и сесията му беше прекратена.",
"alerts.password-reset-confirm": "Искате ли да изпратите е-писмо/а за възстановяване на паролата на този/тези потребител(и)?",
"alerts.confirm-delete": "<b>ВНИМАНИЕ!</b><br/>Наистина ли искате да изтриете потребителя/ите?<br/> Това действие е необратимо! Ще бъде изтрит само профилът на потребителя/ите, неговите/техните публикациите и теми ще останат.",
"alerts.confirm-delete": "<strong>ВНИМАНИЕ!</strong><p>Наистина ли искате да изтриете <strong>потребителя/ите</strong>?</p> <p>Това действие е необратимо! Ще бъде изтрит само профилът на потребителя/ите, неговите/техните публикациите и теми ще останат.</p>",
"alerts.delete-success": "Потребителят/ите е/са изтрит(и)!",
"alerts.confirm-purge": "<b>ВНИМАНИЕ!</b><br/>Наистина ли искате да изтриете потребителя/ите?<br/> Това действие е необратимо! Всички потребителски данни и съдържание ще бъдат заличени!",
"alerts.confirm-delete-content": "<strong>ВНИМАНИЕ!</strong><p>Наистина ли искате да изтриете <strong>съдържанието</strong> на този потребител или тези потребители?</p> <p>Това действие е необратимо! Профилите на потребителите ще останат, но всички техни публикации и теми ще бъдат изтрити.</p>",
"alerts.delete-content-success": "Съдържанието на потребителя/ите е изтрито!",
"alerts.confirm-purge": "<strong>ВНИМАНИЕ!</strong><p>Наистина ли искате да изтриете <strong>потребителя/ите и неговото/тяхното съдържание</strong>?</p> <p>Това действие е необратимо! Всички потребителски данни и съдържание ще бъдат заличени!</p>",
"alerts.create": "Създаване на потребител",
"alerts.button-create": "Създаване",
"alerts.button-cancel": "Отказ",
@@ -105,5 +102,5 @@
"alerts.prompt-email": "Е-пощи: ",
"alerts.email-sent-to": "Беше изпратено е-писмо за потвърждение до %1",
"alerts.x-users-found": "Намерени потребители: %1! Търсенето отне %2 милисекунди."
"alerts.x-users-found": "Намерени потребители: %1 (%2 секунди)"
}

View File

@@ -1,11 +1,6 @@
{
"dashboard": "Табло",
"section-general": "Общи",
"general/dashboard": "Табло",
"general/homepage": "Начало",
"general/navigation": "Навигация",
"general/languages": "Езици",
"general/sounds": "Звуци",
"general/social": "Обществени",
"section-manage": "Управление",
"manage/categories": "Категории",
@@ -22,17 +17,22 @@
"section-settings": "Настройки",
"settings/general": "Общи",
"settings/reputation": "Репутация",
"settings/homepage": "Начална страница",
"settings/navigation": "Навигация",
"settings/reputation": "Репутация и доклади",
"settings/email": "Е-поща",
"settings/user": "Потребител",
"settings/group": "Група",
"settings/user": "Потребители",
"settings/group": "Групи",
"settings/guest": "Гости",
"settings/uploads": "Качвания",
"settings/post": "Публикация",
"settings/chat": "Разговор",
"settings/languages": "Езици",
"settings/post": "Публикации",
"settings/chat": "Разговори",
"settings/pagination": "Странициране",
"settings/tags": "Етикети",
"settings/notifications": "Известия",
"settings/sounds": "Звуци",
"settings/social": "Обществени",
"settings/cookies": "Бисквитки",
"settings/web-crawler": "Обхождач на уеб страници",
"settings/sockets": "Сокети",
@@ -70,7 +70,7 @@
"logout": "Изход",
"view-forum": "Преглед на форума",
"search.placeholder": "Търсене на настройки",
"search.placeholder": "Натиснете „/“ за търсене на настройки",
"search.no-results": "Няма резултати…",
"search.search-forum": "Търсене във форума за <strong></strong>",
"search.keep-typing": "Продължете да пишете, за да видите още резултати…",

View File

@@ -5,6 +5,8 @@
"maintenance-mode.message": "Съобщение за профилактиката",
"headers": "Заглавни части",
"headers.allow-from": "Задайте „ALLOW-FROM“, за да поставите NodeBB в „iFrame“",
"headers.csp-frame-ancestors": "Задайте заглавката „Content-Security-Policy frame-ancestors“ за да поставите NodeBB „iFrame“",
"headers.csp-frame-ancestors-help": "„none“ (нищо), „self“ (себе си по подразбиране) или списък от позволени адреси.",
"headers.powered-by": "Персонализиране на заглавната част „Захранван от“, която се изпраща от NodeBB",
"headers.acao": "Произход за разрешаване на управлението на достъпа",
"headers.acao-regex": "Регулярен израз за произхода за разрешаване на управлението на достъпа",
@@ -15,14 +17,24 @@
"headers.acah": "Заглавки за разрешаване на управлението на достъпа",
"hsts": "Стриктна транспортна сигурност",
"hsts.enabled": "Включване на HSTS (препоръчително)",
"hsts.maxAge": "Максимална възраст на HSTS",
"hsts.subdomains": "Включване на поддомейните в заглавката на HSTS",
"hsts.preload": "Позволяване на предварителното зареждане на заглавката на HSTS",
"hsts.help": "Ако това е включено, за този уеб ще бъде настроена заглавка за HSTS. Можете да изберете дали да включите поддомейните и дали за заредите предварително флаговете в заглавката си. Ако не знаете какво да направите, най-добре не избирайте нищо. <a href=\"%1\">Още информация<i class=\"fa fa-external-link\"></i></a>",
"traffic-management": "Управление на трафика",
"traffic.help": "NodeBB има вграден модул, който автоматично отказва заявките в натоварените моменти. Можете да настроите поведението тук, въпреки че стойностите по подразбиране са добра отправна точка.",
"traffic.help": "NodeBB използва модул, който автоматично отказва заявките в натоварените моменти. Можете да настроите поведението тук, въпреки че стойностите по подразбиране са добра отправна точка.",
"traffic.enable": "Включване на управлението на трафика",
"traffic.event-lag": "Граница на забавяне в цикъла на събитията (в милисекунди)",
"traffic.event-lag-help": "Намаляването на тази стойност ще намали времето за изчакване при зареждане на страници, но също така ще предизвика по-често показване на съобщението „прекомерно натоварване“ на повече потребители. (Нужно е рестартиране.)",
"traffic.lag-check-interval": "Интервал на проверка (в милисекунди)",
"traffic.lag-check-interval-help": "Намаляването на тази стойност ще направи NodeBB по-чувствителен към скоковете в натовареността, но може и да направи проверката твърде чувствителна. (Нужно е рестартиране.)"
"traffic.lag-check-interval-help": "Намаляването на тази стойност ще направи NodeBB по-чувствителен към скоковете в натовареността, но може и да направи проверката твърде чувствителна. (Нужно е рестартиране.)",
"sockets.settings": "Настройки за WebSocket",
"sockets.max-attempts": "Максимален брой опити за повторно свързване",
"sockets.default-placeholder": "По подразбиране: %1",
"sockets.delay": "Забавяне при повторно свързване",
"analytics.settings": "Настройки за анализите",
"analytics.max-cache": "Макс. стойност на кеша за анализите",
"analytics.max-cache-help": "При инсталации с натоварен трафик, кешът може да бъде изразходен, ако има повече едновременни потребители, от колкото е максималната стойност на кеша. (Изисква рестартиране)"
}

View File

@@ -5,7 +5,8 @@
"disable-editing-help": "Това ограничение не засяга администраторите и глобалните модератори",
"max-length": "Максимална дължина на съобщенията в разговорите",
"max-room-size": "Максимален брой потребители в стая за разговор",
"delay": "Време между съобщеният в разговорите (в милисекунди)",
"delay": "Време между съобщенията в разговорите (в милисекунди)",
"notification-delay": "Забавяне преди известяване за съобщения в разговорите. (0 без забавяне)",
"restrictions.seconds-edit-after": "Брой секунди, през които съобщенията в разговор могат да бъдат редактирани. (0 = изключено)",
"restrictions.seconds-delete-after": "Брой секунди, през които съобщенията в разговор могат да бъдат изтривани. (0 = изключено)"
}

View File

@@ -8,5 +8,6 @@
"consent.blank-localised-default": "Оставете това празно, за да използвате данните по подразбиране на NodeBB, които са преведени",
"settings": "Настройки",
"cookie-domain": "Домейн на бисквитката за сесията",
"max-user-sessions": "Максимален брой активни сесии за потребител",
"blank-default": "Оставете празно, за да използвате стойността по подразбиране"
}

View File

@@ -4,10 +4,7 @@
"address-help": "Следният адрес на е-поща е този, който получателят ще види в полетата „От“ и “Отговор до“.",
"from": "Име за полето „От“",
"from-help": "Името на изпращача, което да бъде показано в е-писмото.",
"sendmail-rate-limit": "Изпращане на <em>X</em> е-писма…",
"sendmail-rate-delta": "…на всеки <em>X</em> милисекунди",
"sendmail-rate-help": "Задава на програмата за изпращане на е-писма на NodeBB да ограничи броя едновременно изпращани съобщения, за да не се претоварват пощенските сървъри. Тези настройки не се вземат предвид, ако е включена настройката „Транспорт чрез SMTP“ (по-долу).",
"smtp-transport": "Транспорт чрез SMTP",
"smtp-transport.enabled": "Използване на външен сървър за е-поща за изпращане на е-писма",
"smtp-transport-help": "Можете да изберете от списък от познати услуги, или да въведете такава ръчно.",
@@ -25,6 +22,8 @@
"smtp-transport.username": "Потребителско име",
"smtp-transport.username-help": "<b>За услугата на Gmail</b>, въведете пълния адрес на е-пощата тук, особено ако използвате управляван домейн на „Google Apps“.",
"smtp-transport.password": "Парола",
"smtp-transport.pool": "Включване на групираните връзки",
"smtp-transport.pool-help": "Групирането на връзките предотвратява създаването на нова връзка за всяко е-писмо. Тази настройка има ефект, само ако е включено „Транспорт чрез SMTP“.",
"template": "Редактирана не шаблона за е-писма",
"template.select": "Изберете шаблон за е-писма",

View File

@@ -1,6 +1,8 @@
{
"site-settings": "Настройки на уеб сайта",
"title": "Заглавие на уеб сайта",
"title.short": "Кратко заглавие",
"title.short-placeholder": "Ако не е посочено кратко заглавие, ще бъде използвано заглавието на уеб сайта",
"title.url": "Адрес",
"title.url-placeholder": "Адресът на заглавието на уеб сайта",
"title.url-help": "При щракване върху заглавието, потребителите ще бъдат изпратени на този адрес. Ако бъде оставено празно, потребителите ще бъдат изпращани на началната страница на форума.",
@@ -25,11 +27,18 @@
"log.alt-text-placeholder": "Алтернативен текст за достъпност",
"favicon": "Иконка на уеб сайта",
"favicon.upload": "Качване",
"touch-icon": "Иконка за начален екран (мобилно устройство)",
"pwa": "Прогресивно уеб-приложение",
"touch-icon": "Иконка за сензорен екран",
"touch-icon.upload": "Качване",
"touch-icon.help": "Препоръчителен размер и формат: 192x192, само във формат „PNG“. Ако не е посочена иконка за начален екран на мобилно устройство, NodeBB ще използва иконката на уеб сайта.",
"touch-icon.help": "Препоръчителен размер и формат: 512x512, само във формат „PNG“. Ако не е посочена иконка за сензорен екран, NodeBB ще използва иконката на уеб сайта.",
"maskable-icon": "Маскируема иконка (за начален екран)",
"maskable-icon.help": "Препоръчителен размер и формат: 512x512, само във формат „PNG“. Ако не е посочена маскируема иконка, NodeBB ще използва иконката за сензорен екран.",
"outgoing-links": "Изходящи връзки",
"outgoing-links.warning-page": "Показване на предупредителна страница при щракване върху външни връзки",
"search-default-sort-by": "Подредба по подразбиране при търсене",
"outgoing-links.whitelist": "Домейни, за които да не се показва предупредителната страница"
"outgoing-links.whitelist": "Домейни, за които да не се показва предупредителната страница",
"site-colors": "Мета-данни за цвета на уеб сайта",
"theme-color": "Цвят на темата",
"background-color": "Фонов цвят",
"background-color-help": "Цвят, който да се използва като фон за началния екран, когато уеб сайтът е инсталиран като приложение"
}

View File

@@ -3,6 +3,7 @@
"private-groups": "Частни групи",
"private-groups.help": "Ако е включено, присъединяването към групи ще изисква одобрение от собственик на групата. <em>(По подразбиране: включено)</em>",
"private-groups.warning": "<strong>Внимание!</strong> Ако това е изключено и имате частни групи, те автоматично ще станат публични.",
"allow-multiple-badges": "Позволяване на множество значки",
"allow-multiple-badges-help": "Това може да се използва, за да позволи на потребителите да избират множество значки за групите. Изисква поддържа на теми.",
"max-name-length": "Минимална дължина на името на група",
"max-title-length": "Максимална дължина на заглавието на група",

View File

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

View File

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

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