From b0090214ef4e550b1e82c6f8cb5f717bfefe358b Mon Sep 17 00:00:00 2001 From: David Lu Date: Wed, 20 Jul 2016 17:00:22 -0400 Subject: PLT-2712 Added view members for non-admins in channel and team (#3618) * Added view members for non-admins in channel and team * changed variable name --- webapp/components/channel_header.jsx | 19 +++++++++++++++ webapp/components/channel_members_modal.jsx | 10 ++++++-- webapp/components/member_list_team.jsx | 10 ++++++-- webapp/components/navbar_dropdown.jsx | 36 ++++++++++++++++++++--------- webapp/components/team_members_modal.jsx | 8 +++++-- webapp/components/user_list_row.jsx | 23 ++++++++++-------- webapp/i18n/en.json | 2 ++ 7 files changed, 81 insertions(+), 27 deletions(-) diff --git a/webapp/components/channel_header.jsx b/webapp/components/channel_header.jsx index 5757fd3b2..573949a5e 100644 --- a/webapp/components/channel_header.jsx +++ b/webapp/components/channel_header.jsx @@ -367,6 +367,24 @@ export default class ChannelHeader extends React.Component { ); + } else { + dropdownContents.push( +
  • + this.setState({showMembersModal: true})} + > + + +
  • + ); } } @@ -586,6 +604,7 @@ export default class ChannelHeader extends React.Component { show={this.state.showMembersModal} onModalDismissed={() => this.setState({showMembersModal: false})} channel={channel} + isAdmin={isAdmin} /> ); } @@ -218,5 +223,6 @@ ChannelMembersModal.defaultProps = { ChannelMembersModal.propTypes = { show: React.PropTypes.bool.isRequired, onModalDismissed: React.PropTypes.func.isRequired, - channel: React.PropTypes.object.isRequired + channel: React.PropTypes.object.isRequired, + isAdmin: React.PropTypes.bool.isRequired }; diff --git a/webapp/components/member_list_team.jsx b/webapp/components/member_list_team.jsx index d0714e942..9f18fba33 100644 --- a/webapp/components/member_list_team.jsx +++ b/webapp/components/member_list_team.jsx @@ -60,17 +60,23 @@ export default class MemberListTeam extends React.Component { } render() { + let teamMembersDropdown = null; + if (this.props.isAdmin) { + teamMembersDropdown = [TeamMembersDropdown]; + } + return ( ); } } MemberListTeam.propTypes = { - style: React.PropTypes.object + style: React.PropTypes.object, + isAdmin: React.PropTypes.bool }; diff --git a/webapp/components/navbar_dropdown.jsx b/webapp/components/navbar_dropdown.jsx index c660bc164..8eb0a93a9 100644 --- a/webapp/components/navbar_dropdown.jsx +++ b/webapp/components/navbar_dropdown.jsx @@ -158,18 +158,14 @@ export default class NavbarDropdown extends React.Component { } } - if (isAdmin) { - manageLink = ( -
  • - - - -
  • - ); + let membersName = ( + + ); + if (isAdmin) { teamSettings = (
  • ); + } else { + membersName = ( + + ); } + manageLink = ( +
  • + + {membersName} + +
  • + ); + const integrationsEnabled = window.mm_config.EnableIncomingWebhooks === 'true' || window.mm_config.EnableOutgoingWebhooks === 'true' || diff --git a/webapp/components/team_members_modal.jsx b/webapp/components/team_members_modal.jsx index 9b8729b3a..7f44ca85c 100644 --- a/webapp/components/team_members_modal.jsx +++ b/webapp/components/team_members_modal.jsx @@ -66,7 +66,10 @@ export default class TeamMembersModal extends React.Component { - +