diff options
Diffstat (limited to 'webapp/components/admin_console/push_settings.jsx')
-rw-r--r-- | webapp/components/admin_console/push_settings.jsx | 233 |
1 files changed, 0 insertions, 233 deletions
diff --git a/webapp/components/admin_console/push_settings.jsx b/webapp/components/admin_console/push_settings.jsx deleted file mode 100644 index b5f788c86..000000000 --- a/webapp/components/admin_console/push_settings.jsx +++ /dev/null @@ -1,233 +0,0 @@ -// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. -// See License.txt for license information. - -import React from 'react'; - -import Constants from 'utils/constants.jsx'; -import * as Utils from 'utils/utils.jsx'; - -import AdminSettings from './admin_settings.jsx'; -import DropdownSetting from './dropdown_setting.jsx'; -import {FormattedMessage, FormattedHTMLMessage} from 'react-intl'; -import SettingsGroup from './settings_group.jsx'; -import TextSetting from './text_setting.jsx'; - -const PUSH_NOTIFICATIONS_OFF = 'off'; -const PUSH_NOTIFICATIONS_MHPNS = 'mhpns'; -const PUSH_NOTIFICATIONS_MTPNS = 'mtpns'; -const PUSH_NOTIFICATIONS_CUSTOM = 'custom'; - -export default class PushSettings extends AdminSettings { - constructor(props) { - super(props); - - this.canSave = this.canSave.bind(this); - - this.handleAgreeChange = this.handleAgreeChange.bind(this); - - this.getConfigFromState = this.getConfigFromState.bind(this); - - this.renderSettings = this.renderSettings.bind(this); - } - - canSave() { - return this.state.pushNotificationServerType !== PUSH_NOTIFICATIONS_MHPNS || this.state.agree; - } - - handleAgreeChange(e) { - this.setState({ - agree: e.target.checked - }); - } - - handleChange(id, value) { - if (id === 'pushNotificationServerType') { - this.setState({ - agree: false - }); - - if (value === PUSH_NOTIFICATIONS_MHPNS) { - this.setState({ - pushNotificationServer: Constants.MHPNS - }); - } else if (value === PUSH_NOTIFICATIONS_MTPNS) { - this.setState({ - pushNotificationServer: Constants.MTPNS - }); - } - } - - super.handleChange(id, value); - } - - getConfigFromState(config) { - config.EmailSettings.SendPushNotifications = this.state.pushNotificationServerType !== PUSH_NOTIFICATIONS_OFF; - config.EmailSettings.PushNotificationServer = this.state.pushNotificationServer.trim(); - config.EmailSettings.PushNotificationContents = this.state.pushNotificationContents; - - return config; - } - - getStateFromConfig(config) { - let pushNotificationServerType = PUSH_NOTIFICATIONS_CUSTOM; - let agree = false; - if (!config.EmailSettings.SendPushNotifications) { - pushNotificationServerType = PUSH_NOTIFICATIONS_OFF; - } else if (config.EmailSettings.PushNotificationServer === Constants.MHPNS && - global.window.mm_license.IsLicensed === 'true' && global.window.mm_license.MHPNS === 'true') { - pushNotificationServerType = PUSH_NOTIFICATIONS_MHPNS; - agree = true; - } else if (config.EmailSettings.PushNotificationServer === Constants.MTPNS) { - pushNotificationServerType = PUSH_NOTIFICATIONS_MTPNS; - } - - let pushNotificationServer = config.EmailSettings.PushNotificationServer; - if (pushNotificationServerType === PUSH_NOTIFICATIONS_MTPNS) { - pushNotificationServer = Constants.MTPNS; - } else if (pushNotificationServerType === PUSH_NOTIFICATIONS_MHPNS) { - pushNotificationServer = Constants.MHPNS; - } - - return { - pushNotificationServerType, - pushNotificationServer, - pushNotificationContents: config.EmailSettings.PushNotificationContents, - agree - }; - } - - renderTitle() { - return ( - <FormattedMessage - id='admin.notifications.title' - defaultMessage='Notification Settings' - /> - ); - } - - renderSettings() { - const pushNotificationServerTypes = []; - pushNotificationServerTypes.push({value: PUSH_NOTIFICATIONS_OFF, text: Utils.localizeMessage('admin.email.pushOff', 'Do not send push notifications')}); - if (global.window.mm_license.IsLicensed === 'true' && global.window.mm_license.MHPNS === 'true') { - pushNotificationServerTypes.push({value: PUSH_NOTIFICATIONS_MHPNS, text: Utils.localizeMessage('admin.email.mhpns', 'Use encrypted, production-quality HPNS connection to iOS and Android apps')}); - } - pushNotificationServerTypes.push({value: PUSH_NOTIFICATIONS_MTPNS, text: Utils.localizeMessage('admin.email.mtpns', 'Use iOS and Android apps on iTunes and Google Play with TPNS')}); - pushNotificationServerTypes.push({value: PUSH_NOTIFICATIONS_CUSTOM, text: Utils.localizeMessage('admin.email.selfPush', 'Manually enter Push Notification Service location')}); - - let sendHelpText = null; - let pushServerHelpText = null; - if (this.state.pushNotificationServerType === PUSH_NOTIFICATIONS_OFF) { - sendHelpText = ( - <FormattedHTMLMessage - id='admin.email.pushOffHelp' - defaultMessage='Please see <a href="https://about.mattermost.com/default-mobile-push-notifications/" target="_blank">documentation on push notifications</a> to learn more about setup options.' - /> - ); - } else if (this.state.pushNotificationServerType === PUSH_NOTIFICATIONS_MHPNS) { - pushServerHelpText = ( - <FormattedHTMLMessage - id='admin.email.mhpnsHelp' - defaultMessage='Download <a href="https://about.mattermost.com/mattermost-ios-app/" target="_blank">Mattermost iOS app</a> from iTunes. Download <a href="https://about.mattermost.com/mattermost-android-app/" target="_blank">Mattermost Android app</a> from Google Play. Learn more about the <a href="https://about.mattermost.com/default-hpns/" target="_blank">Mattermost Hosted Push Notification Service</a>.' - /> - ); - } else if (this.state.pushNotificationServerType === PUSH_NOTIFICATIONS_MTPNS) { - pushServerHelpText = ( - <FormattedHTMLMessage - id='admin.email.mtpnsHelp' - defaultMessage='Download <a href="https://about.mattermost.com/mattermost-ios-app/" target="_blank">Mattermost iOS app</a> from iTunes. Download <a href="https://about.mattermost.com/mattermost-android-app/" target="_blank">Mattermost Android app</a> from Google Play. Learn more about the <a href="https://about.mattermost.com/default-tpns/" target="_blank">Mattermost Test Push Notification Service</a>.' - /> - ); - } else { - pushServerHelpText = ( - <FormattedHTMLMessage - id='admin.email.easHelp' - defaultMessage='Learn more about compiling and deploying your own mobile apps from an <a href="https://about.mattermost.com/default-enterprise-app-store" target="_blank">Enterprise App Store</a>.' - /> - ); - } - - let tosCheckbox; - if (this.state.pushNotificationServerType === PUSH_NOTIFICATIONS_MHPNS) { - tosCheckbox = ( - <div className='form-group'> - <div className='col-sm-4'/> - <div className='col-sm-8'> - <input - type='checkbox' - ref='agree' - checked={this.state.agree} - onChange={this.handleAgreeChange} - /> - <FormattedHTMLMessage - id='admin.email.agreeHPNS' - defaultMessage=' I understand and accept the Mattermost Hosted Push Notification Service <a href="https://about.mattermost.com/hpns-terms/" target="_blank">Terms of Service</a> and <a href="https://about.mattermost.com/hpns-privacy/" target="_blank">Privacy Policy</a>.' - /> - </div> - </div> - ); - } - - return ( - <SettingsGroup - header={ - <FormattedMessage - id='admin.notifications.push' - defaultMessage='Mobile Push' - /> - } - > - <DropdownSetting - id='pushNotificationServerType' - values={pushNotificationServerTypes} - label={ - <FormattedMessage - id='admin.email.pushTitle' - defaultMessage='Enable Push Notifications: ' - /> - } - value={this.state.pushNotificationServerType} - onChange={this.handleChange} - helpText={sendHelpText} - /> - {tosCheckbox} - <TextSetting - id='pushNotificationServer' - label={ - <FormattedMessage - id='admin.email.pushServerTitle' - defaultMessage='Push Notification Server:' - /> - } - placeholder={Utils.localizeMessage('admin.email.pushServerEx', 'E.g.: "http://push-test.mattermost.com"')} - helpText={pushServerHelpText} - value={this.state.pushNotificationServer} - onChange={this.handleChange} - disabled={this.state.pushNotificationServerType !== PUSH_NOTIFICATIONS_CUSTOM} - /> - <DropdownSetting - id='pushNotificationContents' - values={[ - {value: 'generic_no_channel', text: Utils.localizeMessage('admin.email.genericNoChannelPushNotification', '"Send generic description with only sender name')}, - {value: 'generic', text: Utils.localizeMessage('admin.email.genericPushNotification', 'Send generic description with sender and channel names')}, - {value: 'full', text: Utils.localizeMessage('admin.email.fullPushNotification', 'Send full message snippet')} - ]} - label={ - <FormattedMessage - id='admin.email.pushContentTitle' - defaultMessage='Push Notification Contents:' - /> - } - value={this.state.pushNotificationContents} - onChange={this.handleChange} - disabled={this.state.pushNotificationServerType === PUSH_NOTIFICATIONS_OFF} - helpText={ - <FormattedHTMLMessage - id='admin.email.pushContentDesc' - defaultMessage='"Send generic description with only sender name" includes only the name of the person who sent the message in push notifications, with no information about channel name or message contents.<br /><br />"Send generic description with sender and channel names" includes the name of the person who sent the message and the channel it was sent in, but not the message text.<br /><br />"Send full message snippet" includes a message excerpt in push notifications, which may contain confidential information sent in messages. If your Push Notification Service is outside your firewall, it is *highly recommended* this option only be used with an "https" protocol to encrypt the connection.' - /> - } - /> - </SettingsGroup> - ); - } -} |