diff options
author | Chris Duarte <csduarte@users.noreply.github.com> | 2017-08-28 09:22:54 -0700 |
---|---|---|
committer | Harrison Healey <harrisonmhealey@gmail.com> | 2017-08-28 12:22:54 -0400 |
commit | 510b1a18f5282981a70503c0cde474e121c9e651 (patch) | |
tree | 2d72de9607f55ab21e60ba92c604fee4961be3f0 /webapp/components | |
parent | 9e95af7809f3f19f9b53c4a1e875672db5c4eb63 (diff) | |
download | chat-510b1a18f5282981a70503c0cde474e121c9e651.tar.gz chat-510b1a18f5282981a70503c0cde474e121c9e651.tar.bz2 chat-510b1a18f5282981a70503c0cde474e121c9e651.zip |
Manage version configurations client versions (#7220)
* Add config values for client versions. Return client versions in ping response.
* Manage client version through System Console.
* Added client versions to diagnostics
* Added translations messages en.json file.
* Hide Client Versions on System Console.
Diffstat (limited to 'webapp/components')
-rw-r--r-- | webapp/components/admin_console/admin_sidebar.jsx | 17 | ||||
-rw-r--r-- | webapp/components/admin_console/client_versions_settings.jsx | 169 |
2 files changed, 186 insertions, 0 deletions
diff --git a/webapp/components/admin_console/admin_sidebar.jsx b/webapp/components/admin_console/admin_sidebar.jsx index 97b63e9c6..9a726c65c 100644 --- a/webapp/components/admin_console/admin_sidebar.jsx +++ b/webapp/components/admin_console/admin_sidebar.jsx @@ -277,6 +277,22 @@ export default class AdminSidebar extends React.Component { ); } + const SHOW_CLIENT_VERSIONS = false; + let clientVersions = null; + if (SHOW_CLIENT_VERSIONS) { + clientVersions = ( + <AdminSidebarSection + name='client_versions' + title={ + <FormattedMessage + id='admin.sidebar.client_versions' + defaultMessage='Client Versions' + /> + } + /> + ); + } + return ( <div className='admin-sidebar'> <AdminSidebarHeader/> @@ -477,6 +493,7 @@ export default class AdminSidebar extends React.Component { /> } /> + {clientVersions} </AdminSidebarSection> <AdminSidebarSection name='notifications' diff --git a/webapp/components/admin_console/client_versions_settings.jsx b/webapp/components/admin_console/client_versions_settings.jsx new file mode 100644 index 000000000..0c9a5f58a --- /dev/null +++ b/webapp/components/admin_console/client_versions_settings.jsx @@ -0,0 +1,169 @@ +// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import React from 'react'; + +import * as Utils from 'utils/utils.jsx'; + +import AdminSettings from './admin_settings.jsx'; +import {FormattedMessage} from 'react-intl'; +import SettingsGroup from './settings_group.jsx'; +import TextSetting from './text_setting.jsx'; + +export default class ClientVersionsSettings extends AdminSettings { + constructor(props) { + super(props); + + this.getConfigFromState = this.getConfigFromState.bind(this); + + this.renderSettings = this.renderSettings.bind(this); + } + + getConfigFromState(config) { + config.ClientRequirements.AndroidLatestVersion = this.state.androidLatestVersion; + config.ClientRequirements.AndroidMinVersion = this.state.androidMinVersion; + config.ClientRequirements.DesktopLatestVersion = this.state.desktopLatestVersion; + config.ClientRequirements.DesktopMinVersion = this.state.desktopMinVersion; + config.ClientRequirements.IosLatestVersion = this.state.iosLatestVersion; + config.ClientRequirements.IosMinVersion = this.state.iosMinVersion; + + return config; + } + + getStateFromConfig(config) { + return { + androidLatestVersion: config.ClientRequirements.AndroidLatestVersion, + androidMinVersion: config.ClientRequirements.AndroidMinVersion, + desktopLatestVersion: config.ClientRequirements.DesktopLatestVersion, + desktopMinVersion: config.ClientRequirements.DesktopMinVersion, + iosLatestVersion: config.ClientRequirements.IosLatestVersion, + iosMinVersion: config.ClientRequirements.IosMinVersion + }; + } + + renderTitle() { + return ( + <h3> + <FormattedMessage + id='admin.security.client_versions' + defaultMessage='Client Versions' + /> + </h3> + ); + } + + renderSettings() { + return ( + <SettingsGroup> + <TextSetting + id='androidLatestVersion' + label={ + <FormattedMessage + id='admin.client_versions.androidLatestVersion' + defaultMessage='Latest Android Version' + /> + } + placeholder={Utils.localizeMessage('admin.client_versions.androidLatestVersion', 'X.X.X')} + helpText={ + <FormattedMessage + id='admin.client_versions.androidLatestVersionHelp' + defaultMessage='The latest released Android version' + /> + } + value={this.state.androidLatestVersion} + onChange={this.handleChange} + /> + <TextSetting + id='androidMinVersion' + label={ + <FormattedMessage + id='admin.client_versions.androidMinVersion' + defaultMessage='Minimum Android Version' + /> + } + placeholder={Utils.localizeMessage('admin.client_versions.androidMinVersion', 'X.X.X')} + helpText={ + <FormattedMessage + id='admin.client_versions.androidMinVersionHelp' + defaultMessage='The minimum compliant Android version' + /> + } + value={this.state.androidMinVersion} + onChange={this.handleChange} + /> + <TextSetting + id='desktopLatestVersion' + label={ + <FormattedMessage + id='admin.client_versions.desktopLatestVersion' + defaultMessage='Latest Desktop Version' + /> + } + placeholder={Utils.localizeMessage('admin.client_versions.desktopLatestVersion', 'X.X.X')} + helpText={ + <FormattedMessage + id='admin.client_versions.desktopLatestVersionHelp' + defaultMessage='The latest released Desktop version' + /> + } + value={this.state.desktopLatestVersion} + onChange={this.handleChange} + /> + <TextSetting + id='desktopMinVersion' + label={ + <FormattedMessage + id='admin.client_versions.desktopMinVersion' + defaultMessage='Minimum Destop Version' + /> + } + placeholder={Utils.localizeMessage('admin.client_versions.desktopMinVersion', 'X.X.X')} + helpText={ + <FormattedMessage + id='admin.client_versions.desktopMinVersionHelp' + defaultMessage='The minimum compliant Desktop version' + /> + } + value={this.state.desktopMinVersion} + onChange={this.handleChange} + /> + <TextSetting + id='iosLatestVersion' + label={ + <FormattedMessage + id='admin.client_versions.iosLatestVersion' + defaultMessage='Latest IOS Version' + /> + } + placeholder={Utils.localizeMessage('admin.client_versions.iosLatestVersion', 'X.X.X')} + helpText={ + <FormattedMessage + id='admin.client_versions.iosLatestVersionHelp' + defaultMessage='The latest released IOS version' + /> + } + value={this.state.iosLatestVersion} + onChange={this.handleChange} + /> + <TextSetting + id='iosMinVersion' + label={ + <FormattedMessage + id='admin.client_versions.iosMinVersion' + defaultMessage='Minimum IOS Version' + /> + } + placeholder={Utils.localizeMessage('admin.client_versions.iosMinVersion', 'X.X.X')} + helpText={ + <FormattedMessage + id='admin.client_versions.iosMinVersionHelp' + defaultMessage='The minimum compliant IOS version' + /> + } + value={this.state.iosMinVersion} + onChange={this.handleChange} + /> + </SettingsGroup> + ); + } +} |