diff options
author | Harrison Healey <harrisonmhealey@gmail.com> | 2016-05-17 07:21:39 -0400 |
---|---|---|
committer | Christopher Speller <crspeller@gmail.com> | 2016-05-17 07:21:39 -0400 |
commit | fd53e3b7868234af328cd73150318fc8e7a26b89 (patch) | |
tree | 48c49af0d6b25bf978430efc61aa5b3b63b3414a /webapp/components/admin_console/admin_console.jsx | |
parent | 5f5f813387a914d6e34945490c438755adfa8505 (diff) | |
download | chat-fd53e3b7868234af328cd73150318fc8e7a26b89.tar.gz chat-fd53e3b7868234af328cd73150318fc8e7a26b89.tar.bz2 chat-fd53e3b7868234af328cd73150318fc8e7a26b89.zip |
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
Diffstat (limited to 'webapp/components/admin_console/admin_console.jsx')
-rw-r--r-- | webapp/components/admin_console/admin_console.jsx | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/webapp/components/admin_console/admin_console.jsx b/webapp/components/admin_console/admin_console.jsx new file mode 100644 index 000000000..e5c528614 --- /dev/null +++ b/webapp/components/admin_console/admin_console.jsx @@ -0,0 +1,61 @@ +// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved. +// See License.txt for license information. + +import $ from 'jquery'; +import React from 'react'; + +import AdminStore from 'stores/admin_store.jsx'; +import * as AsyncClient from 'utils/async_client.jsx'; + +import AdminSidebar from './admin_sidebar.jsx'; + +export default class AdminConsole extends React.Component { + static get propTypes() { + return { + children: React.PropTypes.node.isRequired + }; + } + + constructor(props) { + super(props); + + this.handleConfigChange = this.handleConfigChange.bind(this); + + this.state = { + config: AdminStore.getConfig() + }; + } + + componentWillMount() { + AdminStore.addConfigChangeListener(this.handleConfigChange); + AsyncClient.getConfig(); + } + + componentWillUnmount() { + AdminStore.removeConfigChangeListener(this.handleConfigChange); + } + + handleConfigChange() { + this.setState({ + config: AdminStore.getConfig() + }); + } + + render() { + if ($.isEmptyObject(this.state.config)) { + return <div className='admin-console'/>; + } + + // not every page in the system console will need the config, but the vast majority will + const children = React.cloneElement(this.props.children, { + config: this.state.config + }); + + return ( + <div className='admin-console'> + <AdminSidebar/> + {children} + </div> + ); + } +} |