From b3f6c423c6f50595a3f49de312032a716df612f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 25 Jul 2017 18:23:21 -0400 Subject: [PATCH 01/18] fix test --- test/controllers.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/controllers.js b/test/controllers.js index da95296f24..af8dcd51f1 100644 --- a/test/controllers.js +++ b/test/controllers.js @@ -1775,8 +1775,7 @@ describe('Controllers', function () { it('should redirect to login', function (done) { request(nconf.get('url') + '//api/admin/advanced/database', { json: true }, function (err, res, body) { assert.ifError(err); - assert.equal(res.statusCode, 200); - assert(body.indexOf('Login to your account') !== -1); + assert.equal(res.statusCode, 401); done(); }); }); From 4c126c0870e9161488a0424de0eb38b93673d08b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 25 Jul 2017 22:15:52 -0400 Subject: [PATCH 02/18] up markdown --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d30e5b3bb3..7befecc2df 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "nodebb-plugin-dbsearch": "2.0.6", "nodebb-plugin-emoji-extended": "1.1.1", "nodebb-plugin-emoji-one": "1.2.1", - "nodebb-plugin-markdown": "8.0.0", + "nodebb-plugin-markdown": "8.0.2", "nodebb-plugin-mentions": "2.1.5", "nodebb-plugin-soundpack-default": "1.0.0", "nodebb-plugin-spam-be-gone": "0.5.0", From ae3d5f8aaa03aaf32d89075b661b7c25cd93bd56 Mon Sep 17 00:00:00 2001 From: "Misty (Bot)" Date: Wed, 26 Jul 2017 09:23:26 +0000 Subject: [PATCH 03/18] Latest translations and fallbacks --- public/language/he/admin/menu.json | 16 ++++++------ public/language/th/admin/admin.json | 2 +- .../language/th/admin/advanced/database.json | 22 ++++++++-------- public/language/th/admin/advanced/errors.json | 24 ++++++++--------- public/language/th/admin/advanced/events.json | 8 +++--- public/language/th/admin/advanced/logs.json | 10 +++---- .../th/admin/appearance/customise.json | 16 ++++++------ .../language/th/admin/appearance/skins.json | 14 +++++----- .../language/th/admin/appearance/themes.json | 18 ++++++------- .../language/th/admin/development/info.json | 16 ++++++------ .../language/th/admin/development/logger.json | 18 ++++++------- public/language/th/admin/extend/plugins.json | 26 +++++++++---------- 12 files changed, 95 insertions(+), 95 deletions(-) diff --git a/public/language/he/admin/menu.json b/public/language/he/admin/menu.json index 985c540e8a..b60491a94b 100644 --- a/public/language/he/admin/menu.json +++ b/public/language/he/admin/menu.json @@ -1,16 +1,16 @@ { "section-general": "General", "general/dashboard": "Dashboard", - "general/homepage": "Home Page", - "general/navigation": "Navigation", - "general/languages": "Languages", + "general/homepage": "דף הבית", + "general/navigation": "ניווט", + "general/languages": "שפות", "general/sounds": "Sounds", "general/social": "Social", "section-manage": "Manage", - "manage/categories": "Categories", - "manage/tags": "Tags", - "manage/users": "Users", + "manage/categories": "קטגוריות", + "manage/tags": "תגיות", + "manage/users": "משתמשים", "manage/registration": "Registration Queue", "manage/groups": "Groups", "manage/ip-blacklist": "IP Blacklist", @@ -21,10 +21,10 @@ "settings/email": "Email", "settings/user": "User", "settings/group": "Group", - "settings/guest": "Guests", + "settings/guest": "אורח", "settings/uploads": "Uploads", "settings/post": "Post", - "settings/chat": "Chat", + "settings/chat": "צ'אט", "settings/pagination": "Pagination", "settings/tags": "Tags", "settings/notifications": "Notifications", diff --git a/public/language/th/admin/admin.json b/public/language/th/admin/admin.json index 8a6250c96b..ec64770be6 100644 --- a/public/language/th/admin/admin.json +++ b/public/language/th/admin/admin.json @@ -1,5 +1,5 @@ { - "alert.confirm-reload": "คุณต้องการโหลดการทำงาน NodeBB อีกครั้งหรือไม่?", + "alert.confirm-reload": "คุณต้องการโหลด NodeBB อีกครั้งหรือไม่?", "alert.confirm-restart": "คุณต้องการเริ่มการทำงาน NodeBB ใหม่หรือไม่?", "acp-title": "%1 | แผงควบคุมของผู้ดูแลระบบ", diff --git a/public/language/th/admin/advanced/database.json b/public/language/th/admin/advanced/database.json index ee4f15b2b6..7d329f4ad9 100644 --- a/public/language/th/admin/advanced/database.json +++ b/public/language/th/admin/advanced/database.json @@ -6,31 +6,31 @@ "uptime-days": "ระยะเวลาทำงานต่อเนื่องเป็นวัน", "mongo": "Mongo", - "mongo.version": "รุ่น MongoDB", - "mongo.storage-engine": "เอ็นจินการจัดเก็บ", + "mongo.version": "MongoDB เวอร์ชั่น", + "mongo.storage-engine": "ระบบการจัดเก็บ", "mongo.collections": "คอลเลคชัน", "mongo.objects": "ออพเจ็กท์", "mongo.avg-object-size": "ขนาดออพเจ็กท์โดยเฉลี่ย", "mongo.data-size": "ขนาดข้อมูล", - "mongo.storage-size": "ขนาดพื้นที่ข้อมูล", + "mongo.storage-size": "ขนาดพื้นที่จัดเก็บ", "mongo.index-size": "ขนาดดัชนี", "mongo.file-size": "ขนาดไฟล์", - "mongo.resident-memory": "Resident Memory", - "mongo.virtual-memory": "Virtual Memory", - "mongo.mapped-memory": "Mapped Memory", + "mongo.resident-memory": "หน่วยความจำถาวร", + "mongo.virtual-memory": "หน่วยความจำเสมือน", + "mongo.mapped-memory": "เส้นทางหน่วยความจำ", "mongo.raw-info": "ข้อมูลดิบของ MongoDB", "redis": "Redis", - "redis.version": "รุ่นของ Redis", - "redis.connected-clients": "Connected Clients", - "redis.connected-slaves": "Connected Slaves", + "redis.version": "Redis เวอร์ชั่น", + "redis.connected-clients": "ไคลเอ็นท์ที่เชื่อมต่อแล้ว", + "redis.connected-slaves": "Slaves ที่เชื่อมต่อแล้ว", "redis.blocked-clients": "ไคลเอ็นท์ที่ถูกบล็อค", "redis.used-memory": "หน่วยความจำที่ถูกใช้", - "redis.memory-frag-ratio": "Memory Fragmentation Ratio", + "redis.memory-frag-ratio": "อัตราการกระจายตัวของหน่วยความจำ", "redis.total-connections-recieved": "การเชื่อมต่อที่ได้รับทั้งหมด", "redis.total-commands-processed": "คำสั่งที่ประมวลผลแล้วทั้งหมด", "redis.iops": "การทำงานพร้อมกันต่อวินาที", "redis.keyspace-hits": "Keyspace Hits", "redis.keyspace-misses": "Keyspace Misses", - "redis.raw-info": "Redis Raw Info" + "redis.raw-info": "ข้อมูลดิบของ Redis" } \ No newline at end of file diff --git a/public/language/th/admin/advanced/errors.json b/public/language/th/admin/advanced/errors.json index 546f0f1508..354bdc8fda 100644 --- a/public/language/th/admin/advanced/errors.json +++ b/public/language/th/admin/advanced/errors.json @@ -1,14 +1,14 @@ { - "figure-x": "Figure %1", - "error-events-per-day": "%1 events per day", - "error.404": "404 Not Found", - "error.503": "503 Service Unavailable", - "manage-error-log": "Manage Error Log", - "export-error-log": "Export Error Log (CSV)", - "clear-error-log": "Clear Error Log", - "route": "Route", - "count": "Count", - "no-routes-not-found": "Hooray! No 404 errors!", - "clear404-confirm": "Are you sure you wish to clear the 404 error logs?", - "clear404-success": "\"404 Not Found\" errors cleared" + "figure-x": "การปรับแต่ง %1", + "error-events-per-day": "%1 อีเวนท์ต่อวัน", + "error.404": "404 ไม่พบเพจ", + "error.503": "503 เซอร์วิสไม่พร้อมใช้งาน", + "manage-error-log": "จัดการผลบันทึกความผิดพลาด", + "export-error-log": "นำออกผลบันทึกความผิดพลาด (CSV)", + "clear-error-log": "ล้างผลบันทึกความผิดพลาด", + "route": "เส้นทาง", + "count": "นับจำนวน", + "no-routes-not-found": "เอาแล้วซิ! พบความผิดพลาดรหัส 404", + "clear404-confirm": "คุณแน่ใจแล้วใช่ไหมว่าต้องการล้างผลบันทึกความผิดพลาดรหัส 404?", + "clear404-success": "บันทึกความผิดพลาด \"404 ไม่พบเพจ\" ถูกล้างเรียบร้อยแล้ว" } \ No newline at end of file diff --git a/public/language/th/admin/advanced/events.json b/public/language/th/admin/advanced/events.json index 766eb5e951..47e9766ee4 100644 --- a/public/language/th/admin/advanced/events.json +++ b/public/language/th/admin/advanced/events.json @@ -1,6 +1,6 @@ { - "events": "Events", - "no-events": "There are no events", - "control-panel": "Events Control Panel", - "delete-events": "Delete Events" + "events": "อีเวนท์", + "no-events": "ไม่มีอีเวนท์", + "control-panel": "แผงควบคุมอีเวนท์", + "delete-events": "ลบอีเวนท์" } \ No newline at end of file diff --git a/public/language/th/admin/advanced/logs.json b/public/language/th/admin/advanced/logs.json index b9de400e1c..ba7e879560 100644 --- a/public/language/th/admin/advanced/logs.json +++ b/public/language/th/admin/advanced/logs.json @@ -1,7 +1,7 @@ { - "logs": "Logs", - "control-panel": "Logs Control Panel", - "reload": "Reload Logs", - "clear": "Clear Logs", - "clear-success": "Logs Cleared!" + "logs": "บันทึกผลกิจกรรม", + "control-panel": "แผงควบคุมบันทึกผลกิจกรรม", + "reload": "โหลดบันทึกผลกิจกรรมอีกครั้ง", + "clear": "ล้างบันทึกผลกิจกรรม", + "clear-success": "ล้างบันทึกผลกิจกรรมแล้ว!" } \ No newline at end of file diff --git a/public/language/th/admin/appearance/customise.json b/public/language/th/admin/appearance/customise.json index 5095f7a937..e377c7781a 100644 --- a/public/language/th/admin/appearance/customise.json +++ b/public/language/th/admin/appearance/customise.json @@ -1,12 +1,12 @@ { - "custom-css": "Custom CSS", - "custom-css.description": "Enter your own CSS declarations here, which will be applied after all other styles.", - "custom-css.enable": "Enable Custom CSS", + "custom-css": "ปรับแต่ง CSS", + "custom-css.description": "ใส่ CSS ของคุณที่นี่, มันจะถูกนำไปใช้ต่อจากสไตล์อื่นๆ", + "custom-css.enable": "เปิดการปรับแต่ง CSS", - "custom-header": "Custom Header", - "custom-header.description": "Enter custom HTML here (ex. JavaScript, Meta Tags, etc.), which will be appended to the <head> section of your forum's markup.", - "custom-header.enable": "Enable Custom Header", + "custom-header": "ปรับแต่งส่วนหัว", + "custom-header.description": "ใส่การปรับแต่ง HTML ที่นี่ (เช่น JavaScript, Meta Tags หรืออื่นๆ) , มันจะถูกเพิ่มใน <head>ของส่วนฟอรั่มของคุณ", + "custom-header.enable": "เปิดการปรับแต่งส่วนหัว", - "custom-css.livereload": "Enable Live Reload", - "custom-css.livereload.description": "Enable this to force all sessions on every device under your account to refresh whenever you click save" + "custom-css.livereload": "เปิดการบังคับให้มีผลในทันที", + "custom-css.livereload.description": "การเปิดนี้จะบังคับทุกเซสชั่นบนทุกอุปกรณ์ภายใต้บัญชีของคุณให้ถูกรีเฟรชทันทีที่คุณกดบันทึก" } \ No newline at end of file diff --git a/public/language/th/admin/appearance/skins.json b/public/language/th/admin/appearance/skins.json index 4db6fbdd8a..7a3c23814a 100644 --- a/public/language/th/admin/appearance/skins.json +++ b/public/language/th/admin/appearance/skins.json @@ -1,9 +1,9 @@ { - "loading": "Loading Skins...", - "homepage": "Homepage", - "select-skin": "Select Skin", - "current-skin": "Current Skin", - "skin-updated": "Skin Updated", - "applied-success": "%1 skin was succesfully applied", - "revert-success": "Skin reverted to base colours" + "loading": "กำลังโหลดหน้ากาก", + "homepage": "หน้าแรก", + "select-skin": "เลือกหน้ากาก", + "current-skin": "หน้ากากปัจจุบัน", + "skin-updated": "หน้ากากถูกอัปเดทแล้ว", + "applied-success": "%1 หน้ากากถูกใช้เสร็จสิ้นแล้ว", + "revert-success": "หน้ากากถูกทำให้ย้อนกลับไปใช้สีพื้นฐานแล้ว" } \ No newline at end of file diff --git a/public/language/th/admin/appearance/themes.json b/public/language/th/admin/appearance/themes.json index 3148a01337..efe9954248 100644 --- a/public/language/th/admin/appearance/themes.json +++ b/public/language/th/admin/appearance/themes.json @@ -1,11 +1,11 @@ { - "checking-for-installed": "Checking for installed themes...", - "homepage": "Homepage", - "select-theme": "Select Theme", - "current-theme": "Current Theme", - "no-themes": "No installed themes found", - "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", - "theme-changed": "Theme Changed", - "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", - "restart-to-activate": "Please restart your NodeBB to fully activate this theme" + "checking-for-installed": "กำลังตรวจสอบธีมที่ถูกติดตั้งแล้ว", + "homepage": "หน้าแรก", + "select-theme": "เลือกธีม", + "current-theme": "ธีมปัจจุบัน", + "no-themes": "ไม่พบธีมที่ถูกติดตั้งแล้ว", + "revert-confirm": "คุณแน่ใจแล้วใช่ไหมที่ต้องการกลับไปใช้ธีมพื้นฐานของ NodeBB?", + "theme-changed": "ธีมถูกเปลี่ยนแล้ว", + "revert-success": "คุณได้ทำการเปลี่ยน NodeBB ของคุณให้กลับไปใช้ธีมพื้นฐานของมันแล้ว", + "restart-to-activate": "โปรดรีสตาร์ท NodeBB ของคุณเพื่อเปิดการทำงานของธีมนี้" } \ No newline at end of file diff --git a/public/language/th/admin/development/info.json b/public/language/th/admin/development/info.json index 0a4ae6fe2c..618c539d9c 100644 --- a/public/language/th/admin/development/info.json +++ b/public/language/th/admin/development/info.json @@ -1,18 +1,18 @@ { - "you-are-on": "Info - You are on %1:%2", - "nodes-responded": "%1 nodes responded within %2ms!", + "you-are-on": "ข้อมูล - คุณกำลังอยู่บน %1:%2", + "nodes-responded": "%1 nodes ตอบสนองแล้วภายใน %2ms!", "host": "host", "pid": "pid", "nodejs": "nodejs", "online": "online", "git": "git", - "memory": "memory", - "load": "load", - "uptime": "uptime", + "memory": "หน่วยความจำ", + "load": "โหลด", + "uptime": "ระยะเวลาการทำงาน", - "registered": "Registered", + "registered": "ลงทะเบียนแล้ว", "sockets": "Sockets", - "guests": "Guests", + "guests": "ผู้เยี่ยมเยียน", - "info": "Info" + "info": "ข้อมูล" } \ No newline at end of file diff --git a/public/language/th/admin/development/logger.json b/public/language/th/admin/development/logger.json index 6ab9558149..ed412a1609 100644 --- a/public/language/th/admin/development/logger.json +++ b/public/language/th/admin/development/logger.json @@ -1,12 +1,12 @@ { - "logger-settings": "Logger Settings", - "description": "By enabling the check boxes, you will receive logs to your terminal. If you specify a path, logs will then be saved to a file instead. HTTP logging is useful for collecting statistics about who, when, and what people access on your forum. In addition to logging HTTP requests, we can also log socket.io events. Socket.io logging, in combination with redis-cli monitor, can be very helpful for learning NodeBB's internals.", - "explanation": "Simply check/uncheck the logging settings to enable or disable logging on the fly. No restart needed.", - "enable-http": "Enable HTTP logging", - "enable-socket": "Enable socket.io event logging", - "file-path": "Path to log file", - "file-path-placeholder": "/path/to/log/file.log ::: leave blank to log to your terminal", + "logger-settings": "การตั้งค่าการบันทึกผลกิจกรรม", + "description": "ถ้าคุณเลือกช่องนี้, คุณจะได้รับการแสดงผลกิจกรรมทางจอภาพ แต่ถ้าคุณระบุเส้นทางการจัดเก็บผลการบันทึกกิจกรรมจะถูกบันทึกเป็นไฟล์แทน, ผลการบันทึกกิจกรรมของ HTTP มีประโยชน์เพื่อเก็บสถิติเกี่ยวกับ ใคร, เมื่อไหร่ และที่ไหนในฟอรั่มของคุณที่พวกเขาเข้าถึง เช่นเดียวกันกับที่เราสามารถบันทึกผลกิจกรรมอีเวนท์ของ socket.io โดยการบันทึกผลกิจกรรมของ Socket.io นั้นจะบันทึกร่วมกับการจับตาดู redis-cli ซึ่งสามารถช่วยให้เราศึกษา NodeBB จากภายในได้", + "explanation": "ง่ายมากเพียงแค่ เลือกหรือยกเลิก การตั้งค่าการบันทึกผลกิจกรรม เพื่อเปิดและปิดการบันทึกผลกิจกรรมในทันที ไม่จำเป็นต้องรีสตาร์ท", + "enable-http": "เปิดการบันทึกผลกิจกรรมของ HTTP", + "enable-socket": "เปิดการบันทึกผลกิจกรรมอีเวนท์ของ socket.io", + "file-path": "เส้นทางเพื่อบันทึกไฟล์บันทึกผลกิจกรรม", + "file-path-placeholder": "/path/to/log/file.log ::: ปล่อยว่างถ้าคุณต้องการให้แสดงผลการบันทึกกิจกรรมทางจอภาพ", - "control-panel": "Logger Control Panel", - "update-settings": "Update Logger Settings" + "control-panel": "แผงควบคุมระบบการบันทึกผลกิจกรรม", + "update-settings": "บันทึกการตั้งค่าการบันทึกผลกิจกรรม" } \ No newline at end of file diff --git a/public/language/th/admin/extend/plugins.json b/public/language/th/admin/extend/plugins.json index cf80583db4..e6281c0535 100644 --- a/public/language/th/admin/extend/plugins.json +++ b/public/language/th/admin/extend/plugins.json @@ -1,18 +1,18 @@ { - "installed": "Installed", - "active": "Active", - "inactive": "Inactive", - "out-of-date": "Out of Date", - "none-found": "No plugins found.", - "none-active": "No Active Plugins", - "find-plugins": "Find Plugins", + "installed": "ถูกติดตั้งแล้ว", + "active": "ทำงาน", + "inactive": "ไม่ทำงาน", + "out-of-date": "รุ่นเก่า", + "none-found": "ไม่พบปลั๊กอิน", + "none-active": "ไม่มีปลั๊กอินที่ทำงาน", + "find-plugins": "ค้นหาปลั๊กอิน", - "plugin-search": "Plugin Search", - "plugin-search-placeholder": "Search for plugin...", - "reorder-plugins": "Re-order Plugins", - "order-active": "Order Active Plugins", - "dev-interested": "Interested in writing plugins for NodeBB?", - "docs-info": "Full documentation regarding plugin authoring can be found in the NodeBB Docs Portal.", + "plugin-search": "การค้นหาปลั๊กอิน", + "plugin-search-placeholder": "ค้นหาปลั๊กอิน...", + "reorder-plugins": "เรียงลำดับปลั๊กอินใหม่", + "order-active": "ลำดับการทำงานของปลั๊กอิน", + "dev-interested": "คุณสนใจที่จะสร้างปลั๊กอินสำหรับ NodeBB หรือไม่?", + "docs-info": "เอกสารฉบับเต็มเกี่ยวกับปลั๊กอินสามารถพบได้ที่ คลังเอกสาร NodeBB ", "order.description": "Certain plugins work ideally when they are initialised before/after other plugins.", "order.explanation": "Plugins load in the order specified here, from top to bottom", From 541b78c26de9fbd7dbb68a17c7b77cf2d301dc53 Mon Sep 17 00:00:00 2001 From: Baris Usakli Date: Wed, 26 Jul 2017 13:39:34 -0400 Subject: [PATCH 04/18] fix ipMatch data --- src/user/approval.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/user/approval.js b/src/user/approval.js index d04686a7b0..766cca124b 100644 --- a/src/user/approval.js +++ b/src/user/approval.js @@ -178,7 +178,7 @@ module.exports = function (User) { async.parallel([ function (next) { - getIPMatchedUsers(user.ip, next); + getIPMatchedUsers(user, next); }, function (next) { getSpamData(user, next); @@ -197,14 +197,18 @@ module.exports = function (User) { ], callback); }; - function getIPMatchedUsers(ip, callback) { + function getIPMatchedUsers(user, callback) { async.waterfall([ function (next) { - User.getUidsFromSet('ip:' + ip + ':uid', 0, -1, next); + User.getUidsFromSet('ip:' + user.ip + ':uid', 0, -1, next); }, function (uids, next) { User.getUsersFields(uids, ['uid', 'username', 'picture'], next); }, + function (data, next) { + user.ipMatch = data; + next(); + } ], callback); } From 949595fdf3637266126763303f6c37731ebbb6b8 Mon Sep 17 00:00:00 2001 From: Baris Usakli Date: Wed, 26 Jul 2017 13:40:17 -0400 Subject: [PATCH 05/18] fix eslint --- src/user/approval.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/user/approval.js b/src/user/approval.js index 766cca124b..64f892cb3d 100644 --- a/src/user/approval.js +++ b/src/user/approval.js @@ -208,7 +208,7 @@ module.exports = function (User) { function (data, next) { user.ipMatch = data; next(); - } + }, ], callback); } From a9dbdc75af9831ba0a2294d2a3644995b6f8bfdd Mon Sep 17 00:00:00 2001 From: Baris Usakli Date: Wed, 26 Jul 2017 14:32:53 -0400 Subject: [PATCH 06/18] closes #5825 --- package.json | 4 +- .../language/en-GB/admin/settings/user.json | 4 +- src/controllers/accounts/helpers.js | 4 +- src/controllers/accounts/settings.js | 3 ++ src/controllers/user.js | 4 +- src/posts/user.js | 3 ++ src/topics.js | 7 +++ src/views/admin/settings/user.tpl | 12 +++++ test/user.js | 50 +++++++++++++++++++ 9 files changed, 84 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 7befecc2df..d761108513 100644 --- a/package.json +++ b/package.json @@ -65,9 +65,9 @@ "nodebb-plugin-spam-be-gone": "0.5.0", "nodebb-rewards-essentials": "0.0.9", "nodebb-theme-lavender": "4.0.5", - "nodebb-theme-persona": "5.0.14", + "nodebb-theme-persona": "5.0.15", "nodebb-theme-slick": "1.1.0", - "nodebb-theme-vanilla": "6.0.11", + "nodebb-theme-vanilla": "6.0.12", "nodebb-widget-essentials": "3.0.1", "nodemailer": "2.6.4", "nodemailer-sendmail-transport": "1.0.0", diff --git a/public/language/en-GB/admin/settings/user.json b/public/language/en-GB/admin/settings/user.json index fa8049c3a9..a8bc2b176e 100644 --- a/public/language/en-GB/admin/settings/user.json +++ b/public/language/en-GB/admin/settings/user.json @@ -13,7 +13,9 @@ "disable-email-changes": "Disable email changes", "disable-password-changes": "Disable password changes", "allow-account-deletion": "Allow account deletion", - "user-info-private": "Make user info private", + "user-info-private": "Hide user list and data from guests", + "hide-fullname": "Hide fullname from users", + "hide-email": "Hide email from users", "themes": "Themes", "disable-user-skins": "Prevent users from choosing a custom skin", "account-protection": "Account Protection", diff --git a/src/controllers/accounts/helpers.js b/src/controllers/accounts/helpers.js index 6086bf4cf8..5bd65a33af 100644 --- a/src/controllers/accounts/helpers.js +++ b/src/controllers/accounts/helpers.js @@ -85,13 +85,13 @@ helpers.getUserDataByUserSlug = function (userslug, callerUID, callback) { userData.emailClass = 'hide'; - if (!(isAdmin || isGlobalModerator || isSelf || (userData.email && userSettings.showemail))) { + if (!isAdmin && !isGlobalModerator && !isSelf && (!userSettings.showemail || parseInt(meta.config.hideEmail, 10) === 1)) { userData.email = ''; } else if (!userSettings.showemail) { userData.emailClass = ''; } - if (!isAdmin && !isGlobalModerator && !isSelf && !userSettings.showfullname) { + if (!isAdmin && !isGlobalModerator && !isSelf && (!userSettings.showfullname || parseInt(meta.config.hideFullname, 10) === 1)) { userData.fullname = ''; } diff --git a/src/controllers/accounts/settings.js b/src/controllers/accounts/settings.js index 0bcdc75c9c..2285f5e2dc 100644 --- a/src/controllers/accounts/settings.js +++ b/src/controllers/accounts/settings.js @@ -142,6 +142,9 @@ settingsController.get = function (req, res, callback) { userData.allowUserHomePage = parseInt(meta.config.allowUserHomePage, 10) === 1; + userData.hideFullname = parseInt(meta.config.hideFullname, 10) === 1; + userData.hideEmail = parseInt(meta.config.hideEmail, 10) === 1; + userData.inTopicSearchAvailable = plugins.hasListeners('filter:topic.search'); userData.title = '[[pages:account/settings]]'; diff --git a/src/controllers/user.js b/src/controllers/user.js index 0f93f549b3..ea027b9406 100644 --- a/src/controllers/user.js +++ b/src/controllers/user.js @@ -91,8 +91,8 @@ userController.getUserDataByUID = function (callerUid, uid, callback) { return callback(err || new Error('[[error:no-user]]')); } - results.userData.email = results.settings.showemail ? results.userData.email : undefined; - results.userData.fullname = results.settings.showfullname ? results.userData.fullname : undefined; + results.userData.email = results.settings.showemail && parseInt(meta.config.hideEmail, 10) !== 1 ? results.userData.email : undefined; + results.userData.fullname = results.settings.showfullname && parseInt(meta.config.hideFullname, 10) !== 1 ? results.userData.fullname : undefined; callback(null, results.userData); }); diff --git a/src/posts/user.js b/src/posts/user.js index 00fa1c0631..dd050ddd3e 100644 --- a/src/posts/user.js +++ b/src/posts/user.js @@ -49,6 +49,9 @@ module.exports = function (Posts) { userData.status = user.getStatus(userData); userData.signature = validator.escape(String(userData.signature || '')); userData.fullname = validator.escape(String(userData.fullname || '')); + if (parseInt(meta.config.hideFullname, 10) === 1) { + userData.fullname = undefined; + } }); async.map(userData, function (userData, next) { diff --git a/src/topics.js b/src/topics.js index 8dd5df0c13..45e0f5bb19 100644 --- a/src/topics.js +++ b/src/topics.js @@ -7,6 +7,7 @@ var db = require('./database'); var posts = require('./posts'); var utils = require('./utils'); var plugins = require('./plugins'); +var meta = require('./meta'); var user = require('./user'); var categories = require('./categories'); var privileges = require('./privileges'); @@ -135,6 +136,12 @@ Topics.getTopicsByTids = function (tids, uid, callback) { }, next); }, function (results, next) { + if (parseInt(meta.config.hideFullname, 10) === 1) { + results.users.forEach(function (user) { + user.fullname = undefined; + }); + } + var users = _.zipObject(uids, results.users); var categories = _.zipObject(cids, results.categories); diff --git a/src/views/admin/settings/user.tpl b/src/views/admin/settings/user.tpl index db7f078f29..9d933b54e1 100644 --- a/src/views/admin/settings/user.tpl +++ b/src/views/admin/settings/user.tpl @@ -71,6 +71,18 @@ [[admin/settings/user:user-info-private]] +
+ +
+
+ +
diff --git a/test/user.js b/test/user.js index a7204b01ca..9b747e27b7 100644 --- a/test/user.js +++ b/test/user.js @@ -1532,4 +1532,54 @@ describe('User', function () { }); }); }); + + describe('hideEmail/hideFullname', function () { + var uid; + after(function (done) { + meta.config.hideEmail = 0; + meta.config.hideFullname = 0; + done(); + }); + + it('should hide email and fullname', function (done) { + meta.config.hideEmail = 1; + meta.config.hideFullname = 1; + + User.create({ + username: 'hiddenemail', + email: 'should@be.hidden', + fullname: 'baris soner usakli', + }, function (err, _uid) { + uid = _uid; + assert.ifError(err); + request(nconf.get('url') + '/api/user/hiddenemail', { json: true }, function (err, res, body) { + assert.ifError(err); + assert.equal(body.fullname, ''); + assert.equal(body.email, ''); + + done(); + }); + }); + }); + + it('should hide fullname in topic list and topic', function (done) { + Topics.post({ + uid: uid, + title: 'Topic hidden', + content: 'lorem ipsum', + cid: testCid, + }, function (err) { + assert.ifError(err); + request(nconf.get('url') + '/api/recent', { json: true }, function (err, res, body) { + assert.ifError(err); + assert(!body.topics[0].user.hasOwnProperty('fullname')); + request(nconf.get('url') + '/api/topic/' + body.topics[0].slug, { json: true }, function (err, res, body) { + assert.ifError(err); + assert(!body.posts[0].user.hasOwnProperty('fullname')); + done(); + }); + }); + }); + }); + }); }); From 09770c4c394b408739ee102874393e018009526a Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Wed, 26 Jul 2017 14:50:17 -0400 Subject: [PATCH 07/18] up composer-default --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d761108513..f384e74f7b 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "morgan": "^1.3.2", "mousetrap": "^1.5.3", "nconf": "~0.8.2", - "nodebb-plugin-composer-default": "5.0.3", + "nodebb-plugin-composer-default": "5.0.4", "nodebb-plugin-dbsearch": "2.0.6", "nodebb-plugin-emoji-extended": "1.1.1", "nodebb-plugin-emoji-one": "1.2.1", From f2dba40496d55777ef23fd97f557073349fac139 Mon Sep 17 00:00:00 2001 From: "Misty (Bot)" Date: Thu, 27 Jul 2017 09:23:37 +0000 Subject: [PATCH 08/18] Latest translations and fallbacks --- public/language/zh-CN/admin/general/dashboard.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/language/zh-CN/admin/general/dashboard.json b/public/language/zh-CN/admin/general/dashboard.json index 02759fba11..faa2fbc602 100644 --- a/public/language/zh-CN/admin/general/dashboard.json +++ b/public/language/zh-CN/admin/general/dashboard.json @@ -24,7 +24,7 @@ "keep-updated": "请确保您已及时更新 NodeBB 以获得最新的安全补丁与 Bug 修复。", "up-to-date": "

正在使用 最新版本

", "upgrade-available": "

A new version (v%1) has been released. Consider upgrading your NodeBB.

", - "prerelease-upgrade-available": "

This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider upgrading your NodeBB.

", + "prerelease-upgrade-available": "

你正在使用NodeBB过期的实验版本。新的版本 (v%1) 已经发布。 请考虑更新你的 NodeBB

", "prerelease-warning": "

正在使用测试版 NodeBB。可能会出现意外的 Bug。

", "running-in-development": "论坛正处于开发模式,这可能使其暴露于潜在的危险之中;请联系您的系统管理员。", From 76d2e43948e5efd50bdd9a941738879564b6e09d Mon Sep 17 00:00:00 2001 From: "Misty (Bot)" Date: Thu, 27 Jul 2017 19:50:44 +0000 Subject: [PATCH 09/18] Incremented version number - v1.5.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f384e74f7b..014bef3d31 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "nodebb", "license": "GPL-3.0", "description": "NodeBB Forum", - "version": "1.5.2", + "version": "1.5.3", "homepage": "http://www.nodebb.org", "repository": { "type": "git", From f646e08a6ef363dee53172b3aeb933e9117fe543 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Thu, 27 Jul 2017 19:40:05 -0400 Subject: [PATCH 10/18] update tags/links for 1.5.4 --- src/meta/tags.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/meta/tags.js b/src/meta/tags.js index 4224f85dee..3c8b97f3d7 100644 --- a/src/meta/tags.js +++ b/src/meta/tags.js @@ -50,7 +50,7 @@ Tags.parse = function (req, data, meta, link, callback) { }); } - plugins.fireHook('filter:meta.getMetaTags', { req: req, data: data, defaultTags: defaultTags }, next); + plugins.fireHook('filter:meta.getMetaTags', { req: req, data: data, tags: defaultTags }, next); }, links: function (next) { var defaultLinks = [{ @@ -101,7 +101,7 @@ Tags.parse = function (req, data, meta, link, callback) { href: nconf.get('relative_path') + '/assets/uploads/system/touchicon-192.png', }); } - plugins.fireHook('filter:meta.getLinkTags', { req: req, data: data, defaultLinks: defaultLinks }, next); + plugins.fireHook('filter:meta.getLinkTags', { req: req, data: data, links: defaultLinks }, next); }, }, function (err, results) { if (err) { From 54f3009b4c103002944e1e8c37eb199c0f9f5218 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Thu, 27 Jul 2017 19:42:26 -0400 Subject: [PATCH 11/18] up composer default --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 014bef3d31..b3a1049762 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "morgan": "^1.3.2", "mousetrap": "^1.5.3", "nconf": "~0.8.2", - "nodebb-plugin-composer-default": "5.0.4", + "nodebb-plugin-composer-default": "5.0.5", "nodebb-plugin-dbsearch": "2.0.6", "nodebb-plugin-emoji-extended": "1.1.1", "nodebb-plugin-emoji-one": "1.2.1", From 3bcaedfe9dac81d329bf270497d291f268090625 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Thu, 27 Jul 2017 19:43:40 -0400 Subject: [PATCH 12/18] up markdown --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b3a1049762..b4304edef0 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "nodebb-plugin-dbsearch": "2.0.6", "nodebb-plugin-emoji-extended": "1.1.1", "nodebb-plugin-emoji-one": "1.2.1", - "nodebb-plugin-markdown": "8.0.2", + "nodebb-plugin-markdown": "8.0.3", "nodebb-plugin-mentions": "2.1.5", "nodebb-plugin-soundpack-default": "1.0.0", "nodebb-plugin-spam-be-gone": "0.5.0", From 911eb32e7038ed5f4d029f6bb69c755756a6412e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Thu, 27 Jul 2017 19:45:54 -0400 Subject: [PATCH 13/18] fix var names --- src/meta/tags.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/meta/tags.js b/src/meta/tags.js index 3c8b97f3d7..c347b18d4e 100644 --- a/src/meta/tags.js +++ b/src/meta/tags.js @@ -108,7 +108,7 @@ Tags.parse = function (req, data, meta, link, callback) { return callback(err); } - meta = results.tags.defaultTags.concat(meta || []).map(function (tag) { + meta = results.tags.tags.concat(meta || []).map(function (tag) { if (!tag || typeof tag.content !== 'string') { winston.warn('Invalid meta tag. ', tag); return tag; @@ -139,7 +139,7 @@ Tags.parse = function (req, data, meta, link, callback) { addIfNotExists(meta, 'property', 'og:image:height', 200); } - link = results.links.defaultLinks.concat(link || []); + link = results.links.links.concat(link || []); callback(null, { meta: meta, From f6890cd971e5b66752d1073ac523b74af4cd9588 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Thu, 27 Jul 2017 20:00:17 -0400 Subject: [PATCH 14/18] up themes --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index b4304edef0..27f763623e 100644 --- a/package.json +++ b/package.json @@ -65,9 +65,9 @@ "nodebb-plugin-spam-be-gone": "0.5.0", "nodebb-rewards-essentials": "0.0.9", "nodebb-theme-lavender": "4.0.5", - "nodebb-theme-persona": "5.0.15", + "nodebb-theme-persona": "5.0.16", "nodebb-theme-slick": "1.1.0", - "nodebb-theme-vanilla": "6.0.12", + "nodebb-theme-vanilla": "6.0.13", "nodebb-widget-essentials": "3.0.1", "nodemailer": "2.6.4", "nodemailer-sendmail-transport": "1.0.0", From 7a405da60f91c93b146f301d8c2325b2510a4cee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Fri, 28 Jul 2017 00:55:02 -0400 Subject: [PATCH 15/18] group member search change --- public/src/client/groups/memberlist.js | 4 +-- src/controllers/users.js | 2 +- src/groups/search.js | 35 ++++++++------------------ src/user/search.js | 27 ++++++++++++-------- 4 files changed, 31 insertions(+), 37 deletions(-) diff --git a/public/src/client/groups/memberlist.js b/public/src/client/groups/memberlist.js index 97f9da0120..cc3b36ce3c 100644 --- a/public/src/client/groups/memberlist.js +++ b/public/src/client/groups/memberlist.js @@ -42,7 +42,7 @@ define('forum/groups/memberlist', ['components', 'forum/infinitescroll'], functi var $this = $(this); var bottom = ($this[0].scrollHeight - $this.innerHeight()) * 0.9; - if ($this.scrollTop() > bottom) { + if ($this.scrollTop() > bottom && !$('[component="groups/members/search"]').val()) { loadMoreMembers(); } }); @@ -86,7 +86,7 @@ define('forum/groups/memberlist', ['components', 'forum/infinitescroll'], functi } function parseAndTranslate(users, callback) { - app.parseAndTranslate(templateName, 'members', { + app.parseAndTranslate(templateName, 'group.members', { group: { members: users, isOwner: ajaxify.data.group.isOwner, diff --git a/src/controllers/users.js b/src/controllers/users.js index 45cb5f1e21..cf3707d873 100644 --- a/src/controllers/users.js +++ b/src/controllers/users.js @@ -39,7 +39,7 @@ usersController.search = function (req, res, next) { query: req.query.term, searchBy: req.query.searchBy || 'username', page: req.query.page || 1, - sortBy: req.query.sortBy, + sortBy: req.query.sortBy || 'joindate', onlineOnly: req.query.onlineOnly === 'true', bannedOnly: req.query.bannedOnly === 'true', flaggedOnly: req.query.flaggedOnly === 'true', diff --git a/src/groups/search.js b/src/groups/search.js index 5552eb932c..b6a9db00f8 100644 --- a/src/groups/search.js +++ b/src/groups/search.js @@ -63,29 +63,6 @@ module.exports = function (Groups) { }; Groups.searchMembers = function (data, callback) { - function findUids(query, searchBy, callback) { - query = query.toLowerCase(); - - async.waterfall([ - function (next) { - Groups.getMembers(data.groupName, 0, -1, next); - }, - function (members, next) { - user.getUsersFields(members, ['uid'].concat([searchBy]), next); - }, - function (users, next) { - var uids = []; - for (var i = 0; i < users.length; i += 1) { - var field = users[i][searchBy]; - if (field.toLowerCase().startsWith(query)) { - uids.push(users[i].uid); - } - } - next(null, uids); - }, - ], callback); - } - if (!data.query) { Groups.getOwnersAndMembers(data.groupName, data.uid, 0, 19, function (err, users) { callback(err, { users: users }); @@ -93,10 +70,10 @@ module.exports = function (Groups) { return; } - data.findUids = findUids; var results; async.waterfall([ function (next) { + data.paginate = false; user.search(data, next); }, function (_results, next) { @@ -104,6 +81,16 @@ module.exports = function (Groups) { var uids = results.users.map(function (user) { return user && user.uid; }); + + Groups.isMembers(uids, data.groupName, next); + }, + function (isMembers, next) { + results.users = results.users.filter(function (user, index) { + return isMembers[index]; + }); + var uids = results.users.map(function (user) { + return user && user.uid; + }); Groups.ownership.isOwners(uids, data.groupName, next); }, function (isOwners, next) { diff --git a/src/user/search.js b/src/user/search.js index 967c32c32b..37549232cd 100644 --- a/src/user/search.js +++ b/src/user/search.js @@ -23,11 +23,8 @@ module.exports = function (User) { var searchResult = {}; async.waterfall([ function (next) { - if (data.findUids) { - data.findUids(query, searchBy, next); - } else { - findUids(query, searchBy, next); - } + var searchMethod = data.findUids || findUids; + searchMethod(query, searchBy, data.hardCap, next); }, function (uids, next) { filterAndSortUids(uids, data, next); @@ -57,7 +54,7 @@ module.exports = function (User) { ], callback); }; - function findUids(query, searchBy, callback) { + function findUids(query, searchBy, hardCap, callback) { if (!query) { return callback(null, []); } @@ -66,7 +63,7 @@ module.exports = function (User) { var max = query.substr(0, query.length - 1) + String.fromCharCode(query.charCodeAt(query.length - 1) + 1); var resultsPerPage = parseInt(meta.config.userSearchResultsPerPage, 10) || 20; - var hardCap = resultsPerPage * 10; + hardCap = hardCap || resultsPerPage * 10; async.waterfall([ function (next) { @@ -82,9 +79,11 @@ module.exports = function (User) { } function filterAndSortUids(uids, data, callback) { - var sortBy = data.sortBy || 'joindate'; + var fields = []; - var fields = ['uid', sortBy]; + if (data.sortBy) { + fields.push(data.sortBy); + } if (data.onlineOnly) { fields = fields.concat(['status', 'lastonline']); } @@ -95,6 +94,12 @@ module.exports = function (User) { fields.push('flags'); } + if (!fields.length) { + return callback(null, uids); + } + + fields = ['uid'].concat(fields); + async.waterfall([ function (next) { User.getUsersFields(uids, fields, next); @@ -118,7 +123,9 @@ module.exports = function (User) { }); } - sortUsers(userData, sortBy); + if (data.sortBy) { + sortUsers(userData, data.sortBy); + } uids = userData.map(function (user) { return user && user.uid; From 00e588b64817081d9e9c687469921b50da550938 Mon Sep 17 00:00:00 2001 From: "Misty (Bot)" Date: Fri, 28 Jul 2017 09:23:29 +0000 Subject: [PATCH 16/18] Latest translations and fallbacks --- .../language/cs/admin/appearance/themes.json | 16 +++++----- public/language/hu/admin/admin.json | 8 ++--- public/language/hu/admin/advanced/cache.json | 18 +++++------ .../language/hu/admin/advanced/database.json | 30 +++++++++---------- public/language/hu/admin/settings/group.json | 2 +- public/language/hu/email.json | 8 ++--- 6 files changed, 41 insertions(+), 41 deletions(-) diff --git a/public/language/cs/admin/appearance/themes.json b/public/language/cs/admin/appearance/themes.json index 4467410631..2aaf6984ba 100644 --- a/public/language/cs/admin/appearance/themes.json +++ b/public/language/cs/admin/appearance/themes.json @@ -1,11 +1,11 @@ { "checking-for-installed": "Vyhledávání nainstalovaných motivů…", - "homepage": "Homepage", - "select-theme": "Select Theme", - "current-theme": "Current Theme", - "no-themes": "No installed themes found", - "revert-confirm": "Are you sure you wish to restore the default NodeBB theme?", - "theme-changed": "Theme Changed", - "revert-success": "You have successfully reverted your NodeBB back to it's default theme.", - "restart-to-activate": "Please restart your NodeBB to fully activate this theme" + "homepage": "Domovská stránka", + "select-theme": "Vybrat motiv", + "current-theme": "Aktuální motiv", + "no-themes": "Žádný nainstalovaný motiv nebyl nalezen", + "revert-confirm": "Jste si jist/a, že chcete obnovit výchozí motiv NodeBB?", + "theme-changed": "Motiv byl změněn", + "revert-success": "Úspěšně jste vrátil/a NodeBB na výchozí motiv", + "restart-to-activate": "Restartujte prosím NodeBB, aby mohl být plně aktivován tento motiv" } \ No newline at end of file diff --git a/public/language/hu/admin/admin.json b/public/language/hu/admin/admin.json index 9c01f56006..70e7a5f055 100644 --- a/public/language/hu/admin/admin.json +++ b/public/language/hu/admin/admin.json @@ -1,7 +1,7 @@ { - "alert.confirm-reload": "Are you sure you wish to reload NodeBB?", - "alert.confirm-restart": "Are you sure you wish to restart NodeBB?", + "alert.confirm-reload": "Biztosan szeretnéd újratölteni a NodeBB-t?", + "alert.confirm-restart": "Biztosan szeretnéd újraindítani a NodeBB-t?", - "acp-title": "%1 | NodeBB Admin Control Panel", - "settings-header-contents": "Contents" + "acp-title": "%1 | NodeBB Admin Kezelőpanel", + "settings-header-contents": "Tartalmak" } \ No newline at end of file diff --git a/public/language/hu/admin/advanced/cache.json b/public/language/hu/admin/advanced/cache.json index 5a954f1232..ee9cbd53a8 100644 --- a/public/language/hu/admin/advanced/cache.json +++ b/public/language/hu/admin/advanced/cache.json @@ -1,11 +1,11 @@ { - "post-cache": "Post Cache", - "posts-in-cache": "Posts in Cache", - "average-post-size": "Average Post Size", - "length-to-max": "Length / Max", - "percent-full": "%1% Full", - "post-cache-size": "Post Cache Size", - "items-in-cache": "Items in Cache", - "control-panel": "Control Panel", - "update-settings": "Update Cache Settings" + "post-cache": "Bejegyzés Gyorsítótár", + "posts-in-cache": "Bejegyzések a Gyorsítótárban", + "average-post-size": "Átlagos Bejegyzés Méret", + "length-to-max": "Hossz / Max", + "percent-full": "%1% Tele", + "post-cache-size": "Bejegyzés Gyorsítótár Mérete", + "items-in-cache": "Elemek a Gyorsítótárban", + "control-panel": "Kezelőpanel", + "update-settings": "Gyorsítótár Beállítások Frissítése" } \ No newline at end of file diff --git a/public/language/hu/admin/advanced/database.json b/public/language/hu/admin/advanced/database.json index b88ca6fc82..8aef4ee116 100644 --- a/public/language/hu/admin/advanced/database.json +++ b/public/language/hu/admin/advanced/database.json @@ -2,35 +2,35 @@ "x-b": "%1 b", "x-mb": "%1 mb", "x-gb": "%1 gb", - "uptime-seconds": "Uptime in Seconds", - "uptime-days": "Uptime in Days", + "uptime-seconds": "Működési Idő Másodpercben", + "uptime-days": "Működési Idő Napban", "mongo": "Mongo", - "mongo.version": "MongoDB Version", - "mongo.storage-engine": "Storage Engine", - "mongo.collections": "Collections", - "mongo.objects": "Objects", - "mongo.avg-object-size": "Avg. Object Size", + "mongo.version": "MongoDB Verzió", + "mongo.storage-engine": "Tároló Motor", + "mongo.collections": "Gyűjtemények", + "mongo.objects": "Tárgyak", + "mongo.avg-object-size": "Átl. Tárgy Méret", "mongo.data-size": "Data Size", "mongo.storage-size": "Storage Size", "mongo.index-size": "Index Size", "mongo.file-size": "File Size", - "mongo.resident-memory": "Resident Memory", - "mongo.virtual-memory": "Virtual Memory", - "mongo.mapped-memory": "Mapped Memory", - "mongo.raw-info": "MongoDB Raw Info", + "mongo.resident-memory": "Rezidens Memória", + "mongo.virtual-memory": "Virtuális Memória", + "mongo.mapped-memory": "Leképezett Memória", + "mongo.raw-info": "MongoDB Nyers Infó", "redis": "Redis", - "redis.version": "Redis Version", + "redis.version": "Redis Verzió", "redis.connected-clients": "Connected Clients", "redis.connected-slaves": "Connected Slaves", "redis.blocked-clients": "Blocked Clients", - "redis.used-memory": "Used Memory", + "redis.used-memory": "Használt Memória", "redis.memory-frag-ratio": "Memory Fragmentation Ratio", "redis.total-connections-recieved": "Total Connections Received", "redis.total-commands-processed": "Total Commands Processed", - "redis.iops": "Instantaneous Ops. Per Second", + "redis.iops": "Pillanatnyi Műv. Másodpercenként", "redis.keyspace-hits": "Keyspace Hits", "redis.keyspace-misses": "Keyspace Misses", - "redis.raw-info": "Redis Raw Info" + "redis.raw-info": "Redis Nyers Infó" } \ No newline at end of file diff --git a/public/language/hu/admin/settings/group.json b/public/language/hu/admin/settings/group.json index 5648ecdb37..08ee285f63 100644 --- a/public/language/hu/admin/settings/group.json +++ b/public/language/hu/admin/settings/group.json @@ -1,6 +1,6 @@ { "general": "Általános", - "private-groups": "Private Groups", + "private-groups": "Privát Csoportok", "private-groups.help": "If enabled, joining of groups requires the approval of the group owner (Default: enabled)", "private-groups.warning": "Beware! If this option is disabled and you have private groups, they automatically become public.", "allow-creation": "Allow Group Creation", diff --git a/public/language/hu/email.json b/public/language/hu/email.json index 548aba2ed3..2a4ce69b7d 100644 --- a/public/language/hu/email.json +++ b/public/language/hu/email.json @@ -32,9 +32,9 @@ "notif.post.unsub.info": "Ez a hozzászólás-értesítés a feliratkozási beállításaid miatt lett kiküldve.", "test.text1": "Ez egy teszt levél, ami által ellenőrizzük, hogy a levelező helyesen lett beállítva a NodeBB-ben.", "unsub.cta": "Kattintson ide a beállítások módosításához", - "banned.subject": "You have been banned from %1", - "banned.text1": "The user %1 has been banned from %2.", - "banned.text2": "This ban will last until %1.", - "banned.text3": "This is the reason why you have been banned:", + "banned.subject": "Ki lettél tiltva a(z) %1 oldalról", + "banned.text1": "%1 nevű felhasználó ki lett tiltva a(z) %2 oldalról.", + "banned.text2": "A kitiltás %1-ig fog tartani.", + "banned.text3": "Az ok, amiért ki lettél tiltva:", "closing": "Köszönjük!" } \ No newline at end of file From 5e16933c1fd5a12d90853852ce795e79efe499a6 Mon Sep 17 00:00:00 2001 From: Unbug Lee Date: Fri, 28 Jul 2017 23:35:56 +0800 Subject: [PATCH 17/18] Arguments supports for start command (#5843) * backport cache fix * backport paste image fix * backport crash fix * up emoji one * Update package.json * backport #5692 * Incremented version number - v1.5.1 * Incremented version number - v1.5.2 * arguments supports for start command remove concat --- nodebb | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/nodebb b/nodebb index 45e0ebaec3..b40409cddb 100755 --- a/nodebb +++ b/nodebb @@ -308,7 +308,7 @@ var commands = { process.stdout.write(' "' + './nodebb restart'.yellow + '" to restart NodeBB\n\n'.reset); // Spawn a new NodeBB process - cproc.fork(loaderPath, { + cproc.fork(loaderPath, process.argv.slice(3), { env: process.env, }); }, diff --git a/package.json b/package.json index 27f763623e..26825c5f7e 100644 --- a/package.json +++ b/package.json @@ -137,4 +137,4 @@ "url": "https://github.com/barisusakli" } ] -} +} \ No newline at end of file From e0862be3c8d834002d5e293e7f3b3c9fa8f40183 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Fri, 28 Jul 2017 14:10:04 -0400 Subject: [PATCH 18/18] added new search hook to allow for enumeration after query --- src/search.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/search.js b/src/search.js index 58b93c8a5a..d54f1e0ae2 100644 --- a/src/search.js +++ b/src/search.js @@ -41,6 +41,7 @@ function searchInContent(data, callback) { data.uid = data.uid || 0; var matchCount = 0; var pids; + var metadata; async.waterfall([ function (next) { async.parallel({ @@ -88,16 +89,23 @@ function searchInContent(data, callback) { filterAndSort(pids, data, next); }, function (pids, next) { - matchCount = pids.length; + plugin.fireHook('filter:search.inContent', { + pids: pids, + }, next); + }, + function (metadata, next) { + matchCount = metadata.pids.length; if (data.page) { var start = Math.max(0, (data.page - 1)) * 10; - pids = pids.slice(start, start + 10); + metadata.pids = metadata.pids.slice(start, start + 10); } - posts.getPostSummaryByPids(pids, data.uid, {}, next); + posts.getPostSummaryByPids(metadata.pids, data.uid, {}, next); }, function (posts, next) { - next(null, { posts: posts, matchCount: matchCount, pageCount: Math.max(1, Math.ceil(parseInt(matchCount, 10) / 10)) }); + // Append metadata to returned payload (without pids) + delete metadata.pids; + next(null, Object.assign({ posts: posts, matchCount: matchCount, pageCount: Math.max(1, Math.ceil(parseInt(matchCount, 10) / 10)) }, metadata)); }, ], callback); }