From e1801d0997023bd504f5ee40343042c84919b7b5 Mon Sep 17 00:00:00 2001
From: Corey Hulen <corey@hulen.com>
Date: Thu, 26 May 2016 12:11:55 -0700
Subject: Adding reload and recycle buttons to system console (#3102)

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

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

diff --git a/webapp/components/admin_console/reload_config.jsx b/webapp/components/admin_console/reload_config.jsx
new file mode 100644
index 000000000..c137afaf9
--- /dev/null
+++ b/webapp/components/admin_console/reload_config.jsx
@@ -0,0 +1,96 @@
+// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+import React from 'react';
+
+import Client from 'utils/web_client.jsx';
+import * as Utils from 'utils/utils.jsx';
+
+import {FormattedMessage} from 'react-intl';
+
+export default class ReloadConfigButton extends React.Component {
+    constructor(props) {
+        super(props);
+
+        this.handleReloadConfig = this.handleReloadConfig.bind(this);
+
+        this.state = {
+            loading: false,
+            fail: null
+        };
+    }
+
+    handleReloadConfig(e) {
+        e.preventDefault();
+
+        this.setState({
+            loading: true,
+            fail: null
+        });
+
+        Client.reloadConfig(
+            () => {
+                this.setState({
+                    loading: false
+                });
+            },
+            (err) => {
+                this.setState({
+                    loading: false,
+                    fail: err.message + ' - ' + err.detailed_error
+                });
+            }
+        );
+    }
+
+    render() {
+        let testMessage = null;
+        if (this.state.fail) {
+            testMessage = (
+                <div className='alert alert-warning'>
+                    <i className='fa fa-warning'></i>
+                    <FormattedMessage
+                        id='admin.reload.reloadFail'
+                        defaultMessage='Reload unsuccessful: {error}'
+                        values={{
+                            error: this.state.fail
+                        }}
+                    />
+                </div>
+            );
+        }
+
+        let contents = null;
+        if (this.state.loading) {
+            contents = (
+                <span>
+                    <span className='glyphicon glyphicon-refresh glyphicon-refresh-animate'/>
+                    {Utils.localizeMessage('admin.reload.loading', ' Loading...')}
+                </span>
+            );
+        } else {
+            contents = (
+                <FormattedMessage
+                    id='admin.reload.button'
+                    defaultMessage='Reload Configuration From Disk'
+                />
+            );
+        }
+
+        return (
+            <div className='form-group reload-config'>
+                <div className='col-sm-offset-4 col-sm-8'>
+                    <div>
+                        <button
+                            className='btn btn-default'
+                            onClick={this.handleReloadConfig}
+                        >
+                            {contents}
+                        </button>
+                        {testMessage}
+                    </div>
+                </div>
+            </div>
+        );
+    }
+}
\ No newline at end of file
-- 
cgit v1.2.3-1-g7c22

