summaryrefslogtreecommitdiffstats
path: root/webapp/components/admin_console
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/components/admin_console')
-rw-r--r--webapp/components/admin_console/admin_sidebar.jsx17
-rw-r--r--webapp/components/admin_console/client_versions_settings.jsx169
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>
+ );
+ }
+}