From e15ae2253a15c7951c31ce0a2f9eea188ba2b639 Mon Sep 17 00:00:00 2001 From: George Goldberg Date: Wed, 18 Jan 2017 20:54:49 +0000 Subject: PLT-5050 (WebApp): Change channel member roles. (#5076) Admins can now Promote/Demote channel members in the Channel Manage Membersmodal. --- webapp/components/channel_members_dropdown.jsx | 68 +++++++++++++++++++++++++- 1 file changed, 67 insertions(+), 1 deletion(-) (limited to 'webapp/components') diff --git a/webapp/components/channel_members_dropdown.jsx b/webapp/components/channel_members_dropdown.jsx index 82aaf0612..a7b3259af 100644 --- a/webapp/components/channel_members_dropdown.jsx +++ b/webapp/components/channel_members_dropdown.jsx @@ -5,7 +5,7 @@ import ChannelStore from 'stores/channel_store.jsx'; import TeamStore from 'stores/team_store.jsx'; import UserStore from 'stores/user_store.jsx'; -import {removeUserFromChannel} from 'actions/channel_actions.jsx'; +import {removeUserFromChannel, makeUserChannelAdmin, makeUserChannelMember} from 'actions/channel_actions.jsx'; import * as AsyncClient from 'utils/async_client.jsx'; import * as Utils from 'utils/utils.jsx'; @@ -18,6 +18,8 @@ export default class ChannelMembersDropdown extends React.Component { super(props); this.handleRemoveFromChannel = this.handleRemoveFromChannel.bind(this); + this.handleMakeChannelMember = this.handleMakeChannelMember.bind(this); + this.handleMakeChannelAdmin = this.handleMakeChannelAdmin.bind(this); this.state = { serverError: null, @@ -39,6 +41,32 @@ export default class ChannelMembersDropdown extends React.Component { ); } + handleMakeChannelMember() { + makeUserChannelMember( + this.props.channel.id, + this.props.user.id, + () => { + AsyncClient.getChannelStats(this.props.channel.id); + }, + (err) => { + this.setState({serverError: err.message}); + } + ); + } + + handleMakeChannelAdmin() { + makeUserChannelAdmin( + this.props.channel.id, + this.props.user.id, + () => { + AsyncClient.getChannelStats(this.props.channel.id); + }, + (err) => { + this.setState({serverError: err.message}); + } + ); + } + // Checks if the user this menu is for is a channel admin or not. isChannelAdmin() { if (Utils.isChannelAdmin(this.props.channelMember.roles)) { @@ -116,6 +144,42 @@ export default class ChannelMembersDropdown extends React.Component { ); } + let makeChannelMember = null; + if (this.isChannelAdmin()) { + makeChannelMember = ( +
  • + + + +
  • + ); + } + + let makeChannelAdmin = null; + if (!this.isChannelAdmin()) { + makeChannelAdmin = ( +
  • + + + +
  • + ); + } + return (
    + {makeChannelMember} + {makeChannelAdmin} {removeFromChannel} {serverError} -- cgit v1.2.3-1-g7c22