From f2d07d3182e601f5baaac076523bb0bca0f1da3a Mon Sep 17 00:00:00 2001 From: root--- Date: Thu, 31 Jul 2014 01:39:41 -0400 Subject: [PATCH 1/8] fix fatal error when renaming group with no users --- src/groups.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/groups.js b/src/groups.js index 8164ae457c..5af818c5ec 100644 --- a/src/groups.js +++ b/src/groups.js @@ -295,7 +295,13 @@ db.rename('group:' + oldName, 'group:' + newName, next); }, function(next) { - db.rename('group:' + oldName + ':members', 'group:' + newName + ':members', next); + Groups.exists('group:' + oldName + ':members', function(err, exists) { + if (exists) { + db.rename('group:' + oldName + ':members', 'group:' + newName + ':members', next); + } else { + next(); + } + }); }, function(next) { renameGroupMember('groups', oldName, newName, next); From da7a161245beb35c738d054d83a63d0151547b20 Mon Sep 17 00:00:00 2001 From: root--- Date: Thu, 31 Jul 2014 03:19:47 -0400 Subject: [PATCH 2/8] fluidized ACP groups modal dialog --- public/src/forum/admin/groups.js | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/public/src/forum/admin/groups.js b/public/src/forum/admin/groups.js index 5e4f0c34d1..34a1b59ed0 100644 --- a/public/src/forum/admin/groups.js +++ b/public/src/forum/admin/groups.js @@ -78,14 +78,33 @@ define('forum/admin/groups', ['forum/admin/iconSelect'], function(iconSelect) { break; case 'members': socket.emit('admin.groups.get', groupName, function(err, groupObj) { - var formEl = detailsModal.find('form'); + var formEl = detailsModal.find('form').keypress(function(e) { + switch(e.keyCode) { + case 13: + detailsModalSave.click(); + break; + default: + break; + } + }), + groupLabelPreview = formEl.find('#group-label-preview'), + changeGroupUserTitle = formEl.find('#change-group-user-title'), + changeGroupLabelColor = formEl.find('#change-group-label-color'); formEl.find('#change-group-name').val(groupObj.name).prop('readonly', groupObj.system); formEl.find('#change-group-desc').val(groupObj.description); - formEl.find('#change-group-user-title').val(groupObj.userTitle); + changeGroupUserTitle.val(groupObj.userTitle).keydown(function() { + setTimeout(function() { + groupLabelPreview.text(changeGroupUserTitle.val()); + }, 0); + }); formEl.find('#group-icon').attr('class', 'fa fa-2x ' + groupObj.icon).attr('value', groupObj.icon); - formEl.find('#change-group-label-color').val(groupObj.labelColor); - formEl.find('#group-label-preview').css('background', groupObj.labelColor || '#000000').text(groupObj.userTitle); + changeGroupLabelColor.val(groupObj.labelColor).keydown(function() { + setTimeout(function() { + groupLabelPreview.css('background', changeGroupLabelColor.val() || '#000000'); + }, 0); + }); + groupLabelPreview.css('background', groupObj.labelColor || '#000000').text(groupObj.userTitle); groupMembersEl.empty(); if (groupObj.members.length > 0) { From dc68dce27faadf81b684c2f339aa0d2bbd6c8bf0 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Thu, 31 Jul 2014 07:38:19 -0400 Subject: [PATCH 3/8] check err --- src/groups.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/groups.js b/src/groups.js index 5af818c5ec..bded9c82d9 100644 --- a/src/groups.js +++ b/src/groups.js @@ -296,8 +296,11 @@ }, function(next) { Groups.exists('group:' + oldName + ':members', function(err, exists) { + if (err) { + return next(err); + } if (exists) { - db.rename('group:' + oldName + ':members', 'group:' + newName + ':members', next); + db.rename('group:' + oldName + ':members', 'group:' + newName + ':members', next); } else { next(); } From d9a0af712d8c9d67b4fd75a44b39f7a4ccc5e86d Mon Sep 17 00:00:00 2001 From: barisusakli Date: Thu, 31 Jul 2014 08:01:11 -0400 Subject: [PATCH 4/8] group null and err check --- src/groups.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/groups.js b/src/groups.js index bded9c82d9..af60b9b161 100644 --- a/src/groups.js +++ b/src/groups.js @@ -16,6 +16,9 @@ // Remove system, hidden, or deleted groups from this list if (groups && !options.showAllGroups) { return groups.filter(function (group) { + if (!group) { + return false; + } if (group.deleted || (group.hidden && !group.system) || (!options.showSystemGroups && group.system)) { return false; } else if (options.removeEphemeralGroups && ephemeralGroups.indexOf(group.name) !== -1) { @@ -57,6 +60,9 @@ Groups.list = function(options, callback) { db.getSetMembers('groups', function (err, groupNames) { + if (err) { + return callback(err); + } groupNames = groupNames.concat(ephemeralGroups); async.map(groupNames, function (groupName, next) { From 3ff91b8c50c95cacf47d3bdce32d08e1b13ee332 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Thu, 31 Jul 2014 08:23:07 -0400 Subject: [PATCH 5/8] closes #1912 --- src/install.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/install.js b/src/install.js index 476ce87a9c..6793034515 100644 --- a/src/install.js +++ b/src/install.js @@ -176,6 +176,9 @@ function setupConfig(next) { } function completeConfigSetup(err, config, next) { + if (err) { + return next(err); + } // Add CI object if (install.ciVals) { config.test_database = {}; From e0be4d146fbf336f1ca7a0c444a58219264f68b4 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Thu, 31 Jul 2014 08:47:37 -0400 Subject: [PATCH 6/8] closes #1913 --- public/src/ajaxify.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/public/src/ajaxify.js b/public/src/ajaxify.js index 798c59d43c..f84d5c0611 100644 --- a/public/src/ajaxify.js +++ b/public/src/ajaxify.js @@ -289,13 +289,12 @@ var ajaxify = ajaxify || {}; } } else if (window.location.pathname !== '/outgoing') { // External Link - - if (config.useOutgoingLinksPage) { - ajaxify.go('outgoing?url=' + encodeURIComponent(this.href)); - e.preventDefault(); - } else if (config.openOutgoingLinksInNewTab) { + if (config.openOutgoingLinksInNewTab) { window.open(this.href, '_blank'); e.preventDefault(); + } else if (config.useOutgoingLinksPage) { + ajaxify.go('outgoing?url=' + encodeURIComponent(this.href)); + e.preventDefault(); } } } From de6e74c50e7ad3793d367c972cf1323da89a9477 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Thu, 31 Jul 2014 08:57:27 -0400 Subject: [PATCH 7/8] #1914 --- src/user/email.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/user/email.js b/src/user/email.js index 6ff114173a..892d740e0f 100644 --- a/src/user/email.js +++ b/src/user/email.js @@ -49,9 +49,10 @@ var async = require('async'), return winston.error(err.message); } - translator.translate('[[email:welcome-to, ' + (meta.config.title || 'NodeBB') + ']]', meta.config.defaultLang, function(subject) { + var title = meta.config.title || meta.config.browserTitle || 'NodeBB'; + translator.translate('[[email:welcome-to, ' + title + ']]', meta.config.defaultLang, function(subject) { var data = { - site_title: (meta.config.title || 'NodeBB'), + site_title: title, username: username, confirm_link: confirm_link, confirm_code: confirm_code, From aa4089e6d78b6412bae1274bfa0c20bbb754c054 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Thu, 31 Jul 2014 13:36:05 -0400 Subject: [PATCH 8/8] #1930 simple solution for now, wraps images with that opens in new tab --- public/src/forum/topic.js | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/public/src/forum/topic.js b/public/src/forum/topic.js index d6663ed3a9..280a61db44 100644 --- a/public/src/forum/topic.js +++ b/public/src/forum/topic.js @@ -42,8 +42,7 @@ define('forum/topic', dependencies, function(pagination, infinitescroll, threadT app.enterRoom('topic_' + tid); - browsing.populateOnlineUsers(); - $('.post-content img').addClass('img-responsive'); + processPage($('.topic')); showBottomPostBar(); @@ -334,13 +333,19 @@ define('forum/topic', dependencies, function(pagination, infinitescroll, threadT getPostPrivileges(posts[x].pid); } + processPage(html); + } + + function processPage(element) { browsing.populateOnlineUsers(); app.createUserTooltips(); - app.replaceSelfLinks(html.find('a')); - utils.addCommasToNumbers(html.find('.formatted-number')); - utils.makeNumbersHumanReadable(html.find('.human-readable-number')); - html.find('span.timeago').timeago(); - html.find('.post-content img').addClass('img-responsive'); + app.replaceSelfLinks(element.find('a')); + utils.addCommasToNumbers(element.find('.formatted-number')); + utils.makeNumbersHumanReadable(element.find('.human-readable-number')); + element.find('span.timeago').timeago(); + element.find('.post-content img:not(.emoji)').addClass('img-responsive').each(function() { + $(this).wrap(''); + }); postTools.updatePostCount(); showBottomPostBar(); }