From c533916d548ceab465cede9d6e745c4c308b8fa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Mon, 22 Jan 2024 19:53:11 -0500 Subject: [PATCH 01/69] remove unused class --- src/views/admin/partials/mobile-footer.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/admin/partials/mobile-footer.tpl b/src/views/admin/partials/mobile-footer.tpl index f2baba36e3..6f68766980 100644 --- a/src/views/admin/partials/mobile-footer.tpl +++ b/src/views/admin/partials/mobile-footer.tpl @@ -1,7 +1,7 @@
- +
From 08c8b5218139bb36c5d24bdad8240e55565af914 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Tue, 23 Jan 2024 09:18:30 +0000 Subject: [PATCH 02/69] Latest translations and fallbacks --- public/language/he/error.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/language/he/error.json b/public/language/he/error.json index aacf6b3594..21d6b6e344 100644 --- a/public/language/he/error.json +++ b/public/language/he/error.json @@ -221,7 +221,7 @@ "already-unblocked": "המשתמש שוחרר כבר מהחסימה", "no-connection": "נראה שיש בעיות בחיבור האינטרנט שלכם...", "socket-reconnect-failed": "לא ניתן להגיע לשרת בשלב זה. לחצו כאן כדי לנסות שוב, או נסו שוב במועד מאוחר יותר", - "invalid-plugin-id": "Invalid plugin ID", + "invalid-plugin-id": "מזהה תוסף לא תקין", "plugin-not-whitelisted": "לא ניתן להתקין את התוסף – ניתן להתקין דרך הניהול רק תוספים שנמצאים ברשימה הלבנה של מנהל החבילות של NodeBB.", "plugins-set-in-configuration": "אינך רשאי לשנות את מצב הפלאגין כפי שהם מוגדרים בזמן ריצה (config.json, משתני סביבה או ארגומנטים של מסוף), אנא שנה את התצורה במקום זאת.", "theme-not-set-in-configuration": "כאשר מגדירים תוספים פעילים בתצורה, שינוי ערכות נושא מחייב הוספת ערכת הנושא החדשה לרשימת התוספים הפעילים לפני עדכון שלו ב-ACP", From d5f445f15ed84dccb32614ba2468dc84d339a861 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 23 Jan 2024 10:24:44 -0500 Subject: [PATCH 03/69] fix: remove leftover code from 2.x, closes #12301 --- public/src/admin/settings/navigation.js | 1 - 1 file changed, 1 deletion(-) diff --git a/public/src/admin/settings/navigation.js b/public/src/admin/settings/navigation.js index c858f8ccc4..375398cbee 100644 --- a/public/src/admin/settings/navigation.js +++ b/public/src/admin/settings/navigation.js @@ -100,7 +100,6 @@ define('admin/settings/navigation', [ translator.translate(li, function (li) { li = $(translator.unescape(li)); $('#enabled').append(li); - componentHandler.upgradeDom(); resolve(); }); }); From e1adf5b33b76ff4a08c7a60942e8f3b5b2e03df8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 23 Jan 2024 11:26:12 -0500 Subject: [PATCH 04/69] fix(deps): update dependency nodebb-theme-harmony to v1.2.6 (#12300) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 8c7c4b934d..9b4e84c08e 100644 --- a/install/package.json +++ b/install/package.json @@ -103,7 +103,7 @@ "nodebb-plugin-ntfy": "1.7.3", "nodebb-plugin-spam-be-gone": "2.2.0", "nodebb-rewards-essentials": "1.0.0", - "nodebb-theme-harmony": "1.2.4", + "nodebb-theme-harmony": "1.2.6", "nodebb-theme-lavender": "7.1.7", "nodebb-theme-peace": "2.2.0", "nodebb-theme-persona": "13.3.3", From 575f072af86f96a334f91f24746d6c45381d9304 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 23 Jan 2024 11:26:22 -0500 Subject: [PATCH 05/69] fix(deps): update dependency connect-redis to v7.1.1 (#12298) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 9b4e84c08e..b3282f5f60 100644 --- a/install/package.json +++ b/install/package.json @@ -56,7 +56,7 @@ "connect-mongo": "5.1.0", "connect-multiparty": "2.2.0", "connect-pg-simple": "9.0.1", - "connect-redis": "7.1.0", + "connect-redis": "7.1.1", "cookie-parser": "1.4.6", "cron": "3.1.6", "cropperjs": "1.6.1", From 5a776f9f28ec4f0a5b6b60b051971dc84f2edadc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 23 Jan 2024 11:26:30 -0500 Subject: [PATCH 06/69] chore(deps): update commitlint monorepo to v18.5.0 (#12296) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/package.json b/install/package.json index b3282f5f60..4a00be7a70 100644 --- a/install/package.json +++ b/install/package.json @@ -154,8 +154,8 @@ }, "devDependencies": { "@apidevtools/swagger-parser": "10.1.0", - "@commitlint/cli": "18.4.4", - "@commitlint/config-angular": "18.4.4", + "@commitlint/cli": "18.5.0", + "@commitlint/config-angular": "18.5.0", "coveralls": "3.1.1", "eslint": "8.56.0", "eslint-config-nodebb": "0.2.1", From 45f02ff0865e1fba645e59e8e8602d9545b7b7ce Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 23 Jan 2024 11:27:14 -0500 Subject: [PATCH 07/69] chore(deps): update dependency jsdom to v24 (#12294) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 4a00be7a70..d07632a588 100644 --- a/install/package.json +++ b/install/package.json @@ -163,7 +163,7 @@ "grunt": "1.6.1", "grunt-contrib-watch": "1.1.0", "husky": "8.0.3", - "jsdom": "23.2.0", + "jsdom": "24.0.0", "lint-staged": "15.2.0", "mocha": "10.2.0", "mocha-lcov-reporter": "1.3.0", From 72bb81f0ca12c39b606be7fbc1c366998d47f1b6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 23 Jan 2024 21:01:13 -0500 Subject: [PATCH 08/69] fix(deps): update dependency esbuild to v0.19.12 (#12302) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index d07632a588..f0a2f56369 100644 --- a/install/package.json +++ b/install/package.json @@ -63,7 +63,7 @@ "csrf-sync": "4.0.3", "daemon": "1.1.0", "diff": "5.1.0", - "esbuild": "0.19.11", + "esbuild": "0.19.12", "express": "4.18.2", "express-session": "1.17.3", "express-useragent": "1.0.15", From 44a798bcf18a9d6f71a69ce877306871c3007597 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Jan 2024 10:04:59 -0500 Subject: [PATCH 09/69] fix(deps): update dependency webpack to v5.90.0 (#12303) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index f0a2f56369..32605b3261 100644 --- a/install/package.json +++ b/install/package.json @@ -143,7 +143,7 @@ "toobusy-js": "0.5.1", "tough-cookie": "4.1.3", "validator": "13.11.0", - "webpack": "5.89.0", + "webpack": "5.90.0", "webpack-merge": "5.10.0", "winston": "3.11.0", "workerpool": "9.1.0", From 20d88e68616ada1ffc8c0b950538c41d0b6adb3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Wed, 24 Jan 2024 11:27:07 -0500 Subject: [PATCH 10/69] use template name instead of url sometimes topic.tpl can be rendered on a different url --- public/src/modules/navigator.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/public/src/modules/navigator.js b/public/src/modules/navigator.js index 9051524370..515b4947e0 100644 --- a/public/src/modules/navigator.js +++ b/public/src/modules/navigator.js @@ -458,11 +458,9 @@ define('navigator', [ }; function toggle(flag) { - const path = ajaxify.removeRelativePath(window.location.pathname.slice(1)); - if (flag && (!path.startsWith('topic') && !path.startsWith('category'))) { + if (flag && (!ajaxify.data.template.topic && !ajaxify.data.template.category)) { return; } - paginationBlockEl.toggleClass('ready', flag); paginationBlockEl.toggleClass('noreplies', count <= 1); } From cb21f28b56beb7faefcccda29e8c9828d94bece1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Wed, 24 Jan 2024 12:00:27 -0500 Subject: [PATCH 11/69] feat: add success hook to quick reply --- public/src/modules/quickreply.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/public/src/modules/quickreply.js b/public/src/modules/quickreply.js index d4f59bea51..99be979319 100644 --- a/public/src/modules/quickreply.js +++ b/public/src/modules/quickreply.js @@ -2,10 +2,10 @@ define('quickreply', [ 'components', 'composer', 'composer/autocomplete', 'api', - 'alerts', 'uploadHelpers', 'mousetrap', 'storage', + 'alerts', 'uploadHelpers', 'mousetrap', 'storage', 'hooks', ], function ( components, composer, autocomplete, api, - alerts, uploadHelpers, mousetrap, storage + alerts, uploadHelpers, mousetrap, storage, hooks ) { const QuickReply = {}; @@ -91,6 +91,7 @@ define('quickreply', [ components.get('topic/quickreply/text').val(''); storage.removeItem(qrDraftId); autocomplete._active.core_qr.hide(); + hooks.fire('action:quickreply.success', { data }); }); }); From cf40d68176bac06c60978c2dad70b96be2a57bac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Wed, 24 Jan 2024 12:11:17 -0500 Subject: [PATCH 12/69] fix: if there is no bookmarkThreshold dont init unread indicator --- public/src/modules/navigator.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/public/src/modules/navigator.js b/public/src/modules/navigator.js index 515b4947e0..3cf81cbe9c 100644 --- a/public/src/modules/navigator.js +++ b/public/src/modules/navigator.js @@ -353,7 +353,8 @@ define('navigator', [ } async function updateUnreadIndicator(index) { - if (!paginationBlockUnreadEl.length || ajaxify.data.postcount <= ajaxify.data.bookmarkThreshold) { + const { bookmarkThreshold } = ajaxify.data; + if (!paginationBlockUnreadEl.length || ajaxify.data.postcount <= bookmarkThreshold || !bookmarkThreshold) { return; } const currentBookmark = ajaxify.data.bookmark || storage.getItem('topic:' + ajaxify.data.tid + ':bookmark'); From 0f6847a5567f41c2155bf3bc84446406da2eb127 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Wed, 24 Jan 2024 17:22:26 +0000 Subject: [PATCH 13/69] chore: incrementing version number - v3.6.4 --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index bb30df3d1c..576776b7c0 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "3.6.3", + "version": "3.6.4", "homepage": "https://www.nodebb.org", "repository": { "type": "git", From 6e6c3974e4d8685977eb7cc607a8412bd125cc07 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Wed, 24 Jan 2024 17:22:26 +0000 Subject: [PATCH 14/69] chore: update changelog for v3.6.4 --- CHANGELOG.md | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a21d27aa5..f0c3aceecd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,59 @@ +#### v3.6.4 (2024-01-24) + +##### Chores + +* incrementing version number - v3.6.3 (fc7d2bfd) +* update changelog for v3.6.3 (92ffc57c) +* incrementing version number - v3.6.2 (0f577a57) +* incrementing version number - v3.6.1 (f1a69468) +* incrementing version number - v3.6.0 (4cdf85f8) +* incrementing version number - v3.5.3 (ed0e8783) +* incrementing version number - v3.5.2 (52fbb2da) +* incrementing version number - v3.5.1 (4c543488) +* incrementing version number - v3.5.0 (d06fb4f0) +* incrementing version number - v3.4.3 (5c984250) +* incrementing version number - v3.4.2 (3f0dac38) +* incrementing version number - v3.4.1 (01e69574) +* incrementing version number - v3.4.0 (fd9247c5) +* incrementing version number - v3.3.9 (5805e770) +* incrementing version number - v3.3.8 (a5603565) +* incrementing version number - v3.3.7 (b26f1744) +* incrementing version number - v3.3.6 (7fb38792) +* incrementing version number - v3.3.4 (a67f84ea) +* incrementing version number - v3.3.3 (f94d239b) +* incrementing version number - v3.3.2 (ec9dac97) +* incrementing version number - v3.3.1 (151cc68f) +* incrementing version number - v3.3.0 (fc1ad70f) +* incrementing version number - v3.2.3 (b06d3e63) +* incrementing version number - v3.2.2 (758ecfcd) +* incrementing version number - v3.2.1 (20145074) +* incrementing version number - v3.2.0 (9ecac38e) +* incrementing version number - v3.1.7 (0b4e81ab) +* incrementing version number - v3.1.6 (b3a3b130) +* incrementing version number - v3.1.5 (ec19343a) +* incrementing version number - v3.1.4 (2452783c) +* incrementing version number - v3.1.3 (3b4e9d3f) +* incrementing version number - v3.1.2 (40fa3489) +* incrementing version number - v3.1.1 (40250733) +* incrementing version number - v3.1.0 (0cb386bd) +* incrementing version number - v3.0.1 (26f6ea49) +* incrementing version number - v3.0.0 (224e08cd) + +##### New Features + +* add success hook to quick reply (cb21f28b) + +##### Bug Fixes + +* if there is no bookmarkThreshold dont init unread indicator (cf40d681) +* remove leftover code from 2.x, closes #12301 (d5f445f1) +* copy single line code blocks, closes #12297 (06269cdf) +* validate plugin id in toggleActive (76f3efff) + +##### Tests + +* add plugin id tests (e8befbcc) + #### v3.6.3 (2024-01-12) ##### Chores From 7e7bbfa4ea421dfb6b6ef65bba89949ac1b35ca0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 25 Jan 2024 12:04:57 -0500 Subject: [PATCH 15/69] chore(deps): update commitlint monorepo to v18.6.0 (#12305) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/package.json b/install/package.json index 3122e64eb1..561656bf05 100644 --- a/install/package.json +++ b/install/package.json @@ -154,8 +154,8 @@ }, "devDependencies": { "@apidevtools/swagger-parser": "10.1.0", - "@commitlint/cli": "18.5.0", - "@commitlint/config-angular": "18.5.0", + "@commitlint/cli": "18.6.0", + "@commitlint/config-angular": "18.6.0", "coveralls": "3.1.1", "eslint": "8.56.0", "eslint-config-nodebb": "0.2.1", From 400a1aa3faa062a444da856e2b227f986d3bb2dc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 25 Jan 2024 20:08:04 -0500 Subject: [PATCH 16/69] fix(deps): update dependency lru-cache to v10.2.0 (#12306) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 561656bf05..9e11512ce7 100644 --- a/install/package.json +++ b/install/package.json @@ -85,7 +85,7 @@ "jsonwebtoken": "9.0.2", "lodash": "4.17.21", "logrotate-stream": "0.2.9", - "lru-cache": "10.1.0", + "lru-cache": "10.2.0", "mime": "3.0.0", "mkdirp": "3.0.1", "mongodb": "6.3.0", From eabbf19592ab6221d323b120257808a60b90e943 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 26 Jan 2024 14:59:41 -0500 Subject: [PATCH 17/69] fix(deps): update dependency nodebb-theme-harmony to v1.2.7 (#12307) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 9e11512ce7..71cc5a30a4 100644 --- a/install/package.json +++ b/install/package.json @@ -103,7 +103,7 @@ "nodebb-plugin-ntfy": "1.7.3", "nodebb-plugin-spam-be-gone": "2.2.0", "nodebb-rewards-essentials": "1.0.0", - "nodebb-theme-harmony": "1.2.6", + "nodebb-theme-harmony": "1.2.7", "nodebb-theme-lavender": "7.1.7", "nodebb-theme-peace": "2.2.0", "nodebb-theme-persona": "13.3.3", From fd20e3a5442dd4afa34993d522982341e9d1e44b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 27 Jan 2024 21:25:07 -0500 Subject: [PATCH 18/69] fix(deps): update dependency nodebb-theme-harmony to v1.2.8 (#12310) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 71cc5a30a4..c5a4635d38 100644 --- a/install/package.json +++ b/install/package.json @@ -103,7 +103,7 @@ "nodebb-plugin-ntfy": "1.7.3", "nodebb-plugin-spam-be-gone": "2.2.0", "nodebb-rewards-essentials": "1.0.0", - "nodebb-theme-harmony": "1.2.7", + "nodebb-theme-harmony": "1.2.8", "nodebb-theme-lavender": "7.1.7", "nodebb-theme-peace": "2.2.0", "nodebb-theme-persona": "13.3.3", From aa1344fc76f0b1150b5005b507d84cee77bc7253 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 27 Jan 2024 21:25:29 -0500 Subject: [PATCH 19/69] fix(deps): update dependency esbuild to v0.20.0 (#12309) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index c5a4635d38..c79af2556a 100644 --- a/install/package.json +++ b/install/package.json @@ -63,7 +63,7 @@ "csrf-sync": "4.0.3", "daemon": "1.1.0", "diff": "5.1.0", - "esbuild": "0.19.12", + "esbuild": "0.20.0", "express": "4.18.2", "express-session": "1.17.3", "express-useragent": "1.0.15", From 6444eeb97a19739c001702362eb914a6baafd3a8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 28 Jan 2024 18:15:35 -0500 Subject: [PATCH 20/69] fix(deps): update dependency express-session to v1.18.0 (#12311) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index c79af2556a..7325d8fad8 100644 --- a/install/package.json +++ b/install/package.json @@ -65,7 +65,7 @@ "diff": "5.1.0", "esbuild": "0.20.0", "express": "4.18.2", - "express-session": "1.17.3", + "express-session": "1.18.0", "express-useragent": "1.0.15", "fetch-cookie": "2.1.0", "file-loader": "6.2.0", From 301eee17310428b3db99ed6ac4f323a2c5e2f44f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Mon, 29 Jan 2024 09:51:04 -0500 Subject: [PATCH 21/69] fix: some layout fixes for group details page --- src/views/admin/manage/group.tpl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/views/admin/manage/group.tpl b/src/views/admin/manage/group.tpl index 151a17ad2d..28fb405c58 100644 --- a/src/views/admin/manage/group.tpl +++ b/src/views/admin/manage/group.tpl @@ -124,19 +124,19 @@
-
- +
+
- +

-
+
From 09414efae0559ed0b4a379a36b810c7ba9e02204 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Mon, 29 Jan 2024 18:02:07 -0500 Subject: [PATCH 22/69] chore: up harmony --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 7325d8fad8..c4dd18f2b0 100644 --- a/install/package.json +++ b/install/package.json @@ -103,7 +103,7 @@ "nodebb-plugin-ntfy": "1.7.3", "nodebb-plugin-spam-be-gone": "2.2.0", "nodebb-rewards-essentials": "1.0.0", - "nodebb-theme-harmony": "1.2.8", + "nodebb-theme-harmony": "1.2.9", "nodebb-theme-lavender": "7.1.7", "nodebb-theme-peace": "2.2.0", "nodebb-theme-persona": "13.3.3", From 9fb7c163c6e52cd4a952a973f303657c8e0f61e5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 29 Jan 2024 19:14:50 -0500 Subject: [PATCH 23/69] fix(deps): update dependency ace-builds to v1.32.4 (#12313) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index c4dd18f2b0..13e0adf370 100644 --- a/install/package.json +++ b/install/package.json @@ -34,7 +34,7 @@ "@fortawesome/fontawesome-free": "6.5.1", "@isaacs/ttlcache": "1.4.1", "@popperjs/core": "2.11.8", - "ace-builds": "1.32.3", + "ace-builds": "1.32.4", "archiver": "6.0.1", "async": "3.2.5", "autoprefixer": "10.4.17", From d648972c6b9e1ef6f82aa36f5b04e01f40ee0a02 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 29 Jan 2024 19:16:44 -0500 Subject: [PATCH 24/69] fix(deps): update dependency nodebb-theme-harmony to v1.2.10 (#12314) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 13e0adf370..a2979c5d77 100644 --- a/install/package.json +++ b/install/package.json @@ -103,7 +103,7 @@ "nodebb-plugin-ntfy": "1.7.3", "nodebb-plugin-spam-be-gone": "2.2.0", "nodebb-rewards-essentials": "1.0.0", - "nodebb-theme-harmony": "1.2.9", + "nodebb-theme-harmony": "1.2.10", "nodebb-theme-lavender": "7.1.7", "nodebb-theme-peace": "2.2.0", "nodebb-theme-persona": "13.3.3", From ef06be6d3fc5c0b1240fe305369e092b927e8f61 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 30 Jan 2024 08:40:53 -0500 Subject: [PATCH 25/69] fix(deps): update dependency ace-builds to v1.32.5 (#12316) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index a2979c5d77..9a4b12aaf1 100644 --- a/install/package.json +++ b/install/package.json @@ -34,7 +34,7 @@ "@fortawesome/fontawesome-free": "6.5.1", "@isaacs/ttlcache": "1.4.1", "@popperjs/core": "2.11.8", - "ace-builds": "1.32.4", + "ace-builds": "1.32.5", "archiver": "6.0.1", "async": "3.2.5", "autoprefixer": "10.4.17", From 45cfb3691effa6f9487c1f18bde04ab6a8aaee92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 30 Jan 2024 17:47:06 -0500 Subject: [PATCH 26/69] feat: show unread categories based on unread topics (#12317) * feat: show unread categories based on unread topics if a category has unread topics in one of its children then mark category unread deprecate cid::read_by_uid sets upgrade script to remove the old sets * chore: up harmony --- install/package.json | 2 +- public/openapi/read/categories.yaml | 3 ++ public/openapi/read/category/category_id.yaml | 3 ++ public/openapi/read/index.yaml | 3 ++ src/api/categories.js | 2 +- src/categories/index.js | 47 ++++++++++++++----- src/categories/search.js | 2 +- src/categories/unread.js | 8 ++++ src/controllers/admin/categories.js | 2 +- src/controllers/categories.js | 7 ++- src/controllers/category.js | 14 +++--- src/topics/create.js | 1 - src/topics/unread.js | 24 +++++----- src/upgrades/3.7.0/category-read-by-uid.js | 26 ++++++++++ test/categories.js | 2 +- 15 files changed, 107 insertions(+), 39 deletions(-) create mode 100644 src/upgrades/3.7.0/category-read-by-uid.js diff --git a/install/package.json b/install/package.json index 9a4b12aaf1..0416e4f52e 100644 --- a/install/package.json +++ b/install/package.json @@ -103,7 +103,7 @@ "nodebb-plugin-ntfy": "1.7.3", "nodebb-plugin-spam-be-gone": "2.2.0", "nodebb-rewards-essentials": "1.0.0", - "nodebb-theme-harmony": "1.2.10", + "nodebb-theme-harmony": "1.2.11", "nodebb-theme-lavender": "7.1.7", "nodebb-theme-peace": "2.2.0", "nodebb-theme-persona": "13.3.3", diff --git a/public/openapi/read/categories.yaml b/public/openapi/read/categories.yaml index 278ab8a7c1..bc8b254049 100644 --- a/public/openapi/read/categories.yaml +++ b/public/openapi/read/categories.yaml @@ -38,6 +38,9 @@ get: type: array items: type: string + unread: + type: boolean + description: True if category or it's children have unread topics unread-class: type: string children: diff --git a/public/openapi/read/category/category_id.yaml b/public/openapi/read/category/category_id.yaml index c0d44fa413..c737909010 100644 --- a/public/openapi/read/category/category_id.yaml +++ b/public/openapi/read/category/category_id.yaml @@ -38,6 +38,9 @@ get: type: array items: type: string + unread: + type: boolean + description: True if category or it's children have unread topics unread-class: type: string children: diff --git a/public/openapi/read/index.yaml b/public/openapi/read/index.yaml index 41848f596b..f980d2eff4 100644 --- a/public/openapi/read/index.yaml +++ b/public/openapi/read/index.yaml @@ -33,6 +33,9 @@ get: type: array items: type: string + unread: + type: boolean + description: True if category or it's children have unread topics unread-class: type: string children: diff --git a/src/api/categories.js b/src/api/categories.js index db682fb245..c825d4fa2e 100644 --- a/src/api/categories.js +++ b/src/api/categories.js @@ -49,7 +49,7 @@ categoriesAPI.create = async function (caller, data) { await hasAdminPrivilege(caller.uid); const response = await categories.create(data); - const categoryObjs = await categories.getCategories([response.cid], caller.uid); + const categoryObjs = await categories.getCategories([response.cid]); return categoryObjs[0]; }; diff --git a/src/categories/index.js b/src/categories/index.js index 6b8db37edd..54346d5a64 100644 --- a/src/categories/index.js +++ b/src/categories/index.js @@ -5,6 +5,7 @@ const _ = require('lodash'); const db = require('../database'); const user = require('../user'); +const topics = require('../topics'); const plugins = require('../plugins'); const privileges = require('../privileges'); const cache = require('../cache'); @@ -30,7 +31,7 @@ Categories.exists = async function (cids) { }; Categories.getCategoryById = async function (data) { - const categories = await Categories.getCategories([data.cid], data.uid); + const categories = await Categories.getCategories([data.cid]); if (!categories[0]) { return null; } @@ -78,9 +79,9 @@ Categories.getAllCidsFromSet = async function (key) { return cids.slice(); }; -Categories.getAllCategories = async function (uid) { +Categories.getAllCategories = async function () { const cids = await Categories.getAllCidsFromSet('categories:cid'); - return await Categories.getCategories(cids, uid); + return await Categories.getCategories(cids); }; Categories.getCidsByPrivilege = async function (set, uid, privilege) { @@ -90,7 +91,7 @@ Categories.getCidsByPrivilege = async function (set, uid, privilege) { Categories.getCategoriesByPrivilege = async function (set, uid, privilege) { const cids = await Categories.getCidsByPrivilege(set, uid, privilege); - return await Categories.getCategories(cids, uid); + return await Categories.getCategories(cids); }; Categories.getModerators = async function (cid) { @@ -102,7 +103,7 @@ Categories.getModeratorUids = async function (cids) { return await privileges.categories.getUidsWithPrivilege(cids, 'moderate'); }; -Categories.getCategories = async function (cids, uid) { +Categories.getCategories = async function (cids) { if (!Array.isArray(cids)) { throw new Error('[[error:invalid-cid]]'); } @@ -110,22 +111,46 @@ Categories.getCategories = async function (cids, uid) { if (!cids.length) { return []; } - uid = parseInt(uid, 10); - const [categories, tagWhitelist, hasRead] = await Promise.all([ + const [categories, tagWhitelist] = await Promise.all([ Categories.getCategoriesData(cids), Categories.getTagWhitelist(cids), - Categories.hasReadCategories(cids, uid), ]); categories.forEach((category, i) => { if (category) { category.tagWhitelist = tagWhitelist[i]; - category['unread-class'] = (category.topic_count === 0 || (hasRead[i] && uid !== 0)) ? '' : 'unread'; } }); return categories; }; +Categories.setUnread = async function (tree, cids, uid) { + if (uid <= 0) { + return; + } + const { unreadCids } = await topics.getUnreadData({ + uid: uid, + cid: cids, + }); + if (!unreadCids.length) { + return; + } + + function setCategoryUnread(category) { + if (category) { + category.unread = false; + if (unreadCids.includes(category.cid)) { + category.unread = category.topic_count > 0 && true; + } else if (category.children.length) { + category.children.forEach(setCategoryUnread); + category.unread = category.children.some(c => c && c.unread); + } + category['unread-class'] = category.unread ? 'unread' : ''; + } + } + tree.forEach(setCategoryUnread); +}; + Categories.getTagWhitelist = async function (cids) { const cachedData = {}; @@ -210,10 +235,6 @@ async function getChildrenTree(category, uid) { let childrenData = await Categories.getCategoriesData(childrenCids); childrenData = childrenData.filter(Boolean); childrenCids = childrenData.map(child => child.cid); - const hasRead = await Categories.hasReadCategories(childrenCids, uid); - childrenData.forEach((child, i) => { - child['unread-class'] = (child.topic_count === 0 || (hasRead[i] && uid !== 0)) ? '' : 'unread'; - }); Categories.getTree([category].concat(childrenData), category.parentCid); } diff --git a/src/categories/search.js b/src/categories/search.js index a4f079e2fd..685628f32c 100644 --- a/src/categories/search.js +++ b/src/categories/search.js @@ -38,7 +38,7 @@ module.exports = function (Categories) { const childrenCids = await getChildrenCids(cids, uid); const uniqCids = _.uniq(cids.concat(childrenCids)); - const categoryData = await Categories.getCategories(uniqCids, uid); + const categoryData = await Categories.getCategories(uniqCids); Categories.getTree(categoryData, 0); await Categories.getRecentTopicReplies(categoryData, uid, data.qs); diff --git a/src/categories/unread.js b/src/categories/unread.js index 123afef413..48d80bb29d 100644 --- a/src/categories/unread.js +++ b/src/categories/unread.js @@ -4,6 +4,8 @@ const db = require('../database'); module.exports = function (Categories) { Categories.markAsRead = async function (cids, uid) { + // TODO: remove in 4.0 + console.warn('[deprecated] Categories.markAsRead deprecated'); if (!Array.isArray(cids) || !cids.length || parseInt(uid, 10) <= 0) { return; } @@ -14,6 +16,8 @@ module.exports = function (Categories) { }; Categories.markAsUnreadForAll = async function (cid) { + // TODO: remove in 4.0 + console.warn('[deprecated] Categories.markAsUnreadForAll deprecated'); if (!parseInt(cid, 10)) { return; } @@ -21,6 +25,8 @@ module.exports = function (Categories) { }; Categories.hasReadCategories = async function (cids, uid) { + // TODO: remove in 4.0 + console.warn('[deprecated] Categories.hasReadCategories deprecated, see Categories.setUnread'); if (parseInt(uid, 10) <= 0) { return cids.map(() => false); } @@ -30,6 +36,8 @@ module.exports = function (Categories) { }; Categories.hasReadCategory = async function (cid, uid) { + // TODO: remove in 4.0 + console.warn('[deprecated] Categories.hasReadCategory deprecated, see Categories.setUnread'); if (parseInt(uid, 10) <= 0) { return false; } diff --git a/src/controllers/admin/categories.js b/src/controllers/admin/categories.js index 852adee41c..75e85e0983 100644 --- a/src/controllers/admin/categories.js +++ b/src/controllers/admin/categories.js @@ -14,7 +14,7 @@ const categoriesController = module.exports; categoriesController.get = async function (req, res, next) { const [categoryData, parent, selectedData] = await Promise.all([ - categories.getCategories([req.params.category_id], req.uid), + categories.getCategories([req.params.category_id]), categories.getParents([req.params.category_id]), helpers.getSelectedCategory(req.params.category_id), ]); diff --git a/src/controllers/categories.js b/src/controllers/categories.js index 435ea41334..a169b49be5 100644 --- a/src/controllers/categories.js +++ b/src/controllers/categories.js @@ -30,9 +30,12 @@ categoriesController.list = async function (req, res) { const allChildCids = _.flatten(await Promise.all(pageCids.map(categories.getChildrenCids))); const childCids = await privileges.categories.filterCids('find', allChildCids, req.uid); - const categoryData = await categories.getCategories(pageCids.concat(childCids), req.uid); + const categoryData = await categories.getCategories(pageCids.concat(childCids)); const tree = categories.getTree(categoryData, 0); - await categories.getRecentTopicReplies(categoryData, req.uid, req.query); + await Promise.all([ + categories.getRecentTopicReplies(categoryData, req.uid, req.query), + categories.setUnread(tree, pageCids.concat(childCids), req.uid), + ]); const data = { title: meta.config.homePageTitle || '[[pages:home]]', diff --git a/src/controllers/category.js b/src/controllers/category.js index 2002099cb9..3c08c2a643 100644 --- a/src/controllers/category.js +++ b/src/controllers/category.js @@ -98,10 +98,15 @@ categoryController.get = async function (req, res, next) { categories.modifyTopicsByPrivilege(categoryData.topics, userPrivileges); categoryData.tagWhitelist = categories.filterTagWhitelist(categoryData.tagWhitelist, userPrivileges.isAdminOrMod); - await buildBreadcrumbs(req, categoryData); + const allCategories = []; + categories.flattenCategories(allCategories, categoryData.children); + + await Promise.all([ + buildBreadcrumbs(req, categoryData), + categories.setUnread([categoryData], allCategories.map(c => c.cid).concat(cid), req.uid), + ]); + if (categoryData.children.length) { - const allCategories = []; - categories.flattenCategories(allCategories, categoryData.children); await categories.getRecentTopicReplies(allCategories, req.uid, req.query); categoryData.subCategoriesLeft = Math.max(0, categoryData.children.length - categoryData.subCategoriesPerPage); categoryData.hasMoreSubCategories = categoryData.children.length > categoryData.subCategoriesPerPage; @@ -124,9 +129,6 @@ categoryController.get = async function (req, res, next) { categoryData.topicIndex = topicIndex; categoryData.selectedTag = tagData.selectedTag; categoryData.selectedTags = tagData.selectedTags; - if (req.loggedIn) { - categories.markAsRead([cid], req.uid); - } if (!meta.config['feeds:disableRSS']) { categoryData.rssFeedUrl = `${url}/category/${categoryData.cid}.rss`; diff --git a/src/topics/create.js b/src/topics/create.js index c8a098a9ae..22d771023c 100644 --- a/src/topics/create.js +++ b/src/topics/create.js @@ -224,7 +224,6 @@ module.exports = function (Topics) { async function onNewPost(postData, data) { const { tid, uid } = postData; - await Topics.markCategoryUnreadForAll(tid); await Topics.markAsRead([tid], uid); const [ userInfo, diff --git a/src/topics/unread.js b/src/topics/unread.js index bb8e207163..e3f7483572 100644 --- a/src/topics/unread.js +++ b/src/topics/unread.js @@ -80,6 +80,7 @@ module.exports = function (Topics) { tids: data.tids, counts: data.counts, tidsByFilter: data.tidsByFilter, + unreadCids: data.unreadCids, cid: params.cid, filter: params.filter, query: params.query || {}, @@ -90,9 +91,9 @@ module.exports = function (Topics) { async function getTids(params) { const counts = { '': 0, new: 0, watched: 0, unreplied: 0 }; const tidsByFilter = { '': [], new: [], watched: [], unreplied: [] }; - + const unreadCids = []; if (params.uid <= 0) { - return { counts: counts, tids: [], tidsByFilter: tidsByFilter }; + return { counts, tids: [], tidsByFilter, unreadCids }; } params.cutoff = await Topics.unreadCutoff(params.uid); @@ -126,7 +127,7 @@ module.exports = function (Topics) { let tids = _.uniq(unreadTopics.map(topic => topic.value)).slice(0, 200); if (!tids.length) { - return { counts: counts, tids: tids, tidsByFilter: tidsByFilter }; + return { counts, tids, tidsByFilter, unreadCids }; } const blockedUids = await user.blocks.list(params.uid); @@ -157,6 +158,7 @@ module.exports = function (Topics) { if (isTopicsFollowed[topic.tid] || [categories.watchStates.watching, categories.watchStates.tracking].includes(userCidState[topic.cid])) { tidsByFilter[''].push(topic.tid); + unreadCids.push(topic.cid); } if (isTopicsFollowed[topic.tid]) { @@ -182,6 +184,7 @@ module.exports = function (Topics) { counts: counts, tids: tidsByFilter[params.filter], tidsByFilter: tidsByFilter, + unreadCids: _.uniq(unreadCids), }; } @@ -280,7 +283,6 @@ module.exports = function (Topics) { Topics.markAsUnreadForAll = async function (tid) { const now = Date.now(); const cid = await Topics.getTopicField(tid, 'cid'); - await Topics.markCategoryUnreadForAll(tid); await Topics.updateRecent(tid, now); await db.sortedSetAdd(`cid:${cid}:tids:lastposttime`, now, tid); await Topics.setTopicField(tid, 'lastposttime', now); @@ -312,15 +314,11 @@ module.exports = function (Topics) { } const scores = topics.map(topic => (topic.scheduled ? topic.lastposttime : now)); - const [topicData] = await Promise.all([ - Topics.getTopicsFields(tids, ['cid']), + await Promise.all([ db.sortedSetAdd(`uid:${uid}:tids_read`, scores, tids), db.sortedSetRemove(`uid:${uid}:tids_unread`, tids), ]); - const cids = _.uniq(topicData.map(t => t && t.cid).filter(Boolean)); - await categories.markAsRead(cids, uid); - plugins.hooks.fire('action:topics.markAsRead', { uid: uid, tids: tids }); return true; }; @@ -343,9 +341,11 @@ module.exports = function (Topics) { user.notifications.pushCount(uid); }; - Topics.markCategoryUnreadForAll = async function (tid) { - const cid = await Topics.getTopicField(tid, 'cid'); - await categories.markAsUnreadForAll(cid); + Topics.markCategoryUnreadForAll = async function (/* tid */) { + // TODO: remove in 4.x + console.warn('[deprecated] Topics.markCategoryUnreadForAll deprecated'); + // const cid = await Topics.getTopicField(tid, 'cid'); + // await categories.markAsUnreadForAll(cid); }; Topics.hasReadTopics = async function (tids, uid) { diff --git a/src/upgrades/3.7.0/category-read-by-uid.js b/src/upgrades/3.7.0/category-read-by-uid.js new file mode 100644 index 0000000000..4b0f41aa04 --- /dev/null +++ b/src/upgrades/3.7.0/category-read-by-uid.js @@ -0,0 +1,26 @@ +/* eslint-disable no-await-in-loop */ + +'use strict'; + +const db = require('../../database'); +const batch = require('../../batch'); + +module.exports = { + name: 'Remove cid::read_by_uid sets', + timestamp: Date.UTC(2024, 0, 29), + method: async function () { + const { progress } = this; + const nextCid = await db.getObjectField('global', 'nextCid'); + const allCids = []; + for (let i = 1; i <= nextCid; i++) { + allCids.push(i); + } + await batch.processArray(allCids, async (cids) => { + await db.deleteAll(cids.map(cid => `cid:${cid}:read_by_uid`)); + progress.incr(cids.length); + }, { + batch: 500, + progress, + }); + }, +}; diff --git a/test/categories.js b/test/categories.js index c81323d9a2..5309bd1545 100644 --- a/test/categories.js +++ b/test/categories.js @@ -68,7 +68,7 @@ describe('Categories', () => { }); it('should get all categories', (done) => { - Categories.getAllCategories(1, (err, data) => { + Categories.getAllCategories((err, data) => { assert.ifError(err); assert(Array.isArray(data)); assert.equal(data[0].cid, categoryObj.cid); From 67c8bd99169fe2d4b23c65b8ce262026eb615a4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Wed, 31 Jan 2024 08:42:18 -0500 Subject: [PATCH 27/69] fix: #12320, .text() gets \n\t characters add name check in order active plugins use single db call to set order --- public/src/admin/extend/plugins.js | 4 ++-- src/socket.io/admin/plugins.js | 10 +++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/public/src/admin/extend/plugins.js b/public/src/admin/extend/plugins.js index 818177754a..5d33b4d9b5 100644 --- a/public/src/admin/extend/plugins.js +++ b/public/src/admin/extend/plugins.js @@ -195,7 +195,7 @@ define('admin/extend/plugins', [ let html = ''; activePlugins.forEach(function (plugin) { html += ` -
  • +
  • ${plugin}
    @@ -233,7 +233,7 @@ define('admin/extend/plugins', [ const plugins = $('#order-active-plugins-modal .plugin-list').children(); const data = []; plugins.each(function (index, el) { - data.push({ name: $(el).text(), order: index }); + data.push({ name: $(el).attr('data-plugin'), order: index }); }); socket.emit('admin.plugins.orderActivePlugins', data, function (err) { diff --git a/src/socket.io/admin/plugins.js b/src/socket.io/admin/plugins.js index 46d77c9c1a..b8890f9e61 100644 --- a/src/socket.io/admin/plugins.js +++ b/src/socket.io/admin/plugins.js @@ -5,6 +5,7 @@ const nconf = require('nconf'); const plugins = require('../../plugins'); const events = require('../../events'); const db = require('../../database'); +const { pluginNamePattern } = require('../../constants'); const Plugins = module.exports; @@ -41,7 +42,14 @@ Plugins.orderActivePlugins = async function (socket, data) { throw new Error('[[error:plugins-set-in-configuration]]'); } data = data.filter(plugin => plugin && plugin.name); - await Promise.all(data.map(plugin => db.sortedSetAdd('plugins:active', plugin.order || 0, plugin.name))); + + data.forEach((plugin) => { + if (!pluginNamePattern.test(plugin.name)) { + throw new Error('[[error:invalid-plugin-id]]'); + } + }); + + await db.sortedSetAdd('plugins:active', data.map(p => p.order || 0), data.map(p => p.name)); }; Plugins.upgrade = async function (socket, data) { From f7736155aed6f668fadeef15521923a829469e73 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Wed, 31 Jan 2024 13:49:21 +0000 Subject: [PATCH 28/69] chore: incrementing version number - v3.6.5 --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 576776b7c0..0b5fb0c5f0 100644 --- a/install/package.json +++ b/install/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "3.6.4", + "version": "3.6.5", "homepage": "https://www.nodebb.org", "repository": { "type": "git", From 04039f7620380ea759b7964c07e5d35e50c71e12 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Wed, 31 Jan 2024 13:49:22 +0000 Subject: [PATCH 29/69] chore: update changelog for v3.6.5 --- CHANGELOG.md | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f0c3aceecd..c4ace16fe7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,49 @@ +#### v3.6.5 (2024-01-31) + +##### Chores + +* incrementing version number - v3.6.4 (83d131b4) +* update changelog for v3.6.4 (6e6c3974) +* incrementing version number - v3.6.3 (fc7d2bfd) +* incrementing version number - v3.6.2 (0f577a57) +* incrementing version number - v3.6.1 (f1a69468) +* incrementing version number - v3.6.0 (4cdf85f8) +* incrementing version number - v3.5.3 (ed0e8783) +* incrementing version number - v3.5.2 (52fbb2da) +* incrementing version number - v3.5.1 (4c543488) +* incrementing version number - v3.5.0 (d06fb4f0) +* incrementing version number - v3.4.3 (5c984250) +* incrementing version number - v3.4.2 (3f0dac38) +* incrementing version number - v3.4.1 (01e69574) +* incrementing version number - v3.4.0 (fd9247c5) +* incrementing version number - v3.3.9 (5805e770) +* incrementing version number - v3.3.8 (a5603565) +* incrementing version number - v3.3.7 (b26f1744) +* incrementing version number - v3.3.6 (7fb38792) +* incrementing version number - v3.3.4 (a67f84ea) +* incrementing version number - v3.3.3 (f94d239b) +* incrementing version number - v3.3.2 (ec9dac97) +* incrementing version number - v3.3.1 (151cc68f) +* incrementing version number - v3.3.0 (fc1ad70f) +* incrementing version number - v3.2.3 (b06d3e63) +* incrementing version number - v3.2.2 (758ecfcd) +* incrementing version number - v3.2.1 (20145074) +* incrementing version number - v3.2.0 (9ecac38e) +* incrementing version number - v3.1.7 (0b4e81ab) +* incrementing version number - v3.1.6 (b3a3b130) +* incrementing version number - v3.1.5 (ec19343a) +* incrementing version number - v3.1.4 (2452783c) +* incrementing version number - v3.1.3 (3b4e9d3f) +* incrementing version number - v3.1.2 (40fa3489) +* incrementing version number - v3.1.1 (40250733) +* incrementing version number - v3.1.0 (0cb386bd) +* incrementing version number - v3.0.1 (26f6ea49) +* incrementing version number - v3.0.0 (224e08cd) + +##### Bug Fixes + +* #12320, .text() gets \n\t characters (67c8bd99) + #### v3.6.4 (2024-01-24) ##### Chores From 264e71d24ca219c8b6e2a8dc8c9f889bb72d488a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 16:07:32 -0500 Subject: [PATCH 30/69] chore(deps): update dependency lint-staged to v15.2.1 (#12319) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index a2157d08bb..c5cc453455 100644 --- a/install/package.json +++ b/install/package.json @@ -164,7 +164,7 @@ "grunt-contrib-watch": "1.1.0", "husky": "8.0.3", "jsdom": "24.0.0", - "lint-staged": "15.2.0", + "lint-staged": "15.2.1", "mocha": "10.2.0", "mocha-lcov-reporter": "1.3.0", "mockdate": "3.0.5", From 3f74cca3a4801c5bc6e6da8c70eaa8d9c07cc3bd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 16:07:44 -0500 Subject: [PATCH 31/69] fix(deps): update dependency nodemailer to v6.9.9 (#12321) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index c5cc453455..315e72ef23 100644 --- a/install/package.json +++ b/install/package.json @@ -108,7 +108,7 @@ "nodebb-theme-peace": "2.2.0", "nodebb-theme-persona": "13.3.3", "nodebb-widget-essentials": "7.0.15", - "nodemailer": "6.9.8", + "nodemailer": "6.9.9", "nprogress": "0.2.0", "passport": "0.7.0", "passport-http-bearer": "1.0.1", From 98b455ce6fcfdd9bbfe1743d13004017182e0bab Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 16:07:57 -0500 Subject: [PATCH 32/69] fix(deps): update dependency webpack to v5.90.1 (#12322) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- install/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/package.json b/install/package.json index 315e72ef23..0b88794066 100644 --- a/install/package.json +++ b/install/package.json @@ -143,7 +143,7 @@ "toobusy-js": "0.5.1", "tough-cookie": "4.1.3", "validator": "13.11.0", - "webpack": "5.90.0", + "webpack": "5.90.1", "webpack-merge": "5.10.0", "winston": "3.11.0", "workerpool": "9.1.0", From e298fb6b59ec92397db30eb18beb93edb83b061a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Fri, 2 Feb 2024 15:50:29 -0500 Subject: [PATCH 33/69] feat: add lang keys for hidden labels --- public/language/en-GB/global.json | 3 ++- public/language/en-GB/topic.json | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/public/language/en-GB/global.json b/public/language/en-GB/global.json index bebd1b4054..eb74f4ba6b 100644 --- a/public/language/en-GB/global.json +++ b/public/language/en-GB/global.json @@ -168,5 +168,6 @@ "user-search-prompt": "Type something here to find users...", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } diff --git a/public/language/en-GB/topic.json b/public/language/en-GB/topic.json index 01e92a1cb6..d5551ddd8e 100644 --- a/public/language/en-GB/topic.json +++ b/public/language/en-GB/topic.json @@ -235,5 +235,8 @@ "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } From a2819e9ecd4a2621328b4c9e3f7a0006cdb17464 Mon Sep 17 00:00:00 2001 From: Misty Release Bot Date: Fri, 2 Feb 2024 20:51:08 +0000 Subject: [PATCH 34/69] chore(i18n): fallback strings for new resources: nodebb.global, nodebb.topic --- public/language/ar/global.json | 3 ++- public/language/ar/topic.json | 5 ++++- public/language/bg/global.json | 3 ++- public/language/bg/topic.json | 5 ++++- public/language/bn/global.json | 3 ++- public/language/bn/topic.json | 5 ++++- public/language/cs/global.json | 3 ++- public/language/cs/topic.json | 5 ++++- public/language/da/global.json | 3 ++- public/language/da/topic.json | 5 ++++- public/language/de/global.json | 3 ++- public/language/de/topic.json | 5 ++++- public/language/el/global.json | 3 ++- public/language/el/topic.json | 5 ++++- public/language/en-US/global.json | 3 ++- public/language/en-US/topic.json | 5 ++++- public/language/en-x-pirate/global.json | 3 ++- public/language/en-x-pirate/topic.json | 5 ++++- public/language/es/global.json | 3 ++- public/language/es/topic.json | 5 ++++- public/language/et/global.json | 3 ++- public/language/et/topic.json | 5 ++++- public/language/fa-IR/global.json | 3 ++- public/language/fa-IR/topic.json | 5 ++++- public/language/fi/global.json | 3 ++- public/language/fi/topic.json | 5 ++++- public/language/fr/global.json | 3 ++- public/language/fr/topic.json | 5 ++++- public/language/gl/global.json | 3 ++- public/language/gl/topic.json | 5 ++++- public/language/he/global.json | 3 ++- public/language/he/topic.json | 5 ++++- public/language/hr/global.json | 3 ++- public/language/hr/topic.json | 5 ++++- public/language/hu/global.json | 3 ++- public/language/hu/topic.json | 5 ++++- public/language/hy/global.json | 3 ++- public/language/hy/topic.json | 5 ++++- public/language/id/global.json | 3 ++- public/language/id/topic.json | 5 ++++- public/language/it/global.json | 3 ++- public/language/it/topic.json | 5 ++++- public/language/ja/global.json | 3 ++- public/language/ja/topic.json | 5 ++++- public/language/ko/global.json | 3 ++- public/language/ko/topic.json | 5 ++++- public/language/lt/global.json | 3 ++- public/language/lt/topic.json | 5 ++++- public/language/lv/global.json | 3 ++- public/language/lv/topic.json | 5 ++++- public/language/ms/global.json | 3 ++- public/language/ms/topic.json | 5 ++++- public/language/nb/global.json | 3 ++- public/language/nb/topic.json | 5 ++++- public/language/nl/global.json | 3 ++- public/language/nl/topic.json | 5 ++++- public/language/pl/global.json | 3 ++- public/language/pl/topic.json | 5 ++++- public/language/pt-BR/global.json | 3 ++- public/language/pt-BR/topic.json | 5 ++++- public/language/pt-PT/global.json | 3 ++- public/language/pt-PT/topic.json | 5 ++++- public/language/ro/global.json | 3 ++- public/language/ro/topic.json | 5 ++++- public/language/ru/global.json | 3 ++- public/language/ru/topic.json | 5 ++++- public/language/rw/global.json | 3 ++- public/language/rw/topic.json | 5 ++++- public/language/sc/global.json | 3 ++- public/language/sc/topic.json | 5 ++++- public/language/sk/global.json | 3 ++- public/language/sk/topic.json | 5 ++++- public/language/sl/global.json | 3 ++- public/language/sl/topic.json | 5 ++++- public/language/sq-AL/global.json | 3 ++- public/language/sq-AL/topic.json | 5 ++++- public/language/sr/global.json | 3 ++- public/language/sr/topic.json | 5 ++++- public/language/sv/global.json | 3 ++- public/language/sv/topic.json | 5 ++++- public/language/th/global.json | 3 ++- public/language/th/topic.json | 5 ++++- public/language/tr/global.json | 3 ++- public/language/tr/topic.json | 5 ++++- public/language/uk/global.json | 3 ++- public/language/uk/topic.json | 5 ++++- public/language/vi/global.json | 3 ++- public/language/vi/topic.json | 5 ++++- public/language/zh-CN/global.json | 3 ++- public/language/zh-CN/topic.json | 5 ++++- public/language/zh-TW/global.json | 3 ++- public/language/zh-TW/topic.json | 5 ++++- 92 files changed, 276 insertions(+), 92 deletions(-) diff --git a/public/language/ar/global.json b/public/language/ar/global.json index 9d7c10b985..1674ed905f 100644 --- a/public/language/ar/global.json +++ b/public/language/ar/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Type something here to find users...", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/ar/topic.json b/public/language/ar/topic.json index 3a17d0cac9..9f73f0d474 100644 --- a/public/language/ar/topic.json +++ b/public/language/ar/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "You don't have more posts in this topic", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/bg/global.json b/public/language/bg/global.json index d585ac0b00..e542f5a213 100644 --- a/public/language/bg/global.json +++ b/public/language/bg/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Започнете да пишете, за да потърсите потребител…", "hidden": "Скрито", "sort": "Подреждане", - "actions": "Действия" + "actions": "Действия", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/bg/topic.json b/public/language/bg/topic.json index 5d4a19c877..a0eacc1780 100644 --- a/public/language/bg/topic.json +++ b/public/language/bg/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "Нямате повече публикации в тази тема", "post-quick-reply": "Бърз отговор", "navigator.index": "Публикация %1 от %2", - "navigator.unread": "%1 непрочетени" + "navigator.unread": "%1 непрочетени", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/bn/global.json b/public/language/bn/global.json index 1b9aa0166e..20a6c9c1b1 100644 --- a/public/language/bn/global.json +++ b/public/language/bn/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Type something here to find users...", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/bn/topic.json b/public/language/bn/topic.json index 13bc1c8500..889f0e34ce 100644 --- a/public/language/bn/topic.json +++ b/public/language/bn/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "You don't have more posts in this topic", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/cs/global.json b/public/language/cs/global.json index c1cb1ec8e0..81d8ecb908 100644 --- a/public/language/cs/global.json +++ b/public/language/cs/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Pro hledání uživatelů, zde pište...", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/cs/topic.json b/public/language/cs/topic.json index ea809a3133..70b82dc75c 100644 --- a/public/language/cs/topic.json +++ b/public/language/cs/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "You don't have more posts in this topic", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/da/global.json b/public/language/da/global.json index 55b17a7d75..9c959ee744 100644 --- a/public/language/da/global.json +++ b/public/language/da/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Type something here to find users...", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/da/topic.json b/public/language/da/topic.json index 6448d99de6..654870fc6e 100644 --- a/public/language/da/topic.json +++ b/public/language/da/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "You don't have more posts in this topic", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/de/global.json b/public/language/de/global.json index 4d574b550c..020c0f4036 100644 --- a/public/language/de/global.json +++ b/public/language/de/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Gib hier etwas ein um Benutzer zu finden...", "hidden": "Versteckt", "sort": "Sortieren", - "actions": "Aktionen" + "actions": "Aktionen", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/de/topic.json b/public/language/de/topic.json index 2e5324409b..381a4608e9 100644 --- a/public/language/de/topic.json +++ b/public/language/de/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "Du hast keine weiteren Beiträge zu diesem Thema", "post-quick-reply": "Schnell antworten", "navigator.index": "Beitrag %1 von %2", - "navigator.unread": "%1 ungelesen" + "navigator.unread": "%1 ungelesen", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/el/global.json b/public/language/el/global.json index ecbe7394c7..1fb6a7d9c8 100644 --- a/public/language/el/global.json +++ b/public/language/el/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Type something here to find users...", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/el/topic.json b/public/language/el/topic.json index 873cb57d59..0a3421a8a6 100644 --- a/public/language/el/topic.json +++ b/public/language/el/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "You don't have more posts in this topic", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/en-US/global.json b/public/language/en-US/global.json index 47cd1ec2ac..b7fede7a63 100644 --- a/public/language/en-US/global.json +++ b/public/language/en-US/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Type something here to find users...", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/en-US/topic.json b/public/language/en-US/topic.json index 3af5a1128a..5d7b9708e2 100644 --- a/public/language/en-US/topic.json +++ b/public/language/en-US/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "You don't have more posts in this topic", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/en-x-pirate/global.json b/public/language/en-x-pirate/global.json index ce4c269fcf..09d3acc703 100644 --- a/public/language/en-x-pirate/global.json +++ b/public/language/en-x-pirate/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Type something here to find users...", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/en-x-pirate/topic.json b/public/language/en-x-pirate/topic.json index 3af5a1128a..5d7b9708e2 100644 --- a/public/language/en-x-pirate/topic.json +++ b/public/language/en-x-pirate/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "You don't have more posts in this topic", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/es/global.json b/public/language/es/global.json index 1cb70a3530..dd75b9210c 100644 --- a/public/language/es/global.json +++ b/public/language/es/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Escriba algo aquí para encontrar usuarios...", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/es/topic.json b/public/language/es/topic.json index 01a1176118..4e922ca0eb 100644 --- a/public/language/es/topic.json +++ b/public/language/es/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "You don't have more posts in this topic", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/et/global.json b/public/language/et/global.json index 00a4157786..0a4c617816 100644 --- a/public/language/et/global.json +++ b/public/language/et/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Type something here to find users...", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/et/topic.json b/public/language/et/topic.json index 60bf706717..c1bc79f9f3 100644 --- a/public/language/et/topic.json +++ b/public/language/et/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "You don't have more posts in this topic", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/fa-IR/global.json b/public/language/fa-IR/global.json index be9bad17a7..0084faabb5 100644 --- a/public/language/fa-IR/global.json +++ b/public/language/fa-IR/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "برای پیدا کردن کاربر اینجا چیزی بنویسید...", "hidden": "Hidden", "sort": "مرتب‌سازی", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/fa-IR/topic.json b/public/language/fa-IR/topic.json index 8b0e0f5094..fce588af16 100644 --- a/public/language/fa-IR/topic.json +++ b/public/language/fa-IR/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "شما پست بیشتری در این تاپیک ندارید", "post-quick-reply": "پاسخ سریع", "navigator.index": "پست %1 از %2", - "navigator.unread": "%1 خوانده نشده" + "navigator.unread": "%1 خوانده نشده", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/fi/global.json b/public/language/fi/global.json index ee0f9a6942..bf792c49b6 100644 --- a/public/language/fi/global.json +++ b/public/language/fi/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Type something here to find users...", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/fi/topic.json b/public/language/fi/topic.json index 59d07bb5d9..2dfdc489cb 100644 --- a/public/language/fi/topic.json +++ b/public/language/fi/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "You don't have more posts in this topic", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/fr/global.json b/public/language/fr/global.json index 91e097cd9c..282a26373a 100644 --- a/public/language/fr/global.json +++ b/public/language/fr/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Écrivez ici pour rechercher des utilisateurs ...", "hidden": "Masqué", "sort": "Trier", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/fr/topic.json b/public/language/fr/topic.json index e1ac6b0965..65f40138be 100644 --- a/public/language/fr/topic.json +++ b/public/language/fr/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "Vous n'avez plus de messages dans ce sujet", "post-quick-reply": "Réponse rapide", "navigator.index": "Message %1 sur %2", - "navigator.unread": "%1 non lu" + "navigator.unread": "%1 non lu", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/gl/global.json b/public/language/gl/global.json index 37aa8f5885..ae6a077156 100644 --- a/public/language/gl/global.json +++ b/public/language/gl/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Type something here to find users...", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/gl/topic.json b/public/language/gl/topic.json index 2448f0aee1..fe0992002c 100644 --- a/public/language/gl/topic.json +++ b/public/language/gl/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "You don't have more posts in this topic", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/he/global.json b/public/language/he/global.json index 75a25016b4..f7a8657c23 100644 --- a/public/language/he/global.json +++ b/public/language/he/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "הקלד כאן משהו על מנת למצוא משתמשים...", "hidden": "מוסתר", "sort": "מיון", - "actions": "פעולות" + "actions": "פעולות", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/he/topic.json b/public/language/he/topic.json index 4d51a6088a..3d2fcfd100 100644 --- a/public/language/he/topic.json +++ b/public/language/he/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "אין לכם יותר פוסטים בנושא זה", "post-quick-reply": "תגובה מהירה", "navigator.index": "פוסט %1 מתוך %2", - "navigator.unread": "%1 לא נקראו" + "navigator.unread": "%1 לא נקראו", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/hr/global.json b/public/language/hr/global.json index c3b8de2c12..071999bd9f 100644 --- a/public/language/hr/global.json +++ b/public/language/hr/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Type something here to find users...", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/hr/topic.json b/public/language/hr/topic.json index d6d47ba1df..09db29b077 100644 --- a/public/language/hr/topic.json +++ b/public/language/hr/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "You don't have more posts in this topic", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/hu/global.json b/public/language/hu/global.json index 9cbc9b9017..0a6f727542 100644 --- a/public/language/hu/global.json +++ b/public/language/hu/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Írj be valamit, hogy felhasználókra keress...", "hidden": "Rejtve", "sort": "Rendezés", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/hu/topic.json b/public/language/hu/topic.json index ddc5e5325f..7cf8c16738 100644 --- a/public/language/hu/topic.json +++ b/public/language/hu/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "Neked nincs több bejegyzésed ebben a témakörben", "post-quick-reply": "Gyors válasz", "navigator.index": "Bejegyzés %1 / %2", - "navigator.unread": "%1 olvasatlan" + "navigator.unread": "%1 olvasatlan", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/hy/global.json b/public/language/hy/global.json index 0c9dc9fa31..1ceb55b13d 100644 --- a/public/language/hy/global.json +++ b/public/language/hy/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Մուտքագրեք ինչ-որ բան այստեղ՝ օգտատերեր գտնելու համար...", "hidden": "Թաքցված", "sort": "Տեսակավորել", - "actions": "Գործողություններ" + "actions": "Գործողություններ", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/hy/topic.json b/public/language/hy/topic.json index b817846145..32aac256d9 100644 --- a/public/language/hy/topic.json +++ b/public/language/hy/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "Այս թեմայում այլ գրառումներ չունեք", "post-quick-reply": "Արագ պատասխան", "navigator.index": "Գրառում %1 %2 - ից", - "navigator.unread": "%1 չկարդացված" + "navigator.unread": "%1 չկարդացված", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/id/global.json b/public/language/id/global.json index 98574983ee..8364bdba2e 100644 --- a/public/language/id/global.json +++ b/public/language/id/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Type something here to find users...", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/id/topic.json b/public/language/id/topic.json index 59814de6e0..2c717a9bb5 100644 --- a/public/language/id/topic.json +++ b/public/language/id/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "You don't have more posts in this topic", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/it/global.json b/public/language/it/global.json index a25f31caf4..3c4aa59029 100644 --- a/public/language/it/global.json +++ b/public/language/it/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Scrivi qui per avviare la ricerca utenti", "hidden": "Nascosto", "sort": "Ordinamento", - "actions": "Azioni" + "actions": "Azioni", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/it/topic.json b/public/language/it/topic.json index 174ecc291f..d39b8a98ea 100644 --- a/public/language/it/topic.json +++ b/public/language/it/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "Non hai più post in questa discussione", "post-quick-reply": "Risposta rapida", "navigator.index": "Post %1 di %2", - "navigator.unread": "%1 non letto" + "navigator.unread": "%1 non letto", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/ja/global.json b/public/language/ja/global.json index e184c18996..7c02e290a8 100644 --- a/public/language/ja/global.json +++ b/public/language/ja/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Type something here to find users...", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/ja/topic.json b/public/language/ja/topic.json index 8c7d5ecd17..34758b9d7f 100644 --- a/public/language/ja/topic.json +++ b/public/language/ja/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "You don't have more posts in this topic", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/ko/global.json b/public/language/ko/global.json index f68e97a826..182989f38e 100644 --- a/public/language/ko/global.json +++ b/public/language/ko/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "사용자를 찾기 위해 여기에 검색어를 입력하십시오...", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/ko/topic.json b/public/language/ko/topic.json index 4072680e55..8d5f1aae70 100644 --- a/public/language/ko/topic.json +++ b/public/language/ko/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "You don't have more posts in this topic", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/lt/global.json b/public/language/lt/global.json index af52871b9e..3e43ef679a 100644 --- a/public/language/lt/global.json +++ b/public/language/lt/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Type something here to find users...", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/lt/topic.json b/public/language/lt/topic.json index 007d5f6d3c..0936c9ebfb 100644 --- a/public/language/lt/topic.json +++ b/public/language/lt/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "You don't have more posts in this topic", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/lv/global.json b/public/language/lv/global.json index 3aabe97957..5a7c5bbc93 100644 --- a/public/language/lv/global.json +++ b/public/language/lv/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Ieraksti kaut ko šeit, lai meklētu lietotājus...", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/lv/topic.json b/public/language/lv/topic.json index 47a92f35e7..08afd598cf 100644 --- a/public/language/lv/topic.json +++ b/public/language/lv/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "You don't have more posts in this topic", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/ms/global.json b/public/language/ms/global.json index 3a97c97fef..71c71d70bd 100644 --- a/public/language/ms/global.json +++ b/public/language/ms/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Type something here to find users...", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/ms/topic.json b/public/language/ms/topic.json index 107662e505..59e1263223 100644 --- a/public/language/ms/topic.json +++ b/public/language/ms/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "You don't have more posts in this topic", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/nb/global.json b/public/language/nb/global.json index 9c6ca7859e..2abda182bf 100644 --- a/public/language/nb/global.json +++ b/public/language/nb/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Skriv her for å finne andre brukere...", "hidden": "Skjult", "sort": "Sorter", - "actions": "Handlinger" + "actions": "Handlinger", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/nb/topic.json b/public/language/nb/topic.json index c7f2439908..ff24edc5e8 100644 --- a/public/language/nb/topic.json +++ b/public/language/nb/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "Du har ikke flere innlegg i dette emnet", "post-quick-reply": "Raskt svar", "navigator.index": "Innlegg %1 av %2", - "navigator.unread": "%1 ulest" + "navigator.unread": "%1 ulest", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/nl/global.json b/public/language/nl/global.json index 852e091270..b0bb3c4268 100644 --- a/public/language/nl/global.json +++ b/public/language/nl/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Typ hier om gebruikers te vinden...", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/nl/topic.json b/public/language/nl/topic.json index 39f7c08053..8820fcac6d 100644 --- a/public/language/nl/topic.json +++ b/public/language/nl/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "You don't have more posts in this topic", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/pl/global.json b/public/language/pl/global.json index 365fc6bebf..2f61dba41b 100644 --- a/public/language/pl/global.json +++ b/public/language/pl/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Aby znaleźć użytkowników, wpisz tutaj...", "hidden": "Ukryty", "sort": "Sortuj", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/pl/topic.json b/public/language/pl/topic.json index 62090e6342..2cacb1669a 100644 --- a/public/language/pl/topic.json +++ b/public/language/pl/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "Nie masz więcej postów w tym temacie", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/pt-BR/global.json b/public/language/pt-BR/global.json index 57cae5f925..fd7918e1fc 100644 --- a/public/language/pt-BR/global.json +++ b/public/language/pt-BR/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Digite alguma coisa aqui para encontrar usuários...", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/pt-BR/topic.json b/public/language/pt-BR/topic.json index 15b371f558..c0faa1dcc9 100644 --- a/public/language/pt-BR/topic.json +++ b/public/language/pt-BR/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "You don't have more posts in this topic", "post-quick-reply": "Resposta rápida", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/pt-PT/global.json b/public/language/pt-PT/global.json index a2c68f0a62..2e5c2bee63 100644 --- a/public/language/pt-PT/global.json +++ b/public/language/pt-PT/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Digita algo aqui para encontrar utilizadores...", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/pt-PT/topic.json b/public/language/pt-PT/topic.json index aab28e526a..fc32d237c3 100644 --- a/public/language/pt-PT/topic.json +++ b/public/language/pt-PT/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "You don't have more posts in this topic", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/ro/global.json b/public/language/ro/global.json index 015c209418..c1cedd2d6c 100644 --- a/public/language/ro/global.json +++ b/public/language/ro/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Type something here to find users...", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/ro/topic.json b/public/language/ro/topic.json index 60e23ea155..bec9b26bbe 100644 --- a/public/language/ro/topic.json +++ b/public/language/ro/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "You don't have more posts in this topic", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/ru/global.json b/public/language/ru/global.json index b07d8a1ade..56a1ce13b5 100644 --- a/public/language/ru/global.json +++ b/public/language/ru/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Введите что-нибудь здесь, чтобы найти пользователей...", "hidden": "не показывается", "sort": "Сортировка", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/ru/topic.json b/public/language/ru/topic.json index 9795df12c8..17b5467d54 100644 --- a/public/language/ru/topic.json +++ b/public/language/ru/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "Больше нет записей в этой теме", "post-quick-reply": "Быстрый ответ", "navigator.index": "Сообщений %1 от %2", - "navigator.unread": "%1 непрочитано" + "navigator.unread": "%1 непрочитано", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/rw/global.json b/public/language/rw/global.json index 49df1edb1c..b284b6f627 100644 --- a/public/language/rw/global.json +++ b/public/language/rw/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Type something here to find users...", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/rw/topic.json b/public/language/rw/topic.json index b7311dcf55..72a691a2ae 100644 --- a/public/language/rw/topic.json +++ b/public/language/rw/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "You don't have more posts in this topic", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/sc/global.json b/public/language/sc/global.json index bb606db8b2..3d27455afe 100644 --- a/public/language/sc/global.json +++ b/public/language/sc/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Type something here to find users...", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/sc/topic.json b/public/language/sc/topic.json index 7bb193d560..9c239d4794 100644 --- a/public/language/sc/topic.json +++ b/public/language/sc/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "You don't have more posts in this topic", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/sk/global.json b/public/language/sk/global.json index 682567ca31..1aa9aeac5e 100644 --- a/public/language/sk/global.json +++ b/public/language/sk/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Pre hľadanie používateľov, píšte sem...", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/sk/topic.json b/public/language/sk/topic.json index 4665b22bb7..dd73a8b87b 100644 --- a/public/language/sk/topic.json +++ b/public/language/sk/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "You don't have more posts in this topic", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/sl/global.json b/public/language/sl/global.json index 5f95bfd6e2..e2b927b245 100644 --- a/public/language/sl/global.json +++ b/public/language/sl/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Type something here to find users...", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/sl/topic.json b/public/language/sl/topic.json index f8815847c5..788b30e59c 100644 --- a/public/language/sl/topic.json +++ b/public/language/sl/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "You don't have more posts in this topic", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/sq-AL/global.json b/public/language/sq-AL/global.json index e5b0780b7b..58f93aa63d 100644 --- a/public/language/sq-AL/global.json +++ b/public/language/sq-AL/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Shkruani diçka këtu për të gjetur përdorues...", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/sq-AL/topic.json b/public/language/sq-AL/topic.json index ca621f178c..e2690d3c0c 100644 --- a/public/language/sq-AL/topic.json +++ b/public/language/sq-AL/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "Nuk keni postime të tjera në këtë temë", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/sr/global.json b/public/language/sr/global.json index 67fe6c1da6..cbede46433 100644 --- a/public/language/sr/global.json +++ b/public/language/sr/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Uкуцајте нешто овде како бисте пронашли кориснике...", "hidden": "Сакривен", "sort": "Сортирај", - "actions": "Радње" + "actions": "Радње", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/sr/topic.json b/public/language/sr/topic.json index 2352be3e97..d08d93d882 100644 --- a/public/language/sr/topic.json +++ b/public/language/sr/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "Немате више порука у овој теми", "post-quick-reply": "Брзи одговор", "navigator.index": "Објава %1 од %2", - "navigator.unread": "%1 непрочитане" + "navigator.unread": "%1 непрочитане", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/sv/global.json b/public/language/sv/global.json index 87a97fe337..b8d8138a88 100644 --- a/public/language/sv/global.json +++ b/public/language/sv/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Skriv något för att hitta användare", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/sv/topic.json b/public/language/sv/topic.json index 2896bc8dc3..486b97926f 100644 --- a/public/language/sv/topic.json +++ b/public/language/sv/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "You don't have more posts in this topic", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/th/global.json b/public/language/th/global.json index 8fa85f3fc3..5cd3c085a2 100644 --- a/public/language/th/global.json +++ b/public/language/th/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Type something here to find users...", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/th/topic.json b/public/language/th/topic.json index cbae4c6819..61722707a5 100644 --- a/public/language/th/topic.json +++ b/public/language/th/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "You don't have more posts in this topic", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/tr/global.json b/public/language/tr/global.json index d48f818074..d3eab7faac 100644 --- a/public/language/tr/global.json +++ b/public/language/tr/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Kullanıcı bulmak için buraya yazın ...", "hidden": "Gizli", "sort": "Sırala", - "actions": "Eylemler" + "actions": "Eylemler", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/tr/topic.json b/public/language/tr/topic.json index a060ef9a62..90c40e8080 100644 --- a/public/language/tr/topic.json +++ b/public/language/tr/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "Bu başlıkta başka bir iletiniz bulunmamaktadır.", "post-quick-reply": "Hızlı Yanıt Gönder", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 Okunmamış" + "navigator.unread": "%1 Okunmamış", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/uk/global.json b/public/language/uk/global.json index 5fe5169fe8..9b7f647f31 100644 --- a/public/language/uk/global.json +++ b/public/language/uk/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Введіть щось тут, щоб знайти користувачів...", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/uk/topic.json b/public/language/uk/topic.json index 27236fe4b2..5b7cc0c242 100644 --- a/public/language/uk/topic.json +++ b/public/language/uk/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "You don't have more posts in this topic", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/vi/global.json b/public/language/vi/global.json index 324bd06f28..cde32abb0b 100644 --- a/public/language/vi/global.json +++ b/public/language/vi/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "Nhập để tìm kiếm thành viên", "hidden": "Ẩn", "sort": "Sort", - "actions": "Hành Động" + "actions": "Hành Động", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/vi/topic.json b/public/language/vi/topic.json index bb4ee0a8f7..d527db2d5b 100644 --- a/public/language/vi/topic.json +++ b/public/language/vi/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "Bạn không có bài viết nào khác trong chủ đề này", "post-quick-reply": "Trả lời nhanh", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 chưa đọc" + "navigator.unread": "%1 chưa đọc", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/zh-CN/global.json b/public/language/zh-CN/global.json index e189fbf264..5fde128157 100644 --- a/public/language/zh-CN/global.json +++ b/public/language/zh-CN/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "输入以查找用户", "hidden": "隐藏", "sort": "排序", - "actions": "操作" + "actions": "操作", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/zh-CN/topic.json b/public/language/zh-CN/topic.json index 0ddbfdd856..2ea0418772 100644 --- a/public/language/zh-CN/topic.json +++ b/public/language/zh-CN/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "您在此主题中没有更多的帖子了", "post-quick-reply": "快速回复", "navigator.index": "发布 %2 的 %1", - "navigator.unread": "未读 %1" + "navigator.unread": "未读 %1", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file diff --git a/public/language/zh-TW/global.json b/public/language/zh-TW/global.json index 26d0029319..bf31819bd7 100644 --- a/public/language/zh-TW/global.json +++ b/public/language/zh-TW/global.json @@ -139,5 +139,6 @@ "user-search-prompt": "輸入以搜尋使用者", "hidden": "Hidden", "sort": "Sort", - "actions": "Actions" + "actions": "Actions", + "rss-feed": "RSS Feed" } \ No newline at end of file diff --git a/public/language/zh-TW/topic.json b/public/language/zh-TW/topic.json index 7744a4cff3..eb4872f2ff 100644 --- a/public/language/zh-TW/topic.json +++ b/public/language/zh-TW/topic.json @@ -206,5 +206,8 @@ "no-more-next-post": "You don't have more posts in this topic", "post-quick-reply": "Quick reply", "navigator.index": "Post %1 of %2", - "navigator.unread": "%1 unread" + "navigator.unread": "%1 unread", + "upvote-post": "Upvote post", + "downvote-post": "Downvote post", + "post-tools": "Post tools" } \ No newline at end of file From 7917fd828e3204a539273c042f988fe2fe86ee9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Fri, 2 Feb 2024 17:59:06 -0500 Subject: [PATCH 35/69] feat: add missing aria/role attributes to dropdown elements --- public/src/client/account/blocks.js | 4 +- src/views/admin/extend/widgets.tpl | 12 ++--- src/views/admin/manage/group.tpl | 4 +- src/views/admin/manage/users.tpl | 52 +++++++++---------- .../partials/categories/category-rows.tpl | 20 +++---- .../partials/categories/select-category.tpl | 2 +- .../category/selector-dropdown-content.tpl | 2 +- .../groups/privileges-select-category.tpl | 2 +- .../admin/partials/privileges/category.tpl | 8 +-- src/views/admin/partials/search.tpl | 8 +-- src/views/modals/create-room.tpl | 10 ++-- src/views/partials/chats/message.tpl | 20 +++---- src/views/partials/chats/options.tpl | 18 +++---- src/views/post-queue.tpl | 12 ++--- 14 files changed, 87 insertions(+), 87 deletions(-) diff --git a/public/src/client/account/blocks.js b/public/src/client/account/blocks.js index 375e7a5ff9..921065fd37 100644 --- a/public/src/client/account/blocks.js +++ b/public/src/client/account/blocks.js @@ -15,7 +15,7 @@ define('forum/account/blocks', [ $('#user-search').on('keyup', function () { const username = this.value; if (!username) { - return blockListEl.translateHtml('
  • [[admin/menu:search.start-typing]]
  • '); + return blockListEl.translateHtml('
  • [[admin/menu:search.start-typing]]
  • '); } api.get('/api/users', { query: username, @@ -26,7 +26,7 @@ define('forum/account/blocks', [ return alerts.error(err); } if (!data.users.length) { - return blockListEl.translateHtml('
  • [[users:no-users-found]]
  • '); + return blockListEl.translateHtml('
  • [[users:no-users-found]]
  • '); } // Only show first 10 matches if (data.matchCount > 10) { diff --git a/src/views/admin/extend/widgets.tpl b/src/views/admin/extend/widgets.tpl index fea0ea6dbe..ae1effdc37 100644 --- a/src/views/admin/extend/widgets.tpl +++ b/src/views/admin/extend/widgets.tpl @@ -11,12 +11,12 @@
    @@ -85,13 +85,13 @@
    - -