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
Этот коммит содержится в:
Joram Wilander
2017-06-14 08:56:56 -04:00
коммит произвёл Harrison Healey
родитель 40efd8367a
Коммит 1138dd6770
29 изменённых файлов: 622 добавлений и 670 удалений

Просмотреть файл

@@ -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 (
<option
key={team.id}
@@ -339,7 +344,7 @@ export default class SystemUsers extends React.Component {
users={users}
usersPerPage={USERS_PER_PAGE}
total={this.state.totalUsers}
teams={this.state.teams}
teams={this.props.teams}
teamId={this.state.teamId}
term={this.state.term}
onTermChange={this.handleTermChange}