diff --git a/package.json b/package.json index 3081c73425..0881f47491 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "0.9.0", + "version": "0.9.1", "homepage": "http://www.nodebb.org", "repository": { "type": "git", @@ -29,11 +29,11 @@ "express": "^4.9.5", "express-session": "^1.8.2", "heapdump": "^0.3.0", - "html-to-text": "1.3.2", - "jimp": "0.2.19", + "html-to-text": "1.5.0", + "jimp": "0.2.20", "less": "^2.0.0", "logrotate-stream": "^0.2.3", - "lru-cache": "^2.6.1", + "lru-cache": "3.2.0", "mime": "^1.3.4", "minimist": "^1.1.1", "mkdirp": "~0.5.0", @@ -41,14 +41,14 @@ "nconf": "~0.8.2", "nodebb-plugin-composer-default": "1.0.24", "nodebb-plugin-dbsearch": "0.2.18", - "nodebb-plugin-emoji-extended": "0.4.16", + "nodebb-plugin-emoji-extended": "0.4.17", "nodebb-plugin-markdown": "4.0.8", - "nodebb-plugin-mentions": "1.0.10", + "nodebb-plugin-mentions": "1.0.11", "nodebb-plugin-soundpack-default": "0.1.5", "nodebb-plugin-spam-be-gone": "0.4.5", "nodebb-rewards-essentials": "0.0.6", - "nodebb-theme-lavender": "3.0.0", - "nodebb-theme-persona": "4.0.37", + "nodebb-theme-lavender": "3.0.2", + "nodebb-theme-persona": "4.0.39", "nodebb-theme-vanilla": "5.0.15", "nodebb-widget-essentials": "2.0.5", "nodemailer": "0.7.1", diff --git a/public/language/ar/notifications.json b/public/language/ar/notifications.json index 58c61fa9b4..04fb977999 100644 --- a/public/language/ar/notifications.json +++ b/public/language/ar/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 أشعَرَ بمشاركة مخلة في %2", "user_posted_to": "%1 أضاف ردا إلى: %2", "user_posted_topic": "%1 أنشأ موضوعًا جديدًا: %2", - "user_mentioned_you_in": "%1 ذكرَ اسمك في %2", "user_started_following_you": "%1 صار يتابعك.", "new_register": "%1 sent a registration request.", "email-confirmed": "تم التحقق من عنوان البريد الإلكتروني", diff --git a/public/language/bg/notifications.json b/public/language/bg/notifications.json index 1af38558c1..960c14058d 100644 --- a/public/language/bg/notifications.json +++ b/public/language/bg/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 докладва Ваша публикация в %2", "user_posted_to": "%1 публикува отговор на: %2", "user_posted_topic": "%1 публикува нова тема: %2", - "user_mentioned_you_in": "%1 Ви спомена в %2", "user_started_following_you": "%1 започна да Ви следва.", "new_register": "%1 изпрати заявка за регистрация.", "email-confirmed": "Е-пощата беше потвърдена", diff --git a/public/language/bn/global.json b/public/language/bn/global.json index 65796d59d7..6a620cf6d9 100644 --- a/public/language/bn/global.json +++ b/public/language/bn/global.json @@ -22,7 +22,7 @@ "pagination.out_of": "%2 এর মাঝে %1", "pagination.enter_index": "সূচক লিখুন", "header.admin": "অ্যাডমিন", - "header.categories": "Categories", + "header.categories": "বিভাগ", "header.recent": "সাম্প্রতিক", "header.unread": "অপঠিত", "header.tags": "ট্যাগ", @@ -52,7 +52,7 @@ "views": "দেখেছেন", "reputation": "সন্মাননা", "read_more": "আরো পড়ুন", - "more": "More", + "more": "আরো...", "posted_ago_by_guest": "অতিথি পোস্ট করেছেন %1", "posted_ago_by": " %1 %2 দ্বারা পোস্টকৃত", "posted_ago": "পোস্ট করেছেন %1", @@ -83,5 +83,5 @@ "follow": "Follow", "unfollow": "Unfollow", "delete_all": "সব মুছে ফেলুন", - "map": "Map" + "map": "ম্যাপ" } \ No newline at end of file diff --git a/public/language/bn/login.json b/public/language/bn/login.json index c34f1de706..7ecec47587 100644 --- a/public/language/bn/login.json +++ b/public/language/bn/login.json @@ -1,7 +1,7 @@ { - "username-email": "Username / Email", - "username": "Username", - "email": "Email", + "username-email": "ইউজারনেম / ইমেইল", + "username": "ইউজারনেম", + "email": "ইমেইল", "remember_me": "মনে রাখুন", "forgot_password": "পাসওয়ার্ড ভুলে গিয়েছেন?", "alternative_logins": "বিকল্প প্রবেশ", diff --git a/public/language/bn/notifications.json b/public/language/bn/notifications.json index b9a010b79e..887c120059 100644 --- a/public/language/bn/notifications.json +++ b/public/language/bn/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 flagged a post in %2", "user_posted_to": "%1 একটি উত্তর দিয়েছেন: %2", "user_posted_topic": "%1 has posted a new topic: %2", - "user_mentioned_you_in": "%1, %2 এ আপনার নাম উল্লেখ করেছেন", "user_started_following_you": "%1 আপনাকে অনুসরন করা শুরু করেছেন।", "new_register": "%1 sent a registration request.", "email-confirmed": "ইমেইল নিশ্চিত করা হয়েছে", diff --git a/public/language/bn/pages.json b/public/language/bn/pages.json index 4d8c87df94..f7e75291e0 100644 --- a/public/language/bn/pages.json +++ b/public/language/bn/pages.json @@ -13,12 +13,12 @@ "users/map": "User Map", "users/search": "User Search", "notifications": "বিজ্ঞপ্তি", - "tags": "Tags", + "tags": "ট্যাগসমূহ", "tag": "Topics tagged under \"%1\"", "register": "Register an account", "login": "Login to your account", "reset": "Reset your account password", - "categories": "Categories", + "categories": "বিভাগ", "groups": "Groups", "group": "%1 group", "chats": "Chats", diff --git a/public/language/bn/register.json b/public/language/bn/register.json index 46676f7ba8..5e2340227f 100644 --- a/public/language/bn/register.json +++ b/public/language/bn/register.json @@ -15,5 +15,5 @@ "alternative_registration": "বিকল্প নিবন্ধন", "terms_of_use": "নিয়মাবলী", "agree_to_terms_of_use": "আমি নিয়মাবলী মেনে চলতে সম্মতি জানালাম", - "registration-added-to-queue": "Your registration has been added to the approval queue. You will receive an email when it is accepted by an administrator." + "registration-added-to-queue": "আপনার নিবন্ধনটি এ্যাপ্লুভাল তালিকায় যুক্ত হয়েছে। একজন এডমিনিস্ট্রেটর কর্তৃক নিবন্ধন গৃহীত হলে আপনি একটি মেইল পাবেন। " } \ No newline at end of file diff --git a/public/language/bn/search.json b/public/language/bn/search.json index 12552601c6..900a0195a7 100644 --- a/public/language/bn/search.json +++ b/public/language/bn/search.json @@ -1,40 +1,40 @@ { "results_matching": "\"%2\" এর সাথে মিলিয়ে %1 ফলাফল পাওয়া গেছে, ( %3 seconds সময় লেগেছে )", - "no-matches": "No matches found", - "advanced-search": "Advanced Search", - "in": "In", - "titles": "Titles", - "titles-posts": "Titles and Posts", - "posted-by": "Posted by", - "in-categories": "In Categories", - "search-child-categories": "Search child categories", - "reply-count": "Reply Count", - "at-least": "At least", - "at-most": "At most", - "post-time": "Post time", + "no-matches": "কোন মিল খুঁজে পাওয়া যায় নি", + "advanced-search": "এডভান্সড সার্চ", + "in": "এর মধ্যে", + "titles": "টাইটেলস", + "titles-posts": "টাইটেল এবং পোস্ট সমূহ", + "posted-by": "পোষ্ট করেছেন", + "in-categories": "বিভাগের ভিতরে", + "search-child-categories": "উপবিভাগের ভিতরে", + "reply-count": "রিপ্লাই কাউন্ট", + "at-least": "কমপক্ষে", + "at-most": "সর্বোচ্চ", + "post-time": "পোস্টের সময়", "newer-than": "Newer than", "older-than": "Older than", - "any-date": "Any date", - "yesterday": "Yesterday", - "one-week": "One week", - "two-weeks": "Two weeks", - "one-month": "One month", - "three-months": "Three months", - "six-months": "Six months", - "one-year": "One year", - "sort-by": "Sort by", - "last-reply-time": "Last reply time", - "topic-title": "Topic title", - "number-of-replies": "Number of replies", - "number-of-views": "Number of views", - "topic-start-date": "Topic start date", - "username": "Username", + "any-date": "যেকোন তারিখ", + "yesterday": "গতকাল", + "one-week": "এক সপ্তাহ", + "two-weeks": "দুই সপ্তাহ", + "one-month": "এক মাস", + "three-months": "তিন মাস", + "six-months": "ছয় মাস", + "one-year": "এক বছর", + "sort-by": "সাজানোর ভিত্তি", + "last-reply-time": "সর্বশেষ রিপ্লাইয়ের সময়", + "topic-title": "টপিকের টাইটেল", + "number-of-replies": "রিপ্লাইয়ের সংখ্যা", + "number-of-views": "সর্বমোট ভিউ", + "topic-start-date": "টপিক শুরুর তারিখ", + "username": "ইউজারনেম", "category": "বিভাগ", - "descending": "In descending order", - "ascending": "In ascending order", - "save-preferences": "Save preferences", + "descending": "বড় থেকে ছোট অর্ডারে", + "ascending": "ছোট থেকে বড় অর্ডারে", + "save-preferences": "প্রেফারেন্স সেভ", "clear-preferences": "Clear preferences", "search-preferences-saved": "Search preferences saved", "search-preferences-cleared": "Search preferences cleared", - "show-results-as": "Show results as" + "show-results-as": "ফলাফল দেখানো হোক : " } \ No newline at end of file diff --git a/public/language/bn/user.json b/public/language/bn/user.json index 93f901f128..80ee0339a7 100644 --- a/public/language/bn/user.json +++ b/public/language/bn/user.json @@ -2,17 +2,17 @@ "banned": "নিষিদ্ধ", "offline": "অফলাইন", "username": "সদস্যের নাম", - "joindate": "Join Date", - "postcount": "Post Count", + "joindate": "নিবন্ধন তারিখ", + "postcount": "সর্বমোট পোষ্ট", "email": "ইমেইল", "confirm_email": "ইমেইল নিশ্চিত করুন", - "ban_account": "Ban Account", - "ban_account_confirm": "Do you really want to ban this user?", - "unban_account": "Unban Account", + "ban_account": "একাউন্ট নিষিদ্ধ করুন", + "ban_account_confirm": "আপনি কি নিশ্চিত যে এই সদস্যকে নিষিদ্ধ করতে চান ?", + "unban_account": "নিষেদ্ধাজ্ঞা তুলে নিন", "delete_account": "একাউন্ট মুছে ফেলুন", "delete_account_confirm": "আপনি কি নিশ্চিত যে আপনি আপনার একাউন্ট মুছে ফেলতে চান ?
এই কাজটির ফলে আপনার কোন তথ্য পুনরূদ্ধার করা সম্ভব নয়

নিশ্চিত করতে আপনার ইউজারনেম প্রবেশ করান। ", "delete_this_account_confirm": "Are you sure you want to delete this account?
This action is irreversible and you will not be able to recover any data

", - "account-deleted": "Account deleted", + "account-deleted": "একাউন্ট মুছে ফেলা হয়েছে", "fullname": "পুর্ণ নাম", "website": "ওয়েবসাইট", "location": "স্থান", @@ -23,23 +23,23 @@ "profile_views": "প্রোফাইল দেখেছেন", "reputation": "সন্মাননা", "favourites": "পছন্দের তালিকা", - "watched": "Watched", + "watched": "দেখা হয়েছে", "followers": "যাদের অনুসরণ করছেন", "following": "যারা আপনাকে অনুসরণ করছে", - "aboutme": "About me", + "aboutme": "আমার সম্পর্কে: ", "signature": "স্বাক্ষর", "birthday": "জন্মদিন", "chat": "বার্তালাপ", - "chat_with": "Chat with %1", + "chat_with": "চ্যাট উইথ %1", "follow": "অনুসরন করুন", "unfollow": "অনুসরন করা থেকে বিরত থাকুন", - "more": "More", + "more": "আরো...", "profile_update_success": "প্রোফাইল আপডেট সফল হয়েছে", "change_picture": "ছবি পরিবর্তন", - "change_username": "Change Username", - "change_email": "Change Email", + "change_username": "ইউজারনেম পরিবর্তন করুন", + "change_email": "ইমেইল পরিবর্তন করুন", "edit": "সম্পাদনা", - "default_picture": "Default Icon", + "default_picture": "ডিফল্ট আইকন", "uploaded_picture": "ছবি আপলোড করুন", "upload_new_picture": "নতুন ছবি আপলোড করুন", "upload_new_picture_from_url": "URL থেকে নতুন ছবি আপলোড করুন", @@ -57,8 +57,8 @@ "password_same_as_username": "Your password is the same as your username, please select another password.", "upload_picture": "ছবি আপলোড করুন", "upload_a_picture": "ছবি (একটি) আপলোড করুন", - "remove_uploaded_picture": "Remove Uploaded Picture", - "image_spec": "You may only upload PNG, JPG, or BMP files", + "remove_uploaded_picture": "আপলোড করা ছবিটি সরিয়ে নাও", + "image_spec": "আপনি শুধুমাত্র PNG, JPG অথবা BMP ফাইল আপলোড করতে পারবেন", "settings": "সেটিংস", "show_email": "আমার ইমেইল দেখাও", "show_fullname": "আমার সম্পূর্ণ নাম দেখাও", @@ -70,21 +70,21 @@ "digest_weekly": "সাপ্তাহিক", "digest_monthly": "মাসিক", "send_chat_notifications": "যদি আমি অনলাইনে না থাকি, সেক্ষেত্রে নতুন চ্যাট মেসেজ আসলে আমাকে ইমেইল করুন", - "send_post_notifications": "Send an email when replies are made to topics I am subscribed to", - "settings-require-reload": "Some setting changes require a reload. Click here to reload the page.", + "send_post_notifications": "আমার সাবস্ক্রাইব করা টপিকগুলোতে রিপ্লাই করা হলে আমাকে মেইল করা হোক", + "settings-require-reload": "কিছু কিছু পরিবর্তনের জন্য রিলোড করা আবশ্যক। পেজটি রিলোড করতে এখানে ক্লিক করুন", "has_no_follower": "এই সদস্যের কোন ফলোয়ার নেই :(", "follows_no_one": "এই সদস্য কাউকে ফলো করছেন না :(", - "has_no_posts": "This user hasn't posted anything yet.", - "has_no_topics": "This user hasn't posted any topics yet.", - "has_no_watched_topics": "This user hasn't watched any topics yet.", + "has_no_posts": "এই সদস্য এখন পর্যন্ত কোন পোস্ট করেন নি", + "has_no_topics": "এই সদস্য এখনো কোন টপিক করেন নি", + "has_no_watched_topics": "এই সদস্য এখনো কোন টপিক দেখেন নি", "email_hidden": "ইমেইল গোপন রাখা হয়েছে", "hidden": "গোপন করা হয়েছে", - "paginate_description": "Paginate topics and posts instead of using infinite scroll", + "paginate_description": "ইনফাইনাইট স্ক্রলের বদলে টপিক ও পোস্টের জন্য পেজিনেশন ব্যাবহার করা হোক", "topics_per_page": "প্রতি পেজে কতগুলো টপিক থাকবে", "posts_per_page": "প্রতি পেইজে কতগুলো পোষ্ট থাকবে", - "notification_sounds": "Play a sound when you receive a notification", + "notification_sounds": "নোটিফিকেশনের জন্য নোটিফিকেশন সাউন্ড এনাবল করুন", "browsing": "Browsing সেটিংস", - "open_links_in_new_tab": "Open outgoing links in new tab", + "open_links_in_new_tab": "আউটগোয়িং লিংকগুলো নতুন ট্যাবে খুলুন", "enable_topic_searching": "In-Topic সার্চ সক্রীয় করো", "topic_search_help": "If enabled, in-topic searching will override the browser's default page search behaviour and allow you to search through the entire topic, instead of what is only shown on screen", "follow_topics_you_reply_to": "Follow topics that you reply to", diff --git a/public/language/bn/users.json b/public/language/bn/users.json index f6fab836dc..23a50d5880 100644 --- a/public/language/bn/users.json +++ b/public/language/bn/users.json @@ -5,17 +5,17 @@ "search": "খুঁজুন", "enter_username": "ইউজারনেম এর ভিত্তিতে সার্চ করুন", "load_more": "আরো লোড করুন", - "users-found-search-took": "%1 user(s) found! Search took %2 seconds.", - "filter-by": "Filter By", - "online-only": "Online only", - "picture-only": "Picture only", - "invite": "Invite", - "invitation-email-sent": "An invitation email has been sent to %1", - "user_list": "User List", - "recent_topics": "Recent Topics", - "popular_topics": "Popular Topics", - "unread_topics": "Unread Topics", - "categories": "Categories", - "tags": "Tags", - "map": "Map" + "users-found-search-took": "%1 জন সদস্য(দের) খুঁজে পাওয়া গেছে। খুঁজতে সময় লেগেছে %2 সেকেন্ড ", + "filter-by": "ফিল্টার করার ধরন", + "online-only": "শুধুমাত্র অনলাইন", + "picture-only": "শুধুমাত্র ছবি", + "invite": "ইনভাইট", + "invitation-email-sent": "%1 কে একটি ইনভাইটেশন ইমেইল পাঠানো হয়েছে", + "user_list": "সদস্য তালিকা", + "recent_topics": "সাম্প্রতিক টপিক", + "popular_topics": "জনপ্রিয় টপিক", + "unread_topics": "অপঠিত টপিক", + "categories": "বিভাগ", + "tags": "ট্যাগসমূহ", + "map": "ম্যাপ" } \ No newline at end of file diff --git a/public/language/cs/notifications.json b/public/language/cs/notifications.json index e8d81cca53..1d9b507b33 100644 --- a/public/language/cs/notifications.json +++ b/public/language/cs/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 flagged a post in %2", "user_posted_to": "%1 has posted a reply to: %2", "user_posted_topic": "%1 has posted a new topic: %2", - "user_mentioned_you_in": "%1 mentioned you in %2", "user_started_following_you": "%1 started following you.", "new_register": "%1 sent a registration request.", "email-confirmed": "Email Confirmed", diff --git a/public/language/da/notifications.json b/public/language/da/notifications.json index aa278bfca8..0952b1eab7 100644 --- a/public/language/da/notifications.json +++ b/public/language/da/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 har anmeldt et indlæg i %2", "user_posted_to": "%1 har skrevet et svar til: %2", "user_posted_topic": "%1 har oprettet en ny tråd: %2", - "user_mentioned_you_in": "%1 nævnte dig i %2", "user_started_following_you": "%1 har valgt at følge dig.", "new_register": "%1 har sendt en registrerings anmodning.", "email-confirmed": "Email bekræftet", diff --git a/public/language/de/email.json b/public/language/de/email.json index 923e3000e7..1e5641b93d 100644 --- a/public/language/de/email.json +++ b/public/language/de/email.json @@ -6,7 +6,7 @@ "greeting_with_name": "Hallo %1", "welcome.text1": "Vielen Dank für die Registrierung bei %1!", "welcome.text2": "Um dein Konto vollständig zu aktivieren, müssen wir überprüfen, ob du Besitzer der E-Mail-Adresse bist, mit der du dich registriert hast.", - "welcome.text3": "Ein Administrator hat deine Registration aktzeptiert. Du kannst dich jetzt mit deinem Benutzernamen/Passwort einloggen.", + "welcome.text3": "Ein Administrator hat deine Registrierung aktzeptiert. Du kannst dich jetzt mit deinem Benutzernamen/Passwort einloggen.", "welcome.cta": "Klicke hier, um deine E-Mail-Adresse zu bestätigen.", "invitation.text1": "%1 hat dich eingeladen %2 beizutreten", "invitation.ctr": "Klicke hier, um ein Konto zu erstellen.", @@ -25,7 +25,7 @@ "notif.chat.cta": "Klicke hier, um die Unterhaltung fortzusetzen", "notif.chat.unsub.info": "Diese Chat-Benachrichtigung wurde dir aufgrund deiner Abonnement-Einstellungen gesendet.", "notif.post.cta": "Hier klicken, um das gesamte Thema zu lesen", - "notif.post.unsub.info": "Diese Mitteilung wurde wegen ihrer Abonnement-Einstellung gesendet.", + "notif.post.unsub.info": "Diese Mitteilung wurde dir aufgrund deiner Abonnement-Einstellungen gesendet.", "test.text1": "Dies ist eine Test-E-Mail, um zu überprüfen, ob der E-Mailer deines NodeBB korrekt eingestellt wurde.", "unsub.cta": "Klicke hier, um diese Einstellungen zu ändern.", "closing": "Danke!" diff --git a/public/language/de/notifications.json b/public/language/de/notifications.json index 8b7f000672..175a55e39f 100644 --- a/public/language/de/notifications.json +++ b/public/language/de/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 hat einen Beitrag in %2 gemeldet", "user_posted_to": "%1 hat auf %2 geantwortet.", "user_posted_topic": "%1 hat ein neues Thema erstellt: %2", - "user_mentioned_you_in": "%1 erwähnte dich in %2", "user_started_following_you": "%1 folgt dir jetzt.", "new_register": "%1 hat eine Registrationsanfrage geschickt.", "email-confirmed": "E-Mail bestätigt", diff --git a/public/language/el/notifications.json b/public/language/el/notifications.json index c9be4b257f..5d0447dea8 100644 --- a/public/language/el/notifications.json +++ b/public/language/el/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "Ο/Η %1 επεσήμανε μια δημοσίευσή σου στο %2", "user_posted_to": "Ο/Η %1 έγραψε μια απάντηση στο: %2", "user_posted_topic": "%1 has posted a new topic: %2", - "user_mentioned_you_in": "Ο/Η %1 σε ανέφερε στο %2", "user_started_following_you": "Ο/Η %1 σε ακολουθεί.", "new_register": "%1 sent a registration request.", "email-confirmed": "Το Εmail Επιβεβαιώθηκε", diff --git a/public/language/en@pirate/notifications.json b/public/language/en@pirate/notifications.json index 83963f1e71..e6986f0684 100644 --- a/public/language/en@pirate/notifications.json +++ b/public/language/en@pirate/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 flagged a post in %2", "user_posted_to": "%1 has posted a reply to: %2", "user_posted_topic": "%1 has posted a new topic: %2", - "user_mentioned_you_in": "%1 mentioned you in %2", "user_started_following_you": "%1 started following you.", "new_register": "%1 sent a registration request.", "email-confirmed": "Email Confirmed", diff --git a/public/language/en_GB/notifications.json b/public/language/en_GB/notifications.json index 7a96e0da53..f9b569170d 100644 --- a/public/language/en_GB/notifications.json +++ b/public/language/en_GB/notifications.json @@ -20,7 +20,6 @@ "user_flagged_post_in": "%1 flagged a post in %2", "user_posted_to" : "%1 has posted a reply to: %2", "user_posted_topic": "%1 has posted a new topic: %2", - "user_mentioned_you_in": "%1 mentioned you in %2", "user_started_following_you": "%1 started following you.", "new_register": "%1 sent a registration request.", diff --git a/public/language/en_US/notifications.json b/public/language/en_US/notifications.json index ae04053c8e..1d5a798c26 100644 --- a/public/language/en_US/notifications.json +++ b/public/language/en_US/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 flagged a post in %2", "user_posted_to": "%1 has posted a reply to: %2", "user_posted_topic": "%1 has posted a new topic: %2", - "user_mentioned_you_in": "%1 mentioned you in %2", "user_started_following_you": "%1 started following you.", "new_register": "%1 sent a registration request.", "email-confirmed": "Email Confirmed", diff --git a/public/language/es/notifications.json b/public/language/es/notifications.json index 6082292cda..c9e5798685 100644 --- a/public/language/es/notifications.json +++ b/public/language/es/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 ha reportado una respuesta en %2", "user_posted_to": "%1 ha respondido a: %2", "user_posted_topic": "%1 ha publicado un nuevo tema: %2", - "user_mentioned_you_in": "%1 te mencionó en %2", "user_started_following_you": "%1 comenzó a seguirte.", "new_register": "%1 envió una solicitud de registro.", "email-confirmed": "Correo electrónico confirmado", diff --git a/public/language/et/notifications.json b/public/language/et/notifications.json index b99c9cc44e..beaf377781 100644 --- a/public/language/et/notifications.json +++ b/public/language/et/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 raporteeris postitust %2", "user_posted_to": "Kasutaja %1 postitas vastuse teemasse %2", "user_posted_topic": "%1 on postitanud uue teema: %2", - "user_mentioned_you_in": "%1 mainis sind postituses %2", "user_started_following_you": "%1 hakkas sind jälgima.", "new_register": "%1 saatis registreerimistaotluse.", "email-confirmed": "Emaili aadress kinnitatud", diff --git a/public/language/fa_IR/notifications.json b/public/language/fa_IR/notifications.json index 66da11dace..5d4098ccbe 100644 --- a/public/language/fa_IR/notifications.json +++ b/public/language/fa_IR/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 دیدگاه شما را در %2 علامتدار کرده", "user_posted_to": "پاسخ دادن به %2 از سوی %1", "user_posted_topic": "%1 یک جستار جدید ارسال کرده: %2", - "user_mentioned_you_in": "%1 در \n%1 mentioned you in %2 از شما نام برده", "user_started_following_you": "%1 شروع به دنبال کردن شما کرده", "new_register": "%1 یک درخواست ثبت نام ارسال کرده است", "email-confirmed": "رایانامه تایید شد", diff --git a/public/language/fi/notifications.json b/public/language/fi/notifications.json index 37cda990db..f3c309f82b 100644 --- a/public/language/fi/notifications.json +++ b/public/language/fi/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 flagged a post in %2", "user_posted_to": "%1 on vastannut viestiin: %2", "user_posted_topic": "%1 on kirjoittanut uuden aiheen: %2", - "user_mentioned_you_in": "%1 mainitsi sinut viestissä %2", "user_started_following_you": "%1 alkoi seurata sinua.", "new_register": "%1 sent a registration request.", "email-confirmed": "Sähköpostiosoite vahvistettu", diff --git a/public/language/fr/notifications.json b/public/language/fr/notifications.json index 3f3ce6b651..a15584d512 100644 --- a/public/language/fr/notifications.json +++ b/public/language/fr/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 a signalé un message dans %2.", "user_posted_to": "%1 a répondu à : %2", "user_posted_topic": "%1 a posté un nouveau sujet: %2.", - "user_mentioned_you_in": "%1 vous a mentionné dans %2", "user_started_following_you": "%1 vous suit.", "new_register": "%1 a envoyé une demande d'incription.", "email-confirmed": "Email vérifié", diff --git a/public/language/gl/notifications.json b/public/language/gl/notifications.json index d98d48341c..17547336f7 100644 --- a/public/language/gl/notifications.json +++ b/public/language/gl/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 reportou unha mensaxe en %2", "user_posted_to": "%1 publicou unha resposta en: %2", "user_posted_topic": "%1 publicou un novo tema: %2", - "user_mentioned_you_in": "%1 mencionóute en %2", "user_started_following_you": "%1 comezou a seguirte.", "new_register": "%1 enviou unha petición de rexistro.", "email-confirmed": "Correo confirmado", diff --git a/public/language/he/notifications.json b/public/language/he/notifications.json index c95230c29c..6d93c08512 100644 --- a/public/language/he/notifications.json +++ b/public/language/he/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 דיווח על פוסט ב %2", "user_posted_to": "%1 פרסם תגובה ל: %2", "user_posted_topic": "%1 העלה נושא חדש: %2", - "user_mentioned_you_in": "%1 הזכיר אותך ב %2", "user_started_following_you": "%1 התחיל לעקוב אחריך.", "new_register": "%1 sent a registration request.", "email-confirmed": "כתובת המייל אושרה", diff --git a/public/language/hu/notifications.json b/public/language/hu/notifications.json index 140f329928..643037bd28 100644 --- a/public/language/hu/notifications.json +++ b/public/language/hu/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 flagged a post in %2", "user_posted_to": "%1 has posted a reply to: %2", "user_posted_topic": "%1 has posted a new topic: %2", - "user_mentioned_you_in": "%1 mentioned you in %2", "user_started_following_you": "%1 started following you.", "new_register": "%1 sent a registration request.", "email-confirmed": "Email Confirmed", diff --git a/public/language/id/notifications.json b/public/language/id/notifications.json index a9ea3f3b75..296bfd9c2a 100644 --- a/public/language/id/notifications.json +++ b/public/language/id/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 menandai sebuah posting di %2", "user_posted_to": "%1 telah mengirim sebuah balasan kepada: %2", "user_posted_topic": "%1 telah membuat topik baru: %2", - "user_mentioned_you_in": "%1 menyebut mu di %2", "user_started_following_you": "%1 mulai mengikutimu.", "new_register": "%1 mengirim permintaan registrasi.", "email-confirmed": "Email telah Dikonfirmasi", diff --git a/public/language/it/notifications.json b/public/language/it/notifications.json index 4de2aa1a50..15ca49f2ec 100644 --- a/public/language/it/notifications.json +++ b/public/language/it/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 ha segnalato un post in %2", "user_posted_to": "%1 ha postato una risposta a: %2", "user_posted_topic": "%1 ha postato un nuovo Topic: %2", - "user_mentioned_you_in": "%1 ti ha menzionato in %2", "user_started_following_you": "%1 ha iniziato a seguirti.", "new_register": "%1 ha inviato una richiesta di registrazione.", "email-confirmed": "Email Confermata", diff --git a/public/language/ja/notifications.json b/public/language/ja/notifications.json index 070c4db46d..e5f9facc16 100644 --- a/public/language/ja/notifications.json +++ b/public/language/ja/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 flagged a post in %2", "user_posted_to": "%1%2 への返事を作成しました。", "user_posted_topic": "%1 has posted a new topic: %2", - "user_mentioned_you_in": "%1 mentioned you in %2", "user_started_following_you": "%1 started following you.", "new_register": "%1 sent a registration request.", "email-confirmed": "Email Confirmed", diff --git a/public/language/ko/notifications.json b/public/language/ko/notifications.json index 652309a46b..e7d56db47b 100644 --- a/public/language/ko/notifications.json +++ b/public/language/ko/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1님이 %2의 게시물을 신고했습니다.", "user_posted_to": "%1님이 %2에 답글을 작성했습니다.", "user_posted_topic": "%1님이 새 주제를 작성했습니다: %2", - "user_mentioned_you_in": "%1님이 %2에서 나를 언급했습니다.", "user_started_following_you": "%1님이 나를 팔로우합니다.", "new_register": "%1 sent a registration request.", "email-confirmed": "확인된 이메일", diff --git a/public/language/lt/notifications.json b/public/language/lt/notifications.json index b66c29ea42..596993bb92 100644 --- a/public/language/lt/notifications.json +++ b/public/language/lt/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1pagrįso nuomone čia %2", "user_posted_to": "%1 parašė atsaką %2", "user_posted_topic": "%1 paskelbė naują temą: %2", - "user_mentioned_you_in": "%1 paminėjo Jus %2", "user_started_following_you": "%1 pradėjo sekti tave", "new_register": "%1 atsiuntė registracijos prašymą", "email-confirmed": "El. paštas patvirtintas", diff --git a/public/language/ms/notifications.json b/public/language/ms/notifications.json index 98b071a349..34c1f104a0 100644 --- a/public/language/ms/notifications.json +++ b/public/language/ms/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 menanda kiriman anda di %2", "user_posted_to": "%1 telah membalas kiriman kepada: %2", "user_posted_topic": "%1 membuka topik baru : %2", - "user_mentioned_you_in": "%1 sebut anda di %2", "user_started_following_you": "%1 mula mengikut anda.", "new_register": "%1 menghantar jemputan pendaftaran.", "email-confirmed": "Emel Disahkan", diff --git a/public/language/nb/notifications.json b/public/language/nb/notifications.json index 984549388f..425997b22f 100644 --- a/public/language/nb/notifications.json +++ b/public/language/nb/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 har flagget et innlegg i %2", "user_posted_to": "%1 har skrevet et svar til: %2", "user_posted_topic": "%1 har skrevet et nytt emne: %2", - "user_mentioned_you_in": "%1 nevnte deg i %2", "user_started_following_you": "%1 begynte å følge deg.", "new_register": "%1 sendte en forespørsel om registrering", "email-confirmed": "E-post bekreftet", diff --git a/public/language/nl/notifications.json b/public/language/nl/notifications.json index d97e12fed3..f049f78b92 100644 --- a/public/language/nl/notifications.json +++ b/public/language/nl/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 rapporteerde een bericht in %2", "user_posted_to": "%1 heeft een reactie geplaatst in %2", "user_posted_topic": "%1 heeft een nieuw onderwerp geplaatst: %2", - "user_mentioned_you_in": "Onze naam is genoemd door %1 in %2.", "user_started_following_you": "%1 volgt jou nu.", "new_register": "%1 heeft een registratie verzoek aangevraagd.", "email-confirmed": "E-mailadres bevestigd", diff --git a/public/language/pl/notifications.json b/public/language/pl/notifications.json index 4f279034c3..e655a6253a 100644 --- a/public/language/pl/notifications.json +++ b/public/language/pl/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 oflagował Twój post w %2", "user_posted_to": "%1 dodał odpowiedź do %2", "user_posted_topic": "%1 wysłał nowy temat: %2", - "user_mentioned_you_in": "%1 wspomniał cię w %2", "user_started_following_you": "%1 zaczął Cię śledzić.", "new_register": "%1 wysłał żądanie rejestracji.", "email-confirmed": "E-mail potwierdzony", diff --git a/public/language/pt_BR/notifications.json b/public/language/pt_BR/notifications.json index b385ff15b1..7a3b36d8d6 100644 --- a/public/language/pt_BR/notifications.json +++ b/public/language/pt_BR/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 sinalizou um post em %2", "user_posted_to": "%1 postou uma resposta para: %2", "user_posted_topic": "%1 postou um novo tópico: %2", - "user_mentioned_you_in": "%1 mencionou você em %2", "user_started_following_you": "%1 começou a seguir você.", "new_register": "%1 lhe enviou um pedido de cadastro.", "email-confirmed": "Email Confirmado", diff --git a/public/language/ro/notifications.json b/public/language/ro/notifications.json index 8072326996..a7cc002529 100644 --- a/public/language/ro/notifications.json +++ b/public/language/ro/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 a semnalizat un mesaj în %2", "user_posted_to": "%1 a postat un răspuns la: %2", "user_posted_topic": "%1 has posted a new topic: %2", - "user_mentioned_you_in": "%1 te-a menționat în %2", "user_started_following_you": "%1 a început să te urmărească.", "new_register": "%1 sent a registration request.", "email-confirmed": "Email confirmat", diff --git a/public/language/ru/notifications.json b/public/language/ru/notifications.json index ed7beb52f9..24be55d9ea 100644 --- a/public/language/ru/notifications.json +++ b/public/language/ru/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 пометил сообщение в %2", "user_posted_to": "%1 ответил на запись: %2", "user_posted_topic": "%1 открыл новую тему: %2", - "user_mentioned_you_in": "%1 упомянул Вас в %2", "user_started_following_you": "%1 подписался на Вас.", "new_register": "%1 отправлен запрос на регистрацию.", "email-confirmed": "Email подтвержден", diff --git a/public/language/rw/notifications.json b/public/language/rw/notifications.json index 1d4454a7ca..a9d10be6e2 100644 --- a/public/language/rw/notifications.json +++ b/public/language/rw/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 yatambikanye ikintu muri %2", "user_posted_to": "%1 yanditse kuri: %2", "user_posted_topic": "%1 yatangije ikiganiro gishya: %2", - "user_mentioned_you_in": "%1 yakuvuze muri %2", "user_started_following_you": "%1 yatangiye kugukurikira.", "new_register": "%1 yasabye kwandikwa.", "email-confirmed": "Email Yemejwe", diff --git a/public/language/sc/notifications.json b/public/language/sc/notifications.json index c6c52cd3b2..929f5a55c6 100644 --- a/public/language/sc/notifications.json +++ b/public/language/sc/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 flagged a post in %2", "user_posted_to": "%1 has posted a reply to: %2", "user_posted_topic": "%1 has posted a new topic: %2", - "user_mentioned_you_in": "%1 mentioned you in %2", "user_started_following_you": "%1 started following you.", "new_register": "%1 sent a registration request.", "email-confirmed": "Email Confirmed", diff --git a/public/language/sk/notifications.json b/public/language/sk/notifications.json index b44a9af1be..a8e6619d33 100644 --- a/public/language/sk/notifications.json +++ b/public/language/sk/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 flagged a post in %2", "user_posted_to": "%1 odpovedal: %2", "user_posted_topic": "%1 has posted a new topic: %2", - "user_mentioned_you_in": "%1 mentioned you in %2", "user_started_following_you": "%1 started following you.", "new_register": "%1 sent a registration request.", "email-confirmed": "Email bol potvrdený", diff --git a/public/language/sl/notifications.json b/public/language/sl/notifications.json index 1c4acd0439..b0164f086e 100644 --- a/public/language/sl/notifications.json +++ b/public/language/sl/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1je prijavil vašo objavo v %2", "user_posted_to": "%1 je odgovoril na: %2", "user_posted_topic": "%1 je odprl novo temo: %2", - "user_mentioned_you_in": "%1 te je omenil v %2", "user_started_following_you": "%1 te sledi.", "new_register": "%1 je poslal prošnjo za registracijo.", "email-confirmed": "E-mail naslov potrjen", diff --git a/public/language/sr/notifications.json b/public/language/sr/notifications.json index 09735f68b2..e65b13f46d 100644 --- a/public/language/sr/notifications.json +++ b/public/language/sr/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 означи поруку у %2", "user_posted_to": "%1 посла нови одговор за: %2", "user_posted_topic": "%1 постави нову тему:", - "user_mentioned_you_in": "%1 вас помену у %2", "user_started_following_you": "%1 поче да вас прати.", "new_register": "%1 sent a registration request.", "email-confirmed": "Е-пошта је је отврђена.", diff --git a/public/language/sv/notifications.json b/public/language/sv/notifications.json index 692e3e12c6..dbf4d290c6 100644 --- a/public/language/sv/notifications.json +++ b/public/language/sv/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 flaggade ett inlägg i %2", "user_posted_to": "%1 har skrivit ett svar på: %2", "user_posted_topic": "%1 har skapat ett nytt ämne: %2", - "user_mentioned_you_in": "%1 nämnde dig i %2", "user_started_following_you": "%1 började följa dig.", "new_register": "%1 skickade en registreringsförfrågan.", "email-confirmed": "Epost bekräftad", diff --git a/public/language/th/notifications.json b/public/language/th/notifications.json index 8509e0f89c..34fc870629 100644 --- a/public/language/th/notifications.json +++ b/public/language/th/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 flagged a post in %2", "user_posted_to": "%1 has posted a reply to: %2", "user_posted_topic": "%1 has posted a new topic: %2", - "user_mentioned_you_in": "%1 mentioned you in %2", "user_started_following_you": "%1 started following you.", "new_register": "%1 sent a registration request.", "email-confirmed": "Email ได้รับการยืนยันแล้ว", diff --git a/public/language/tr/notifications.json b/public/language/tr/notifications.json index 6abf6053fd..b0eb25ec97 100644 --- a/public/language/tr/notifications.json +++ b/public/language/tr/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 bir iletiyi bayrakladı. %2", "user_posted_to": "%1 %2 başlığına bir ileti gönderdi.", "user_posted_topic": "%1 yeni bir konu yarattı: %2", - "user_mentioned_you_in": "%1 %2 başlığında sizden bahsetti.", "user_started_following_you": "%1 sizi takip etmeye başladı.", "new_register": "%1 kayıt olma isteği gönderdi.", "email-confirmed": "E-posta onaylandı", diff --git a/public/language/vi/notifications.json b/public/language/vi/notifications.json index ae78ad26a5..533e5d2a53 100644 --- a/public/language/vi/notifications.json +++ b/public/language/vi/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 gắn cờ 1 bài trong %2", "user_posted_to": "%1 đã trả lời %2", "user_posted_topic": "%1 đã gởi chủ đề mới ở %2", - "user_mentioned_you_in": "%1 nhắc đến bạn trong %2", "user_started_following_you": "%1 đã theo dõi bạn.", "new_register": "%1 sent a registration request.", "email-confirmed": "Đã xác nhận email", diff --git a/public/language/zh_CN/notifications.json b/public/language/zh_CN/notifications.json index 7c63ac062b..9589fe7507 100644 --- a/public/language/zh_CN/notifications.json +++ b/public/language/zh_CN/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1%2 标记了一个帖子", "user_posted_to": "%1 回复了:%2", "user_posted_topic": "%1 发表了新主题:%2", - "user_mentioned_you_in": "%1%2 中提到了您", "user_started_following_you": "%1关注了您。", "new_register": "%1 发出了注册请求", "email-confirmed": "电子邮箱已确认", diff --git a/public/language/zh_TW/notifications.json b/public/language/zh_TW/notifications.json index 1ea7e9ccd1..993d2cd3d8 100644 --- a/public/language/zh_TW/notifications.json +++ b/public/language/zh_TW/notifications.json @@ -18,7 +18,6 @@ "user_flagged_post_in": "%1 舉報了 %2裡的一個post。", "user_posted_to": "%1 發布一個回覆給: %2", "user_posted_topic": "%1 發布了一個新的主題: %2", - "user_mentioned_you_in": "%1%2提到你", "user_started_following_you": "%1 開始關注你。", "new_register": "%1 sent a registration request.", "email-confirmed": "已確認電郵", diff --git a/public/less/admin/manage/flags.less b/public/less/admin/manage/flags.less index 8b13789179..504767e934 100644 --- a/public/less/admin/manage/flags.less +++ b/public/less/admin/manage/flags.less @@ -1 +1,22 @@ +.flag-reporters { + font-size: 1.2rem; + ul { + padding-left: 0; + + li { + list-style-type: none; + + img, .user-icon { + .user-icon-style(18px, 1rem); + margin-right: 1rem; + } + } + } +} + +.flag-post-body { + img, .user-icon { + .user-icon-style(24px, 1.5rem); + } +} \ No newline at end of file diff --git a/public/less/generics.less b/public/less/generics.less index 4115f7d117..c21823143e 100644 --- a/public/less/generics.less +++ b/public/less/generics.less @@ -55,3 +55,14 @@ vertical-align: middle; } } + +.avatar { + /* Contains the user icon class as a mixin, so there's no need to include that in the template */ + .user-icon; + + &.avatar-sm { + width: 24px; + height: 24px; + .user-icon-style(24px, 1.5rem); + } +} \ No newline at end of file diff --git a/public/src/admin/appearance/skins.js b/public/src/admin/appearance/skins.js index b057c740c8..8f838ca8c2 100644 --- a/public/src/admin/appearance/skins.js +++ b/public/src/admin/appearance/skins.js @@ -10,8 +10,13 @@ define('admin/appearance/skins', function() { $('body').append(scriptEl); $('#skins').on('click', function(e){ - var target = $(e.target), - action = target.attr('data-action'); + var target = $(e.target); + + if (!target.attr('data-action')) { + target = target.parents('[data-action]'); + } + + var action = target.attr('data-action'); if (action && action === 'use') { var parentEl = target.parents('[data-theme]'), @@ -19,6 +24,7 @@ define('admin/appearance/skins', function() { cssSrc = parentEl.attr('data-css'), themeId = parentEl.attr('data-theme'); + socket.emit('admin.themes.set', { type: themeType, id: themeId, diff --git a/public/src/admin/general/dashboard.js b/public/src/admin/general/dashboard.js index 3b9134b10c..91a40387b3 100644 --- a/public/src/admin/general/dashboard.js +++ b/public/src/admin/general/dashboard.js @@ -60,10 +60,7 @@ define('admin/general/dashboard', ['semver'], function(semver) { checkEl.append('

You are up-to-date

'); } else if (semver.gt(latestVersion, version)) { checkEl.removeClass('alert-info').addClass('alert-danger'); - checkEl.append('

A new version (v' + latestVersion + ') has been released. Consider upgrading your NodeBB.

'); - } else if (semver.gt(version, latestVersion)) { - checkEl.removeClass('alert-info').addClass('alert-warning'); - checkEl.append('

You are running a development version! Unintended bugs may occur.

'); + checkEl.append('

A new version (v' + latestVersion + ') has been released. Consider upgrading your NodeBB.

'); } }); @@ -319,7 +316,6 @@ define('admin/general/dashboard', ['semver'], function(semver) { if (JSON.stringify(graphData.traffic) === JSON.stringify(data)) { return; } - console.log(data); graphData.traffic = data; @@ -332,6 +328,13 @@ define('admin/general/dashboard', ['semver'], function(semver) { graphs.traffic.scale.xLabels = getDaysArray(until); } else { graphs.traffic.scale.xLabels = getHoursArray(); + + $('#pageViewsThisMonth').html(data.monthlyPageViews.thisMonth); + $('#pageViewsLastMonth').html(data.monthlyPageViews.lastMonth); + $('#pageViewsPastDay').html(data.pastDay); + utils.addCommasToNumbers($('#pageViewsThisMonth')); + utils.addCommasToNumbers($('#pageViewsLastMonth')); + utils.addCommasToNumbers($('#pageViewsPastDay')); } for (var i = 0, ii = data.pageviews.length; i < ii; i++) { @@ -349,13 +352,6 @@ define('admin/general/dashboard', ['semver'], function(semver) { graphs.traffic.update(); currentGraph.units = units; currentGraph.until = until; - - $('#pageViewsThisMonth').html(data.monthlyPageViews.thisMonth); - $('#pageViewsLastMonth').html(data.monthlyPageViews.lastMonth); - $('#pageViewsPastDay').html(data.pastDay); - utils.addCommasToNumbers($('#pageViewsThisMonth')); - utils.addCommasToNumbers($('#pageViewsLastMonth')); - utils.addCommasToNumbers($('#pageViewsPastDay')); }); } diff --git a/public/src/admin/manage/flags.js b/public/src/admin/manage/flags.js index a7943784af..b76ccf1708 100644 --- a/public/src/admin/manage/flags.js +++ b/public/src/admin/manage/flags.js @@ -40,7 +40,7 @@ define('admin/manage/flags', [ return app.alertError(err.message); } - $('.post-container').empty().text('No flagged posts!'); + ajaxify.refresh(); }); }); } diff --git a/public/src/admin/manage/users.js b/public/src/admin/manage/users.js index ece62335cc..b59543d035 100644 --- a/public/src/admin/manage/users.js +++ b/public/src/admin/manage/users.js @@ -1,11 +1,9 @@ "use strict"; -/* global config, socket, define, templates, bootbox, app, ajaxify, */ +/* global config, socket, define, templates, bootbox, app, ajaxify */ define('admin/manage/users', ['admin/modules/selectable'], function(selectable) { var Users = {}; Users.init = function() { - var yourid = ajaxify.data.yourid; - selectable.enable('#users-container', '.user-selectable'); function getSelectedUids() { @@ -94,7 +92,7 @@ define('admin/manage/users', ['admin/modules/selectable'], function(selectable) return; } - if (uids.indexOf(yourid) !== -1) { + if (uids.indexOf(app.user.uid.toString()) !== -1) { app.alertError('You can\'t remove yourself as Administrator!'); } else { socket.emit('admin.user.makeAdmins', uids, done('User(s) are now administrators.', '.administrator', true)); @@ -108,7 +106,7 @@ define('admin/manage/users', ['admin/modules/selectable'], function(selectable) return; } - if (uids.indexOf(yourid.toString()) !== -1) { + if (uids.indexOf(app.user.uid.toString()) !== -1) { app.alertError('You can\'t remove yourself as Administrator!'); } else { bootbox.confirm('Do you really want to remove admins?', function(confirm) { diff --git a/public/src/client/chats.js b/public/src/client/chats.js index f32ec38378..437c97978c 100644 --- a/public/src/client/chats.js +++ b/public/src/client/chats.js @@ -38,13 +38,8 @@ define('forum/chats', ['components', 'string', 'sounds', 'forum/infinitescroll', }; Chats.addEventListeners = function() { - $('.chats-list').on('click', 'li', function(e) { - var env = utils.findBootstrapEnvironment(); - if (env === 'xs' || env === 'sm') { - app.openChat($(this).attr('data-username'), $(this).attr('data-uid')); - } else { - Chats.switchChat(parseInt($(this).attr('data-uid'), 10), $(this).attr('data-username')); - } + components.get('chat/recent').on('click', 'li', function(e) { + Chats.switchChat(parseInt($(this).attr('data-uid'), 10), $(this).attr('data-username')); }); Chats.addSendHandlers(Chats.getRecipientUid(), $('.chat-input'), $('.expanded-chat button[data-action="send"]')); diff --git a/public/src/client/topic/postTools.js b/public/src/client/topic/postTools.js index 423637e21e..6be1fce55d 100644 --- a/public/src/client/topic/postTools.js +++ b/public/src/client/topic/postTools.js @@ -268,6 +268,11 @@ define('forum/topic/postTools', ['share', 'navigator', 'components', 'translator function showVotes(pid) { socket.emit('posts.getVoters', {pid: pid, cid: ajaxify.data.cid}, function(err, data) { if (err) { + if (err.message === '[[error:no-privileges]]') { + return; + } + + // Only show error if it's an unexpected error. return app.alertError(err.message); } diff --git a/public/src/installer/install.js b/public/src/installer/install.js index 56645f0301..f7224fb71a 100644 --- a/public/src/installer/install.js +++ b/public/src/installer/install.js @@ -115,7 +115,7 @@ $('document').ready(function() { $.post('/launch', function() { setInterval(function() { - $.get('/admin', function(data) { + $.get('/admin').done(function(data) { window.location = 'admin'; }); }, 750); diff --git a/public/src/modules/chat.js b/public/src/modules/chat.js index b2613a2e8a..a9363836cd 100644 --- a/public/src/modules/chat.js +++ b/public/src/modules/chat.js @@ -19,11 +19,6 @@ define('chat', ['components', 'taskbar', 'string', 'sounds', 'forum/chats', 'tra }); socket.on('event:chats.receive', function(data) { - if (ajaxify.currentPage.slice(0, 6) === 'chats/') { - // User is on the chats page, so do nothing (src/forum/chats.js will handle it) - return; - } - var username = data.message.fromUser.username; var isSelf = parseInt(data.message.fromUser.uid, 10) === parseInt(app.user.uid, 10); data.message.self = data.self; diff --git a/src/controllers/index.js b/src/controllers/index.js index f418c16572..fa414e1db5 100644 --- a/src/controllers/index.js +++ b/src/controllers/index.js @@ -50,7 +50,16 @@ Controllers.home = function(req, res, next) { } else if (route === 'popular') { Controllers.popular.get(req, res, next); } else { - res.redirect(route); + var match = /^category\/(\d+)\/(.*)$/.exec(route); + + if (match) { + req.params.topic_index = "1"; + req.params.category_id = match[1]; + req.params.slug = match[2]; + Controllers.categories.get(req, res, next); + } else { + res.redirect(route); + } } } }); diff --git a/src/emailer.js b/src/emailer.js index d63aa1bb7e..449bdf9e9b 100644 --- a/src/emailer.js +++ b/src/emailer.js @@ -14,13 +14,26 @@ var async = require('async'), translator = require('../public/src/modules/translator'), transports = { - direct: nodemailer.createTransport('direct') + direct: nodemailer.createTransport('direct'), + gmail: undefined }, app; (function(Emailer) { Emailer.registerApp = function(expressApp) { app = expressApp; + + // Enable Gmail transport if enabled in ACP + if (parseInt(meta.config['email:GmailTransport:enabled'], 10) === 1) { + transports.gmail = nodemailer.createTransport('SMTP', { + service: 'Gmail', + auth: { + user: meta.config['email:GmailTransport:user'], + pass: meta.config['email:GmailTransport:pass'] + } + }); + } + return Emailer; }; @@ -101,7 +114,8 @@ var async = require('async'), data.text = data.plaintext; delete data.plaintext; - transports.direct.sendMail(data, callback); + winston.verbose('[emailer] Sending email to uid ' + data.uid); + transports[transports.gmail ? 'gmail' : 'direct'].sendMail(data, callback); }; function render(tpl, params, next) { diff --git a/src/meta/js.js b/src/meta/js.js index 75b82c856a..936d1da988 100644 --- a/src/meta/js.js +++ b/src/meta/js.js @@ -129,7 +129,7 @@ module.exports = function(Meta) { * Check if the parent process is running with the debug option --debug (or --debug-brk) */ var forkProcessParams = {}; - if(global.v8debug) { + if(global.v8debug || process.execArgv.indexOf('--debug') != -1) { /** * use the line below if you want to debug minifier.js script too (or even --debug-brk option, but * you'll have to setup your debugger and connect to the forked process) diff --git a/src/middleware/middleware.js b/src/middleware/middleware.js index e2c5747ab6..059e2229d0 100644 --- a/src/middleware/middleware.js +++ b/src/middleware/middleware.js @@ -222,7 +222,7 @@ middleware.privateUploads = function(req, res, next) { middleware.busyCheck = function(req, res, next) { if (global.env === 'production' && (!meta.config.hasOwnProperty('eventLoopCheckEnabled') || parseInt(meta.config.eventLoopCheckEnabled, 10) === 1) && toobusy()) { - res.type('text/html').sendFile(path.join(__dirname, '../../public/503.html')); + res.status(503).type('text/html').sendFile(path.join(__dirname, '../../public/503.html')); } else { next(); } diff --git a/src/posts/parse.js b/src/posts/parse.js index 4d18f9dd7f..4317f024b3 100644 --- a/src/posts/parse.js +++ b/src/posts/parse.js @@ -9,9 +9,8 @@ module.exports = function(Posts) { Posts.parsePost = function(postData, callback) { postData.content = postData.content || ''; - var cachedContent = cache.get(postData.pid); - if (cachedContent) { - postData.content = cachedContent; + if (postData.pid && cache.has(postData.pid)) { + postData.content = cache.get(postData.pid); return callback(null, postData); } @@ -38,4 +37,4 @@ module.exports = function(Posts) { plugins.fireHook('filter:parse.signature', {userData: userData, uid: uid}, callback); }; -}; \ No newline at end of file +}; diff --git a/src/reset.js b/src/reset.js index 55559696bf..ce1b585a01 100644 --- a/src/reset.js +++ b/src/reset.js @@ -2,6 +2,7 @@ var winston = require('winston'); var nconf = require('nconf'); +var async = require('async'); var db = require('./database'); var Reset = {}; @@ -81,11 +82,29 @@ function resetThemes(callback) { } function resetPlugin(pluginId) { - db.sortedSetRemove('plugins:active', pluginId, function(err) { + var active = false; + + async.waterfall([ + async.apply(db.isSortedSetMember, 'plugins:active', pluginId), + function(isMember, next) { + active = isMember; + + if (isMember) { + db.sortedSetRemove('plugins:active', pluginId, next); + } else { + next(); + } + } + ], function(err) { if (err) { winston.error('[reset] Could not disable plugin: %s encountered error %s', pluginId, err.message); } else { - winston.info('[reset] Plugin `%s` disabled', pluginId); + if (active) { + winston.info('[reset] Plugin `%s` disabled', pluginId); + } else { + winston.warn('[reset] Plugin `%s` was not active on this forum', pluginId); + winston.info('[reset] No action taken.'); + } } process.exit(); diff --git a/src/user/email.js b/src/user/email.js index 9a1dfde805..4f2361c0f7 100644 --- a/src/user/email.js +++ b/src/user/email.js @@ -32,7 +32,7 @@ var async = require('async'), var confirm_code = utils.generateUUID(), confirm_link = nconf.get('url') + '/confirm/' + confirm_code; - var emailInterval = 10; + var emailInterval = meta.config.hasOwnProperty('emailConfirmInterval') ? parseInt(meta.config.emailConfirmInterval, 10) : 10; async.waterfall([ function(next) { diff --git a/src/views/admin/advanced/events.tpl b/src/views/admin/advanced/events.tpl index 747f9e03db..eb43eaa824 100644 --- a/src/views/admin/advanced/events.tpl +++ b/src/views/admin/advanced/events.tpl @@ -10,9 +10,16 @@
#{events.eid} {events.type} - {events.user.username} (uid {events.user.uid}) (IP {events.ip}) + + + + +
{events.user.icon:text}
+ +
+ {events.user.username} (uid {events.user.uid}) (IP {events.ip}) {events.timestampISO} -

+

{events.jsonString}
diff --git a/src/views/admin/manage/flags.tpl b/src/views/admin/manage/flags.tpl index 6557f5f6a3..c66bc2573a 100644 --- a/src/views/admin/manage/flags.tpl +++ b/src/views/admin/manage/flags.tpl @@ -30,42 +30,63 @@
- No flagged posts! +
+ No flagged posts! +
-
-
-
- - - +
+
+
+
+ + + + +
{../user.icon:text}
+ +
- - {posts.user.username} - -
-

{posts.content}

-

+ + {../user.username} + +
+

{posts.content}

+

+
+ + + Posted in {posts.category.name}, • + Read More + +
- - - Posted in {posts.category.name}, • - Read More - -
- - {posts.flags} -
- - {../user.username}: "{../reason}"
- -
- - -

+
+ This post has been flagged {posts.flags} time(s): +
+ +
+
+ + +
+
diff --git a/src/views/admin/partials/categories/privileges.tpl b/src/views/admin/partials/categories/privileges.tpl index 0fd2da313e..74c29bfeba 100644 --- a/src/views/admin/partials/categories/privileges.tpl +++ b/src/views/admin/partials/categories/privileges.tpl @@ -8,7 +8,13 @@ - + + + + +
{../icon:text}
+ + {privileges.users.username} {function.spawnPrivilegeStates, privileges.users.username, privileges} diff --git a/src/views/admin/settings/email.tpl b/src/views/admin/settings/email.tpl index 24e4fc7798..683a13f4cc 100644 --- a/src/views/admin/settings/email.tpl +++ b/src/views/admin/settings/email.tpl @@ -4,9 +4,6 @@
Email Settings
-

- Please ensure that you have installed a third-party emailer (e.g. PostageApp, Mailgun, Mandrill, SendGrid, etc), otherwise emails will not be sent by NodeBB -

@@ -25,6 +22,31 @@

+
+
Gmail Routing
+
+ +
+ +
+
+ +
+

+ Enter the full email address here, especially if you are using a Google Apps managed domain. +

+
+
+ +
+
+ +
+
+
Edit Email Template
diff --git a/src/views/admin/settings/user.tpl b/src/views/admin/settings/user.tpl index 0b27b24175..dc25c99980 100644 --- a/src/views/admin/settings/user.tpl +++ b/src/views/admin/settings/user.tpl @@ -18,6 +18,12 @@
+
+ + + +
+