Files
mattermost/webapp/components/about_build_modal.jsx

206 lines
7.2 KiB
React
Raw Normal View History

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
2015-10-06 20:02:39 -07:00
// See License.txt for license information.
2016-03-14 08:50:46 -04:00
import {Modal} from 'react-bootstrap';
2015-10-07 16:25:47 -07:00
2016-03-14 08:50:46 -04:00
import {FormattedMessage} from 'react-intl';
import PropTypes from 'prop-types';
2016-03-14 08:50:46 -04:00
import React from 'react';
2016-04-01 23:17:56 +05:00
import Constants from 'utils/constants.jsx';
2015-10-06 20:02:39 -07:00
export default class AboutBuildModal extends React.Component {
2015-10-07 16:25:47 -07:00
constructor(props) {
super(props);
this.doHide = this.doHide.bind(this);
}
doHide() {
this.props.onModalDismissed();
}
2015-10-06 20:02:39 -07:00
render() {
2015-10-16 09:10:54 -07:00
const config = global.window.mm_config;
2016-01-04 12:44:22 -05:00
const license = global.window.mm_license;
2016-04-01 23:17:56 +05:00
const mattermostLogo = Constants.MATTERMOST_ICON_SVG;
2016-01-04 12:44:22 -05:00
let title = (
<FormattedMessage
2016-03-08 23:09:33 -05:00
id='about.teamEditiont0'
2016-03-21 10:20:35 -04:00
defaultMessage='Team Edition'
/>
);
2016-04-01 23:17:56 +05:00
let subTitle = (
<FormattedMessage
id='about.teamEditionSt'
defaultMessage='All your team communication in one place, instantly searchable and accessible anywhere.'
/>
);
let learnMore = (
<div>
<FormattedMessage
id='about.teamEditionLearn'
defaultMessage='Join the Mattermost community at '
/>
<a
target='_blank'
rel='noopener noreferrer'
2016-04-01 23:17:56 +05:00
href='http://www.mattermost.org/'
>
{'mattermost.org'}
</a>
</div>
);
2016-01-04 12:44:22 -05:00
let licensee;
if (config.BuildEnterpriseReady === 'true') {
title = (
<FormattedMessage
2016-03-08 23:09:33 -05:00
id='about.teamEditiont1'
2016-03-21 10:20:35 -04:00
defaultMessage='Enterprise Edition'
/>
);
2016-04-01 23:17:56 +05:00
subTitle = (
<FormattedMessage
id='about.enterpriseEditionSt'
defaultMessage='Modern communication from behind your firewall.'
2016-04-01 23:17:56 +05:00
/>
);
learnMore = (
<div>
<FormattedMessage
id='about.enterpriseEditionLearn'
defaultMessage='Learn more about Enterprise Edition at '
/>
<a
target='_blank'
rel='noopener noreferrer'
2016-04-01 23:17:56 +05:00
href='http://about.mattermost.com/'
>
{'about.mattermost.com'}
</a>
</div>
);
if (license.IsLicensed === 'true') {
title = (
<FormattedMessage
id='about.enterpriseEditione1'
2016-03-21 10:20:35 -04:00
defaultMessage='Enterprise Edition'
/>
);
licensee = (
2016-04-01 23:17:56 +05:00
<div className='form-group'>
<FormattedMessage
id='about.licensed'
defaultMessage='Licensed to:'
2016-04-01 23:17:56 +05:00
/>
&nbsp;{license.Company}
</div>
);
}
2016-01-04 12:44:22 -05:00
}
2015-10-06 20:02:39 -07:00
let version = '\u00a0' + config.Version;
if (config.BuildNumber !== config.Version) {
version += '\u00a0 (' + config.BuildNumber + ')';
}
2015-10-06 20:02:39 -07:00
return (
2015-10-07 16:25:47 -07:00
<Modal
2016-04-01 23:17:56 +05:00
dialogClassName='about-modal'
2015-10-07 16:25:47 -07:00
show={this.props.show}
onHide={this.doHide}
2015-10-06 20:02:39 -07:00
>
2015-10-07 16:25:47 -07:00
<Modal.Header closeButton={true}>
<Modal.Title>
<FormattedMessage
id='about.title'
defaultMessage='About Mattermost'
/>
</Modal.Title>
2015-10-07 16:25:47 -07:00
</Modal.Header>
<Modal.Body>
2016-04-01 23:17:56 +05:00
<div className='about-modal__content'>
<div className='about-modal__logo'>
<span
className='icon'
dangerouslySetInnerHTML={{__html: mattermostLogo}}
/>
</div>
2016-04-01 23:17:56 +05:00
<div>
<h3 className='about-modal__title'>{'Mattermost'} {title}</h3>
<p className='about-modal__subtitle padding-bottom'>{subTitle}</p>
<div className='form-group less'>
<div>
<FormattedMessage
id='about.version'
defaultMessage='Version:'
/>
<span id='versionString'>{version}</span>
2016-04-01 23:17:56 +05:00
</div>
<div>
<FormattedMessage
id='about.database'
defaultMessage='Database:'
/>
{'\u00a0' + config.SQLDriverName}
</div>
2016-04-01 23:17:56 +05:00
</div>
{licensee}
</div>
</div>
2016-04-01 23:17:56 +05:00
<div className='about-modal__footer'>
{learnMore}
<div className='form-group about-modal__copyright'>
<FormattedMessage
2016-04-01 23:17:56 +05:00
id='about.copyright'
defaultMessage='Copyright 2015 - {currentYear} Mattermost, Inc. All rights reserved'
values={{
currentYear: new Date().getFullYear()
}}
/>
</div>
2015-10-06 20:02:39 -07:00
</div>
<div className='about-modal__hash form-group padding-top x2'>
<p>
<FormattedMessage
id='about.hash'
defaultMessage='Build Hash:'
/>
&nbsp;{config.BuildHash}
<br/>
<FormattedMessage
id='about.hashee'
defaultMessage='EE Build Hash:'
/>
&nbsp;{config.BuildHashEnterprise}
</p>
<p>
<FormattedMessage
id='about.date'
defaultMessage='Build Date:'
/>
&nbsp;{config.BuildDate}
</p>
</div>
2015-10-07 16:25:47 -07:00
</Modal.Body>
</Modal>
2015-10-06 20:02:39 -07:00
);
}
}
2015-10-07 16:25:47 -07:00
AboutBuildModal.defaultProps = {
show: false
};
AboutBuildModal.propTypes = {
show: PropTypes.bool.isRequired,
onModalDismissed: PropTypes.func.isRequired
2015-12-08 13:38:43 -05:00
};