From f05a2c03d5dbf5b0b7d09148a37d2325012b309f Mon Sep 17 00:00:00 2001 From: =Corey Hulen Date: Tue, 22 Sep 2015 00:00:19 -0700 Subject: Adding SQL settings to admin console --- .../components/admin_console/gitlab_settings.jsx | 277 +++++++++++++++++++++ 1 file changed, 277 insertions(+) create mode 100644 web/react/components/admin_console/gitlab_settings.jsx (limited to 'web/react/components/admin_console/gitlab_settings.jsx') diff --git a/web/react/components/admin_console/gitlab_settings.jsx b/web/react/components/admin_console/gitlab_settings.jsx new file mode 100644 index 000000000..f76655b89 --- /dev/null +++ b/web/react/components/admin_console/gitlab_settings.jsx @@ -0,0 +1,277 @@ +// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. +// See License.txt for license information. + +var Client = require('../../utils/client.jsx'); +var AsyncClient = require('../../utils/async_client.jsx'); + +export default class GitLabSettings extends React.Component { + constructor(props) { + super(props); + + this.handleChange = this.handleChange.bind(this); + this.handleSubmit = this.handleSubmit.bind(this); + + this.state = { + Allow: this.props.config.GitLabSettings.Allow, + saveNeeded: false, + serverError: null + }; + } + + handleChange(action) { + var s = {saveNeeded: true, serverError: this.state.serverError}; + + if (action === 'AllowTrue') { + s.Allow = true; + } + + if (action === 'AllowFalse') { + s.Allow = false; + } + + this.setState(s); + } + + handleSubmit(e) { + e.preventDefault(); + $('#save-button').button('loading'); + + var config = this.props.config; + config.GitLabSettings.Allow = React.findDOMNode(this.refs.Allow).checked; + config.GitLabSettings.Secret = React.findDOMNode(this.refs.Secret).value.trim(); + config.GitLabSettings.Id = React.findDOMNode(this.refs.Id).value.trim(); + config.GitLabSettings.Scope = React.findDOMNode(this.refs.Scope).value.trim(); + config.GitLabSettings.AuthEndpoint = React.findDOMNode(this.refs.AuthEndpoint).value.trim(); + config.GitLabSettings.TokenEndpoint = React.findDOMNode(this.refs.TokenEndpoint).value.trim(); + config.GitLabSettings.UserApiEndpoint = React.findDOMNode(this.refs.UserApiEndpoint).value.trim(); + + Client.saveConfig( + config, + () => { + AsyncClient.getConfig(); + this.setState({ + serverError: null, + saveNeeded: false + }); + $('#save-button').button('reset'); + }, + (err) => { + this.setState({ + serverError: err.message, + saveNeeded: true + }); + $('#save-button').button('reset'); + } + ); + } + + render() { + var serverError = ''; + if (this.state.serverError) { + serverError =
; + } + + var saveClass = 'btn'; + if (this.state.saveNeeded) { + saveClass = 'btn btn-primary'; + } + + return ( +
+ +

{'GitLab Settings'}

+
+ +
+ +
+ + +

{'When true Mattermost will allow team creation and account signup utilizing GitLab OAuth.'}

+
+
+ +
+ +
+ +

{'Need help text.'}

+
+
+ +
+ +
+ +

{'Need help text.'}

+
+
+ +
+ +
+ +

{'Need help text.'}

+
+
+ +
+ +
+ +

{'Need help text.'}

+
+
+ +
+ +
+ +

{'Need help text.'}

+
+
+ +
+ +
+ +

{'Need help text.'}

+
+
+ +
+
+ {serverError} + +
+
+ +
+
+ ); + } +} + +GitLabSettings.propTypes = { + config: React.PropTypes.object +}; -- cgit v1.2.3-1-g7c22