From ffac8eb41d0fe2664bb2bf0b1ec51c89c2a08692 Mon Sep 17 00:00:00 2001 From: barisusakli Date: Thu, 7 May 2015 23:24:33 -0400 Subject: [PATCH] closes #3118 --- public/src/client/account/settings.js | 6 +++--- src/groups.js | 21 +++++++++++---------- src/user/settings.js | 13 +++++++++++++ 3 files changed, 27 insertions(+), 13 deletions(-) diff --git a/public/src/client/account/settings.js b/public/src/client/account/settings.js index 20b33a613b..f5f9ab4e32 100644 --- a/public/src/client/account/settings.js +++ b/public/src/client/account/settings.js @@ -41,8 +41,8 @@ define('forum/account/settings', ['forum/account/header'], function(header) { if (newSettings.hasOwnProperty(key)) { if (key === 'userLang' && config.userLang !== newSettings.userLang) { requireReload = true; - } - config[key] = newSettings[key]; + } + config[key] = newSettings[key]; } } app.exposeConfigToTemplates(); @@ -70,7 +70,7 @@ define('forum/account/settings', ['forum/account/header'], function(header) { var setting = input.attr('data-property'); if (setting) { if (input.is('select')) { - input.val(settings[setting]); + input.val(settings[setting] || ''); return; } diff --git a/src/groups.js b/src/groups.js index 632a51f805..4f52d2bc9f 100644 --- a/src/groups.js +++ b/src/groups.js @@ -760,17 +760,18 @@ var async = require('async'), tasks.push(async.apply(db.setAdd, 'group:' + groupName + ':owners', uid)); } async.parallel(tasks, next); + }, + function(results, next) { + user.setGroupTitle(groupName, uid, next); + }, + function(next) { + plugins.fireHook('action:group.join', { + groupName: groupName, + uid: uid + }); + next(); } - ], function(err, results) { - if (err) { - return callback(err); - } - plugins.fireHook('action:group.join', { - groupName: groupName, - uid: uid - }); - callback(); - }); + ], callback); } callback = callback || function() {}; diff --git a/src/user/settings.js b/src/user/settings.js index 7c12cbfd00..ec493457aa 100644 --- a/src/user/settings.js +++ b/src/user/settings.js @@ -143,4 +143,17 @@ module.exports = function(User) { User.setSetting = function(uid, key, value, callback) { db.setObjectField('user:' + uid + ':settings', key, value, callback); }; + + User.setGroupTitle = function(groupName, uid, callback) { + if (groupName === 'registered-users') { + return callback(); + } + db.getObjectField('user:' + uid + ':settings', 'groupTitle', function(err, currentTitle) { + if (err || (currentTitle || currentTitle === '')) { + return callback(err); + } + + User.setSetting(uid, 'groupTitle', groupName, callback); + }); + }; };