summaryrefslogtreecommitdiffstats
path: root/webapp/components/admin_console/manage_teams_modal/manage_teams_modal.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/components/admin_console/manage_teams_modal/manage_teams_modal.jsx')
-rw-r--r--webapp/components/admin_console/manage_teams_modal/manage_teams_modal.jsx218
1 files changed, 0 insertions, 218 deletions
diff --git a/webapp/components/admin_console/manage_teams_modal/manage_teams_modal.jsx b/webapp/components/admin_console/manage_teams_modal/manage_teams_modal.jsx
deleted file mode 100644
index 21f9d762d..000000000
--- a/webapp/components/admin_console/manage_teams_modal/manage_teams_modal.jsx
+++ /dev/null
@@ -1,218 +0,0 @@
-// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
-// See License.txt for license information.
-
-import React from 'react';
-import {Modal} from 'react-bootstrap';
-import {FormattedMessage} from 'react-intl';
-import PropTypes from 'prop-types';
-
-import * as TeamActions from 'actions/team_actions.jsx';
-
-import {Client4} from 'mattermost-redux/client';
-
-import LoadingScreen from 'components/loading_screen.jsx';
-
-import {sortTeamsByDisplayName} from 'utils/team_utils.jsx';
-import * as Utils from 'utils/utils.jsx';
-
-import ManageTeamsDropdown from './manage_teams_dropdown.jsx';
-import RemoveFromTeamButton from './remove_from_team_button.jsx';
-
-export default class ManageTeamsModal extends React.Component {
- static propTypes = {
- onModalDismissed: PropTypes.func.isRequired,
- show: PropTypes.bool.isRequired,
- user: PropTypes.object
- };
-
- constructor(props) {
- super(props);
-
- this.state = {
- error: null,
- teams: null,
- teamMembers: null
- };
- }
-
- componentDidMount() {
- if (this.props.user) {
- this.loadTeamsAndTeamMembers();
- }
- }
-
- componentWillReceiveProps(nextProps) {
- const userId = this.props.user ? this.props.user.id : '';
- const nextUserId = nextProps.user ? nextProps.user.id : '';
-
- if (userId !== nextUserId) {
- this.setState({
- teams: null,
- teamMembers: null
- });
-
- if (nextProps.user) {
- this.loadTeamsAndTeamMembers(nextProps.user);
- }
- }
- }
-
- loadTeamsAndTeamMembers = (user = this.props.user) => {
- TeamActions.getTeamsForUser(user.id, (teams) => {
- this.setState({
- teams: teams.sort(sortTeamsByDisplayName)
- });
- });
-
- TeamActions.getTeamMembersForUser(user.id, (teamMembers) => {
- this.setState({
- teamMembers
- });
- });
- }
-
- handleError = (error) => {
- this.setState({
- error
- });
- }
-
- handleMemberChange = () => {
- TeamActions.getTeamMembersForUser(this.props.user.id, (teamMembers) => {
- this.setState({
- teamMembers
- });
- });
- }
-
- handleMemberRemove = (teamId) => {
- this.setState({
- teams: this.state.teams.filter((team) => team.id !== teamId),
- teamMembers: this.state.teamMembers.filter((teamMember) => teamMember.team_id !== teamId)
- });
- }
-
- renderContents = () => {
- const {user} = this.props;
- const {teams, teamMembers} = this.state;
-
- if (!user) {
- return <LoadingScreen/>;
- }
-
- const isSystemAdmin = Utils.isAdmin(user.roles);
-
- let name = Utils.getFullName(user);
- if (name) {
- name += ` (@${user.username})`;
- } else {
- name = `@${user.username}`;
- }
-
- let teamList;
- if (teams && teamMembers) {
- teamList = teams.map((team) => {
- const teamMember = teamMembers.find((member) => member.team_id === team.id);
- if (!teamMember) {
- return null;
- }
-
- let action;
- if (isSystemAdmin) {
- action = (
- <RemoveFromTeamButton
- user={user}
- team={team}
- onError={this.handleError}
- onMemberRemove={this.handleMemberRemove}
- />
- );
- } else {
- action = (
- <ManageTeamsDropdown
- user={user}
- team={team}
- teamMember={teamMember}
- onError={this.handleError}
- onMemberChange={this.handleMemberChange}
- onMemberRemove={this.handleMemberRemove}
- />
- );
- }
-
- return (
- <div
- key={team.id}
- className='manage-teams__team'
- >
- <div className='manage-teams__team-name'>
- {team.display_name}
- </div>
- <div className='manage-teams__team-actions'>
- {action}
- </div>
- </div>
- );
- });
- } else {
- teamList = <LoadingScreen/>;
- }
-
- let systemAdminIndicator = null;
- if (isSystemAdmin) {
- systemAdminIndicator = (
- <div className='manage-teams__system-admin'>
- <FormattedMessage
- id='admin.user_item.sysAdmin'
- defaultMessage='System Admin'
- />
- </div>
- );
- }
-
- return (
- <div>
- <div className='manage-teams__user'>
- <img
- className='manage-teams__profile-picture'
- src={Client4.getProfilePictureUrl(user.id, user.last_picture_update)}
- />
- <div className='manage-teams__info'>
- <div className='manage-teams__name'>
- {name}
- </div>
- <div className='manage-teams__email'>
- {user.email}
- </div>
- </div>
- {systemAdminIndicator}
- </div>
- <div className='manage-teams__teams'>
- {teamList}
- </div>
- </div>
- );
- }
-
- render() {
- return (
- <Modal
- show={this.props.show}
- onHide={this.props.onModalDismissed}
- dialogClassName='manage-teams'
- >
- <Modal.Header closeButton={true}>
- <Modal.Title>
- <FormattedMessage
- id='admin.user_item.manageTeams'
- defaultMessage='Manage Teams'
- />
- </Modal.Title>
- </Modal.Header>
- <Modal.Body>
- {this.renderContents()}
- </Modal.Body>
- </Modal>
- );
- }
-}