diff options
Diffstat (limited to 'webapp/components/edit_channel_purpose_modal.jsx')
-rw-r--r-- | webapp/components/edit_channel_purpose_modal.jsx | 188 |
1 files changed, 0 insertions, 188 deletions
diff --git a/webapp/components/edit_channel_purpose_modal.jsx b/webapp/components/edit_channel_purpose_modal.jsx deleted file mode 100644 index c00b30c49..000000000 --- a/webapp/components/edit_channel_purpose_modal.jsx +++ /dev/null @@ -1,188 +0,0 @@ -// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. -// See License.txt for license information. - -import PreferenceStore from 'stores/preference_store.jsx'; - -import Constants from 'utils/constants.jsx'; -import * as Utils from 'utils/utils.jsx'; - -import PropTypes from 'prop-types'; - -import React from 'react'; -import {Modal} from 'react-bootstrap'; -import {FormattedMessage} from 'react-intl'; -import {updateChannelPurpose} from 'actions/channel_actions.jsx'; - -export default class EditChannelPurposeModal extends React.Component { - constructor(props) { - super(props); - - this.handleHide = this.handleHide.bind(this); - this.handleSave = this.handleSave.bind(this); - this.handleKeyDown = this.handleKeyDown.bind(this); - this.onPreferenceChange = this.onPreferenceChange.bind(this); - - this.ctrlSend = PreferenceStore.getBool(Constants.Preferences.CATEGORY_ADVANCED_SETTINGS, 'send_on_ctrl_enter'); - - this.state = { - serverError: '', - show: true, - submitted: false - }; - } - - componentDidMount() { - PreferenceStore.addChangeListener(this.onPreferenceChange); - Utils.placeCaretAtEnd(this.refs.purpose); - } - - componentWillUnmount() { - PreferenceStore.removeChangeListener(this.onPreferenceChange); - } - - handleHide() { - this.setState({show: false}); - } - - onPreferenceChange() { - this.ctrlSend = PreferenceStore.getBool(Constants.Preferences.CATEGORY_ADVANCED_SETTINGS, 'send_on_ctrl_enter'); - } - - handleKeyDown(e) { - if (this.ctrlSend && e.keyCode === Constants.KeyCodes.ENTER && e.ctrlKey) { - e.preventDefault(); - this.handleSave(e); - } else if (!this.ctrlSend && e.keyCode === Constants.KeyCodes.ENTER && !e.shiftKey && !e.altKey) { - e.preventDefault(); - this.handleSave(e); - } - } - - handleSave() { - if (!this.props.channel) { - return; - } - - this.setState({submitted: true}); - - updateChannelPurpose( - this.props.channel.id, - this.refs.purpose.value.trim(), - () => { - this.handleHide(); - }, - (err) => { - if (err.id === 'api.context.invalid_param.app_error') { - this.setState({serverError: Utils.localizeMessage('edit_channel_purpose_modal.error', 'This channel purpose is too long, please enter a shorter one')}); - } else { - this.setState({serverError: err.message}); - } - } - ); - } - - render() { - let serverError = null; - if (this.state.serverError) { - serverError = ( - <div className='form-group has-error'> - <br/> - <label className='control-label'>{this.state.serverError}</label> - </div> - ); - } - - let title = ( - <span> - <FormattedMessage - id='edit_channel_purpose_modal.title1' - defaultMessage='Edit Purpose' - /> - </span> - ); - if (this.props.channel.display_name) { - title = ( - <span> - <FormattedMessage - id='edit_channel_purpose_modal.title2' - defaultMessage='Edit Purpose for ' - /> - <span className='name'>{this.props.channel.display_name}</span> - </span> - ); - } - - let channelPurposeModal = ( - <FormattedMessage - id='edit_channel_purpose_modal.body' - defaultMessage='Describe how this channel should be used. This text appears in the channel list in the "More..." menu and helps others decide whether to join.' - /> - ); - if (this.props.channel.type === 'P') { - channelPurposeModal = ( - <FormattedMessage - id='edit_channel_private_purpose_modal.body' - defaultMessage='This text appears in the \"View Info\" modal of the private channel.' - /> - ); - } - - return ( - <Modal - className='modal-edit-channel-purpose' - ref='modal' - show={this.state.show} - onHide={this.handleHide} - onExited={this.props.onModalDismissed} - > - <Modal.Header closeButton={true}> - <Modal.Title> - {title} - </Modal.Title> - </Modal.Header> - <Modal.Body> - <p> - {channelPurposeModal} - </p> - <textarea - ref='purpose' - className='form-control no-resize' - rows='6' - maxLength='250' - defaultValue={this.props.channel.purpose} - onKeyDown={this.handleKeyDown} - /> - {serverError} - </Modal.Body> - <Modal.Footer> - <button - type='button' - className='btn btn-default' - onClick={this.handleHide} - > - <FormattedMessage - id='edit_channel_purpose_modal.cancel' - defaultMessage='Cancel' - /> - </button> - <button - type='button' - className='btn btn-primary' - disabled={this.state.submitted} - onClick={this.handleSave} - > - <FormattedMessage - id='edit_channel_purpose_modal.save' - defaultMessage='Save' - /> - </button> - </Modal.Footer> - </Modal> - ); - } -} - -EditChannelPurposeModal.propTypes = { - channel: PropTypes.object, - onModalDismissed: PropTypes.func.isRequired -}; |