From 689cac535e45c47a4f603b236dc129dd456efcc9 Mon Sep 17 00:00:00 2001
From: Harrison Healey <harrisonmhealey@gmail.com>
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/actions/user_actions.jsx | 62 ++++++++++++++++++++++++++---------------
 1 file changed, 40 insertions(+), 22 deletions(-)

(limited to 'webapp/actions/user_actions.jsx')

diff --git a/webapp/actions/user_actions.jsx b/webapp/actions/user_actions.jsx
index 3b1fa96a8..b9d4ec376 100644
--- a/webapp/actions/user_actions.jsx
+++ b/webapp/actions/user_actions.jsx
@@ -133,6 +133,29 @@ export function loadTeamMembersForProfilesList(profiles, teamId = TeamStore.getC
     loadTeamMembersForProfiles(list, teamId, success, error);
 }
 
+export function loadProfilesWithoutTeam(page, perPage, success, error) {
+    Client.getProfilesWithoutTeam(
+        page,
+        perPage,
+        (data) => {
+            AppDispatcher.handleServerAction({
+                type: ActionTypes.RECEIVED_PROFILES_WITHOUT_TEAM,
+                profiles: data,
+                page
+            });
+
+            loadStatusesForProfilesMap(data);
+        },
+        (err) => {
+            AsyncClient.dispatchError(err, 'getProfilesWithoutTeam');
+
+            if (error) {
+                error(err);
+            }
+        }
+    );
+}
+
 function loadTeamMembersForProfiles(userIds, teamId, success, error) {
     Client.getTeamMembersByIds(
         teamId,
@@ -580,20 +603,16 @@ export function updateUserNotifyProps(data, success, error) {
 
 export function updateUserRoles(userId, newRoles, success, error) {
     Client.updateUserRoles(
-      userId,
-      newRoles,
-      () => {
-          AsyncClient.getUser(userId);
-
-          if (success) {
-              success();
-          }
-      },
-      (err) => {
-          if (error) {
-              error(err);
-          }
-      }
+        userId,
+        newRoles,
+        () => {
+            AsyncClient.getUser(
+                userId,
+                success,
+                error
+            );
+        },
+        error
     );
 }
 
@@ -658,18 +677,17 @@ export function checkMfa(loginId, success, error) {
 
 export function updateActive(userId, active, success, error) {
     Client.updateActive(userId, active,
-        () => {
-            AsyncClient.getUser(userId);
+        (data) => {
+            AppDispatcher.handleServerAction({
+                type: ActionTypes.RECEIVED_PROFILE,
+                profile: data
+            });
 
             if (success) {
-                success();
+                success(data);
             }
         },
-        (err) => {
-            if (error) {
-                error(err);
-            }
-        }
+        error
     );
 }
 
-- 
cgit v1.2.3-1-g7c22

