From d8bd57901e33a7057e26e782e295099ffcc0da89 Mon Sep 17 00:00:00 2001 From: Christopher Speller Date: Wed, 6 Sep 2017 23:04:13 -0700 Subject: Removing webapp --- webapp/components/navbar.jsx | 936 ------------------------------------------- 1 file changed, 936 deletions(-) delete mode 100644 webapp/components/navbar.jsx (limited to 'webapp/components/navbar.jsx') diff --git a/webapp/components/navbar.jsx b/webapp/components/navbar.jsx deleted file mode 100644 index 43411c2cf..000000000 --- a/webapp/components/navbar.jsx +++ /dev/null @@ -1,936 +0,0 @@ -// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. -// See License.txt for license information. - -import $ from 'jquery'; -import EditChannelHeaderModal from './edit_channel_header_modal.jsx'; -import EditChannelPurposeModal from './edit_channel_purpose_modal.jsx'; -import MessageWrapper from './message_wrapper.jsx'; -import NotifyCounts from './notify_counts.jsx'; -import ChannelInfoModal from './channel_info_modal.jsx'; -import ChannelInviteModal from 'components/channel_invite_modal'; -import ChannelMembersModal from './channel_members_modal.jsx'; -import ChannelNotificationsModal from './channel_notifications_modal.jsx'; -import DeleteChannelModal from './delete_channel_modal.jsx'; -import RenameChannelModal from './rename_channel_modal.jsx'; -import ToggleModalButton from './toggle_modal_button.jsx'; -import StatusIcon from './status_icon.jsx'; - -import UserStore from 'stores/user_store.jsx'; -import ChannelStore from 'stores/channel_store.jsx'; -import TeamStore from 'stores/team_store.jsx'; -import PreferenceStore from 'stores/preference_store.jsx'; -import SearchStore from 'stores/search_store.jsx'; -import ModalStore from 'stores/modal_store.jsx'; - -import QuickSwitchModal from 'components/quick_switch_modal'; - -import * as Utils from 'utils/utils.jsx'; -import * as ChannelUtils from 'utils/channel_utils.jsx'; -import * as ChannelActions from 'actions/channel_actions.jsx'; -import * as GlobalActions from 'actions/global_actions.jsx'; -import {getPinnedPosts} from 'actions/post_actions.jsx'; - -import Constants from 'utils/constants.jsx'; -const ActionTypes = Constants.ActionTypes; - -import AppDispatcher from '../dispatcher/app_dispatcher.jsx'; - -import {FormattedMessage} from 'react-intl'; - -import {Popover, OverlayTrigger} from 'react-bootstrap'; - -import {Link} from 'react-router/es6'; - -import PropTypes from 'prop-types'; - -import React from 'react'; - -export default class Navbar extends React.Component { - constructor(props) { - super(props); - - this.onChange = this.onChange.bind(this); - this.handleLeave = this.handleLeave.bind(this); - this.showSearch = this.showSearch.bind(this); - - this.showEditChannelHeaderModal = this.showEditChannelHeaderModal.bind(this); - this.hideEditChannelHeaderModal = this.hideEditChannelHeaderModal.bind(this); - this.showChannelPurposeModal = this.showChannelPurposeModal.bind(this); - this.hideChannelPurposeModal = this.hideChannelPurposeModal.bind(this); - this.showRenameChannelModal = this.showRenameChannelModal.bind(this); - this.hideRenameChannelModal = this.hideRenameChannelModal.bind(this); - this.isStateValid = this.isStateValid.bind(this); - - this.createCollapseButtons = this.createCollapseButtons.bind(this); - this.createDropdown = this.createDropdown.bind(this); - - this.showMembersModal = this.showMembersModal.bind(this); - this.hideMembersModal = this.hideMembersModal.bind(this); - - this.toggleQuickSwitchModal = this.toggleQuickSwitchModal.bind(this); - this.hideQuickSwitchModal = this.hideQuickSwitchModal.bind(this); - this.handleQuickSwitchKeyPress = this.handleQuickSwitchKeyPress.bind(this); - - this.openDirectMessageModal = this.openDirectMessageModal.bind(this); - this.getPinnedPosts = this.getPinnedPosts.bind(this); - - const state = this.getStateFromStores(); - state.showEditChannelPurposeModal = false; - state.showEditChannelHeaderModal = false; - state.showMembersModal = false; - state.showRenameChannelModal = false; - state.showQuickSwitchModal = false; - state.quickSwitchMode = 'channel'; - this.state = state; - } - - getStateFromStores() { - const channel = ChannelStore.getCurrent(); - - return { - channel, - member: ChannelStore.getCurrentMember(), - users: [], - userCount: ChannelStore.getCurrentStats().member_count, - currentUser: UserStore.getCurrentUser(), - isFavorite: channel && ChannelUtils.isFavoriteChannel(channel) - }; - } - - isStateValid() { - return this.state.channel && this.state.member && this.state.users && this.state.currentUser; - } - - componentDidMount() { - ChannelStore.addChangeListener(this.onChange); - ChannelStore.addStatsChangeListener(this.onChange); - UserStore.addStatusesChangeListener(this.onChange); - UserStore.addChangeListener(this.onChange); - PreferenceStore.addChangeListener(this.onChange); - ModalStore.addModalListener(ActionTypes.TOGGLE_QUICK_SWITCH_MODAL, this.toggleQuickSwitchModal); - ModalStore.addModalListener(ActionTypes.TOGGLE_CHANNEL_HEADER_UPDATE_MODAL, this.showEditChannelHeaderModal); - ModalStore.addModalListener(ActionTypes.TOGGLE_CHANNEL_PURPOSE_UPDATE_MODAL, this.showChannelPurposeModal); - ModalStore.addModalListener(ActionTypes.TOGGLE_CHANNEL_NAME_UPDATE_MODAL, this.showRenameChannelModal); - $('.inner-wrap').click(this.hideSidebars); - document.addEventListener('keydown', this.handleQuickSwitchKeyPress); - } - - componentWillUnmount() { - ChannelStore.removeChangeListener(this.onChange); - ChannelStore.removeStatsChangeListener(this.onChange); - UserStore.removeStatusesChangeListener(this.onChange); - UserStore.removeChangeListener(this.onChange); - PreferenceStore.removeChangeListener(this.onChange); - ModalStore.removeModalListener(ActionTypes.TOGGLE_QUICK_SWITCH_MODAL, this.toggleQuickSwitchModal); - ModalStore.addModalListener(ActionTypes.TOGGLE_CHANNEL_HEADER_UPDATE_MODAL, this.hideEditChannelHeaderModal); - ModalStore.addModalListener(ActionTypes.TOGGLE_CHANNEL_PURPOSE_UPDATE_MODAL, this.hideChannelPurposeModal); - ModalStore.addModalListener(ActionTypes.TOGGLE_CHANNEL_NAME_UPDATE_MODAL, this.hideRenameChannelModal); - document.removeEventListener('keydown', this.handleQuickSwitchKeyPress); - } - - handleSubmit(e) { - e.preventDefault(); - } - - handleLeave() { - if (this.state.channel.type === Constants.PRIVATE_CHANNEL) { - GlobalActions.showLeavePrivateChannelModal(this.state.channel); - } else { - ChannelActions.leaveChannel(this.state.channel.id); - } - } - - hideSidebars(e) { - var windowWidth = $(window).outerWidth(); - if (windowWidth <= 768) { - AppDispatcher.handleServerAction({ - type: ActionTypes.RECEIVED_SEARCH, - results: null - }); - - AppDispatcher.handleServerAction({ - type: ActionTypes.RECEIVED_POST_SELECTED, - postId: null - }); - - if (e.target.className !== 'navbar-toggle' && e.target.className !== 'icon-bar') { - $('.app__body .inner-wrap').removeClass('move--right move--left move--left-small'); - $('.app__body .sidebar--left').removeClass('move--right'); - $('.multi-teams .team-sidebar').removeClass('move--right'); - $('.app__body .sidebar--right').removeClass('move--left'); - $('.app__body .sidebar--menu').removeClass('move--left'); - } - } - } - - toggleLeftSidebar() { - $('.app__body .inner-wrap').toggleClass('move--right'); - $('.app__body .sidebar--left').toggleClass('move--right'); - $('.multi-teams .team-sidebar').toggleClass('move--right'); - } - - toggleRightSidebar() { - $('.app__body .inner-wrap').toggleClass('move--left-small'); - $('.app__body .sidebar--menu').toggleClass('move--left'); - } - - showSearch() { - AppDispatcher.handleServerAction({ - type: ActionTypes.SHOW_SEARCH - }); - } - - onChange() { - this.setState(this.getStateFromStores()); - } - - showEditChannelHeaderModal() { - // this can't be done using a ToggleModalButton because we can't use one inside an OverlayTrigger - if (this.refs.headerOverlay) { - this.refs.headerOverlay.hide(); - } - - this.setState({ - showEditChannelHeaderModal: true - }); - } - - hideEditChannelHeaderModal() { - this.setState({ - showEditChannelHeaderModal: false - }); - } - - showChannelPurposeModal() { - this.setState({ - showEditChannelPurposeModal: true - }); - } - - hideChannelPurposeModal() { - this.setState({ - showEditChannelPurposeModal: false - }); - } - - showRenameChannelModal() { - this.setState({ - showRenameChannelModal: true - }); - } - - hideRenameChannelModal() { - this.setState({ - showRenameChannelModal: false - }); - } - - showMembersModal(e) { - e.preventDefault(); - - this.setState({showMembersModal: true}); - } - - hideMembersModal() { - this.setState({showMembersModal: false}); - } - - handleQuickSwitchKeyPress(e) { - if (Utils.cmdOrCtrlPressed(e) && !e.shiftKey && e.keyCode === Constants.KeyCodes.K) { - if (!e.altKey) { - e.preventDefault(); - this.toggleQuickSwitchModal('channel'); - } - } - } - - toggleQuickSwitchModal(mode = 'channel') { - if (this.state.showQuickSwitchModal) { - this.setState({showQuickSwitchModal: false, quickSwitchMode: 'channel'}); - } else { - this.setState({showQuickSwitchModal: true, quickSwitchMode: mode}); - } - } - - hideQuickSwitchModal() { - this.setState({ - showQuickSwitchModal: false, - quickSwitchMode: 'channel' - }); - } - - openDirectMessageModal() { - AppDispatcher.handleViewAction({ - type: ActionTypes.TOGGLE_DM_MODAL, - value: true, - startingUsers: UserStore.getProfileListInChannel(this.state.channel.id, true) - }); - } - - getPinnedPosts(e) { - e.preventDefault(); - if (SearchStore.isPinnedPosts) { - GlobalActions.toggleSideBarAction(false); - } else { - getPinnedPosts(this.state.channel.id); - } - } - - toggleFavorite = (e) => { - e.preventDefault(); - - if (this.state.isFavorite) { - ChannelActions.unmarkFavorite(this.state.channel.id); - } else { - ChannelActions.markFavorite(this.state.channel.id); - } - }; - - createDropdown(channel, channelTitle, isSystemAdmin, isTeamAdmin, isChannelAdmin, isDirect, isGroup, popoverContent) { - const infoIcon = Constants.INFO_ICON_SVG; - - if (channel) { - let viewInfoOption; - let viewPinnedPostsOption; - let addMembersOption; - let manageMembersOption; - let setChannelHeaderOption; - let setChannelPurposeOption; - let notificationPreferenceOption; - let renameChannelOption; - let deleteChannelOption; - let leaveChannelOption; - - if (isDirect) { - setChannelHeaderOption = ( -
  • - - - -
  • - ); - } else if (isGroup) { - setChannelHeaderOption = ( -
  • - - - -
  • - ); - - notificationPreferenceOption = ( -
  • - - - -
  • - ); - - addMembersOption = ( -
  • - - - -
  • - ); - } else { - viewInfoOption = ( -
  • - - - -
  • - ); - - viewPinnedPostsOption = ( -
  • - - - -
  • - ); - - if (ChannelStore.isDefault(channel)) { - manageMembersOption = ( -
  • - - - -
  • - ); - } else { - addMembersOption = ( -
  • - - - -
  • - ); - - if (ChannelUtils.canManageMembers(channel, isChannelAdmin, isTeamAdmin, isSystemAdmin)) { - manageMembersOption = ( -
  • - - - -
  • - ); - } else { - manageMembersOption = ( -
  • - - - -
  • - ); - } - } - - notificationPreferenceOption = ( -
  • - - - -
  • - ); - - if (ChannelUtils.showManagementOptions(channel, isChannelAdmin, isTeamAdmin, isSystemAdmin)) { - setChannelHeaderOption = ( -
  • - - - -
  • - ); - - setChannelPurposeOption = ( -
  • - - - -
  • - ); - - renameChannelOption = ( -
  • - - - -
  • - ); - } - - if (ChannelUtils.showDeleteOptionForCurrentUser(channel, isChannelAdmin, isTeamAdmin, isSystemAdmin)) { - deleteChannelOption = ( -
  • - - - -
  • - ); - } - - if (!ChannelStore.isDefault(channel)) { - leaveChannelOption = ( -
  • - - - -
  • - ); - } - } - - const toggleFavoriteOption = ( -
  • - - {this.state.isFavorite ? - : - } - -
  • - ); - - return ( -
    -
    - -
    -
    -
    - - {channelTitle} - - -
      - {viewInfoOption} - {viewPinnedPostsOption} - {notificationPreferenceOption} - {addMembersOption} - {manageMembersOption} - {setChannelHeaderOption} - {setChannelPurposeOption} - {renameChannelOption} - {deleteChannelOption} - {leaveChannelOption} - {toggleFavoriteOption} -
      this.refs.headerOverlay.hide()} - > - {'×'} -
      -
    -
    -
    - ); - } - - return ( -
    - - {channelTitle} - -
    - ); - } - - createCollapseButtons(currentId) { - var buttons = []; - const menuIcon = Constants.MENU_ICON_SVG; - - if (currentId == null) { - buttons.push( - - ); - } else { - buttons.push( - - ); - - buttons.push( - - ); - } - - return buttons; - } - - getTeammateStatus() { - const channel = this.state.channel; - - // get status for direct message channels - if (channel.type === 'D') { - const currentUserId = this.state.currentUser.id; - const teammate = this.state.users.find((user) => user.id !== currentUserId); - if (teammate) { - return UserStore.getStatus(teammate.id); - } - } - return null; - } - - render() { - if (!this.isStateValid()) { - return null; - } - - var currentId = this.state.currentUser.id; - var channel = this.state.channel; - var channelTitle = this.props.teamDisplayName; - var popoverContent; - var isTeamAdmin = TeamStore.isTeamAdminForCurrentTeam(); - var isSystemAdmin = UserStore.isSystemAdminForCurrentUser(); - var isChannelAdmin = false; - var isDirect = false; - let isGroup = false; - - var editChannelHeaderModal = null; - var editChannelPurposeModal = null; - let renameChannelModal = null; - let channelMembersModal = null; - let quickSwitchModal = null; - - if (channel) { - popoverContent = ( - - -
    this.refs.headerOverlay.hide()} - > - {'×'} -
    -
    - ); - - isChannelAdmin = ChannelStore.isChannelAdminForCurrentChannel(); - - if (channel.type === 'O') { - channelTitle = channel.display_name; - } else if (channel.type === 'P') { - channelTitle = channel.display_name; - } else if (channel.type === 'D') { - isDirect = true; - const teammateId = Utils.getUserIdFromChannelName(channel); - channelTitle = Utils.displayUsername(teammateId); - } else if (channel.type === Constants.GM_CHANNEL) { - isGroup = true; - channelTitle = ChannelUtils.buildGroupChannelName(channel.id); - } - - if (channel.header.length === 0) { - const link = ( - - - - ); - popoverContent = ( - -
    - ), - link - }} - /> -
    -
    this.refs.headerOverlay.hide()} - > - {'×'} -
    -
    - ); - } - - if (this.state.showEditChannelHeaderModal) { - editChannelHeaderModal = ( - this.setState({showEditChannelHeaderModal: false})} - channel={channel} - /> - ); - } - - if (this.state.showEditChannelPurposeModal) { - editChannelPurposeModal = ( - - ); - } - - renameChannelModal = ( - - ); - - if (this.state.showMembersModal) { - channelMembersModal = ( - this.refs.channelInviteModalButton.show()} - channel={channel} - isAdmin={isTeamAdmin || isSystemAdmin} - /> - ); - } - - quickSwitchModal = ( - - ); - } - - var collapseButtons = this.createCollapseButtons(currentId); - - const searchIcon = Constants.SEARCH_ICON_SVG; - const searchButton = ( - - ); - - var channelMenuDropdown = this.createDropdown(channel, channelTitle, isSystemAdmin, isTeamAdmin, isChannelAdmin, isDirect, isGroup, popoverContent); - - return ( -
    - - {editChannelHeaderModal} - {editChannelPurposeModal} - {renameChannelModal} - {channelMembersModal} - {quickSwitchModal} -
    - ); - } -} - -Navbar.defaultProps = { - teamDisplayName: '' -}; -Navbar.propTypes = { - teamDisplayName: PropTypes.string -}; -- cgit v1.2.3-1-g7c22