summaryrefslogtreecommitdiffstats
path: root/webapp/components/admin_console/ldap_test_button.jsx
diff options
context:
space:
mode:
authorGeorge Goldberg <george@gberg.me>2017-07-04 08:00:17 +0100
committerChristopher Speller <crspeller@gmail.com>2017-07-04 00:00:17 -0700
commit0a3bb8fdb10f2ce72e5e975a35fc7d22637265f9 (patch)
tree3a3c7dfed0830d9e3a945f862c60d99f15074ca1 /webapp/components/admin_console/ldap_test_button.jsx
parentf54aee1ef5466fdf11803cd75be3b7267e68540f (diff)
downloadchat-0a3bb8fdb10f2ce72e5e975a35fc7d22637265f9.tar.gz
chat-0a3bb8fdb10f2ce72e5e975a35fc7d22637265f9.tar.bz2
chat-0a3bb8fdb10f2ce72e5e975a35fc7d22637265f9.zip
Refactor system console buttons into RequestButton component. (#6808)
Since I was going to make yet another button for the ElasticSearch test config button, I refactored all of them to use a single common component and tidied that component up and gave it some unit tests.
Diffstat (limited to 'webapp/components/admin_console/ldap_test_button.jsx')
-rw-r--r--webapp/components/admin_console/ldap_test_button.jsx146
1 files changed, 0 insertions, 146 deletions
diff --git a/webapp/components/admin_console/ldap_test_button.jsx b/webapp/components/admin_console/ldap_test_button.jsx
deleted file mode 100644
index e785d0f78..000000000
--- a/webapp/components/admin_console/ldap_test_button.jsx
+++ /dev/null
@@ -1,146 +0,0 @@
-import PropTypes from 'prop-types';
-
-// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
-// See License.txt for license information.
-
-import React from 'react';
-
-import * as Utils from 'utils/utils.jsx';
-
-import {FormattedMessage, FormattedHTMLMessage} from 'react-intl';
-
-import {ldapTest} from 'actions/admin_actions.jsx';
-
-export default class LdapTestButton extends React.Component {
- static get propTypes() {
- return {
- disabled: PropTypes.bool,
- submitFunction: PropTypes.func,
- saveNeeded: PropTypes.bool
- };
- }
- constructor(props) {
- super(props);
-
- this.handleLdapTest = this.handleLdapTest.bind(this);
-
- this.state = {
- buisy: false,
- fail: null,
- success: false
- };
- }
-
- handleLdapTest(e) {
- e.preventDefault();
-
- this.setState({
- buisy: true,
- fail: null,
- success: false
- });
-
- const doRequest = () => { //eslint-disable-line func-style
- ldapTest(
- () => {
- this.setState({
- buisy: false,
- success: true
- });
- },
- (err) => {
- this.setState({
- buisy: false,
- fail: err.message
- });
- }
- );
- };
-
- // If we need to run the save function then run it with our request function as callback
- if (this.props.saveNeeded) {
- this.props.submitFunction(doRequest);
- } else {
- doRequest();
- }
- }
-
- render() {
- let message = null;
- if (this.state.fail) {
- message = (
- <div>
- <div className='alert alert-warning'>
- <i className='fa fa-warning'/>
- <FormattedMessage
- id='admin.ldap.testFailure'
- defaultMessage='AD/LDAP Test Failure: {error}'
- values={{
- error: this.state.fail
- }}
- />
- </div>
- </div>
- );
- } else if (this.state.success) {
- message = (
- <div>
- <div className='alert alert-success'>
- <i className='fa fa-success'/>
- <FormattedMessage
- id='admin.ldap.testSuccess'
- defaultMessage='AD/LDAP Test Successful'
- values={{
- error: this.state.fail
- }}
- />
- </div>
- </div>
- );
- }
-
- const helpText = (
- <FormattedHTMLMessage
- id='admin.ldap.testHelpText'
- defaultMessage='Tests if the Mattermost server can connect to the AD/LDAP server specified. See log file for more detailed error messages.'
- />
- );
-
- let contents = null;
- if (this.state.loading) {
- contents = (
- <span>
- <span className='fa fa-refresh icon--rotate'/>
- {Utils.localizeMessage('admin.reload.loading', ' Loading...')}
- </span>
- );
- } else {
- contents = (
- <FormattedMessage
- id='admin.ldap.ldap_test_button'
- defaultMessage='AD/LDAP Test'
- />
- );
- }
-
- return (
- <div className='form-group reload-config'>
- <div className='col-sm-offset-4 col-sm-8'>
- <div>
- <button
- className='btn btn-default'
- onClick={this.handleLdapTest}
- disabled={this.props.disabled}
- >
- {contents}
- </button>
- {message}
- </div>
- <div className='help-text'>
- {helpText}
- </div>
- </div>
- </div>
- );
- }
-}