From 1138dd67705829a6af0d6c610cf3dbe09082187c Mon Sep 17 00:00:00 2001 From: Joram Wilander Date: Wed, 14 Jun 2017 08:56:56 -0400 Subject: PLT-6657 Move system console to use v4 endpoints and redux (#6572) * Move system console to use v4 endpoints and redux * Rename logs dir to get past gitignore * Fix test email * Update brand unit test * Updates per feedback --- .../components/admin_console/system_users/index.js | 3 ++ .../admin_console/system_users/system_users.jsx | 37 ++++++++++++---------- 2 files changed, 24 insertions(+), 16 deletions(-) (limited to 'webapp/components/admin_console/system_users') diff --git a/webapp/components/admin_console/system_users/index.js b/webapp/components/admin_console/system_users/index.js index 24144d701..8f1c0dc35 100644 --- a/webapp/components/admin_console/system_users/index.js +++ b/webapp/components/admin_console/system_users/index.js @@ -6,10 +6,13 @@ import {bindActionCreators} from 'redux'; import {getTeams, getTeamStats} from 'mattermost-redux/actions/teams'; import {getUser} from 'mattermost-redux/actions/users'; +import {getTeamsList} from 'mattermost-redux/selectors/entities/teams'; + import SystemUsers from './system_users.jsx'; function mapStateToProps(state, ownProps) { return { + teams: getTeamsList(state), ...ownProps }; } diff --git a/webapp/components/admin_console/system_users/system_users.jsx b/webapp/components/admin_console/system_users/system_users.jsx index 645d1e9e6..f0b3edac7 100644 --- a/webapp/components/admin_console/system_users/system_users.jsx +++ b/webapp/components/admin_console/system_users/system_users.jsx @@ -1,9 +1,8 @@ -import PropTypes from 'prop-types'; - // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. import React from 'react'; +import PropTypes from 'prop-types'; import {FormattedMessage} from 'react-intl'; import { @@ -13,14 +12,12 @@ import { searchUsers } from 'actions/user_actions.jsx'; -import AdminStore from 'stores/admin_store.jsx'; import AnalyticsStore from 'stores/analytics_store.jsx'; import TeamStore from 'stores/team_store.jsx'; import UserStore from 'stores/user_store.jsx'; import {getStandardAnalytics} from 'utils/async_client.jsx'; import {Constants, StatTypes, UserSearchOptions} from 'utils/constants.jsx'; -import {convertTeamMapToList} from 'utils/team_utils.jsx'; import * as Utils from 'utils/utils.jsx'; import SystemUsersList from './system_users_list.jsx'; @@ -36,9 +33,27 @@ const USERS_PER_PAGE = 50; export default class SystemUsers extends React.Component { static propTypes = { + + /* + * Array of team objects + */ + teams: PropTypes.arrayOf(PropTypes.object).isRequired, + actions: PropTypes.shape({ + + /* + * Function to get teams + */ getTeams: PropTypes.func.isRequired, + + /* + * Function to get statistics for a team + */ getTeamStats: PropTypes.func.isRequired, + + /* + * Function to get a user + */ getUser: PropTypes.func.isRequired }).isRequired } @@ -46,7 +61,6 @@ export default class SystemUsers extends React.Component { constructor(props) { super(props); - this.updateTeamsFromStore = this.updateTeamsFromStore.bind(this); this.updateTotalUsersFromStore = this.updateTotalUsersFromStore.bind(this); this.updateUsersFromStore = this.updateUsersFromStore.bind(this); @@ -64,7 +78,6 @@ export default class SystemUsers extends React.Component { this.renderFilterRow = this.renderFilterRow.bind(this); this.state = { - teams: convertTeamMapToList(AdminStore.getAllTeams()), totalUsers: AnalyticsStore.getAllSystem()[StatTypes.TOTAL_USERS], users: UserStore.getProfileList(), @@ -76,8 +89,6 @@ export default class SystemUsers extends React.Component { } componentDidMount() { - AdminStore.addAllTeamsChangeListener(this.updateTeamsFromStore); - AnalyticsStore.addChangeListener(this.updateTotalUsersFromStore); TeamStore.addStatsChangeListener(this.updateTotalUsersFromStore); @@ -101,8 +112,6 @@ export default class SystemUsers extends React.Component { } componentWillUnmount() { - AdminStore.removeAllTeamsChangeListener(this.updateTeamsFromStore); - AnalyticsStore.removeChangeListener(this.updateTotalUsersFromStore); TeamStore.removeStatsChangeListener(this.updateTotalUsersFromStore); @@ -111,10 +120,6 @@ export default class SystemUsers extends React.Component { UserStore.removeWithoutTeamChangeListener(this.updateUsersFromStore); } - updateTeamsFromStore() { - this.setState({teams: convertTeamMapToList(AdminStore.getAllTeams())}); - } - updateTotalUsersFromStore(teamId = this.state.teamId) { if (teamId === ALL_USERS) { this.setState({ @@ -271,7 +276,7 @@ export default class SystemUsers extends React.Component { } renderFilterRow(doSearch) { - const teams = this.state.teams.map((team) => { + const teams = this.props.teams.map((team) => { return (