// Copyright (c) 2015 Mattermost, 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 = { Enable: this.props.config.GitLabSettings.Enable, saveNeeded: false, serverError: null }; } handleChange(action) { var s = {saveNeeded: true, serverError: this.state.serverError}; if (action === 'EnableTrue') { s.Enable = true; } if (action === 'EnableFalse') { s.Enable = false; } this.setState(s); } handleSubmit(e) { e.preventDefault(); $('#save-button').button('loading'); var config = this.props.config; config.GitLabSettings.Enable = ReactDOM.findDOMNode(this.refs.Enable).checked; config.GitLabSettings.Secret = ReactDOM.findDOMNode(this.refs.Secret).value.trim(); config.GitLabSettings.Id = ReactDOM.findDOMNode(this.refs.Id).value.trim(); config.GitLabSettings.AuthEndpoint = ReactDOM.findDOMNode(this.refs.AuthEndpoint).value.trim(); config.GitLabSettings.TokenEndpoint = ReactDOM.findDOMNode(this.refs.TokenEndpoint).value.trim(); config.GitLabSettings.UserApiEndpoint = ReactDOM.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 allows team creation and account signup using GitLab OAuth.'}

  1. {'Log in to your GitLab account and go to Applications -> Profile Settings.'}
  2. {'Enter Redirect URIs "/login/gitlab/complete" (example: http://localhost:8065/login/gitlab/complete) and "/signup/gitlab/complete". '}
  3. {'Then use "Secret" and "Id" fields from GitLab to complete the options below.'}
  4. {'Complete the Endpoint URLs below. '}

{'Obtain this value via the instructions above for logging into GitLab'}

{'Obtain this value via the instructions above for logging into GitLab.'}

{'Enter https:///oauth/authorize (example https://example.com:3000/oauth/authorize). Make sure you use HTTP or HTTPS in your URL depending on your server configuration.'}

{'Enter https:///oauth/token. Make sure you use HTTP or HTTPS in your URL depending on your server configuration.'}

{'Enter https:///api/v3/user. Make sure you use HTTP or HTTPS in your URL depending on your server configuration.'}

{serverError}
); } } //config.GitLabSettings.Scope = ReactDOM.findDOMNode(this.refs.Scope).value.trim(); //
// //
// //

{'This field is not yet used by GitLab OAuth. Other OAuth providers may use this field to specify the scope of account data from OAuth provider that is sent to Mattermost.'}

//
//
GitLabSettings.propTypes = { config: React.PropTypes.object };