From 689cac535e45c47a4f603b236dc129dd456efcc9 Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Thu, 30 Mar 2017 12:46:47 -0400 Subject: PLT-2713/PLT-6028 Added System Users list to System Console (#5882) * PLT-2713 Added ability for admins to list users not in any team * Updated style of unit test * Split SearchableUserList to give better control over its properties * Added users without any teams to the user store * Added ManageUsers page * Renamed ManageUsers to SystemUsers * Added ability to search by user id in SystemUsers page * Added SystemUsersDropdown * Removed unnecessary injectIntl * Created TeamUtils * Reduced scope of system console heading CSS * Added team filter to TeamAnalytics page * Updated admin console sidebar * Removed unnecessary TODO * Removed unused reference to deleted modal * Fixed system console sidebar not scrolling on first load * Fixed TeamAnalytics page not rendering on first load * Fixed chart.js throwing an error when switching between teams * Changed TeamAnalytics header to show the team's display name * Fixed appearance of TeamAnalytics and SystemUsers on small screen widths * Fixed placement of 'No users found' message * Fixed teams not appearing in SystemUsers on first load * Updated user count text for SystemUsers * Changed search by id fallback to trigger less often * Fixed SystemUsers list items not updating when searching * Fixed localization strings for SystemUsers page --- webapp/utils/team_utils.jsx | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 webapp/utils/team_utils.jsx (limited to 'webapp/utils/team_utils.jsx') diff --git a/webapp/utils/team_utils.jsx b/webapp/utils/team_utils.jsx new file mode 100644 index 000000000..207245111 --- /dev/null +++ b/webapp/utils/team_utils.jsx @@ -0,0 +1,27 @@ +// Copyright (c) 2017 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import LocalizationStore from 'stores/localization_store.jsx'; + +export function convertTeamMapToList(teamMap) { + const teams = []; + + for (const id in teamMap) { + if (teamMap.hasOwnProperty(id)) { + teams.push(teamMap[id]); + } + } + + return teams.sort(sortTeamsByDisplayName); +} + +// Use when sorting multiple teams by their `display_name` field +export function sortTeamsByDisplayName(a, b) { + const locale = LocalizationStore.getLocale(); + + if (a.display_name !== b.display_name) { + return a.display_name.localeCompare(b.display_name, locale, {numeric: true}); + } + + return a.name.localeCompare(b.name, locale, {numeric: true}); +} -- cgit v1.2.3-1-g7c22