diff --git a/public/src/client/groups/list.js b/public/src/client/groups/list.js index 72536a1352..d263639b85 100644 --- a/public/src/client/groups/list.js +++ b/public/src/client/groups/list.js @@ -70,6 +70,8 @@ define('forum/groups/list', ['forum/infinitescroll', 'benchpress'], function (in options: { sort: sortEl.val(), filterHidden: true, + showMembers: true, + hideEphemeralGroups: true, }, }, function (err, groups) { if (err) { diff --git a/src/groups/index.js b/src/groups/index.js index 0d21f24525..4a19b4e0d3 100644 --- a/src/groups/index.js +++ b/src/groups/index.js @@ -105,7 +105,7 @@ Groups.getGroupsAndMembers = function (groupNames, callback) { data.groups.forEach(function (group, index) { if (group) { group.members = data.members[index] || []; - group.truncated = group.memberCount > data.members.length; + group.truncated = group.memberCount > group.members.length; } }); next(null, data.groups); diff --git a/src/groups/search.js b/src/groups/search.js index 6f8e6c82d5..62005ce308 100644 --- a/src/groups/search.js +++ b/src/groups/search.js @@ -15,20 +15,23 @@ module.exports = function (Groups) { async.waterfall([ async.apply(db.getSortedSetRange, 'groups:createtime', 0, -1), function (groupNames, next) { - // Ephemeral groups and the registered-users groups are searchable - groupNames = Groups.ephemeralGroups.concat(groupNames); + if (!options.hideEphemeralGroups) { + groupNames = Groups.ephemeralGroups.concat(groupNames); + } groupNames = groupNames.filter(function (name) { return name.toLowerCase().includes(query) && name !== 'administrators' && !Groups.isPrivilegeGroup(name); }); groupNames = groupNames.slice(0, 100); - Groups.getGroupsData(groupNames, next); + if (options.showMembers) { + Groups.getGroupsAndMembers(groupNames, next); + } else { + Groups.getGroupsData(groupNames, next); + } }, function (groupsData, next) { groupsData = groupsData.filter(Boolean); if (options.filterHidden) { - groupsData = groupsData.filter(function (group) { - return !group.hidden; - }); + groupsData = groupsData.filter(group => !group.hidden); } Groups.sort(options.sort, groupsData, next);