diff --git a/CHANGELOG.md b/CHANGELOG.md index 731e39ccc8..d5a822c550 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,264 @@ +#### v3.9.0 (2024-09-18) + +##### Chores + +* **deps:** + * update dependency sass-embedded to v1.79.1 (#12803) (fa75a7e0) + * update dependency eslint to v8.57.1 (#12800) (fc9f0e8c) + * update commitlint monorepo to v19.5.0 (#12790) (b25e7639) + * update dependency smtp-server to v3.13.5 (#12781) (98957726) + * update dependency eslint-plugin-import to v2.30.0 (#12771) (2460b050) + * update redis docker tag to v7.4.0 (#12712) (a2a30ebd) + * update dependency sass-embedded to v1.78.0 (#12772) (fde0a65a) + * update dependency lint-staged to v15.2.10 (#12767) (a55b985e) + * update commitlint monorepo to v19.4.1 (#12762) (f608f786) + * update dependency jsdom to v25 (#12756) (e8abf502) + * update dependency jsdom to v24.1.3 (#12755) (07151f8a) + * update dependency lint-staged to v15.2.9 (#12730) (1b6572bb) + * update dependency mocha to v10.7.3 (#12723) (e0850ef7) + * update postgres docker tag to v16.4 (#12726) (948d3080) + * update dependency @commitlint/cli to v19.4.0 (#12725) (bf5c1855) + * update dependency lint-staged to v15.2.8 (#12717) (d0e6cd8f) + * update dependency jsdom to v24.1.1 (#12705) (f35068e6) + * update dependency mocha to v10.7.0 (#12704) (4609083e) + * update dependency sass-embedded to v1.77.8 (#12691) (39bcc903) + * update dependency mocha to v10.6.0 (#12672) (8ea9b4a8) + * update dependency mocha to v10.5.2 (#12657) (1933b765) + * update dependency mocha to v10.5.1 (#12651) (35053887) + * update docker/build-push-action action to v6 (#12641) (a78cd1b4) + * update dependency lint-staged to v15.2.7 (#12638) (d023933d) + * update dependency nyc to v17 (#12627) (31186b8c) + * update dependency sass-embedded to v1.77.5 (#12639) (66f66ede) + * update dependency jsdom to v24.1.0 (#12601) (91e79c22) + * update dependency lint-staged to v15.2.5 (#12598) (3f904986) + * update postgres docker tag to v16.3 (#12576) (8f6ef987) + * update dependency lint-staged to v15.2.4 (#12592) (0b004b4b) + * update redis docker tag to v7.2.5 (#12588) (fc29ea85) + * update dependency sass-embedded to v1.77.2 (#12583) (42754e39) +* up harmony (5cd68c0b) +* up composer (b0d9664b) +* up themes (3e5a8d1c) +* up deps (5220503c) +* up persona (8af4a184) +* up persona (1abececa) +* up themes (35e92d6d) +* up persona (c9cadbad) +* up persona (db84d04a) +* up widget essentials (675ea0f9) +* up widgets (a4aea98c) +* up widgets (a6a99553) +* up widgets (9e673a41) +* up widgets (f759a07d) +* up widgets (bf6be3ef) +* up widgets (32d4ac84) +* up harmony (780db9e2) +* incrementing version number - v3.8.4 (4833f9a6) +* update changelog for v3.8.4 (693bac5b) +* incrementing version number - v3.8.3 (97ce2c44) +* incrementing version number - v3.8.2 (72d91251) +* incrementing version number - v3.8.1 (527326f7) +* incrementing version number - v3.8.0 (e228a6eb) +* incrementing version number - v3.7.5 (6882894d) +* incrementing version number - v3.7.4 (6678744c) +* incrementing version number - v3.7.3 (2d62b6f6) +* incrementing version number - v3.7.2 (cc257e7e) +* incrementing version number - v3.7.1 (712365a5) +* incrementing version number - v3.7.0 (9a6153d7) +* incrementing version number - v3.6.7 (86a17e38) +* incrementing version number - v3.6.6 (6604bf37) +* incrementing version number - v3.6.5 (6c653625) +* incrementing version number - v3.6.4 (83d131b4) +* 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) +* **i18n:** + * fallback strings for new resources: nodebb.users (d348d1df) + * fallback strings for new resources: nodebb.admin-extend-widgets (16ee1ad7) + * fallback strings for new resources: nodebb.themes-harmony (90e0013c) + * fallback strings for new resources: nodebb.modules (3531617d) + * fallback strings for new resources: nodebb.admin-settings-reputation (28c0abf9) + * fallback strings for new resources: nodebb.notifications (6fbc6040) + * fallback strings for new resources: nodebb.post-queue (b46a82db) + * fallback strings for new resources: nodebb.admin-development-info (cfedfc2d) + * fallback strings for new resources: nodebb.admin-settings-reputation (1bb47280) + +##### New Features + +* give category selector input min-width for mobile (2a15856b) +* add action:topics.scheduled.notify (705796f6) +* add followed users lang string (d6643160) +* add a new widget container (1c2afcc1) +* show a friendly message on invalid or expired code, closes #12738 (01a2f0e7) +* allow chat rooms in widgets (f80b7b87) +* migrate topic move socket call to api v3 (2d14a798) +* add allow and frameborder to allow attrs (c3f02b74) +* add missing event type (334c8c9d) +* send topic title into user-posted-topic-with-tag notification type, unbold tags in copy (1611b17b) + +##### Bug Fixes + +* **deps:** + * update dependency sass to v1.79.1 (#12804) (ff77a7ab) + * update dependency pg to v8.13.0 (#12801) (1ad1e0ba) + * update dependency pg-cursor to v2.12.0 (#12802) (c8627f05) + * update dependency connect-pg-simple to v10 (#12798) (64b21674) + * update dependency postcss to v8.4.47 (#12797) (2473e57d) + * update dependency nodebb-plugin-ntfy to v1.7.7 (#12796) (d67ebafe) + * update dependency mongodb to v6.9.0 (#12792) (edc468d4) + * update dependency nodebb-plugin-2factor to v7.5.5 (#12794) (63589d50) + * update dependency tough-cookie to v5 (#12782) (396dd38b) + * update dependency express to v4.21.0 (#12784) (1d9812e0) + * update fontsource monorepo to v5.1.0 (#12791) (03f13433) + * update fontsource monorepo (#12779) (6dc58177) + * update dependency body-parser to v1.20.3 (#12783) (8943a54d) + * update dependency diff to v7 (#12778) (e97e1373) + * update dependency mongodb to v6.8.1 (#12777) (0784683d) + * update dependency diff to v6 (#12774) (0dda1f34) + * update dependency nodemailer to v6.9.15 (#12768) (70f01acb) + * update dependency sortablejs to v1.15.3 (#12770) (84b483c6) + * update dependency postcss to v8.4.45 (#12769) (81757595) + * update dependency sass to v1.78.0 (#12773) (e8cc695d) + * update dependency ace-builds to v1.36.2 (#12765) (25deb062) + * update dependency ace-builds to v1.36.1 (#12764) (ee715f36) + * update dependency rtlcss to v4.3.0 (#12759) (da61bd49) + * update dependency webpack to v5.94.0 (#12752) (1f88b551) + * update dependency ace-builds to v1.36.0 (#12750) (fbd09b2a) + * update dependency nodebb-widget-essentials to v7.0.21 (#12749) (23eb3538) + * update dependency chart.js to v4.4.4 (#12748) (dc24e5ba) + * update dependency async to v3.2.6 (#12747) (e578dfca) + * update dependency ace-builds to v1.35.5 (#12746) (3d0e55d5) + * update dependency esbuild to v0.23.1 (#12745) (6297322c) + * update dependency @fontsource/poppins to v5.0.15 (#12744) (51b9c5b4) + * update dependency winston to v3.14.2 (#12741) (6300d849) + * update dependency nodebb-plugin-ntfy to v1.7.6 (#12724) (42aa8786) + * update dependency winston to v3.14.1 (#12727) (0e547405) + * update dependency postcss to v8.4.41 (#12718) (f54519f1) + * update dependency jquery-ui to v1.14.0 (#12719) (4e97a091) + * update dependency autoprefixer to v10.4.20 (#12716) (89c87f51) + * update dependency rimraf to v5.0.10 (#12715) (7b1dc6a7) + * update dependency @fontsource/inter to v5.0.20 (#12714) (703951d3) + * update dependency postcss to v8.4.40 (#12710) (48d52840) + * update dependency rtlcss to v4.2.0 (#12709) (5aa4c219) + * update dependency ace-builds to v1.35.4 (#12706) (405264d9) + * update dependency @fortawesome/fontawesome-free to v6.6.0 (#12696) (7723e4af) + * update dependency ace-builds to v1.35.3 (#12700) (ee8fd06e) + * update dependency semver to v7.6.3 (#12697) (2bcf7f79) + * update dependency compare-versions to v6.1.1 (#12693) (c52364a5) + * update dependency webpack to v5.93.0 (#12692) (710bf2f8) + * update dependency sass to v1.77.8 (#12687) (50030473) + * update dependency winston to v3.13.1 (#12690) (5678430e) + * update dependency lru-cache to v10.4.3 (#12681) (38e9bbba) + * update dependency rimraf to v5.0.9 (#12684) (335bc685) + * update dependency lru-cache to v10.3.1 (#12678) (fcfe1f57) + * update dependency nodebb-theme-persona to v13.3.25 (#12679) (871367c1) + * update dependency rimraf to v5.0.8 (#12680) (48bd5519) + * update dependency webpack-merge to v6 (#12670) (d39c05ab) + * update dependency @fontsource/inter to v5.0.19 (#12677) (540a05d2) + * update dependency esbuild to v0.23.0 (#12668) (088217f3) + * update dependency ace-builds to v1.35.2 (#12669) (18f9b1d6) + * update dependency postcss to v8.4.39 (#12666) (ba65f193) + * update dependency workerpool to v9.1.3 (#12665) (cba80283) + * update dependency mongodb to v6.8.0 (#12663) (48f8e464) + * update dependency lru-cache to v10.3.0 (#12664) (12e0aecb) + * update dependency ace-builds to v1.35.1 (#12659) (3c46c5f4) + * update dependency nodemailer to v6.9.14 (#12643) (94691372) + * update dependency webpack to v5.92.1 (#12644) (115f236f) + * update dependency sass to v1.77.6 (#12640) (b80a8dec) + * update dependency webpack to v5.92.0 (#12631) (21e061a0) + * update dependency esbuild to v0.21.5 (#12626) (e29bcbce) + * update dependency ace-builds to v1.35.0 (#12630) (0053c788) + * update dependency nodebb-plugin-markdown to v12.2.8 (#12624) (c3ff16e5) + * update dependency pg-cursor to v2.11.0 (#12617) (24d0999f) + * update dependency pg to v8.12.0 (#12616) (bee05fe2) + * update dependency workerpool to v9.1.2 (#12612) (bff0f0e8) + * update dependency sass to v1.77.4 (#12608) (eba8179e) + * update dependency mongodb to v6.7.0 (#12603) (606342c5) + * update dependency sass to v1.77.3 (#12605) (f783ce30) + * update dependency esbuild to v0.21.4 (#12600) (c1a6293f) + * update dependency ace-builds to v1.34.2 (#12599) (5595a35e) + * update dependency nodebb-plugin-2factor to v7.5.2 (#12577) (72a0fe93) + * update dependency sitemap to v8 (#12595) (9ebd96e8) + * update dependency nodebb-plugin-markdown to v12.2.7 (#12590) (333ebd9b) + * update dependency ace-builds to v1.34.1 (#12591) (7a6b70f0) + * update dependency chart.js to v4.4.3 (#12585) (95023355) + * update dependency sass to v1.77.2 (#12584) (f6509266) + * update dependency mongodb to v6.6.2 (#12579) (984717a8) + * update dependency esbuild to v0.21.3 (#12580) (d66118bb) + * update dependency nodebb-theme-harmony to v1.2.56 (#12581) (2dd6b148) +* closes #12795, don't crash if there is an error in auto approve from queue (6ccf40bf) +* closes #12780, 404 in api/v3 if topic doesn't exist (220af706) +* vague description for harmony settings.enableBreadcrumbs, help text (17029952) +* closes #12758, show different error message for block (c0b30ea4) +* reset form/invalid code style (20053af6) +* #12754, throw if currentPwd == newPwd (f361df01) +* #12736, merged notifications use username instead of displayname (ad68809b) +* #12728, don't display unread badge if nav link doesn't exist (6f7eecd1) +* bump composer (a7934f36) +* closes #12721, export all users (6e1c6436) +* bump 2factor and ntfy (79c4eadd) +* crash if error objecft passed to handleErrors contains no message (e630f006) +* don't allow joining topic_ & category_ (503a97e5) +* sanitize-html configuration passed in src/posts/parse.js (db30834e) +* handle unhandled exception at handleErrors (598c10c6) + +##### Other Changes + +* up themes fix btn-ghost-sm (106291fa) + +##### Performance Improvements + +* don't load unread page again if everything already loaded (4aad6019) + +##### Refactors + +* change the path of follow notif to go to the user (cf405b18) +* move textcomplete to core (20fd75bf) +* don't use composer directly, use the post hook (da7044e4) +* fix whitespace (609a9878) +* fix btn-ghost usage to match bootstrap (c58e09f9) +* remove unused (feefd733) +* remove log (c5b2f988) +* #12713, update chat teasers even if chat notifications are disabled (ac644ac2) + +##### Tests + +* fix spec (5fa8ddbc) +* since admin pwd changes in test, login with new pwd (be32cf44) +* add logs for test failures (33587358) +* create topic for socket.io tests (ed2f3b75) + #### v3.8.4 (2024-08-01) ##### Chores diff --git a/install/package.json b/install/package.json index 2ed05dc31d..836fbbc817 100644 --- a/install/package.json +++ b/install/package.json @@ -60,7 +60,7 @@ "connect-flash": "0.1.1", "connect-mongo": "5.1.0", "connect-multiparty": "2.2.0", - "connect-pg-simple": "9.0.1", + "connect-pg-simple": "10.0.0", "connect-redis": "7.1.1", "cookie-parser": "1.4.6", "cron": "3.1.7", @@ -93,34 +93,34 @@ "lru-cache": "10.4.3", "mime": "3.0.0", "mkdirp": "3.0.1", - "mongodb": "6.8.1", + "mongodb": "6.9.0", "morgan": "1.10.0", "mousetrap": "1.6.5", "multiparty": "4.2.3", "nconf": "0.12.1", - "nodebb-plugin-2factor": "7.5.4", + "nodebb-plugin-2factor": "7.5.5", "nodebb-plugin-composer-default": "10.2.39", "nodebb-plugin-dbsearch": "6.2.5", "nodebb-plugin-emoji": "5.1.15", "nodebb-plugin-emoji-android": "4.0.0", "nodebb-plugin-markdown": "13.0.0-pre.9", "nodebb-plugin-mentions": "4.6.8", - "nodebb-plugin-ntfy": "1.7.6", + "nodebb-plugin-ntfy": "1.7.7", "nodebb-plugin-spam-be-gone": "2.2.2", "nodebb-rewards-essentials": "1.0.0", "nodebb-theme-harmony": "2.0.0-pre.36", "nodebb-theme-lavender": "7.1.8", "nodebb-theme-peace": "2.2.7", "nodebb-theme-persona": "14.0.0-pre.4", - "nodebb-widget-essentials": "7.0.28", + "nodebb-widget-essentials": "7.0.29", "nodemailer": "6.9.15", "nprogress": "0.2.0", "passport": "0.7.0", "passport-http-bearer": "1.0.1", "passport-local": "1.0.0", - "pg": "8.12.0", - "pg-cursor": "2.11.0", - "postcss": "8.4.45", + "pg": "8.13.0", + "pg-cursor": "2.12.0", + "postcss": "8.4.47", "postcss-clean": "1.2.0", "progress-webpack-plugin": "1.0.16", "prompt": "1.3.0", @@ -129,7 +129,7 @@ "rss": "1.2.2", "rtlcss": "4.3.0", "sanitize-html": "2.13.0", - "sass": "1.78.0", + "sass": "1.79.1", "semver": "7.6.3", "serve-favicon": "2.5.0", "sharp": "0.32.6", @@ -161,7 +161,7 @@ "@commitlint/cli": "19.5.0", "@commitlint/config-angular": "19.5.0", "coveralls": "3.1.1", - "eslint": "8.57.0", + "eslint": "8.57.1", "eslint-config-nodebb": "0.2.1", "eslint-plugin-import": "2.30.0", "grunt": "1.6.1", @@ -176,7 +176,7 @@ "smtp-server": "3.13.5" }, "optionalDependencies": { - "sass-embedded": "1.78.0" + "sass-embedded": "1.79.1" }, "resolutions": { "*/jquery": "3.7.1" @@ -199,4 +199,4 @@ "url": "https://github.com/barisusakli" } ] -} +} \ No newline at end of file diff --git a/public/language/he/modules.json b/public/language/he/modules.json index efbfe40714..b0abaa5719 100644 --- a/public/language/he/modules.json +++ b/public/language/he/modules.json @@ -1,9 +1,9 @@ { "chat.room-id": "חדר %1", "chat.chatting-with": "שוחחו בצ'אט עם", - "chat.placeholder": "Type chat message here, drag & drop images", - "chat.placeholder.mobile": "Type chat message", - "chat.placeholder.message-room": "Message #%1", + "chat.placeholder": "כתבו את תוכן הפוסט כאן. ניתן לגרור ולשחרר כאן תמונות.", + "chat.placeholder.mobile": "הקלידו הודעת צ'אט", + "chat.placeholder.message-room": "הודעה #%1", "chat.scroll-up-alert": "עבור להודעה האחרונה", "chat.usernames-and-x-others": "%1 ו-%2 אחרים", "chat.chat-with-usernames": "צ'אט עם %1", @@ -104,12 +104,12 @@ "composer.upload-file": "העלאת קובץ", "composer.zen-mode": "מסך מלא", "composer.select-category": "בחירת קטגוריה", - "composer.textarea.placeholder": "כתבו את תוכן הפוסט כאן. ניתן גם לגרור ולשחרר כאן תמונות.", + "composer.textarea.placeholder": "כתבו את תוכן הפוסט כאן. ניתן לגרור ולשחרר כאן תמונות.", "composer.post-queue-alert": "היי 👋! פורום זה משתמש במערכת אישור פוסטים. מכיוון שאתה משתמש חדש הפוסט שלך יוסתר עד שהוא יאושר על ידי צוות הניהול של הפורום.", "composer.schedule-for": "תזמון נושא ל", "composer.schedule-date": "תאריך", "composer.schedule-time": "שעה", - "composer.cancel-scheduling": "ביטול תיזמון", + "composer.cancel-scheduling": "ביטול תזמון", "composer.change-schedule-date": "שנה תאריך", "composer.set-schedule-date": "הגדרת תאריך", "composer.discard-all-drafts": "מחק את כל הטיוטות", diff --git a/public/language/he/search.json b/public/language/he/search.json index 93dbdd6272..564a160918 100644 --- a/public/language/he/search.json +++ b/public/language/he/search.json @@ -15,10 +15,10 @@ "all-categories": "כל הקטגוריות", "categories-x": "קטגוריות: %1", "categories-watched-categories": "קטגוריות: קטגוריות במעקב", - "type-a-category": "הקלדו קטגוריה", + "type-a-category": "הקלידו קטגוריה", "tags": "תגיות", "tags-x": "תגיות: %1", - "type-a-tag": "הקלדו תגית", + "type-a-tag": "הקלידו תגית", "match-words": "התאמת מילים", "match-all-words": "התאמת כל המילים", "match-any-word": "התאמת מילה אחת לפחות", @@ -26,7 +26,7 @@ "any": "כל", "posted-by": "פורסם על-ידי", "posted-by-usernames": "פורסם על ידי: %1", - "type-a-username": "הקלדו שם משתמש", + "type-a-username": "הקלידו שם משתמש", "search-child-categories": "חיפוש בתתי קטגוריות", "has-tags": "עם תגיות", "reply-count": "כמות תגובות", diff --git a/public/language/pl/admin/extend/widgets.json b/public/language/pl/admin/extend/widgets.json index 6ced83fa41..1eeaf5382e 100644 --- a/public/language/pl/admin/extend/widgets.json +++ b/public/language/pl/admin/extend/widgets.json @@ -12,8 +12,8 @@ "container.card": "Karta", "container.card-header": "Nagłówek karty", "container.card-body": "Treść karty", - "container.title": "Title", - "container.body": "Body", + "container.title": "Tytuł", + "container.body": "Treść", "container.alert": "Alarm", "alert.confirm-delete": "Czy na pewno chcesz usunąć ten widget?", diff --git a/public/language/pl/error.json b/public/language/pl/error.json index 5be23a4bcb..e24145a942 100644 --- a/public/language/pl/error.json +++ b/public/language/pl/error.json @@ -153,7 +153,7 @@ "about-me-too-long": "Przepraszamy, Twój tekst „O mnie” nie może być dłuższy niż %1 znaków.", "cant-chat-with-yourself": "Nie możesz rozmawiać sam ze sobą!", "chat-restricted": "Ten użytkownik korzysta z czatu w ograniczonym zakresie. Mogą z nim rozmawiać tylko te osoby, które obserwuje.", - "chat-user-blocked": "You have been blocked by this user.", + "chat-user-blocked": "Jesteś zablokowany(a) przez tego użytkownika.", "chat-disabled": "System rozmów jest wyłączony", "too-many-messages": "Wysłałeś zbyt wiele wiadomości, prosimy chwilę poczekać.", "invalid-chat-message": "Nieprawidłowa wiadomość", diff --git a/public/language/pl/notifications.json b/public/language/pl/notifications.json index b45c2ac60d..cb560d40c4 100644 --- a/public/language/pl/notifications.json +++ b/public/language/pl/notifications.json @@ -75,7 +75,7 @@ "email-confirmed": "E-mail potwierdzony", "email-confirmed-message": "Dziękujemy za potwierdzenie maila. Twoje konto zostało aktywowane.", "email-confirm-error-message": "Wystąpił problem przy aktywacji - kod jest błędny lub przestarzały", - "email-confirm-error-message-already-validated": "Your email address was already validated.", + "email-confirm-error-message-already-validated": "Ten adres e-mail został już zweryfikowany.", "email-confirm-sent": "E-mail potwierdzający wysłany.", "none": "Żadna z opcji", "notification-only": "Tylko powiadomienie", diff --git a/public/language/pl/themes/harmony.json b/public/language/pl/themes/harmony.json index 6cb857d8ec..0f207fb4fb 100644 --- a/public/language/pl/themes/harmony.json +++ b/public/language/pl/themes/harmony.json @@ -7,7 +7,7 @@ "login-register-to-search": "Aby wyszukiwać zaloguj się lub zarejestruj.", "settings.title": "Ustawienia stylu", "settings.enableQuickReply": "Włącz szybkie odpowiadanie", - "settings.enableBreadcrumbs": "Show breadcrumbs in Category and Topic pages", + "settings.enableBreadcrumbs": "Pokaż łącza na stronach kategorii i wątków", "settings.enableBreadcrumbs.why": "Breadcrumbs are visible in most pages for ease-of-navigation. The base design of the category and topic pages has alternative means to link back to parent pages, but the breadcrumb can be toggled off to reduce clutter.", "settings.centerHeaderElements": "Wyśrodkuj elementy nagłówka", "settings.mobileTopicTeasers": "Pokazuj zwiastuny tematów na telefonie", diff --git a/public/language/pl/user.json b/public/language/pl/user.json index cb890ed370..828704d03c 100644 --- a/public/language/pl/user.json +++ b/public/language/pl/user.json @@ -78,7 +78,7 @@ "change-password": "Zmień hasło", "change-password-error": "Błędne hasło!", "change-password-error-wrong-current": "Twoje aktualne hasło nie jest poprawne!", - "change-password-error-same-password": "Your new password matches your current password, please use a new password.", + "change-password-error-same-password": "Nowe hasło jest identyczne co dotychczasowe. Proszę wprowadź hasło po zmianie.", "change-password-error-match": "Hasła muszą pasować!", "change-password-error-privileges": "Nie masz uprawnień do zmiany tego hasła.", "change-password-success": "Twoje hasło zostało zaktualizowane!", diff --git a/public/language/pl/users.json b/public/language/pl/users.json index 8f1717a92e..e89e32ff75 100644 --- a/public/language/pl/users.json +++ b/public/language/pl/users.json @@ -1,6 +1,6 @@ { "all-users": "Wszyscy użytkownicy", - "followed-users": "Followed Users", + "followed-users": "Śledzeni użytkownicy", "latest-users": "Nowi użytkownicy", "top-posters": "Najwięcej postów", "most-reputation": "Najwyższa reputacja", diff --git a/public/language/vi/admin/extend/widgets.json b/public/language/vi/admin/extend/widgets.json index 26fa4f6d22..e5b3d4a09b 100644 --- a/public/language/vi/admin/extend/widgets.json +++ b/public/language/vi/admin/extend/widgets.json @@ -12,8 +12,8 @@ "container.card": "Thẻ", "container.card-header": "Đầu Thẻ", "container.card-body": "Thân Thẻ", - "container.title": "Title", - "container.body": "Body", + "container.title": "Tiêu đề", + "container.body": "Thân", "container.alert": "Cảnh báo", "alert.confirm-delete": "Bạn có chắc muốn xóa tiện ích này không?", diff --git a/public/language/vi/admin/manage/registration.json b/public/language/vi/admin/manage/registration.json index adc7ff9d32..b30cde0329 100644 --- a/public/language/vi/admin/manage/registration.json +++ b/public/language/vi/admin/manage/registration.json @@ -11,7 +11,7 @@ "list.ip-spam": "Tần suất: %1 Xuất hiện: %2", "invitations": "Lời mời", - "invitations.description": "Dưới đây là danh sách hoàn tất các lời mời đã gửi. Bấm ctrl-f để tìm kiếm trong danh sách bằng email hoặc tên đăng nhập.

Tên đăng nhập sẽ được hiển thị bên phải email cho những người dùng đã đổi lời mời của họ.", + "invitations.description": "Dưới đây là danh sách hoàn tất các lời mời đã gửi. Bấm ctrl-f để tìm kiếm trong danh sách bằng email hoặc tên đăng nhập.

Tên đăng nhập sẽ hiển thị bên phải email cho những người dùng đã đổi lời mời của họ.", "invitations.inviter-username": "Tên Đăng Nhập Người Mời", "invitations.invitee-email": "Email của người được mời", "invitations.invitee-username": "Tên Đăng Nhập Người Được Mời (nếu đã đăng ký)", diff --git a/public/language/vi/email.json b/public/language/vi/email.json index 0f3b683b6f..dc1f7724bf 100644 --- a/public/language/vi/email.json +++ b/public/language/vi/email.json @@ -11,7 +11,7 @@ "email.verify.text3": "Sau khi bạn xác nhận địa chỉ email này, chúng tôi sẽ đổi email hiện tại của bạn bằng địa chỉ này (%1).", "welcome.text1": "Cảm ơn bạn đã đăng ký tại %1!", "welcome.text2": "Để kích hoạt đầy đủ tính năng của tài khoản, chúng tôi cần xác nhận địa chỉ email mà bạn đã đăng ký.", - "welcome.text3": "Quản trị viên đã chấp nhận đơn đăng ký của bạn. Bạn có thể đăng nhập với tên đăng nhập/mật khẩu ngay bây giờ.", + "welcome.text3": "Admin đã chấp nhận đơn đăng ký của bạn. Bạn có thể đăng nhập với tên đăng nhập/mật khẩu ngay bây giờ.", "welcome.cta": "Nhấn vào đây để xác nhận địa chỉ email", "invitation.text1": "%1 đã mời bạn tham gia %2", "invitation.text2": "Lời mời của bạn sẽ hết hạn sau %1 ngày.", diff --git a/public/language/vi/groups.json b/public/language/vi/groups.json index 6d87d051e1..0ec0e5d500 100644 --- a/public/language/vi/groups.json +++ b/public/language/vi/groups.json @@ -60,7 +60,7 @@ "membership.reject": "Từ chối", "new-group.group-name": "Tên Nhóm:", "upload-group-cover": "Tải lên ảnh bìa nhóm", - "bulk-invite-instructions": "Nhập danh sách username, ngăn cách bằng dấu phẩy, để mời vào nhóm", + "bulk-invite-instructions": "Nhập danh sách tên đăng nhập, phân tách bằng dấu phẩy, để mời vào nhóm", "bulk-invite": "Mời nhiều người", "remove-group-cover-confirm": "Bạn có chắc rằng muốn xoá ảnh bìa không?" } \ No newline at end of file diff --git a/public/language/vi/search.json b/public/language/vi/search.json index 3161819996..65e9d12113 100644 --- a/public/language/vi/search.json +++ b/public/language/vi/search.json @@ -26,7 +26,7 @@ "any": "Bất kì", "posted-by": "Đăng bởi", "posted-by-usernames": "Đăng bởi: %1", - "type-a-username": "Nhập tên người dùng", + "type-a-username": "Nhập tên đăng nhập", "search-child-categories": "Tìm kiếm chuyên mục con", "has-tags": "Có thẻ", "reply-count": "Số lượt trả lời", diff --git a/public/language/vi/user.json b/public/language/vi/user.json index 0b923674bd..2b59e82480 100644 --- a/public/language/vi/user.json +++ b/public/language/vi/user.json @@ -183,7 +183,7 @@ "info.muted-until": "Đã tắt tiếng cho đến %1", "info.muted-expiry": "Hết hạn", "info.muted-no-reason": "Không có lý do nào được đưa ra.", - "info.username-history": "Lịch Sử Tên Người Dùng", + "info.username-history": "Lịch Sử Tên Đăng Nhập", "info.email-history": "Lịch sử email", "info.moderation-note": "Ghi chú quản lí", "info.moderation-note.success": "Đã lưu ghi chú quản lý", diff --git a/public/language/vi/users.json b/public/language/vi/users.json index 15f53a3c3d..7267a2b967 100644 --- a/public/language/vi/users.json +++ b/public/language/vi/users.json @@ -1,6 +1,6 @@ { "all-users": "Tất Cả Người Dùng", - "followed-users": "Followed Users", + "followed-users": "Người Theo Dõi", "latest-users": "Thành viên mới nhất", "top-posters": "Thành viên đăng bài nhiều nhất", "most-reputation": "Uy Tín Nhất", diff --git a/public/scss/admin/admin.scss b/public/scss/admin/admin.scss index 2d9295d128..a07f7779ee 100644 --- a/public/scss/admin/admin.scss +++ b/public/scss/admin/admin.scss @@ -153,11 +153,13 @@ body { } } -.dropdown-left .dropdown-menu { - --bs-position: start; +.dropdown-left { + [component="category-selector-search"] { left:0!important; } + .dropdown-menu { --bs-position: start; } } -.dropdown-right .dropdown-menu { - --bs-position: end; +.dropdown-right { + [component="category-selector-search"] { right:0!important; } + .dropdown-menu { --bs-position: end; } } [component="category-selector"] { diff --git a/public/scss/generics.scss b/public/scss/generics.scss index 3b28362c71..c44f0e2caa 100644 --- a/public/scss/generics.scss +++ b/public/scss/generics.scss @@ -23,11 +23,13 @@ display: block; } } -.dropdown-left .dropdown-menu { - --bs-position: start; +.dropdown-left { + [component="category-selector-search"] { left:0!important; } + .dropdown-menu { --bs-position: start; } } -.dropdown-right .dropdown-menu { - --bs-position: end; +.dropdown-right { + [component="category-selector-search"] { right:0!important; } + .dropdown-menu { --bs-position: end; } } .category-dropdown-menu { diff --git a/public/src/client/account/edit/password.js b/public/src/client/account/edit/password.js index ea00844d72..78612a282e 100644 --- a/public/src/client/account/edit/password.js +++ b/public/src/client/account/edit/password.js @@ -56,8 +56,8 @@ define('forum/account/edit/password', [ } } - password.on('blur', onPasswordChanged); - password_confirm.on('blur', onPasswordConfirmChanged); + password.on('input', onPasswordChanged); + password_confirm.on('input', onPasswordConfirmChanged); $('#changePasswordBtn').on('click', function () { onPasswordChanged(); @@ -103,19 +103,14 @@ define('forum/account/edit/password', [ function showError(element, msg) { translator.translate(msg, function (msg) { - element.html(msg); - - element.parent() - .removeClass('show-success') - .addClass('show-danger'); + element.html(msg).removeClass('text-success') + .addClass('text-danger'); }); } function showSuccess(element) { - element.html(''); - element.parent() - .removeClass('show-danger') - .addClass('show-success'); + element.html('').removeClass('text-danger') + .addClass('text-success'); } return AccountEditPassword; diff --git a/public/src/modules/quickreply.js b/public/src/modules/quickreply.js index 563ee486f8..ee12097eff 100644 --- a/public/src/modules/quickreply.js +++ b/public/src/modules/quickreply.js @@ -8,7 +8,7 @@ define('quickreply', [ alerts, uploadHelpers, mousetrap, storage, hooks ) { const QuickReply = { - _active: {}, + _autocomplete: null, }; QuickReply.init = function () { @@ -29,7 +29,7 @@ define('quickreply', [ destroyAutoComplete(); }); $(window).trigger('composer:autocomplete:init', data); - QuickReply._active.core_qr = autocomplete.setup(data); + QuickReply._autocomplete = autocomplete.setup(data); mousetrap.bind('ctrl+return', (e) => { if (e.target === element.get(0)) { @@ -92,7 +92,7 @@ define('quickreply', [ components.get('topic/quickreply/text').val(''); storage.removeItem(qrDraftId); - autocomplete._active.core_qr.hide(); + QuickReply._autocomplete.hide(); hooks.fire('action:quickreply.success', { data }); }); }); @@ -125,9 +125,9 @@ define('quickreply', [ }; function destroyAutoComplete() { - if (QuickReply._active.core_qr) { - QuickReply._active.core_qr.destroy(); - QuickReply._active.core_qr = null; + if (QuickReply._autocomplete) { + QuickReply._autocomplete.destroy(); + QuickReply._autocomplete = null; } } diff --git a/public/src/utils.js b/public/src/utils.js index 0dff1892e1..f98fa1d051 100644 --- a/public/src/utils.js +++ b/public/src/utils.js @@ -16,7 +16,6 @@ utils.getLanguage = function () { utils.makeNumbersHumanReadable = function (elements) { - console.warn('[deprecated] utils.makeNumbersHumanReadable is deprecated! Use {humanReadableNumber(value)} helper directly in the template'); elements.each(function () { const $this = $(this); const toFixed = $this.attr('data-toFixed') || 1; @@ -26,7 +25,6 @@ utils.makeNumbersHumanReadable = function (elements) { }; utils.addCommasToNumbers = function (elements) { - console.warn('[deprecated] utils.addCommasToNumbers is deprecated! Use {formattedNumber(value)} helper directly in the template'); elements.each(function (index, element) { const $element = $(element); $element diff --git a/src/meta/minifier.js b/src/meta/minifier.js index 43802ef7e7..a341a92e96 100644 --- a/src/meta/minifier.js +++ b/src/meta/minifier.js @@ -160,9 +160,13 @@ Minifier.js.bundle = async function (data, fork) { actions.buildCSS = async function buildCSS(data) { let css = ''; try { - const scssOutput = await sass.compileStringAsync(data.source, { + const opts = { loadPaths: data.paths, - }); + }; + if (data.minify) { + opts.silenceDeprecations = ['mixed-decls']; + } + const scssOutput = await sass.compileStringAsync(data.source, opts); css = scssOutput.css.toString(); } catch (err) { console.error(err.stack); diff --git a/src/user/approval.js b/src/user/approval.js index 5e0f1153c0..5067239d8a 100644 --- a/src/user/approval.js +++ b/src/user/approval.js @@ -14,8 +14,12 @@ const slugify = require('../slugify'); const plugins = require('../plugins'); module.exports = function (User) { - new cronJob('0 * * * *', (() => { - User.autoApprove(); + new cronJob('0 * * * *', (async () => { + try { + await User.autoApprove(); + } catch (err) { + winston.error(err.stack); + } }), null, true); User.addToApprovalQueue = async function (userData) { @@ -160,8 +164,14 @@ module.exports = function (User) { const users = await db.getSortedSetRevRangeWithScores('registration:queue', 0, -1); const now = Date.now(); for (const user of users.filter(user => now - user.score >= meta.config.autoApproveTime * 3600000)) { - // eslint-disable-next-line no-await-in-loop - await User.acceptRegistration(user.value); + try { + // eslint-disable-next-line no-await-in-loop + await User.acceptRegistration(user.value); + } catch (err) { + winston.error(err.stack); + // eslint-disable-next-line no-await-in-loop + await removeFromQueue(user.value); + } } }; }; diff --git a/src/views/admin/extend/widgets.tpl b/src/views/admin/extend/widgets.tpl index c7c749de90..0496bab2cd 100644 --- a/src/views/admin/extend/widgets.tpl +++ b/src/views/admin/extend/widgets.tpl @@ -21,13 +21,13 @@
- - + +
-
+
{{{ each templates }}}
@@ -43,7 +43,7 @@ {{{ end }}}
-
+
diff --git a/src/views/partials/category/filter-dropdown-content.tpl b/src/views/partials/category/filter-dropdown-content.tpl index 183f7d5713..2a79b0eae4 100644 --- a/src/views/partials/category/filter-dropdown-content.tpl +++ b/src/views/partials/category/filter-dropdown-content.tpl @@ -9,7 +9,7 @@ [[unread:all-categories]]{{{ end }}} -