// 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: React.PropTypes.bool, submitFunction: React.PropTypes.func, saveNeeded: React.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 = (
); } else if (this.state.success) { message = (
); } const helpText = ( ); let contents = null; if (this.state.loading) { contents = ( {Utils.localizeMessage('admin.reload.loading', ' Loading...')} ); } else { contents = ( ); } return (
{message}
{helpText}
); } }