From fd53e3b7868234af328cd73150318fc8e7a26b89 Mon Sep 17 00:00:00 2001
From: Harrison Healey <harrisonmhealey@gmail.com>
Date: Tue, 17 May 2016 07:21:39 -0400
Subject: PLT-2257 Reorganized System Console  (#3003)

* Reorganized system console

* Fixed the names of some components

* Fixed timestamp for BrandImageSetting

* Fixed merge issues

* Updated push notification settings to match master branch

* Removed top level setting pages and moved enable Gitlab/LDAP settings onto their respective pages

* Re-added restrictDirectMessage setting to system console

* Re-added email connection test and fixed some margins

* Fixed ESLint errors

* Renamed Authentication > Onboarding to Authentication > Email in the system console

* Renamed Customization > Whitelabeling to Customization > Custom Branding in System Console

* Re-added EnableOpenServer to system console
---
 .../admin_console/external_service_settings.jsx    | 94 ++++++++++++++++++++++
 1 file changed, 94 insertions(+)
 create mode 100644 webapp/components/admin_console/external_service_settings.jsx

(limited to 'webapp/components/admin_console/external_service_settings.jsx')

diff --git a/webapp/components/admin_console/external_service_settings.jsx b/webapp/components/admin_console/external_service_settings.jsx
new file mode 100644
index 000000000..88c6c28ea
--- /dev/null
+++ b/webapp/components/admin_console/external_service_settings.jsx
@@ -0,0 +1,94 @@
+// 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 {FormattedHTMLMessage, FormattedMessage} from 'react-intl';
+import SettingsGroup from './settings_group.jsx';
+import TextSetting from './text_setting.jsx';
+
+export default class ExternalServiceSettings extends AdminSettings {
+    constructor(props) {
+        super(props);
+
+        this.getConfigFromState = this.getConfigFromState.bind(this);
+
+        this.renderSettings = this.renderSettings.bind(this);
+
+        this.state = Object.assign(this.state, {
+            segmentDeveloperKey: props.config.ServiceSettings.SegmentDeveloperKey,
+            googleDeveloperKey: props.config.ServiceSettings.GoogleDeveloperKey
+        });
+    }
+
+    getConfigFromState(config) {
+        config.ServiceSettings.SegmentDeveloperKey = this.state.segmentDeveloperKey;
+        config.ServiceSettings.GoogleDeveloperKey = this.state.googleDeveloperKey;
+
+        return config;
+    }
+
+    renderTitle() {
+        return (
+            <h3>
+                <FormattedMessage
+                    id='admin.integration.title'
+                    defaultMessage='Integration Settings'
+                />
+            </h3>
+        );
+    }
+
+    renderSettings() {
+        return (
+            <SettingsGroup
+                header={
+                    <FormattedMessage
+                        id='admin.integrations.external'
+                        defaultMessage='External Services'
+                    />
+                }
+            >
+                <TextSetting
+                    id='segmentDeveloperKey'
+                    label={
+                        <FormattedMessage
+                            id='admin.service.segmentTitle'
+                            defaultMessage='Segment Developer Key:'
+                        />
+                    }
+                    placeholder={Utils.localizeMessage('admin.service.segmentExample', 'Ex "g3fgGOXJAQ43QV7rAh6iwQCkV4cA1Gs"')}
+                    helpText={
+                        <FormattedMessage
+                            id='admin.service.segmentDescription'
+                            defaultMessage='For users running a SaaS services, sign up for a key at Segment.com to track metrics.'
+                        />
+                    }
+                    value={this.state.segmentDeveloperKey}
+                    onChange={this.handleChange}
+                />
+                <TextSetting
+                    id='googleDeveloperKey'
+                    label={
+                        <FormattedMessage
+                            id='admin.service.googleTitle'
+                            defaultMessage='Google Developer Key:'
+                        />
+                    }
+                    placeholder={Utils.localizeMessage('admin.service.googleExample', 'Ex "7rAh6iwQCkV4cA1Gsg3fgGOXJAQ43QV"')}
+                    helpText={
+                        <FormattedHTMLMessage
+                            id='admin.service.googleDescription'
+                            defaultMessage='Set this key to enable embedding of YouTube video previews based on hyperlinks appearing in messages or comments. Instructions to obtain a key available at <a href="https://www.youtube.com/watch?v=Im69kzhpR3I" target="_blank">https://www.youtube.com/watch?v=Im69kzhpR3I</a>. Leaving the field blank disables the automatic generation of YouTube video previews from links.'
+                        />
+                    }
+                    value={this.state.googleDeveloperKey}
+                    onChange={this.handleChange}
+                />
+            </SettingsGroup>
+        );
+    }
+}
\ No newline at end of file
-- 
cgit v1.2.3-1-g7c22

