diff options
Diffstat (limited to 'webapp/components/channel_info_modal.jsx')
-rw-r--r-- | webapp/components/channel_info_modal.jsx | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/webapp/components/channel_info_modal.jsx b/webapp/components/channel_info_modal.jsx new file mode 100644 index 000000000..444f3db8d --- /dev/null +++ b/webapp/components/channel_info_modal.jsx @@ -0,0 +1,104 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import * as Utils from 'utils/utils.jsx'; + +import {intlShape, injectIntl, defineMessages, FormattedMessage} from 'react-intl'; + +import {Modal} from 'react-bootstrap'; + +const holders = defineMessages({ + notFound: { + id: 'channel_info.notFound', + defaultMessage: 'No Channel Found' + } +}); + +import React from 'react'; + +class ChannelInfoModal extends React.Component { + render() { + const {formatMessage} = this.props.intl; + let channel = this.props.channel; + if (!channel) { + channel = { + display_name: formatMessage(holders.notFound), + name: formatMessage(holders.notFound), + purpose: formatMessage(holders.notFound), + id: formatMessage(holders.notFound) + }; + } + + const channelURL = Utils.getShortenedTeamURL() + channel.name; + + return ( + <Modal + show={this.props.show} + onHide={this.props.onHide} + > + <Modal.Header closeButtton={true}> + {channel.display_name} + </Modal.Header> + <Modal.Body ref='modalBody'> + <div className='row form-group'> + <div className='col-sm-3 info__label'> + <FormattedMessage + id='channel_info.name' + defaultMessage='Channel Name:' + /> + </div> + <div className='col-sm-9'>{channel.display_name}</div> + </div> + <div className='row form-group'> + <div className='col-sm-3 info__label'> + <FormattedMessage + id='channel_info.url' + defaultMessage='Channel URL:' + /> + </div> + <div className='col-sm-9'>{channelURL}</div> + </div> + <div className='row form-group'> + <div className='col-sm-3 info__label'> + <FormattedMessage + id='channel_info.id' + defaultMessage='Channel ID:' + /> + </div> + <div className='col-sm-9'>{channel.id}</div> + </div> + <div className='row'> + <div className='col-sm-3 info__label'> + <FormattedMessage + id='channel_info.purpose' + defaultMessage='Channel Purpose:' + /> + </div> + <div className='col-sm-9'>{channel.purpose}</div> + </div> + </Modal.Body> + <Modal.Footer> + <button + type='button' + className='btn btn-default' + onClick={this.props.onHide} + > + <FormattedMessage + id='channel_info.close' + defaultMessage='Close' + /> + </button> + </Modal.Footer> + </Modal> + ); + } +} + +ChannelInfoModal.propTypes = { + intl: intlShape.isRequired, + show: React.PropTypes.bool.isRequired, + onHide: React.PropTypes.func.isRequired, + channel: React.PropTypes.object.isRequired +}; + +export default injectIntl(ChannelInfoModal);
\ No newline at end of file |