From 84c82e8d7a1a7e4ec8808b86ff5bea78138d1886 Mon Sep 17 00:00:00 2001 From: Reed Garmsen Date: Tue, 18 Aug 2015 09:15:16 -0700 Subject: Renamed new component files for easier identification --- web/react/components/team_signup_password_page.jsx | 116 +++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 web/react/components/team_signup_password_page.jsx (limited to 'web/react/components/team_signup_password_page.jsx') diff --git a/web/react/components/team_signup_password_page.jsx b/web/react/components/team_signup_password_page.jsx new file mode 100644 index 000000000..e4f35f100 --- /dev/null +++ b/web/react/components/team_signup_password_page.jsx @@ -0,0 +1,116 @@ +// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved. +// See License.txt for license information. + +var utils = require('../utils/utils.jsx'); +var client = require('../utils/client.jsx'); + +module.exports = React.createClass({ + displayName: 'TeamSignupPasswordPage', + propTypes: { + state: React.PropTypes.object, + updateParent: React.PropTypes.func + }, + submitBack: function(e) { + e.preventDefault(); + this.props.state.wizard = 'username'; + this.props.updateParent(this.props.state); + }, + submitNext: function(e) { + e.preventDefault(); + + var password = this.refs.password.getDOMNode().value.trim(); + if (!password || password.length < 5) { + this.setState({passwordError: 'Please enter at least 5 characters'}); + return; + } + + this.setState({passwordError: null, serverError: null}); + $('#finish-button').button('loading'); + var teamSignup = JSON.parse(JSON.stringify(this.props.state)); + teamSignup.user.password = password; + teamSignup.user.allow_marketing = true; + delete teamSignup.wizard; + + // var ctl = this; + + client.createTeamFromSignup(teamSignup, + function success() { + client.track('signup', 'signup_team_08_complete'); + + var props = this.props; + + $('#sign-up-button').button('reset'); + props.state.wizard = 'finished'; + props.updateParent(props.state, true); + + window.location.href = utils.getWindowLocationOrigin() + '/' + props.state.team.name + '/login?email=' + encodeURIComponent(teamSignup.team.email); + + // client.loginByEmail(teamSignup.team.domain, teamSignup.team.email, teamSignup.user.password, + // function(data) { + // TeamStore.setLastName(teamSignup.team.domain); + // UserStore.setLastEmail(teamSignup.team.email); + // UserStore.setCurrentUser(data); + // window.location.href = '/channels/town-square'; + // }.bind(ctl), + // function(err) { + // this.setState({nameError: err.message}); + // }.bind(ctl) + // ); + }.bind(this), + function error(err) { + this.setState({serverError: err.message}); + $('#sign-up-button').button('reset'); + }.bind(this) + ); + }, + getInitialState: function() { + return {}; + }, + render: function() { + client.track('signup', 'signup_team_07_password'); + + var passwordError = null; + var passwordDivStyle = 'form-group'; + if (this.state.passwordError) { + passwordError =
; + passwordDivStyle = ' has-error'; + } + + var serverError = null; + if (this.state.serverError) { + serverError =
; + } + + return ( +
+
+ +

Your password

+
Select a password that you'll use to login with your email address:
+
+
Email
+
{this.props.state.team.email}
+
+
+
+
Choose your password
+ +
Passwords must contain 5 to 50 characters. Your password will be strongest if it contains a mix of symbols, numbers, and upper and lowercase characters.
+
+
+ {passwordError} + {serverError} +
+
+
+ +
+

By proceeding to create your account and use {config.SiteName}, you agree to our Terms of Service and Privacy Policy. If you do not agree, you cannot use {config.SiteName}.

+
+ Back to previous step +
+
+
+ ); + } +}); -- cgit v1.2.3-1-g7c22