// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. // See License.txt for license information. var UserStore = require('../stores/user_store.jsx'); var TeamStore = require('../stores/team_store.jsx'); var SettingItemMin = require('./setting_item_min.jsx'); var SettingItemMax = require('./setting_item_max.jsx'); var SettingPicture = require('./setting_picture.jsx'); var SettingUpload = require('./setting_upload.jsx'); var utils = require('../utils/utils.jsx'); var client = require('../utils/client.jsx'); var AsyncClient = require('../utils/async_client.jsx'); var Constants = require('../utils/constants.jsx'); var FeatureTab = React.createClass({ submitValetFeature: function() { data = {}; data['allow_valet'] = this.state.allow_valet; client.updateValetFeature(data, function(data) { this.props.updateSection(""); AsyncClient.getMyTeam(); }.bind(this), function(err) { state = this.getInitialState(); state.server_error = err; this.setState(state); }.bind(this) ); }, handleValetRadio: function(val) { this.setState({ allow_valet: val }); this.refs.wrapper.getDOMNode().focus(); }, componentWillReceiveProps: function(newProps) { var team = newProps.team; var allow_valet = "false"; if (team && team.allow_valet) { allow_valet = "true"; } this.setState({ allow_valet: allow_valet }); }, getInitialState: function() { var team = this.props.team; var allow_valet = "false"; if (team && team.allow_valet) { allow_valet = "true"; } return { allow_valet: allow_valet }; }, render: function() { var team = this.props.team; var client_error = this.state.client_error ? this.state.client_error : null; var server_error = this.state.server_error ? this.state.server_error : null; var valetSection; var self = this; if (this.props.activeSection === 'valet') { var valetActive = ["",""]; if (this.state.allow_valet === "false") { valetActive[1] = "active"; } else { valetActive[0] = "active"; } var inputs = []; inputs.push(

Valet is a preview feature for enabling a non-user account limited to basic member permissions that can be manipulated by 3rd parties.

IMPORTANT: The preview version of Valet should not be used without a secure connection and a trusted 3rd party, since user credentials are used to connect. OAuth2 will be used in the final release.
); valetSection = ( ); } else { var describe = ""; if (this.state.allow_valet === "false") { describe = "Off"; } else { describe = "On"; } valetSection = ( ); } return (

Feature Settings

Feature Settings

{valetSection}
); } }); var ImportTab = React.createClass({ getInitialState: function() { return {status: 'ready'}; }, onImportFailure: function() { this.setState({status: 'fail'}); }, onImportSuccess: function(data) { this.setState({status: 'done'}); }, doImportSlack: function(file) { this.setState({status: 'in-progress'}); utils.importSlack(file, this.onImportSuccess, this.onImportFailure); }, render: function() { uploadSection = ( ); var messageSection; switch (this.state.status) { case 'ready': messageSection = ''; break; case 'in-progress': messageSection = (

Importing...

); break; case 'done': messageSection = (

Import sucessfull: View Summery

); break; case 'fail': messageSection = (

Import failure: View Summery

); break; } return (

Import

Import

{uploadSection} {messageSection}
); } }); module.exports = React.createClass({ componentDidMount: function() { TeamStore.addChangeListener(this._onChange); }, componentWillUnmount: function() { TeamStore.removeChangeListener(this._onChange); }, _onChange: function () { var team = TeamStore.getCurrent(); if (!utils.areStatesEqual(this.state.team, team)) { this.setState({ team: team }); } }, getInitialState: function() { return { team: TeamStore.getCurrent() }; }, render: function() { if (this.props.activeTab === 'general') { return (
); } else if (this.props.activeTab === 'feature') { return (
); } else if (this.props.activeTab === 'import') { return (
); } else { return
; } } });