From da0747ac7a3c8d3ef8eb2620f52fe5d1fd355a12 Mon Sep 17 00:00:00 2001
From: Christopher Speller <crspeller@gmail.com>
Date: Wed, 6 Jul 2016 12:04:22 -0400
Subject: Adding webserver mode to the system console. Automatic enabling of
 gzip on existing servers (#3458)

---
 .../webserver_mode_dropdown_setting.jsx            | 101 +++++++++++++++++++++
 1 file changed, 101 insertions(+)
 create mode 100644 webapp/components/admin_console/webserver_mode_dropdown_setting.jsx

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

diff --git a/webapp/components/admin_console/webserver_mode_dropdown_setting.jsx b/webapp/components/admin_console/webserver_mode_dropdown_setting.jsx
new file mode 100644
index 000000000..9581816f1
--- /dev/null
+++ b/webapp/components/admin_console/webserver_mode_dropdown_setting.jsx
@@ -0,0 +1,101 @@
+// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+import React from 'react';
+import * as Utils from 'utils/utils.jsx';
+
+import DropdownSetting from './dropdown_setting.jsx';
+import {FormattedMessage} from 'react-intl';
+
+const WEBSERVER_MODE_HELP_TEXT = (
+    <div>
+        <table
+            className='table table-bordered table-margin--none'
+            cellPadding='5'
+        >
+            <tbody>
+                <tr>
+                    <td className='help-text'>
+                        <FormattedMessage
+                            id='admin.webserverModeGzip'
+                            defaultMessage='gzip'
+                        />
+                    </td>
+                    <td className='help-text'>
+                        <FormattedMessage
+                            id='admin.webserverModeGzipDescription'
+                            defaultMessage='The Mattermost server will serve static files compressed with gzip.'
+                        />
+                    </td>
+                </tr>
+                <tr>
+                    <td className='help-text'>
+                        <FormattedMessage
+                            id='admin.webserverModeUncompressed'
+                            defaultMessage='Uncompressed'
+                        />
+                    </td>
+                    <td className='help-text'>
+                        <FormattedMessage
+                            id='admin.webserverModeUncompressedDescription'
+                            defaultMessage='The Mattermost server will serve static files uncompressed.'
+                        />
+                    </td>
+                </tr>
+                <tr>
+                    <td className='help-text'>
+                        <FormattedMessage
+                            id='admin.webserverModeDisabled'
+                            defaultMessage='Disabled'
+                        />
+                    </td>
+                    <td className='help-text'>
+                        <FormattedMessage
+                            id='admin.webserverModeDisabledDescription'
+                            defaultMessage='The Mattermost server will not serve static files.'
+                        />
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+        <p className='help-text'>
+            <FormattedMessage
+                id='admin.webserverModeHelpText'
+                defaultMessage='gzip compression applies to static content files. It is recommended to enable gzip to improve performance unless your environment has specific restrictions, such as a web proxy that distributes gzip files poorly. This setting requires a server restart to take effect.'
+            />
+        </p>
+    </div>
+);
+
+export default class WebserverModeDropdownSetting extends React.Component {
+    render() {
+        return (
+            <DropdownSetting
+                id='webserverMode'
+                values={[
+                    {value: 'gzip', text: Utils.localizeMessage('admin.webserverModeGzip', 'gzip')},
+                    {value: 'uncompressed', text: Utils.localizeMessage('admin.webserverModeUncompressed', 'Uncompressed')},
+                    {value: 'disabled', text: Utils.localizeMessage('admin.webserverModeDiabled', 'Disabled')}
+                ]}
+                label={
+                    <FormattedMessage
+                        id='admin.webserverModeTitle'
+                        defaultMessage='Webserver Mode:'
+                    />
+                }
+                value={this.props.value}
+                onChange={this.props.onChange}
+                disabled={this.props.disabled}
+                helpText={WEBSERVER_MODE_HELP_TEXT}
+            />
+        );
+    }
+}
+WebserverModeDropdownSetting.defaultProps = {
+};
+
+WebserverModeDropdownSetting.propTypes = {
+    value: React.PropTypes.string.isRequired,
+    onChange: React.PropTypes.func.isRequired,
+    disabled: React.PropTypes.bool.isRequired
+};
-- 
cgit v1.2.3-1-g7c22

