diff --git a/app.js b/app.js index 1fd183757f..6fd215ad61 100644 --- a/app.js +++ b/app.js @@ -121,7 +121,7 @@ function start() { nconf.set('use_port', !!urlObject.port); nconf.set('relative_path', relativePath); nconf.set('port', urlObject.port || nconf.get('port') || nconf.get('PORT') || 4567); - nconf.set('upload_url', '/uploads/'); + nconf.set('upload_url', nconf.get('upload_path').replace(/^\/public/, '')); if (nconf.get('isPrimary') === 'true') { winston.info('Time: %s', (new Date()).toString()); diff --git a/install/data/categories.json b/install/data/categories.json index a86ff24e7c..58ac6e8d40 100644 --- a/install/data/categories.json +++ b/install/data/categories.json @@ -2,6 +2,7 @@ { "name": "Announcements", "description": "Announcements regarding our community", + "descriptionParsed": "

Announcements regarding our community

\n", "bgColor": "#fda34b", "color": "#fff", "icon" : "fa-bullhorn", @@ -10,6 +11,7 @@ { "name": "General Discussion", "description": "A place to talk about whatever you want", + "descriptionParsed": "

A place to talk about whatever you want

\n", "bgColor": "#59b3d0", "color": "#fff", "icon" : "fa-comments-o", @@ -18,6 +20,7 @@ { "name": "Blogs", "description": "Blog posts from individual members", + "descriptionParsed": "

Blog posts from individual members

\n", "bgColor": "#86ba4b", "color": "#fff", "icon" : "fa-newspaper-o", @@ -26,6 +29,7 @@ { "name": "Comments & Feedback", "description": "Got a question? Ask away!", + "descriptionParsed": "

Got a question? Ask away!

\n", "bgColor": "#e95c5a", "color": "#fff", "icon" : "fa-question", diff --git a/package.json b/package.json index 816ad48fcf..f82acca421 100644 --- a/package.json +++ b/package.json @@ -47,18 +47,18 @@ "morgan": "^1.3.2", "mousetrap": "^1.5.3", "nconf": "~0.8.2", - "nodebb-plugin-composer-default": "4.0.11", + "nodebb-plugin-composer-default": "4.1.5", "nodebb-plugin-dbsearch": "1.0.2", "nodebb-plugin-emoji-extended": "1.1.1", "nodebb-plugin-emoji-one": "1.1.5", - "nodebb-plugin-markdown": "6.0.1", + "nodebb-plugin-markdown": "6.0.2", "nodebb-plugin-mentions": "1.1.3", "nodebb-plugin-soundpack-default": "0.1.6", "nodebb-plugin-spam-be-gone": "0.4.9", "nodebb-rewards-essentials": "0.0.9", "nodebb-theme-lavender": "3.0.13", - "nodebb-theme-persona": "4.1.12", - "nodebb-theme-vanilla": "5.1.3", + "nodebb-theme-persona": "4.1.19", + "nodebb-theme-vanilla": "5.1.9", "nodebb-widget-essentials": "2.0.10", "nodemailer": "2.0.0", "nodemailer-sendmail-transport": "1.0.0", @@ -117,4 +117,4 @@ "url": "https://github.com/barisusakli" } ] -} \ No newline at end of file +} diff --git a/public/language/ar/login.json b/public/language/ar/login.json index c6007a15ff..60bf2773af 100644 --- a/public/language/ar/login.json +++ b/public/language/ar/login.json @@ -7,5 +7,6 @@ "alternative_logins": "تسجيلات الدخول البديلة", "failed_login_attempt": "Login Unsuccessful", "login_successful": "قمت بتسجيل الدخول بنجاح!", - "dont_have_account": "لا تملك حساب؟" + "dont_have_account": "لا تملك حساب؟", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/ar/topic.json b/public/language/ar/topic.json index e0dacb7e32..9810d07d64 100644 --- a/public/language/ar/topic.json +++ b/public/language/ar/topic.json @@ -26,6 +26,8 @@ "tools": "أدوات", "flag": "تبليغ", "locked": "مقفل", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Click here to return to the last read post in this thread.", "flag_title": "إشعار بمشاركة مخلة.", "flag_success": "تم الإشعار بهذه المشاركة على أنها مخلة", diff --git a/public/language/bg/login.json b/public/language/bg/login.json index 4091422daa..12a06f5fcb 100644 --- a/public/language/bg/login.json +++ b/public/language/bg/login.json @@ -7,5 +7,6 @@ "alternative_logins": "Други начини за влизане", "failed_login_attempt": "Влизането беше неуспешно", "login_successful": "Вие влязохте успешно!", - "dont_have_account": "Нямате акаунт?" + "dont_have_account": "Нямате акаунт?", + "logged-out-due-to-inactivity": "Вие излязохте автоматично от администраторския контролен панел, поради бездействие." } \ No newline at end of file diff --git a/public/language/bg/topic.json b/public/language/bg/topic.json index 041facf810..46f4a70313 100644 --- a/public/language/bg/topic.json +++ b/public/language/bg/topic.json @@ -26,6 +26,8 @@ "tools": "Инструменти", "flag": "Докладване", "locked": "Заключена", + "pinned": "Закачена", + "moved": "Преместена", "bookmark_instructions": "Щракнете тук, за да се върнете към последно прочетената публикация в тази тема.", "flag_title": "Докладване на тази публикация до модератор", "flag_success": "Тази публикация е била докладвана до модератор.", diff --git a/public/language/bn/login.json b/public/language/bn/login.json index 0fea8218ba..447e2d0b5a 100644 --- a/public/language/bn/login.json +++ b/public/language/bn/login.json @@ -7,5 +7,6 @@ "alternative_logins": "বিকল্প প্রবেশ", "failed_login_attempt": "Login Unsuccessful", "login_successful": "আপনি সফলভাবে প্রবেশ করেছেন!", - "dont_have_account": "কোন একাউন্ট নেই?" + "dont_have_account": "কোন একাউন্ট নেই?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/bn/topic.json b/public/language/bn/topic.json index 4a099bf546..51e88fd6e3 100644 --- a/public/language/bn/topic.json +++ b/public/language/bn/topic.json @@ -26,6 +26,8 @@ "tools": "টুলস", "flag": "ফ্ল্যাগ", "locked": "বন্ধ", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Click here to return to the last read post in this thread.", "flag_title": "মডারেশনের জন্য এই পোস্টটি ফ্ল্যাগ করুন", "flag_success": "এই পোস্টটি মডারেশনের জন্য ফ্ল্যাগ করা হয়েছে।", diff --git a/public/language/cs/login.json b/public/language/cs/login.json index 746c3364a9..c949cf14ac 100644 --- a/public/language/cs/login.json +++ b/public/language/cs/login.json @@ -7,5 +7,6 @@ "alternative_logins": "Další způsoby přihlášení", "failed_login_attempt": "Přihlášení neúspěšné", "login_successful": "Přihlášení proběhlo úspěšně!", - "dont_have_account": "Nemáte účet?" + "dont_have_account": "Nemáte účet?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/cs/topic.json b/public/language/cs/topic.json index 104b9aa379..b528de0a8c 100644 --- a/public/language/cs/topic.json +++ b/public/language/cs/topic.json @@ -26,6 +26,8 @@ "tools": "Nástroje", "flag": "Flag", "locked": "Uzamčeno", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Click here to return to the last read post in this thread.", "flag_title": "Flag this post for moderation", "flag_success": "This post has been flagged for moderation.", diff --git a/public/language/da/login.json b/public/language/da/login.json index 2196a937ee..2008338218 100644 --- a/public/language/da/login.json +++ b/public/language/da/login.json @@ -7,5 +7,6 @@ "alternative_logins": "alternative logins", "failed_login_attempt": "Login Unsuccessful", "login_successful": "Du har successfuldt logged in!", - "dont_have_account": "Har du ikke en konto?" + "dont_have_account": "Har du ikke en konto?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/da/topic.json b/public/language/da/topic.json index 2a3653db8c..22ca530310 100644 --- a/public/language/da/topic.json +++ b/public/language/da/topic.json @@ -26,6 +26,8 @@ "tools": "Værktøjer", "flag": "Marker", "locked": "Låst", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Click here to return to the last read post in this thread.", "flag_title": "Meld dette indlæg til moderation", "flag_success": "Dette indlæg er blevet meldt til moderation.", diff --git a/public/language/de/login.json b/public/language/de/login.json index efa95cac28..94ad907a1e 100644 --- a/public/language/de/login.json +++ b/public/language/de/login.json @@ -7,5 +7,6 @@ "alternative_logins": "Alternative Logins", "failed_login_attempt": "Login fehlgeschlagen", "login_successful": "Du hast dich erfolgreich eingeloggt!", - "dont_have_account": "Du hast noch kein Konto?" + "dont_have_account": "Du hast noch kein Konto?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/de/topic.json b/public/language/de/topic.json index bb94283e65..7d4cd8fc97 100644 --- a/public/language/de/topic.json +++ b/public/language/de/topic.json @@ -26,6 +26,8 @@ "tools": "Werkzeuge", "flag": "Markieren", "locked": "Gesperrt", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Klicke hier, um zum letzten gelesenen Beitrag des Themas zurückzukehren.", "flag_title": "Diesen Beitrag zur Moderation markieren", "flag_success": "Dieser Beitrag wurde erfolgreich für die Moderation markiert.", diff --git a/public/language/el/login.json b/public/language/el/login.json index c46d2220f5..126c06b283 100644 --- a/public/language/el/login.json +++ b/public/language/el/login.json @@ -7,5 +7,6 @@ "alternative_logins": "Εναλλακτικά Login", "failed_login_attempt": "Login Unsuccessful", "login_successful": "Συνδέθηκες επιτυχώς!", - "dont_have_account": "Δεν έχεις λογαριασμό;" + "dont_have_account": "Δεν έχεις λογαριασμό;", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/el/topic.json b/public/language/el/topic.json index 965c3e70ad..7625226e7d 100644 --- a/public/language/el/topic.json +++ b/public/language/el/topic.json @@ -26,6 +26,8 @@ "tools": "Εργαλεία", "flag": "Σημαία", "locked": "Κλειδωμένο", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Click here to return to the last read post in this thread.", "flag_title": "Επισήμανση αυτής της δημοσίευσης για συντονισμό", "flag_success": "Αυτή η δημοσίευση έχει επισημανθεί για συντονισμό.", diff --git a/public/language/en@pirate/login.json b/public/language/en@pirate/login.json index a27ed4d761..5096672f97 100644 --- a/public/language/en@pirate/login.json +++ b/public/language/en@pirate/login.json @@ -7,5 +7,6 @@ "alternative_logins": "Oth'r gangplanks", "failed_login_attempt": "Ye be refused boardin'", "login_successful": "Welcome on board, matey!", - "dont_have_account": "Don't have an account?" + "dont_have_account": "Don't have an account?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/en@pirate/topic.json b/public/language/en@pirate/topic.json index 613efb2d0a..edcc8a8435 100644 --- a/public/language/en@pirate/topic.json +++ b/public/language/en@pirate/topic.json @@ -26,6 +26,8 @@ "tools": "Tools", "flag": "Flag", "locked": "Locked", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Click here to return to the last read post in this thread.", "flag_title": "Flag this post for moderation", "flag_success": "This post has been flagged for moderation.", diff --git a/public/language/en_GB/login.json b/public/language/en_GB/login.json index 97c6dedb37..b03ee269cf 100644 --- a/public/language/en_GB/login.json +++ b/public/language/en_GB/login.json @@ -8,5 +8,5 @@ "failed_login_attempt": "Login Unsuccessful", "login_successful": "You have successfully logged in!", "dont_have_account": "Don't have an account?", - "logged-out-due-to-inactivity": "You have been logged out due to inactivity" + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } diff --git a/public/language/en_GB/modules.json b/public/language/en_GB/modules.json index 6ad92fb217..fb820534b8 100644 --- a/public/language/en_GB/modules.json +++ b/public/language/en_GB/modules.json @@ -38,6 +38,7 @@ "composer.formatting.picture": "Picture", "composer.upload-picture": "Upload Image", "composer.upload-file": "Upload File", + "composer.zen_mode": "Zen Mode", "bootbox.ok": "OK", "bootbox.cancel": "Cancel", diff --git a/public/language/en_GB/search.json b/public/language/en_GB/search.json index 304134918b..fde9db35f6 100644 --- a/public/language/en_GB/search.json +++ b/public/language/en_GB/search.json @@ -23,7 +23,6 @@ "six-months": "Six months", "one-year": "One year", "sort-by": "Sort by", - "post-time": "Post time", "last-reply-time": "Last reply time", "topic-title": "Topic title", "number-of-replies": "Number of replies", diff --git a/public/language/en_GB/topic.json b/public/language/en_GB/topic.json index 15edaa947f..78769c64b5 100644 --- a/public/language/en_GB/topic.json +++ b/public/language/en_GB/topic.json @@ -101,6 +101,7 @@ "topic_will_be_moved_to": "This topic will be moved to the category", "fork_topic_instruction": "Click the posts you want to fork", "fork_no_pids": "No posts selected!", + "fork_pid_count": "%1 post(s) selected", "fork_success": "Successfully forked topic! Click here to go to the forked topic.", "delete_posts_instruction": "Click the posts you want to delete/purge", diff --git a/public/language/en_US/login.json b/public/language/en_US/login.json index 17c53b6628..a09f4ea897 100644 --- a/public/language/en_US/login.json +++ b/public/language/en_US/login.json @@ -7,5 +7,6 @@ "alternative_logins": "Alternative Logins", "failed_login_attempt": "Login Unsuccessful", "login_successful": "You have successfully logged in!", - "dont_have_account": "Don't have an account?" + "dont_have_account": "Don't have an account?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/en_US/topic.json b/public/language/en_US/topic.json index 613efb2d0a..edcc8a8435 100644 --- a/public/language/en_US/topic.json +++ b/public/language/en_US/topic.json @@ -26,6 +26,8 @@ "tools": "Tools", "flag": "Flag", "locked": "Locked", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Click here to return to the last read post in this thread.", "flag_title": "Flag this post for moderation", "flag_success": "This post has been flagged for moderation.", diff --git a/public/language/es/error.json b/public/language/es/error.json index 68696133bc..723aa9beb6 100644 --- a/public/language/es/error.json +++ b/public/language/es/error.json @@ -120,5 +120,5 @@ "no-users-in-room": "No hay usuarios en esta sala", "cant-kick-self": "No te puedes expulsar a ti mismo del grupo", "no-users-selected": "Ningun usuario(s) seleccionado", - "invalid-home-page-route": "Invalid home page route" + "invalid-home-page-route": "Ruta de página de inicio invalida" } \ No newline at end of file diff --git a/public/language/es/login.json b/public/language/es/login.json index d6e357016e..0413471640 100644 --- a/public/language/es/login.json +++ b/public/language/es/login.json @@ -7,5 +7,6 @@ "alternative_logins": "Accesos alternativos", "failed_login_attempt": "Error al iniciar sesión", "login_successful": "¡Identificado satisfactoriamente!", - "dont_have_account": "¿Aún no tienes cuenta?" + "dont_have_account": "¿Aún no tienes cuenta?", + "logged-out-due-to-inactivity": "Debido a la inactividad has sido deslogueado del Panel de Control de Administradores" } \ No newline at end of file diff --git a/public/language/es/topic.json b/public/language/es/topic.json index 9c7ad4fc9a..dd3d6bb709 100644 --- a/public/language/es/topic.json +++ b/public/language/es/topic.json @@ -26,6 +26,8 @@ "tools": "Herramientas", "flag": "Reportar", "locked": "Cerrado", + "pinned": "Fijo", + "moved": "Movido", "bookmark_instructions": "Haz click aquí para volver a tu último mensaje leído en este tema", "flag_title": "Reportar este mensaje", "flag_success": "Este mensaje ha sido reportado para moderación.", diff --git a/public/language/et/login.json b/public/language/et/login.json index 1ee4c2d703..6c488ec5e2 100644 --- a/public/language/et/login.json +++ b/public/language/et/login.json @@ -7,5 +7,6 @@ "alternative_logins": "Alternatiivsed sisse logimise võimalused", "failed_login_attempt": "Sisselogimine ebaõnnestus", "login_successful": "Edukalt sisse logitud!", - "dont_have_account": "Pole veel kasutajat?" + "dont_have_account": "Pole veel kasutajat?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/et/topic.json b/public/language/et/topic.json index ecd8e893b3..622c2b6982 100644 --- a/public/language/et/topic.json +++ b/public/language/et/topic.json @@ -26,6 +26,8 @@ "tools": "Tööriistad", "flag": "Märgista", "locked": "Lukustatud", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Vajuta siia, et tagasi minna viimati loetud postituse juurde siin teemas.", "flag_title": "Märgista see postitus modereerimiseks", "flag_success": "See postitus on nüüd märgistatud modereerimiseks.", diff --git a/public/language/fa_IR/login.json b/public/language/fa_IR/login.json index a6c3e72fa8..3e408a5133 100644 --- a/public/language/fa_IR/login.json +++ b/public/language/fa_IR/login.json @@ -7,5 +7,6 @@ "alternative_logins": "روش‌های درون آمدن جایگزین", "failed_login_attempt": "ورود ناموفق", "login_successful": "شما با موفقیت به درون آمده‌اید!", - "dont_have_account": "حساب کاربری ندارید؟" + "dont_have_account": "حساب کاربری ندارید؟", + "logged-out-due-to-inactivity": "شما به علت عدم فعالیت از کنترل پنل مدیر کل خارج شده اید " } \ No newline at end of file diff --git a/public/language/fa_IR/topic.json b/public/language/fa_IR/topic.json index 7856198d12..45fca81ea5 100644 --- a/public/language/fa_IR/topic.json +++ b/public/language/fa_IR/topic.json @@ -26,6 +26,8 @@ "tools": "ابزارها", "flag": "پرچم", "locked": "قفل شده است", + "pinned": "سنجاق شده", + "moved": "منتقل شده", "bookmark_instructions": "برای بازگشت به آخرین پست در این موضوع اینجا را کلیک کنید.", "flag_title": "پرچم‌گذاری این موضوع برای بررسی ناظران", "flag_success": "این موضوع برای بررسی ناظران پرچم گذاشته شد.", diff --git a/public/language/fi/login.json b/public/language/fi/login.json index a9c69851b2..7631447d06 100644 --- a/public/language/fi/login.json +++ b/public/language/fi/login.json @@ -7,5 +7,6 @@ "alternative_logins": "Vaihtoehtoiset kirjautumistavat", "failed_login_attempt": "Login Unsuccessful", "login_successful": "Olet onnistuneesti kirjautunut sisään!", - "dont_have_account": "Ei käyttäjätunnusta?" + "dont_have_account": "Ei käyttäjätunnusta?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/fi/topic.json b/public/language/fi/topic.json index 016faa3d38..b2d5e9d127 100644 --- a/public/language/fi/topic.json +++ b/public/language/fi/topic.json @@ -26,6 +26,8 @@ "tools": "Työkalut", "flag": "Ilmianna", "locked": "Lukittu", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Click here to return to the last read post in this thread.", "flag_title": "Ilmianna tämä viesti moderaattoreille", "flag_success": "Tämä viesti ilmiannettiin moderaattoreille.", diff --git a/public/language/fr/login.json b/public/language/fr/login.json index 41150728c6..b3c80182b9 100644 --- a/public/language/fr/login.json +++ b/public/language/fr/login.json @@ -7,5 +7,6 @@ "alternative_logins": "Autres méthodes de connexion", "failed_login_attempt": "Identification échouée", "login_successful": "Vous êtes maintenant connecté !", - "dont_have_account": "Vous n'avez pas de compte ?" + "dont_have_account": "Vous n'avez pas de compte ?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/fr/topic.json b/public/language/fr/topic.json index 72ba13cdd7..dc8bb65354 100644 --- a/public/language/fr/topic.json +++ b/public/language/fr/topic.json @@ -26,6 +26,8 @@ "tools": "Outils", "flag": "Signaler", "locked": "Verrouillé", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Cliquez ici pour retourner au dernier message lu de ce fil.", "flag_title": "Signaler ce message à la modération", "flag_success": "Ce message a bien été signalé aux modérateurs.", diff --git a/public/language/gl/login.json b/public/language/gl/login.json index d2fc82f95b..12530c7699 100644 --- a/public/language/gl/login.json +++ b/public/language/gl/login.json @@ -7,5 +7,6 @@ "alternative_logins": "Métodos alternativos", "failed_login_attempt": "Erro ao iniciar sesión", "login_successful": "Sesión iniciada con éxito!", - "dont_have_account": "Aínda non tes conta?" + "dont_have_account": "Aínda non tes conta?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/gl/topic.json b/public/language/gl/topic.json index f5a27bf8d2..96c8da628e 100644 --- a/public/language/gl/topic.json +++ b/public/language/gl/topic.json @@ -26,6 +26,8 @@ "tools": "Ferramentas", "flag": "Reportar", "locked": "Pechado", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Pica aquí para volver á última mensaxe lida neste tema ", "flag_title": "Reportar esta mensaxe", "flag_success": "Esta mensaxe foi reportada para moderación.", diff --git a/public/language/he/login.json b/public/language/he/login.json index c0c679e0cd..cbc60f999c 100644 --- a/public/language/he/login.json +++ b/public/language/he/login.json @@ -7,5 +7,6 @@ "alternative_logins": "התחבר באמצעות...", "failed_login_attempt": "Login Unsuccessful", "login_successful": "התחברת בהצלחה!", - "dont_have_account": "אין לך חשבון עדיין?" + "dont_have_account": "אין לך חשבון עדיין?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/he/topic.json b/public/language/he/topic.json index 778d419d16..8bf3fe2cda 100644 --- a/public/language/he/topic.json +++ b/public/language/he/topic.json @@ -26,6 +26,8 @@ "tools": "כלים", "flag": "דווח", "locked": "נעול", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Click here to return to the last read post in this thread.", "flag_title": "דווח על פוסט זה למנהל", "flag_success": "התקבל דיווח על פוסט זה.", diff --git a/public/language/hu/login.json b/public/language/hu/login.json index 4323321c44..ad206f1845 100644 --- a/public/language/hu/login.json +++ b/public/language/hu/login.json @@ -7,5 +7,6 @@ "alternative_logins": "Alternatív belépés", "failed_login_attempt": "Login Unsuccessful", "login_successful": "Sikeres belépés", - "dont_have_account": "Nincs még fiók?" + "dont_have_account": "Nincs még fiók?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/hu/topic.json b/public/language/hu/topic.json index c9b31ccec1..ef9dcb52b3 100644 --- a/public/language/hu/topic.json +++ b/public/language/hu/topic.json @@ -26,6 +26,8 @@ "tools": "Eszközök", "flag": "Jelentés", "locked": "Locked", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Click here to return to the last read post in this thread.", "flag_title": "A hozzászólás jelentése a moderátoroknál", "flag_success": "This post has been flagged for moderation.", diff --git a/public/language/id/login.json b/public/language/id/login.json index 48aa87589d..bc847cc9f8 100644 --- a/public/language/id/login.json +++ b/public/language/id/login.json @@ -7,5 +7,6 @@ "alternative_logins": "Login Alternatif", "failed_login_attempt": "Login Unsuccessful", "login_successful": "Kamu telah berhasil login!", - "dont_have_account": "Belum memiliki akun?" + "dont_have_account": "Belum memiliki akun?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/id/topic.json b/public/language/id/topic.json index 799c6b7c67..757bc1b54f 100644 --- a/public/language/id/topic.json +++ b/public/language/id/topic.json @@ -26,6 +26,8 @@ "tools": "Perangkat", "flag": "Tandai", "locked": "Terkunci", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Click here to return to the last read post in this thread.", "flag_title": "Tandai posting ini untuk moderasi", "flag_success": "Posting ini telah ditandai untuk moderasi", diff --git a/public/language/it/login.json b/public/language/it/login.json index cdfa00c223..3c875d4195 100644 --- a/public/language/it/login.json +++ b/public/language/it/login.json @@ -7,5 +7,6 @@ "alternative_logins": "Accessi Alternativi", "failed_login_attempt": "Login Unsuccessful", "login_successful": "Sei entrato con successo!", - "dont_have_account": "Non hai un account?" + "dont_have_account": "Non hai un account?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/it/topic.json b/public/language/it/topic.json index 0d71337cca..ccfdcec340 100644 --- a/public/language/it/topic.json +++ b/public/language/it/topic.json @@ -26,6 +26,8 @@ "tools": "Strumenti", "flag": "Segnala", "locked": "Bloccato", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Click here to return to the last read post in this thread.", "flag_title": "Segnala questo post per la moderazione", "flag_success": "Questo post è stato contrassegnato per la moderazione.", diff --git a/public/language/ja/login.json b/public/language/ja/login.json index 59c72797e6..30e7097351 100644 --- a/public/language/ja/login.json +++ b/public/language/ja/login.json @@ -7,5 +7,6 @@ "alternative_logins": "ほかのログイン方法", "failed_login_attempt": "Login Unsuccessful", "login_successful": "ログインしました!", - "dont_have_account": "アカウントをもっていませんか?" + "dont_have_account": "アカウントをもっていませんか?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/ja/topic.json b/public/language/ja/topic.json index 2da568248e..4fc666f07a 100644 --- a/public/language/ja/topic.json +++ b/public/language/ja/topic.json @@ -26,6 +26,8 @@ "tools": "ツール", "flag": "フラグ", "locked": "ロック", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Click here to return to the last read post in this thread.", "flag_title": "リポートする", "flag_success": "このポストをリポートしました。", diff --git a/public/language/ko/login.json b/public/language/ko/login.json index d71e824596..9245c84185 100644 --- a/public/language/ko/login.json +++ b/public/language/ko/login.json @@ -7,5 +7,6 @@ "alternative_logins": "다른 방법으로 로그인", "failed_login_attempt": "Login Unsuccessful", "login_successful": "성공적으로 로그인했습니다.", - "dont_have_account": "계정이 없으신가요?" + "dont_have_account": "계정이 없으신가요?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/ko/topic.json b/public/language/ko/topic.json index 3b09e7efb7..122525bb38 100644 --- a/public/language/ko/topic.json +++ b/public/language/ko/topic.json @@ -26,6 +26,8 @@ "tools": "도구", "flag": "신고", "locked": "잠김", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "이 스레드에서 읽은 마지막 게시글로 이동하시려면 여기를 클릭하세요.", "flag_title": "이 게시물을 신고", "flag_success": "이 게시물은 신고되었습니다.", diff --git a/public/language/lt/login.json b/public/language/lt/login.json index 09d9b42d62..69a861749f 100644 --- a/public/language/lt/login.json +++ b/public/language/lt/login.json @@ -7,5 +7,6 @@ "alternative_logins": "Alternatyvūs prisijungimo būdai", "failed_login_attempt": "Login Unsuccessful", "login_successful": "Jūs sėkmingai prisijungėte!", - "dont_have_account": "Neturite paskyros?" + "dont_have_account": "Neturite paskyros?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/lt/topic.json b/public/language/lt/topic.json index e30d9b0f65..4c8e07fc98 100644 --- a/public/language/lt/topic.json +++ b/public/language/lt/topic.json @@ -26,6 +26,8 @@ "tools": "Įrankiai", "flag": "Pažymėti", "locked": "Užrakinta", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Click here to return to the last read post in this thread.", "flag_title": "Pažymėti ši pranešimą moderatoriams", "flag_success": "Šis pranešimas buvo pažymėtas moderatorių patikrinimui.", diff --git a/public/language/ms/login.json b/public/language/ms/login.json index 3c3a1fd1d1..a9de503fdf 100644 --- a/public/language/ms/login.json +++ b/public/language/ms/login.json @@ -7,5 +7,6 @@ "alternative_logins": "Log Masuk Alternatif", "failed_login_attempt": "Login Unsuccessful", "login_successful": "Anda berjaya log masuk!", - "dont_have_account": "Tiada akaun?" + "dont_have_account": "Tiada akaun?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/ms/topic.json b/public/language/ms/topic.json index 691530a81e..04b30e193d 100644 --- a/public/language/ms/topic.json +++ b/public/language/ms/topic.json @@ -26,6 +26,8 @@ "tools": "Perkakas", "flag": "Tanda", "locked": "Kunci", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Click here to return to the last read post in this thread.", "flag_title": "Tanda kiriman ini untuk diselia", "flag_success": "Kiriman ini telah ditandakan untuk diselia", diff --git a/public/language/nb/login.json b/public/language/nb/login.json index cdf5766265..3a78a7c66f 100644 --- a/public/language/nb/login.json +++ b/public/language/nb/login.json @@ -7,5 +7,6 @@ "alternative_logins": "Alternativ innlogging", "failed_login_attempt": "Login Unsuccessful", "login_successful": "Du har blitt logget inn!", - "dont_have_account": "Har du ikke en konto?" + "dont_have_account": "Har du ikke en konto?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/nb/topic.json b/public/language/nb/topic.json index c6233247c4..fe18a3d9f9 100644 --- a/public/language/nb/topic.json +++ b/public/language/nb/topic.json @@ -26,6 +26,8 @@ "tools": "Verktøy", "flag": "Rapporter", "locked": "Låst", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Click here to return to the last read post in this thread.", "flag_title": "Rapporter dette innlegget for granskning", "flag_success": "Dette innlegget har blitt rapportert.", diff --git a/public/language/nl/error.json b/public/language/nl/error.json index 2720bfc8ea..e66ba5134d 100644 --- a/public/language/nl/error.json +++ b/public/language/nl/error.json @@ -23,14 +23,14 @@ "no-email-to-confirm": "Dit berichtenforum vereist bevestiging per e-mail, klik hier om een e-mailadres te registreren", "email-confirm-failed": "Helaas kon het e-mailadres niet bevestigd worden, probeer het later nog eens.", "confirm-email-already-sent": "Bevestigingsmail is zojuist al verzonden, wacht alsjeblieft %1 minuut (minuten) voordat je opnieuw een bevestigingsmail aanvraagt.", - "sendmail-not-found": "The sendmail executable could not be found, please ensure it is installed and executable by the user running NodeBB.", + "sendmail-not-found": "De sendmail executable kon niet worden gevonden, zorg ervoor dat deze is geïnstalleerd en dat de gebruiker die NodeBB draait deze kan uitvoeren.", "username-too-short": "Gebruikersnaam is te kort", "username-too-long": "Gebruikersnaam is te lang", "password-too-long": "Wachtwoord is te lang", "user-banned": "Gebruiker verbannen", "user-too-new": "Helaas, het is een vereiste om %1 seconde(n) te wachten voordat het eerste bericht geplaatst kan worden.", "blacklisted-ip": "Sorry, uw IP-adres is verbannen uit deze community. Als u meent dat dit onterecht is, neem dan contact op met een beheerder.", - "ban-expiry-missing": "Please provide an end date for this ban", + "ban-expiry-missing": "Geef een einddatum op voor deze ban.", "no-category": "Categorie bestaat niet", "no-topic": "Onderwerp bestaat niet", "no-post": "Bericht bestaat niet", @@ -41,19 +41,19 @@ "category-disabled": "Categorie uitgeschakeld", "topic-locked": "Onderwerp gesloten", "post-edit-duration-expired": "Het is slechts toegestaan om binnen %1 seconde(n) na plaatsen van het bericht, deze te bewerken.", - "post-edit-duration-expired-minutes": "You are only allowed to edit posts for %1 minute(s) after posting", - "post-edit-duration-expired-minutes-seconds": "You are only allowed to edit posts for %1 minute(s) %2 second(s) after posting", - "post-edit-duration-expired-hours": "You are only allowed to edit posts for %1 hour(s) after posting", - "post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting", - "post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting", - "post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting", - "post-delete-duration-expired": "You are only allowed to delete posts for %1 second(s) after posting", - "post-delete-duration-expired-minutes": "You are only allowed to delete posts for %1 minute(s) after posting", - "post-delete-duration-expired-minutes-seconds": "You are only allowed to delete posts for %1 minute(s) %2 second(s) after posting", - "post-delete-duration-expired-hours": "You are only allowed to delete posts for %1 hour(s) after posting", - "post-delete-duration-expired-hours-minutes": "You are only allowed to delete posts for %1 hour(s) %2 minute(s) after posting", - "post-delete-duration-expired-days": "You are only allowed to delete posts for %1 day(s) after posting", - "post-delete-duration-expired-days-hours": "You are only allowed to delete posts for %1 day(s) %2 hour(s) after posting", + "post-edit-duration-expired-minutes": "Je kunt berichten pas %1 minuten na het plaatsen aanpassen.", + "post-edit-duration-expired-minutes-seconds": "Je kunt berichten pas %1 minuten en %2 seconden na het plaatsen aanpassen.", + "post-edit-duration-expired-hours": "Je kunt berichten pas %1 uur na het plaatsen aanpassen.", + "post-edit-duration-expired-hours-minutes": "Je kunt berichten pas %1 uur en %2 minuten na het plaatsen aanpassen.", + "post-edit-duration-expired-days": "Je kunt berichten pas %1 dagen na het plaatsen aanpassen.", + "post-edit-duration-expired-days-hours": "Je kunt berichten pas %1 dagen en %2 uur na het plaatsen aanpassen.", + "post-delete-duration-expired": "Je kunt berichten pas %1 seconden na het plaatsen verwijderen.", + "post-delete-duration-expired-minutes": "Je kunt berichten pas %1 minuten na het plaatsen verwijderen.", + "post-delete-duration-expired-minutes-seconds": "Je kunt berichten pas %1 minuten %2 seconden na het plaatsen verwijderen.", + "post-delete-duration-expired-hours": "Je kunt berichten pas %1 uur na het plaatsen verwijderen.", + "post-delete-duration-expired-hours-minutes": "Je kunt berichten pas %1 uur %2 minuten na het plaatsen verwijderen.", + "post-delete-duration-expired-days": "Je kunt berichten pas %1 dagen na het plaatsen verwijderen.", + "post-delete-duration-expired-days-hours": "Je kunt berichten pas %1 dag(en) %2 uur na het plaatsen verwijderen.", "content-too-short": "Geef wat meer inhoud aan een bericht! Berichten dienen uit minimaal %1 teken(s) te bestaan.", "content-too-long": "Kort het bericht wat in, het aantal gebruikte tekens overschrijdt het ingestelde limiet want berichten mogen niet meer dan %1 teken(s) bevatten.", "title-too-short": "Geef een titel op die uit meer tekens bestaat. Titels dienen ten minste uit %1 teken(s) te bestaan.", @@ -71,12 +71,12 @@ "already-unfavourited": "Je hebt dit bericht al verwijderd uit je favorieten", "cant-ban-other-admins": "Het is niet toegestaan andere beheerders te verbannen!", "cant-remove-last-admin": "Je bent de enige beheerder. Stel eerst een andere gebruiker als beheerder in voordat je jezelf geen beheerder meer maakt.", - "cant-delete-admin": "Remove administrator privileges from this account before attempting to delete it.", + "cant-delete-admin": "Verwijder administratieve rechten van dit account voordat je probeert deze te verwijderen", "invalid-image-type": "Ongeldig bestandstype afbeelding. Deze afbeelding is van een bestandstype dat niet ondersteund wordt. Toegestane bestandstypes voor afbeeldingsbestanden zijn: %1", "invalid-image-extension": "Ongeldig bestandstype afbeelding", "invalid-file-type": "Dit bestandstype wordt niet ondersteund. Toegestane bestandstypen zijn: %1", "group-name-too-short": "De groepsnaam is te kort", - "group-name-too-long": "Group name too long", + "group-name-too-long": "Groepsnaam te lang", "group-already-exists": "Een groep met deze naam bestaat al", "group-name-change-not-allowed": "Het aanpassen van de groepsnaam is niet toegestaan", "group-already-member": "Deze gebruiker is al lid van deze groep", @@ -119,6 +119,6 @@ "not-in-room": "Gebruiker niet in de chat", "no-users-in-room": "Er zijn geen gebruikers in deze chat", "cant-kick-self": "Je kunt jezelf niet uit een groep schoppen", - "no-users-selected": "No user(s) selected", - "invalid-home-page-route": "Invalid home page route" + "no-users-selected": "Geen gebruiker(s) geselecteerd", + "invalid-home-page-route": "Onbekende homepage route" } \ No newline at end of file diff --git a/public/language/nl/global.json b/public/language/nl/global.json index e29bf66a53..95569088e6 100644 --- a/public/language/nl/global.json +++ b/public/language/nl/global.json @@ -50,9 +50,9 @@ "topics": "Onderwerpen", "posts": "Berichten", "best": "Beste", - "upvoters": "Upvoters", + "upvoters": "Positieve stemmers", "upvoted": "Omhoog gestemd", - "downvoters": "Downvoters", + "downvoters": "Negatieve stemmers", "downvoted": "Omlaag gestemd", "views": "Weergaven", "reputation": "Reputatie", diff --git a/public/language/nl/login.json b/public/language/nl/login.json index 88ffdf3196..9704cc7ce7 100644 --- a/public/language/nl/login.json +++ b/public/language/nl/login.json @@ -7,5 +7,6 @@ "alternative_logins": "Andere manieren van aanmelden", "failed_login_attempt": "Aanmelden mislukt", "login_successful": "Je bent succesvol ingelogd!", - "dont_have_account": "Geen gebruikersaccount?" + "dont_have_account": "Geen gebruikersaccount?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/nl/pages.json b/public/language/nl/pages.json index 4232f44276..c1f0dc4961 100644 --- a/public/language/nl/pages.json +++ b/public/language/nl/pages.json @@ -12,7 +12,7 @@ "users/sort-posts": "Gebruikers met de meeste berichten", "users/sort-reputation": "Gebruikers met de meeste reputatie", "users/banned": "Verbannen Gebruikers", - "users/most-flags": "Most flagged users", + "users/most-flags": "Meest gemarkeerde gebruikers", "users/search": "Zoek Gebruiker", "notifications": "Notificaties", "tags": "Tags", @@ -29,7 +29,7 @@ "account/edit/password": "Wachtwoord van \"%1\" aanpassen", "account/edit/username": "Gebruikersnaam van \"%1\" aanpassen", "account/edit/email": "Email van \"%1\" aanpassen", - "account/info": "Account Info", + "account/info": "Gebruikersinformatie", "account/following": "Door %1 gevolgd", "account/followers": "Die %1 volgen", "account/posts": "Berichten geplaatst door %1", diff --git a/public/language/nl/register.json b/public/language/nl/register.json index 15c4262854..8083d2b79c 100644 --- a/public/language/nl/register.json +++ b/public/language/nl/register.json @@ -1,6 +1,6 @@ { "register": "Registreren", - "cancel_registration": "Cancel Registration", + "cancel_registration": "Annuleer registratie", "help.email": "E-mailadressen zijn standaard verborgen voor andere gebruikers.", "help.username_restrictions": "Een unieke gebruikersnaam tussen %1 en %2 karakters. Anderen kunnen je vermelden met @gebruikersnaam.", "help.minimum_password_length": "Je wachtwoord moet tenminste %1 karakters lang zijn.", @@ -16,8 +16,8 @@ "alternative_registration": "Alternatieve registratie", "terms_of_use": "Gebruiksvoorwaarden", "agree_to_terms_of_use": "Ik ga akkoord met de gebruiksvoorwaarden", - "terms_of_use_error": "You must agree to the Terms of Use", + "terms_of_use_error": "Je moet akkoord gaan met de service voorwaarden.", "registration-added-to-queue": "Het registratieverzoek is toegevoegd aan de wachtrij. Een bericht wordt naar het opgegeven emailadres gestuurd wanneer de registratie is goedgekeurd.", - "interstitial.intro": "We require some additional information before we can create your account.", - "interstitial.errors-found": "We could not complete your registration:" + "interstitial.intro": "Je hebben meer informatie van je nodig voordat we je account kunnen aanmaken.", + "interstitial.errors-found": "Je konden jouw registratie niet afronden." } \ No newline at end of file diff --git a/public/language/nl/topic.json b/public/language/nl/topic.json index d011e95667..d938fb6c50 100644 --- a/public/language/nl/topic.json +++ b/public/language/nl/topic.json @@ -26,6 +26,8 @@ "tools": "Extra", "flag": "Markeren", "locked": "Gesloten", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Klik hier om terug te keren naar de laatst gelezen post in deze thread.", "flag_title": "Bericht aan beheerders melden", "flag_success": "Dit bericht is gerapporteerd aan de beheerder.", diff --git a/public/language/nl/user.json b/public/language/nl/user.json index e34960226b..129383dd5b 100644 --- a/public/language/nl/user.json +++ b/public/language/nl/user.json @@ -6,7 +6,7 @@ "postcount": "Aantal geplaatste berichten", "email": "E-mail", "confirm_email": "Bevestig e-mail", - "account_info": "Account Info", + "account_info": "Gebruikersinformatie", "ban_account": "Verban gebruiker", "ban_account_confirm": "Weet u zeker dat u deze gebruiker wilt verbannen?", "unban_account": "Verbanning intrekken", @@ -96,8 +96,8 @@ "delay_image_loading": "Afbeeldingen Laden Uitstellen", "image_load_delay_help": "Indien ingeschakeld zullen afbeeldingen in topics niet laden totdat ze het scherm inscrollen", "scroll_to_my_post": "Toon het nieuwe bericht na het plaatsen van een antwoord", - "follow_topics_you_reply_to": "Watch topics that you reply to", - "follow_topics_you_create": "Watch topics you create", + "follow_topics_you_reply_to": "Ontvang meldingen van berichten waar je op hebt gereageerd", + "follow_topics_you_create": "Ontvang meldingen van berichten die je hebt gemaakt", "grouptitle": "Groepstitel", "no-group-title": "Geen groepstitel", "select-skin": "Selecteer een skin", @@ -109,10 +109,10 @@ "sso.title": "Single Sign-on Services", "sso.associated": "Geassocieerd met", "sso.not-associated": "Klik hier om geassocieerd te worden met", - "info.latest-flags": "Latest Flags", - "info.no-flags": "No Flagged Posts Found", - "info.ban-history": "Recent Ban History", - "info.no-ban-history": "This user has never been banned", - "info.banned-until": "Banned until %1", - "info.banned-permanently": "Banned permanently" + "info.latest-flags": "Laatste markeringen", + "info.no-flags": "Geen gemarkeerde berichten gevonden", + "info.ban-history": "Recente verban-geschiedenis", + "info.no-ban-history": "Deze gebruiker is nooit eerder verbannen", + "info.banned-until": "Verbannen tot %1", + "info.banned-permanently": "Voor altijd verbannen" } \ No newline at end of file diff --git a/public/language/nl/users.json b/public/language/nl/users.json index eb8ba2c2ae..16c8219e73 100644 --- a/public/language/nl/users.json +++ b/public/language/nl/users.json @@ -2,7 +2,7 @@ "latest_users": "Laatste gebruikers", "top_posters": "Meest actieve leden", "most_reputation": "Meeste reputatie", - "most_flags": "Most Flags", + "most_flags": "Meeste vlaggen", "search": "Zoeken", "enter_username": "Vul een gebruikersnaam in om te zoeken", "load_more": "Meer laden...", diff --git a/public/language/pl/login.json b/public/language/pl/login.json index 1133f6afba..2421563634 100644 --- a/public/language/pl/login.json +++ b/public/language/pl/login.json @@ -7,5 +7,6 @@ "alternative_logins": "Alternatywne logowanie", "failed_login_attempt": "Nie udało się zalogować. Spróbuj ponownie.", "login_successful": "Zostałeś pomyślnie zalogowany.", - "dont_have_account": "Nie masz konta?" + "dont_have_account": "Nie masz konta?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/pl/topic.json b/public/language/pl/topic.json index 92e2ef9459..2c5cd28d2a 100644 --- a/public/language/pl/topic.json +++ b/public/language/pl/topic.json @@ -26,6 +26,8 @@ "tools": "Narzędzia", "flag": "Zgłoś", "locked": "Zablokowany", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Click here to return to the last read post in this thread.", "flag_title": "Zgłoś post do moderacji", "flag_success": "Ten post został oznaczony do moderacji.", diff --git a/public/language/pt_BR/error.json b/public/language/pt_BR/error.json index 48cdbafc36..eeca061a70 100644 --- a/public/language/pt_BR/error.json +++ b/public/language/pt_BR/error.json @@ -120,5 +120,5 @@ "no-users-in-room": "Nenhum usuário nesta sala", "cant-kick-self": "Você não pode kickar a si mesmo do grupo", "no-users-selected": "Nenhuma escolha de usuário(s) foi feita", - "invalid-home-page-route": "Invalid home page route" + "invalid-home-page-route": "Rota de página inicial inválida" } \ No newline at end of file diff --git a/public/language/pt_BR/login.json b/public/language/pt_BR/login.json index eaccc74fac..91717bb8ce 100644 --- a/public/language/pt_BR/login.json +++ b/public/language/pt_BR/login.json @@ -7,5 +7,6 @@ "alternative_logins": "Logins Alternativos", "failed_login_attempt": "Falha no Login", "login_successful": "Você logou com sucesso!", - "dont_have_account": "Não tem uma conta?" + "dont_have_account": "Não tem uma conta?", + "logged-out-due-to-inactivity": "Você saiu do Painel de Controle de Administração devido à inatividade" } \ No newline at end of file diff --git a/public/language/pt_BR/topic.json b/public/language/pt_BR/topic.json index f4a9305d1b..760fe42a3f 100644 --- a/public/language/pt_BR/topic.json +++ b/public/language/pt_BR/topic.json @@ -26,6 +26,8 @@ "tools": "Ferramentas", "flag": "Sinalizar", "locked": "Trancado", + "pinned": "Afixado", + "moved": "Movido", "bookmark_instructions": "Clique aqui para retornar ao último post lido neste tópico.", "flag_title": "Sinalizar este post para moderação", "flag_success": "Este post foi sinalizado para ser moderado.", diff --git a/public/language/ro/login.json b/public/language/ro/login.json index c79bb9e0f9..1f3e72b093 100644 --- a/public/language/ro/login.json +++ b/public/language/ro/login.json @@ -7,5 +7,6 @@ "alternative_logins": "Autentificare Alternativă", "failed_login_attempt": "Login nereușit", "login_successful": "Te-ai autentificat cu succes!", - "dont_have_account": "Nu ai un cont?" + "dont_have_account": "Nu ai un cont?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/ro/topic.json b/public/language/ro/topic.json index 4c94d218ef..0daf15f7ec 100644 --- a/public/language/ro/topic.json +++ b/public/language/ro/topic.json @@ -26,6 +26,8 @@ "tools": "Unelte", "flag": "Semnalizează", "locked": "Închis", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Click here to return to the last read post in this thread.", "flag_title": "Semnalizează acest mesaj pentru moderare", "flag_success": "Acest mesaj a fost semnalizat pentru moderare.", diff --git a/public/language/ru/login.json b/public/language/ru/login.json index 62a4e64f8a..6e7a65c86c 100644 --- a/public/language/ru/login.json +++ b/public/language/ru/login.json @@ -7,5 +7,6 @@ "alternative_logins": "Войти через", "failed_login_attempt": "Некорректный логин", "login_successful": "Вы успешно вошли!", - "dont_have_account": "Нет акканута?" + "dont_have_account": "Нет акканута?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/ru/topic.json b/public/language/ru/topic.json index a484e415dd..9ccfff5668 100644 --- a/public/language/ru/topic.json +++ b/public/language/ru/topic.json @@ -26,6 +26,8 @@ "tools": "Опции", "flag": "Отметить", "locked": "Закрыт", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Нажмите здесь, чтобы вернуться к последнему прочитанному сообщению в этой теме.", "flag_title": "Отметить сообщение для модерирования", "flag_success": "Это сообщение было помечено для модерации", diff --git a/public/language/rw/login.json b/public/language/rw/login.json index 5bdb99dc21..f0a269d9f4 100644 --- a/public/language/rw/login.json +++ b/public/language/rw/login.json @@ -7,5 +7,6 @@ "alternative_logins": "Ukundi Wakwinjiramo", "failed_login_attempt": "Login Unsuccessful", "login_successful": "Winjiyemo nta ngorane!", - "dont_have_account": "Nta konte ufite?" + "dont_have_account": "Nta konte ufite?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/rw/topic.json b/public/language/rw/topic.json index 3539e02af9..bd05fdfc3a 100644 --- a/public/language/rw/topic.json +++ b/public/language/rw/topic.json @@ -26,6 +26,8 @@ "tools": "Ibikoresho", "flag": "Tambikana", "locked": "Birafungiranye", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Click here to return to the last read post in this thread.", "flag_title": "Bimenyeshe ubuyobozi", "flag_success": "Bimaze kumenyeshwa ubuyobozi ngo bikurikiranwe. ", diff --git a/public/language/sc/login.json b/public/language/sc/login.json index ee7f253df5..7249b15820 100644 --- a/public/language/sc/login.json +++ b/public/language/sc/login.json @@ -7,5 +7,6 @@ "alternative_logins": "Intradas Alternativas", "failed_login_attempt": "Login Unsuccessful", "login_successful": "Ses intradu!", - "dont_have_account": "Don't have an account?" + "dont_have_account": "Don't have an account?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/sc/topic.json b/public/language/sc/topic.json index 5f03e99223..97fb268bc0 100644 --- a/public/language/sc/topic.json +++ b/public/language/sc/topic.json @@ -26,6 +26,8 @@ "tools": "Ainas", "flag": "Signala", "locked": "Locked", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Click here to return to the last read post in this thread.", "flag_title": "Signala custu arresonu pro sa moderatzione", "flag_success": "This post has been flagged for moderation.", diff --git a/public/language/sk/login.json b/public/language/sk/login.json index 0736ab4faa..feb1f4dfe5 100644 --- a/public/language/sk/login.json +++ b/public/language/sk/login.json @@ -7,5 +7,6 @@ "alternative_logins": "Ďalšie spôsoby prihlásenia", "failed_login_attempt": "Login Unsuccessful", "login_successful": "Prihlásenie prebehlo úspešne!", - "dont_have_account": "Nemáš účet?" + "dont_have_account": "Nemáš účet?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/sk/topic.json b/public/language/sk/topic.json index d14a0a3d81..78c8473ae0 100644 --- a/public/language/sk/topic.json +++ b/public/language/sk/topic.json @@ -26,6 +26,8 @@ "tools": "Nástroje", "flag": "Označiť", "locked": "Locked", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Click here to return to the last read post in this thread.", "flag_title": "Označiť príspevok pre moderáciu", "flag_success": "Tento príspevok bol označený na úpravu. ", diff --git a/public/language/sl/login.json b/public/language/sl/login.json index 7f3d80e3cb..501f03dbdb 100644 --- a/public/language/sl/login.json +++ b/public/language/sl/login.json @@ -7,5 +7,6 @@ "alternative_logins": "Prijava z drugim računom", "failed_login_attempt": "Login Unsuccessful", "login_successful": "Prijava je uspešna.", - "dont_have_account": "Ali še nimaš uporabniškega računa?" + "dont_have_account": "Ali še nimaš uporabniškega računa?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/sl/topic.json b/public/language/sl/topic.json index 9593d6d0cf..225d18110b 100644 --- a/public/language/sl/topic.json +++ b/public/language/sl/topic.json @@ -26,6 +26,8 @@ "tools": "Orodja", "flag": "Prijavi", "locked": "Zaklenjeno", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Click here to return to the last read post in this thread.", "flag_title": "Prijavi to objavo v pregled administratorju", "flag_success": "Ta objava je bila prijavljena v pregled administratorju.", diff --git a/public/language/sr/login.json b/public/language/sr/login.json index abcf584db7..fae2c17159 100644 --- a/public/language/sr/login.json +++ b/public/language/sr/login.json @@ -7,5 +7,6 @@ "alternative_logins": "Алтернативно пријављивање", "failed_login_attempt": "Login Unsuccessful", "login_successful": "Успешно сте се пријавили!", - "dont_have_account": "Немате налог?" + "dont_have_account": "Немате налог?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/sr/topic.json b/public/language/sr/topic.json index 1e6b5a8cca..42b56929a3 100644 --- a/public/language/sr/topic.json +++ b/public/language/sr/topic.json @@ -26,6 +26,8 @@ "tools": "Алатке", "flag": "Означи", "locked": "Закључан", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Click here to return to the last read post in this thread.", "flag_title": "Flag this post for moderation", "flag_success": "This post has been flagged for moderation.", diff --git a/public/language/sv/login.json b/public/language/sv/login.json index 4b08e7209e..5407078d3b 100644 --- a/public/language/sv/login.json +++ b/public/language/sv/login.json @@ -7,5 +7,6 @@ "alternative_logins": "Alternativa inloggningssätt", "failed_login_attempt": "Misslyckad inloggning", "login_successful": "Du är nu inloggad!", - "dont_have_account": "Har du inget konto?" + "dont_have_account": "Har du inget konto?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/sv/topic.json b/public/language/sv/topic.json index 49e1088f7b..734afb5719 100644 --- a/public/language/sv/topic.json +++ b/public/language/sv/topic.json @@ -26,6 +26,8 @@ "tools": "Verktyg", "flag": "Rapportera", "locked": "Låst", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Klicka här för att återgå till senast lästa inlägg i detta ämne.", "flag_title": "Rapportera detta inlägg för granskning", "flag_success": "Det här inlägget har flaggats för moderering.", diff --git a/public/language/th/login.json b/public/language/th/login.json index c9e8a589eb..bb4729f5c6 100644 --- a/public/language/th/login.json +++ b/public/language/th/login.json @@ -7,5 +7,6 @@ "alternative_logins": "เข้าสู่ระบบโดยทางอื่น", "failed_login_attempt": "Login Unsuccessful", "login_successful": "คุณเข้าสู่ระบบเรียบร้อยแล้ว", - "dont_have_account": "คุณยังไม่มีบัญชีเข้าระบบ?" + "dont_have_account": "คุณยังไม่มีบัญชีเข้าระบบ?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/th/topic.json b/public/language/th/topic.json index 3fdc2aa0ce..532af2a8a8 100644 --- a/public/language/th/topic.json +++ b/public/language/th/topic.json @@ -26,6 +26,8 @@ "tools": "เครื่องมือ", "flag": "ปักธง", "locked": "Locked", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Click here to return to the last read post in this thread.", "flag_title": "ปักธงโพสต์นี้เพื่อดำเนินการ", "flag_success": "This post has been flagged for moderation.", diff --git a/public/language/tr/global.json b/public/language/tr/global.json index 29be110719..0e5c44add6 100644 --- a/public/language/tr/global.json +++ b/public/language/tr/global.json @@ -6,7 +6,7 @@ "403.message": "Erişim izniniz olmayan bir sayfaya denk gelmiş gibisiniz.", "403.login": "Belki de tekrar giriş yapmayı denersiniz?", "404.title": "Bulunamadı", - "404.message": "Erişim izniniz olmayan bir sayfaya denk gelmiş gibisiniz.Anasayfaya geri dönün.", + "404.message": "Erişim izniniz olmayan bir sayfaya denk gelmiş gibisiniz. Anasayfa'ya geri dönün.", "500.title": "Dahili hata.", "500.message": "Ups! Bir şeyler ters gitti sanki!", "register": "Kayıt Ol", diff --git a/public/language/tr/login.json b/public/language/tr/login.json index e28dda2797..9bf22ba985 100644 --- a/public/language/tr/login.json +++ b/public/language/tr/login.json @@ -7,5 +7,6 @@ "alternative_logins": "Alternatif Girişler", "failed_login_attempt": "Giriş Başarısız", "login_successful": "Başarıyla giriş yaptınız!", - "dont_have_account": "Hesabınız yok mu?" + "dont_have_account": "Hesabınız yok mu?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/tr/topic.json b/public/language/tr/topic.json index 9c37c91f52..b870308c74 100644 --- a/public/language/tr/topic.json +++ b/public/language/tr/topic.json @@ -26,6 +26,8 @@ "tools": "Araçlar", "flag": "Bayrak", "locked": "Kilitli", + "pinned": "İğnelendi", + "moved": "Taşındı", "bookmark_instructions": "Bu başlıkta en son kaldığın yere dönmek için tıklayın.", "flag_title": "Bu iletiyi moderatöre haber et", "flag_success": "Bu ileti yöneticilere bildirildi.", diff --git a/public/language/vi/login.json b/public/language/vi/login.json index 525f84e455..ea130d9ada 100644 --- a/public/language/vi/login.json +++ b/public/language/vi/login.json @@ -7,5 +7,6 @@ "alternative_logins": "Đăng nhập bằng tài khoản khác", "failed_login_attempt": "Đăng nhập không thành công", "login_successful": "Bạn đã đăng nhập thành công!", - "dont_have_account": "Chưa có tài khoản?" + "dont_have_account": "Chưa có tài khoản?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/vi/topic.json b/public/language/vi/topic.json index 830773342b..8c7085fcbf 100644 --- a/public/language/vi/topic.json +++ b/public/language/vi/topic.json @@ -26,6 +26,8 @@ "tools": "Công cụ", "flag": "Gắn cờ", "locked": "Khóa", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "Bấm vào đây để quay về đọc bài viết mới nhất trong chủ đề này.", "flag_title": "Flag bài viết này để chỉnh sửa", "flag_success": "Chủ đề này đã được flag để chỉnh sửa", diff --git a/public/language/zh_CN/login.json b/public/language/zh_CN/login.json index 6086ef9b0e..d9d5e10980 100644 --- a/public/language/zh_CN/login.json +++ b/public/language/zh_CN/login.json @@ -7,5 +7,6 @@ "alternative_logins": "使用合作网站帐号登录", "failed_login_attempt": "登录失败", "login_successful": "您已经成功登录!", - "dont_have_account": "没有帐号?" + "dont_have_account": "没有帐号?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/zh_CN/topic.json b/public/language/zh_CN/topic.json index 988e5d9205..63ebe02f77 100644 --- a/public/language/zh_CN/topic.json +++ b/public/language/zh_CN/topic.json @@ -26,6 +26,8 @@ "tools": "工具", "flag": "举报", "locked": "已锁定", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "点击阅读本主题帖中的最新回复", "flag_title": "举报此帖", "flag_success": "已举报此回帖。", diff --git a/public/language/zh_TW/login.json b/public/language/zh_TW/login.json index de5b637a5e..91526421a3 100644 --- a/public/language/zh_TW/login.json +++ b/public/language/zh_TW/login.json @@ -7,5 +7,6 @@ "alternative_logins": "其他登入方式", "failed_login_attempt": "登入失敗", "login_successful": "你已成功登入!", - "dont_have_account": "還沒有帳號?" + "dont_have_account": "還沒有帳號?", + "logged-out-due-to-inactivity": "You have been logged out of the Admin Control Panel due to inactivity" } \ No newline at end of file diff --git a/public/language/zh_TW/topic.json b/public/language/zh_TW/topic.json index 6bb424475a..87bb2d8e08 100644 --- a/public/language/zh_TW/topic.json +++ b/public/language/zh_TW/topic.json @@ -26,6 +26,8 @@ "tools": "工具", "flag": "檢舉", "locked": "已鎖定", + "pinned": "Pinned", + "moved": "Moved", "bookmark_instructions": "點擊這裡返回到這個討論串的最後一篇張貼文", "flag_title": "檢舉這篇文章, 交給仲裁者來審閱.", "flag_success": "這文章已經被檢舉要求仲裁.", diff --git a/public/less/admin/header.less b/public/less/admin/header.less index 5dd2c21aa1..beaa4d9f1f 100644 --- a/public/less/admin/header.less +++ b/public/less/admin/header.less @@ -97,7 +97,7 @@ .reconnect-spinner { left: initial; - right: 310px; + right: 380px; bottom: initial; top: 14px; } diff --git a/public/src/admin/admin.js b/public/src/admin/admin.js index 8a26b91409..a90967c2e0 100644 --- a/public/src/admin/admin.js +++ b/public/src/admin/admin.js @@ -9,10 +9,17 @@ } logoutTimer = setTimeout(function() { - app.alert({ - message: '[[login:logged-out-due-to-inactivity]]' + require(['translator'], function(translator) { + translator.translate('[[login:logged-out-due-to-inactivity]]', function(translated) { + bootbox.alert({ + closeButton: false, + message: translated, + callback: function(){ + window.location.reload(); + } + }); + }); }); - setTimeout(app.logout, 5000); }, 3600000); } diff --git a/public/src/ajaxify.js b/public/src/ajaxify.js index 7280de01ed..ba6222f06c 100644 --- a/public/src/ajaxify.js +++ b/public/src/ajaxify.js @@ -10,6 +10,7 @@ $(document).ready(function() { var translator; var retry = true; + var previousBodyClass = ''; // Dumb hack to fool ajaxify into thinking translator is still a global // When ajaxify is migrated to a require.js module, then this can be merged into the "define" call @@ -65,7 +66,7 @@ $(document).ready(function() { url = ajaxify.start(url); - $('body').removeClass(ajaxify.data.bodyClass); + previousBodyClass = ajaxify.data.bodyClass; $('#footer, #content').removeClass('hide').addClass('ajaxifying'); ajaxify.loadData(url, function(err, data) { @@ -163,7 +164,7 @@ $(document).ready(function() { templates.parse(tpl_url, data, function(template) { translator.translate(template, function(translatedTemplate) { translatedTemplate = translator.unescape(translatedTemplate); - $('body').addClass(data.bodyClass); + $('body').removeClass(previousBodyClass).addClass(data.bodyClass); $('#content').html(translatedTemplate); ajaxify.end(url, tpl_url); diff --git a/public/src/app.js b/public/src/app.js index e9b52ef0bf..390bde2f04 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -466,7 +466,11 @@ app.cacheBuster = null; return callback(); } - $.getScript(config.relative_path + '/vendor/jquery/js/jquery-ui-1.10.4.custom.js', callback); + var scriptEl = document.createElement('script'); + scriptEl.type = 'text/javascript'; + scriptEl.src = config.relative_path + '/vendor/jquery/js/jquery-ui-1.10.4.custom.js' + (app.cacheBuster ? '?v=' + app.cacheBuster : ''); + scriptEl.onload = callback; + document.head.appendChild(scriptEl); }; app.showEmailConfirmWarning = function(err) { diff --git a/public/src/client/account/info.js b/public/src/client/account/info.js new file mode 100644 index 0000000000..b95f68b838 --- /dev/null +++ b/public/src/client/account/info.js @@ -0,0 +1,13 @@ +'use strict'; + +/* globals define */ + +define('forum/account/info', ['forum/account/header'], function(header) { + var Info = {}; + + Info.init = function() { + header.init(); + }; + + return Info; +}); diff --git a/public/src/client/login.js b/public/src/client/login.js index 65b54aa446..c86e743be2 100644 --- a/public/src/client/login.js +++ b/public/src/client/login.js @@ -37,6 +37,11 @@ define('forum/login', ['translator'], function(translator) { errorEl.find('p').translateText(data.responseText); errorEl.show(); submitEl.removeClass('disabled'); + + // Select the entire password if that field has focus + if ($('#password:focus').size()) { + $('#password').select(); + } } } }); diff --git a/public/src/client/topic/fork.js b/public/src/client/topic/fork.js index 50888a9ca3..feb02a9f78 100644 --- a/public/src/client/topic/fork.js +++ b/public/src/client/topic/fork.js @@ -16,16 +16,12 @@ define('forum/topic/fork', ['components', 'postSelect'], function(components, po parseModal(function(html) { forkModal = $(html); - forkModal.on('hidden.bs.modal', function() { - forkModal.remove(); - }); - forkCommit = forkModal.find('#fork_thread_commit'); - showForkModal(); + $(document.body).append(forkModal); forkModal.find('.close,#fork_thread_cancel').on('click', closeForkModal); - forkModal.find('#fork-title').on('change', checkForkButtonEnable); + forkModal.find('#fork-title').on('keyup', checkForkButtonEnable); postSelect.init(function() { checkForkButtonEnable(); @@ -43,14 +39,6 @@ define('forum/topic/fork', ['components', 'postSelect'], function(components, po }); } - function showForkModal() { - forkModal.modal({backdrop: false, show: true}) - .css('position', 'fixed') - .css('left', Math.max(0, (($(window).width() - forkModal.outerWidth()) / 2) + $(window).scrollLeft()) + 'px') - .css('top', '0px') - .css('z-index', '2000'); - } - function createTopicFromPosts() { forkCommit.attr('disabled', true); socket.emit('topics.createTopicFromPosts', { @@ -88,14 +76,14 @@ define('forum/topic/fork', ['components', 'postSelect'], function(components, po function showPostsSelected() { if (postSelect.pids.length) { - forkModal.find('#fork-pids').text(postSelect.pids.join(', ')); + forkModal.find('#fork-pids').translateHtml('[[topic:fork_pid_count, ' + postSelect.pids.length + ']]'); } else { forkModal.find('#fork-pids').translateHtml('[[topic:fork_no_pids]]'); } } function checkForkButtonEnable() { - if (forkModal.find('#fork-title').length && postSelect.pids.length) { + if (forkModal.find('#fork-title').val().length && postSelect.pids.length) { forkCommit.removeAttr('disabled'); } else { forkCommit.attr('disabled', true); @@ -104,10 +92,10 @@ define('forum/topic/fork', ['components', 'postSelect'], function(components, po function closeForkModal() { postSelect.pids.forEach(function(pid) { - components.get('post', 'pid', pid).css('opacity', 1); + components.get('post', 'pid', pid).toggleClass('bg-success', false); }); - forkModal.modal('hide'); + forkModal.remove(); components.get('topic').off('click', '[data-pid]'); postSelect.enableClicksOnPosts(); diff --git a/public/src/modules/components.js b/public/src/modules/components.js index 29d1ba64a9..58773d9821 100644 --- a/public/src/modules/components.js +++ b/public/src/modules/components.js @@ -10,6 +10,9 @@ define('components', function() { return $('[component="topic/teaser"]'); } }, + 'topic': function(name, value) { + return $('[component="topic"][data-' + name + '="' + value + '"]'); + }, 'post': function(name, value) { return $('[component="post"][data-' + name + '="' + value + '"]'); }, @@ -63,4 +66,4 @@ define('components', function() { }; return components; -}); \ No newline at end of file +}); diff --git a/public/src/modules/postSelect.js b/public/src/modules/postSelect.js index 9812bf284e..4f7439aff0 100644 --- a/public/src/modules/postSelect.js +++ b/public/src/modules/postSelect.js @@ -27,10 +27,10 @@ define('postSelect', ['components'], function(components) { var index = PostSelect.pids.indexOf(newPid); if(index === -1) { PostSelect.pids.push(newPid); - post.css('opacity', '0.5'); + post.toggleClass('bg-success', true); } else { PostSelect.pids.splice(index, 1); - post.css('opacity', '1.0'); + post.toggleClass('bg-success', false); } if (PostSelect.pids.length) { diff --git a/src/categories/create.js b/src/categories/create.js index f80e78f24e..6e13d8689d 100644 --- a/src/categories/create.js +++ b/src/categories/create.js @@ -28,6 +28,7 @@ module.exports = function(Categories) { cid: cid, name: data.name, description: data.description ? data.description : '', + descriptionParsed: data.descriptionParsed ? data.descriptionParsed : '', icon: data.icon ? data.icon : '', bgColor: data.bgColor || colours[0], color: data.color || colours[1], @@ -52,7 +53,12 @@ module.exports = function(Categories) { async.series([ async.apply(db.setObject, 'category:' + category.cid, category), - async.apply(Categories.parseDescription, category.cid, category.description), + function (next) { + if (category.descriptionParsed) { + return next(); + } + Categories.parseDescription(category.cid, category.description, next); + }, async.apply(db.sortedSetAdd, 'categories:cid', category.order, category.cid), async.apply(db.sortedSetAdd, 'cid:' + parentCid + ':children', category.order, category.cid), async.apply(privileges.categories.give, defaultPrivileges, category.cid, 'administrators'), diff --git a/src/controllers/accounts/info.js b/src/controllers/accounts/info.js index 6547db8076..6662c60cd6 100644 --- a/src/controllers/accounts/info.js +++ b/src/controllers/accounts/info.js @@ -13,9 +13,13 @@ infoController.get = function(req, res, next) { accountHelpers.getBaseUser(req.params.userslug, req.uid, function(err, userData) { async.parallel({ ips: async.apply(user.getIPs, res.locals.uid, 4), - history: async.apply(user.getModerationHistory, res.locals.uid) + history: async.apply(user.getModerationHistory, res.locals.uid), + fields: async.apply(user.getUserFields, res.locals.uid, ['banned']) }, function(err, data) { - data = _.extend(userData, data); + data = _.extend(userData, { + ips: data.ips, + history: data.history + }, data.fields); userData.title = '[[pages:account/info]]'; userData.breadcrumbs = helpers.buildBreadcrumbs([{text: userData.username, url: '/user/' + userData.userslug}, {text: '[[user:settings]]'}]); diff --git a/src/controllers/admin/plugins.js b/src/controllers/admin/plugins.js index a4733e4c51..8cc06a5e63 100644 --- a/src/controllers/admin/plugins.js +++ b/src/controllers/admin/plugins.js @@ -37,6 +37,12 @@ pluginsController.get = function(req, res, next) { installed: payload.compatible.filter(function(plugin) { return plugin.installed; }), + upgradeCount: payload.compatible.reduce(function(count, current) { + if (current.installed && current.outdated) { + ++count; + } + return count; + }, 0), download: payload.compatible.filter(function(plugin) { return !plugin.installed; }), diff --git a/src/controllers/api.js b/src/controllers/api.js index 35f894e002..706a36cef9 100644 --- a/src/controllers/api.js +++ b/src/controllers/api.js @@ -222,7 +222,7 @@ apiController.getObject = function(req, res, next) { apiController.getCurrentUser = function(req, res, next) { if (!req.uid) { - return helpers.notAllowed(req, res); + return res.status(401).json('not-authorized'); } async.waterfall([ function(next) { diff --git a/src/controllers/uploads.js b/src/controllers/uploads.js index 11c75fd7f9..468e211f9f 100644 --- a/src/controllers/uploads.js +++ b/src/controllers/uploads.js @@ -96,24 +96,21 @@ function uploadAsFile(req, uploadedFile, callback) { } function resizeImage(fileObj, callback) { - var fullPath; async.waterfall([ function(next) { - fullPath = path.join(nconf.get('base_dir'), nconf.get('upload_path'), '..', fileObj.url); - - image.size(fullPath, next); + image.size(fileObj.path, next); }, function (imageData, next) { if (imageData.width < (parseInt(meta.config.maximumImageWidth, 10) || 760)) { return callback(null, fileObj); } - var dirname = path.dirname(fullPath); - var extname = path.extname(fullPath); - var basename = path.basename(fullPath, extname); + var dirname = path.dirname(fileObj.path); + var extname = path.extname(fileObj.path); + var basename = path.basename(fileObj.path, extname); image.resizeImage({ - path: fullPath, + path: fileObj.path, target: path.join(dirname, basename + '-resized' + extname), extension: extname, width: parseInt(meta.config.maximumImageWidth, 10) || 760 @@ -223,6 +220,7 @@ function saveFileToLocal(uploadedFile, callback) { var filename = uploadedFile.name || 'upload'; filename = Date.now() + '-' + validator.escape(filename.replace(extension, '')).substr(0, 255) + extension; + file.saveFileToLocal(filename, 'files', uploadedFile.path, function(err, upload) { if (err) { return callback(err); @@ -230,6 +228,7 @@ function saveFileToLocal(uploadedFile, callback) { callback(null, { url: nconf.get('relative_path') + upload.url, + path: upload.path, name: uploadedFile.name }); }); diff --git a/src/database/mongo.js b/src/database/mongo.js index 7dd854e4cf..25d34ce02b 100644 --- a/src/database/mongo.js +++ b/src/database/mongo.js @@ -33,6 +33,7 @@ name: 'mongo:password', description: 'Password of your MongoDB database', hidden: true, + default: nconf.get('mongo:password') || '', before: function(value) { value = value || nconf.get('mongo:password') || ''; return value; } }, { diff --git a/src/database/redis.js b/src/database/redis.js index 239090aa95..8af568b5d9 100644 --- a/src/database/redis.js +++ b/src/database/redis.js @@ -25,6 +25,7 @@ name: 'redis:password', description: 'Password of your Redis database', hidden: true, + default: nconf.get('redis:password') || '', before: function(value) { value = value || nconf.get('redis:password') || ''; return value; } }, { diff --git a/src/file.js b/src/file.js index 001e1324cb..3920b3c271 100644 --- a/src/file.js +++ b/src/file.js @@ -1,12 +1,12 @@ "use strict"; -var fs = require('fs'), - nconf = require('nconf'), - path = require('path'), - winston = require('winston'), - jimp = require('jimp'), +var fs = require('fs'); +var nconf = require('nconf'); +var path = require('path'); +var winston = require('winston'); +var jimp = require('jimp'); - utils = require('../public/src/utils'); +var utils = require('../public/src/utils'); var file = {}; @@ -29,7 +29,8 @@ file.saveFileToLocal = function(filename, folder, tempPath, callback) { is.on('end', function () { callback(null, { - url: nconf.get('upload_url') + folder + '/' + filename + url: path.join(nconf.get('upload_url'), folder, filename), + path: uploadPath }); }); diff --git a/src/install.js b/src/install.js index 900a0e3ee4..f9fae4ffdf 100644 --- a/src/install.js +++ b/src/install.js @@ -43,8 +43,8 @@ questions.optional = [ ]; function checkSetupFlag(next) { - var envSetupKeys = ['database'], - setupVal; + var setupVal; + try { if (nconf.get('setup')) { setupVal = JSON.parse(nconf.get('setup')); @@ -74,14 +74,10 @@ function checkSetupFlag(next) { process.exit(); } - } else if (envSetupKeys.every(function(key) { - return nconf.stores.env.store.hasOwnProperty(key); - })) { - install.values = envSetupKeys.reduce(function(config, key) { - config[key] = nconf.stores.env.store[key]; - return config; - }, {}); - + } else if (nconf.get('database')) { + install.values = { + database: nconf.get('database') + }; next(); } else { next(); diff --git a/src/meta/tags.js b/src/meta/tags.js index 3747db61da..50afe9a1db 100644 --- a/src/meta/tags.js +++ b/src/meta/tags.js @@ -46,10 +46,13 @@ module.exports = function(Meta) { var defaultLinks = [{ rel: "icon", type: "image/x-icon", - href: nconf.get('relative_path') + '/favicon.ico?' + Meta.config['cache-buster'] + href: nconf.get('relative_path') + '/favicon.ico' + (Meta.config['cache-buster'] ? '?' + Meta.config['cache-buster'] : '') }, { rel: "manifest", href: nconf.get('relative_path') + '/manifest.json' + }, { + rel: "prefetch", + href: nconf.get('relative_path') + '/vendor/jquery/js/jquery-ui-1.10.4.custom.js' + (Meta.config['cache-buster'] ? '?v=' + Meta.config['cache-buster'] : '') }]; // Touch icons for mobile-devices diff --git a/src/middleware/middleware.js b/src/middleware/middleware.js index afae4957ea..62dcc97d4c 100644 --- a/src/middleware/middleware.js +++ b/src/middleware/middleware.js @@ -206,7 +206,11 @@ middleware.isAdmin = function(req, res, next) { var loginTime = req.session.meta ? req.session.meta.datetime : 0; if (loginTime && parseInt(loginTime, 10) > Date.now() - 3600000) { - req.session.meta.datetime += 300000; + var timeLeft = parseInt(loginTime, 10) - (Date.now() - 3600000); + if (timeLeft < 300000) { + req.session.meta.datetime += 300000; + } + return next(); } diff --git a/src/posts.js b/src/posts.js index 8a494be7c7..7062052433 100644 --- a/src/posts.js +++ b/src/posts.js @@ -228,7 +228,11 @@ var plugins = require('./plugins'); async.parallel([ function (next) { if (postData.uid) { - db.sortedSetAdd('uid:' + postData.uid + ':posts:votes', postData.votes, postData.pid, next); + if (postData.votes > 0) { + db.sortedSetAdd('uid:' + postData.uid + ':posts:votes', postData.votes, postData.pid, next); + } else { + db.sortedSetRemove('uid:' + postData.uid + ':posts:votes', postData.pid, next); + } } else { next(); } diff --git a/src/socket.io/posts/edit.js b/src/socket.io/posts/edit.js index 56cddd8c6b..41a7c1134f 100644 --- a/src/socket.io/posts/edit.js +++ b/src/socket.io/posts/edit.js @@ -2,6 +2,7 @@ var async = require('async'); var winston = require('winston'); +var validator = require('validator'); var posts = require('../../posts'); var groups = require('../../groups'); diff --git a/src/upgrade.js b/src/upgrade.js index 16362883d2..dc4af652c9 100644 --- a/src/upgrade.js +++ b/src/upgrade.js @@ -10,7 +10,7 @@ var db = require('./database'), schemaDate, thisSchemaDate, // IMPORTANT: REMEMBER TO UPDATE VALUE OF latestSchema - latestSchema = Date.UTC(2016, 6, 12); + latestSchema = Date.UTC(2016, 7, 5); Upgrade.check = function(callback) { db.get('schemaDate', function(err, value) { @@ -657,6 +657,31 @@ Upgrade.upgrade = function(callback) { winston.info('[2016/07/12] Upload privileges skipped!'); next(); } + }, + function(next) { + thisSchemaDate = Date.UTC(2016, 7, 5); + + if (schemaDate < thisSchemaDate) { + updatesMade = true; + winston.info('[2016/08/05] Removing best posts with negative scores'); + var batch = require('./batch'); + batch.processSortedSet('users:joindate', function(ids, next) { + async.each(ids, function(id, next) { + console.log('processing uid ' + id); + db.sortedSetsRemoveRangeByScore(['uid:' + id + ':posts:votes'], '-inf', 0, next); + }, next); + }, {}, function(err) { + if (err) { + return next(err); + } + winston.info('[2016/08/05] Removing best posts with negative scores done!'); + Upgrade.update(thisSchemaDate, next); + }); + + } else { + winston.info('[2016/08/05] Removing best posts with negative scores skipped!'); + next(); + } } // Add new schema updates here // IMPORTANT: REMEMBER TO UPDATE VALUE OF latestSchema IN LINE 24!!! diff --git a/src/user/settings.js b/src/user/settings.js index 1ebe04ebc5..7b78ea3c72 100644 --- a/src/user/settings.js +++ b/src/user/settings.js @@ -123,7 +123,7 @@ module.exports = function(User) { topicSearchEnabled: data.topicSearchEnabled, delayImageLoading: data.delayImageLoading, groupTitle: data.groupTitle, - homePageRoute: (data.homePageCustom || (data.homePageRoute !== 'custom' ? data.homePageRoute : '') || '').replace(/^\//, ''), + homePageRoute : ((data.homePageRoute === 'custom' ? data.homePageCustom : data.homePageRoute) || '').replace(/^\//, ''), scrollToMyPost: data.scrollToMyPost }; diff --git a/src/views/admin/extend/plugins.tpl b/src/views/admin/extend/plugins.tpl index 730c2a56a0..1e240b7fd6 100644 --- a/src/views/admin/extend/plugins.tpl +++ b/src/views/admin/extend/plugins.tpl @@ -1,8 +1,11 @@
@@ -19,6 +22,9 @@
+
+ +
-
- -
diff --git a/src/views/admin/settings/email.tpl b/src/views/admin/settings/email.tpl index 683a13f4cc..cb49aa17b5 100644 --- a/src/views/admin/settings/email.tpl +++ b/src/views/admin/settings/email.tpl @@ -67,12 +67,14 @@
Email Testing
-
-
+
+ + +

The test email will be sent to the currently logged in user's email address. diff --git a/src/views/partials/requirejs-config.tpl b/src/views/partials/requirejs-config.tpl index addb5cfcaa..c11b4aa9a3 100644 --- a/src/views/partials/requirejs-config.tpl +++ b/src/views/partials/requirejs-config.tpl @@ -2,7 +2,7 @@ require.config({ baseUrl: "{relative_path}/src/modules", waitSeconds: 3, - urlArgs: "{config.cache-buster}", + urlArgs: "v={config.cache-buster}", paths: { 'forum': '../client', 'admin': '../admin',