From 718f61e3bd5f3eb544284441411eb33e825d329a Mon Sep 17 00:00:00 2001 From: barisusakli Date: Wed, 24 Jun 2015 17:15:58 -0400 Subject: [PATCH] closes #3263 --- public/language/en_GB/error.json | 2 +- src/controllers/groups.js | 2 +- src/groups.js | 2 +- src/groups/create.js | 4 +--- src/groups/search.js | 5 ++++- src/groups/update.js | 2 -- src/socket.io/groups.js | 2 +- 7 files changed, 9 insertions(+), 10 deletions(-) diff --git a/public/language/en_GB/error.json b/public/language/en_GB/error.json index dc640fcecf..6a40edde0a 100644 --- a/public/language/en_GB/error.json +++ b/public/language/en_GB/error.json @@ -65,7 +65,7 @@ "already-unfavourited": "You have already unfavourited this post", "cant-ban-other-admins": "You can't ban other admins!", - "cant-remove-last-admin": "You are the only administrator. Add another user as an administrator before removing yourself as admin" + "cant-remove-last-admin": "You are the only administrator. Add another user as an administrator before removing yourself as admin", "invalid-image-type": "Invalid image type. Allowed types are: %1", "invalid-image-extension": "Invalid image extension", diff --git a/src/controllers/groups.js b/src/controllers/groups.js index ca607a98ea..8d7ddac3e2 100644 --- a/src/controllers/groups.js +++ b/src/controllers/groups.js @@ -12,7 +12,7 @@ var async = require('async'), groupsController.list = function(req, res, next) { var sort = req.query.sort || 'alpha'; - groupsController.getGroupsFromSet(req.uid, sort, 0, 8, function(err, data) { + groupsController.getGroupsFromSet(req.uid, sort, 0, 14, function(err, data) { if (err) { return next(err); } diff --git a/src/groups.js b/src/groups.js index ea5730c9a9..f54827eb53 100644 --- a/src/groups.js +++ b/src/groups.js @@ -312,7 +312,7 @@ var async = require('async'), Groups.existsBySlug = function(slug, callback) { if (Array.isArray(slug)) { - db.isObjectFields('groupslug:groupName', slug, callback); + db.isObjectFields('groupslug:groupname', slug, callback); } else { db.isObjectField('groupslug:groupname', slug, callback); } diff --git a/src/groups/create.js b/src/groups/create.js index 5ab45f4f1f..d8eb4a0ab9 100644 --- a/src/groups/create.js +++ b/src/groups/create.js @@ -55,9 +55,7 @@ module.exports = function(Groups) { tasks.push(async.apply(db.sortedSetAdd, 'groups:visible:name', 0, data.name.toLowerCase() + ':' + data.name)); } - if (!data.hidden) { - tasks.push(async.apply(db.setObjectField, 'groupslug:groupname', slug, data.name)); - } + tasks.push(async.apply(db.setObjectField, 'groupslug:groupname', slug, data.name)); async.series(tasks, function(err) { if (!err) { diff --git a/src/groups/search.js b/src/groups/search.js index b737123b62..d674b29dba 100644 --- a/src/groups/search.js +++ b/src/groups/search.js @@ -16,12 +16,15 @@ module.exports = function(Groups) { async.apply(db.getObjectValues, 'groupslug:groupname'), function(groupNames, next) { groupNames = groupNames.filter(function(name) { - return name.toLowerCase().indexOf(query) !== -1 && name !== 'administrators'; + return name.toLowerCase().indexOf(query) !== -1 && name !== 'administrators' && name !== 'registered-users' && !Groups.isPrivilegeGroup(name); }); groupNames = groupNames.slice(0, 100); Groups.getGroupsData(groupNames, next); }, function(groupsData, next) { + groupsData = groupsData.filter(function(group) { + return group && !group.hidden; + }); groupsData.forEach(Groups.escapeGroupData); next(null, groupsData); }, diff --git a/src/groups/update.js b/src/groups/update.js index f4f25ac3c1..2f87f8cc78 100644 --- a/src/groups/update.js +++ b/src/groups/update.js @@ -75,7 +75,6 @@ module.exports = function(Groups) { async.apply(db.sortedSetRemove, 'groups:visible:createtime', groupName), async.apply(db.sortedSetRemove, 'groups:visible:memberCount', groupName), async.apply(db.sortedSetRemove, 'groups:visible:name', groupName.toLowerCase() + ':' + groupName), - async.apply(db.deleteObjectField, 'groupslug:groupname', utils.slugify(groupName)) ], callback); } else { db.getObjectFields('group:' + groupName, ['createtime', 'memberCount'], function(err, groupData) { @@ -86,7 +85,6 @@ module.exports = function(Groups) { async.apply(db.sortedSetAdd, 'groups:visible:createtime', groupData.createtime, groupName), async.apply(db.sortedSetAdd, 'groups:visible:memberCount', groupData.memberCount, groupName), async.apply(db.sortedSetAdd, 'groups:visible:name', 0, groupName.toLowerCase() + ':' + groupName), - async.apply(db.setObjectField, 'groupslug:groupname', utils.slugify(groupName), groupName) ], callback); }); } diff --git a/src/socket.io/groups.js b/src/socket.io/groups.js index d965a8d0f5..69ce6a367c 100644 --- a/src/socket.io/groups.js +++ b/src/socket.io/groups.js @@ -214,7 +214,7 @@ SocketGroups.search = function(socket, data, callback) { } if (!data.query) { - var groupsPerPage = 9; + var groupsPerPage = 15; groupsController.getGroupsFromSet(socket.uid, data.options.sort, 0, groupsPerPage - 1, function(err, data) { callback(err, !err ? data.groups : null); });