diff options
author | Christopher Speller <crspeller@gmail.com> | 2017-09-06 23:04:13 -0700 |
---|---|---|
committer | Christopher Speller <crspeller@gmail.com> | 2017-09-06 23:11:58 -0700 |
commit | d8bd57901e33a7057e26e782e295099ffcc0da89 (patch) | |
tree | e12dfc8cad42b1576756d19d7fbfd82646a009bf /webapp/components/admin_console/manage_teams_modal | |
parent | 7bc8e9a08dfde56387f946fdf5086252aa4d0491 (diff) | |
download | chat-d8bd57901e33a7057e26e782e295099ffcc0da89.tar.gz chat-d8bd57901e33a7057e26e782e295099ffcc0da89.tar.bz2 chat-d8bd57901e33a7057e26e782e295099ffcc0da89.zip |
Removing webapp
Diffstat (limited to 'webapp/components/admin_console/manage_teams_modal')
3 files changed, 0 insertions, 420 deletions
diff --git a/webapp/components/admin_console/manage_teams_modal/manage_teams_dropdown.jsx b/webapp/components/admin_console/manage_teams_modal/manage_teams_dropdown.jsx deleted file mode 100644 index 4ee3c11cd..000000000 --- a/webapp/components/admin_console/manage_teams_modal/manage_teams_dropdown.jsx +++ /dev/null @@ -1,148 +0,0 @@ -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 {Dropdown, MenuItem} from 'react-bootstrap'; -import {FormattedMessage} from 'react-intl'; - -import {updateTeamMemberRoles, removeUserFromTeam} from 'actions/team_actions.jsx'; - -import * as Utils from 'utils/utils.jsx'; - -export default class ManageTeamsDropdown extends React.Component { - static propTypes = { - user: PropTypes.object.isRequired, - teamMember: PropTypes.object.isRequired, - onError: PropTypes.func.isRequired, - onMemberChange: PropTypes.func.isRequired, - onMemberRemove: PropTypes.func.isRequired - }; - - constructor(props) { - super(props); - - this.toggleDropdown = this.toggleDropdown.bind(this); - - this.makeTeamAdmin = this.makeTeamAdmin.bind(this); - this.makeMember = this.makeMember.bind(this); - this.removeFromTeam = this.removeFromTeam.bind(this); - - this.handleMemberChange = this.handleMemberChange.bind(this); - this.handleMemberRemove = this.handleMemberRemove.bind(this); - - this.state = { - show: false - }; - } - - toggleDropdown() { - this.setState((prevState) => { - return {show: !prevState.show}; - }); - } - - makeTeamAdmin() { - updateTeamMemberRoles( - this.props.teamMember.team_id, - this.props.user.id, - 'team_user team_admin', - this.handleMemberChange, - this.props.onError - ); - } - - makeMember() { - updateTeamMemberRoles( - this.props.teamMember.team_id, - this.props.user.id, - 'team_user', - this.handleMemberChange, - this.props.onError - ); - } - - removeFromTeam() { - removeUserFromTeam( - this.props.teamMember.team_id, - this.props.user.id, - this.handleMemberRemove, - this.props.onError - ); - } - - handleMemberChange() { - this.props.onMemberChange(this.props.teamMember.team_id); - } - - handleMemberRemove() { - this.props.onMemberRemove(this.props.teamMember.team_id); - } - - render() { - const isTeamAdmin = Utils.isAdmin(this.props.teamMember.roles); - - let title; - if (isTeamAdmin) { - title = Utils.localizeMessage('admin.user_item.teamAdmin', 'Team Admin'); - } else { - title = Utils.localizeMessage('admin.user_item.teamMember', 'Team Member'); - } - - let makeTeamAdmin = null; - if (!isTeamAdmin) { - makeTeamAdmin = ( - <MenuItem - id='makeTeamAdmin' - onSelect={this.makeTeamAdmin} - > - <FormattedMessage - id='admin.user_item.makeTeamAdmin' - defaultMessage='Make Team Admin' - /> - </MenuItem> - ); - } - - let makeMember = null; - if (isTeamAdmin) { - makeMember = ( - <MenuItem - id='makeMember' - onSelect={this.makeMember} - > - <FormattedMessage - id='admin.user_item.makeMember' - defaultMessage='Make Member' - /> - </MenuItem> - ); - } - - return ( - <Dropdown - id={`manage-teams-${this.props.user.id}-${this.props.teamMember.team_id}`} - open={this.state.show} - onToggle={this.toggleDropdown} - > - <Dropdown.Toggle useAnchor={true}> - {title} - </Dropdown.Toggle> - <Dropdown.Menu> - {makeTeamAdmin} - {makeMember} - <MenuItem - id='removeFromTeam' - onSelect={this.removeFromTeam} - > - <FormattedMessage - id='team_members_dropdown.leave_team' - defaultMessage='Remove from Team' - /> - </MenuItem> - </Dropdown.Menu> - </Dropdown> - ); - } -} 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> - ); - } -} diff --git a/webapp/components/admin_console/manage_teams_modal/remove_from_team_button.jsx b/webapp/components/admin_console/manage_teams_modal/remove_from_team_button.jsx deleted file mode 100644 index 69579d46f..000000000 --- a/webapp/components/admin_console/manage_teams_modal/remove_from_team_button.jsx +++ /dev/null @@ -1,54 +0,0 @@ -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 {FormattedMessage} from 'react-intl'; - -import {removeUserFromTeam} from 'actions/team_actions.jsx'; - -export default class RemoveFromTeamButton extends React.PureComponent { - static propTypes = { - onError: PropTypes.func.isRequired, - onMemberRemove: PropTypes.func.isRequired, - team: PropTypes.object.isRequired, - user: PropTypes.object.isRequired - }; - - constructor(props) { - super(props); - - this.handleClick = this.handleClick.bind(this); - this.handleMemberRemove = this.handleMemberRemove.bind(this); - } - - handleClick(e) { - e.preventDefault(); - - removeUserFromTeam( - this.props.team.id, - this.props.user.id, - this.handleMemberRemove, - this.props.onError - ); - } - - handleMemberRemove() { - this.props.onMemberRemove(this.props.team.id); - } - - render() { - return ( - <button - className='btn btn-danger' - onClick={this.handleClick} - > - <FormattedMessage - id='team_members_dropdown.leave_team' - defaultMessage='Remove from Team' - /> - </button> - ); - } -} |