diff options
author | Christopher Speller <crspeller@gmail.com> | 2016-03-16 18:16:11 -0400 |
---|---|---|
committer | Christopher Speller <crspeller@gmail.com> | 2016-03-16 18:16:11 -0400 |
commit | 4a4859351a4cd277f94d3faa804daaad0733b270 (patch) | |
tree | 4e7f83d3e2564b9b89d669e9f7905ff11768b11a /webapp/components/sidebar_right_menu.jsx | |
parent | 29fe6a3d13c9c7aa490fffebbe5d1b5fdf1e3090 (diff) | |
parent | 12896bd23eeba79884245c1c29fdc568cf21a7fa (diff) | |
download | chat-4a4859351a4cd277f94d3faa804daaad0733b270.tar.gz chat-4a4859351a4cd277f94d3faa804daaad0733b270.tar.bz2 chat-4a4859351a4cd277f94d3faa804daaad0733b270.zip |
Merge pull request #2453 from mattermost/plt-2340
PLT-2340 Converting to Webpack. Stage 1.
Diffstat (limited to 'webapp/components/sidebar_right_menu.jsx')
-rw-r--r-- | webapp/components/sidebar_right_menu.jsx | 218 |
1 files changed, 218 insertions, 0 deletions
diff --git a/webapp/components/sidebar_right_menu.jsx b/webapp/components/sidebar_right_menu.jsx new file mode 100644 index 000000000..05e2054ea --- /dev/null +++ b/webapp/components/sidebar_right_menu.jsx @@ -0,0 +1,218 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import TeamMembersModal from './team_members_modal.jsx'; +import ToggleModalButton from './toggle_modal_button.jsx'; +import UserSettingsModal from './user_settings/user_settings_modal.jsx'; +import UserStore from 'stores/user_store.jsx'; +import * as GlobalActions from 'action_creators/global_actions.jsx'; +import * as Utils from 'utils/utils.jsx'; + +import {FormattedMessage} from 'react-intl'; +import {Link} from 'react-router'; + +import React from 'react'; + +export default class SidebarRightMenu extends React.Component { + constructor(props) { + super(props); + + this.state = { + showUserSettingsModal: false + }; + } + + render() { + var teamLink = ''; + var inviteLink = ''; + var teamSettingsLink = ''; + var manageLink = ''; + var consoleLink = ''; + var currentUser = UserStore.getCurrentUser(); + var isAdmin = false; + var isSystemAdmin = false; + + if (currentUser != null) { + isAdmin = Utils.isAdmin(currentUser.roles); + isSystemAdmin = Utils.isSystemAdmin(currentUser.roles); + + inviteLink = ( + <li> + <a + href='#' + onClick={GlobalActions.showInviteMemberModal} + > + <i className='fa fa-user'></i> + <FormattedMessage + id='sidebar_right_menu.inviteNew' + defaultMessage='Invite New Member' + /> + </a> + </li> + ); + + if (this.props.teamType === 'O') { + teamLink = ( + <li> + <a + href='#' + onClick={GlobalActions.showGetTeamInviteLinkModal} + > + <i className='glyphicon glyphicon-link'></i> + <FormattedMessage + id='sidebar_right_menu.teamLink' + defaultMessage='Get Team Invite Link' + /> + </a> + </li> + ); + } + } + + if (isAdmin) { + teamSettingsLink = ( + <li> + <a + href='#' + data-toggle='modal' + data-target='#team_settings' + > + <i className='fa fa-globe'></i> + <FormattedMessage + id='sidebar_right_menu.teamSettings' + defaultMessage='Team Settings' + /> + </a> + </li> + ); + manageLink = ( + <li> + <ToggleModalButton dialogType={TeamMembersModal}> + <i className='fa fa-users'></i> + <FormattedMessage + id='sidebar_right_menu.manageMembers' + defaultMessage='Manage Members' + /> + </ToggleModalButton> + </li> + ); + } + + if (isSystemAdmin && !Utils.isMobile()) { + consoleLink = ( + <li> + <a + href={'/admin_console'} + > + <i className='fa fa-wrench'></i> + <FormattedMessage + id='sidebar_right_menu.console' + defaultMessage='System Console' + /> + </a> + </li> + ); + } + + var siteName = ''; + if (global.window.mm_config.SiteName != null) { + siteName = global.window.mm_config.SiteName; + } + var teamDisplayName = siteName; + if (this.props.teamDisplayName) { + teamDisplayName = this.props.teamDisplayName; + } + + let helpLink = null; + if (global.window.mm_config.HelpLink) { + helpLink = ( + <li> + <a + target='_blank' + href={global.window.mm_config.HelpLink} + > + <i className='fa fa-question'></i> + <FormattedMessage + id='sidebar_right_menu.help' + defaultMessage='Help' + /> + </a> + </li> + ); + } + + let reportLink = null; + if (global.window.mm_config.ReportAProblemLink) { + reportLink = ( + <li> + <a + target='_blank' + href={global.window.mm_config.ReportAProblemLink} + > + <i className='fa fa-phone'></i> + <FormattedMessage + id='sidebar_right_menu.report' + defaultMessage='Report a Problem' + /> + </a> + </li> + ); + } + return ( + <div + className='sidebar--menu' + id='sidebar-menu' + > + <div className='team__header theme'> + <a + className='team__name' + href='/channels/town-square' + >{teamDisplayName}</a> + </div> + + <div className='nav-pills__container'> + <ul className='nav nav-pills nav-stacked'> + <li> + <a + href='#' + onClick={() => this.setState({showUserSettingsModal: true})} + > + <i className='fa fa-cog'></i> + <FormattedMessage + id='sidebar_right_menu.accountSettings' + defaultMessage='Account Settings' + /> + </a> + </li> + {teamSettingsLink} + {inviteLink} + {teamLink} + {manageLink} + {consoleLink} + <li> + <Link to={Utils.getTeamURLFromAddressBar() + '/logout'}> + <i className='fa fa-sign-out'></i> + <FormattedMessage + id='sidebar_right_menu.logout' + defaultMessage='Logout' + /> + </Link> + </li> + <li className='divider'></li> + {helpLink} + {reportLink} + </ul> + </div> + <UserSettingsModal + show={this.state.showUserSettingsModal} + onModalDismissed={() => this.setState({showUserSettingsModal: false})} + /> + </div> + ); + } +} + +SidebarRightMenu.propTypes = { + teamType: React.PropTypes.string, + teamDisplayName: React.PropTypes.string +}; |