From 428f587cbeebcd28cd651dd739f090d7deb3a7cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Wed, 9 Jan 2019 11:59:20 -0500 Subject: [PATCH] fix: #7208 --- public/src/client/groups/list.js | 2 ++ src/groups/index.js | 2 +- src/groups/search.js | 15 +++++++++------ 3 files changed, 12 insertions(+), 7 deletions(-) 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);