UNPKG

kibana-with-account

Version:

kibana-with-account is develop based kibana project

123 lines (106 loc) 3.38 kB
var React = require('react/addons'); var ReactRouter = require('react-router'); var ControlGroup = require('../../../components/form/ControlGroup'); var TextControl = require('../../../components/form/TextControl'); var Button = require('../../../components/form/Button'); var Spinner = require('../../../components/form/Spinner'); var Actions = require('../Actions'); var ResetStore = require('../stores/Reset'); var LinkedState = React.addons.LinkedStateMixin; var Link = ReactRouter.Link; var Component = React.createClass({ mixins: [LinkedState], contextTypes: { router: React.PropTypes.func }, getInitialState: function () { ResetStore.reset(); return ResetStore.getState(); }, componentDidMount: function () { ResetStore.addChangeListener(this.onStoreChange); this.refs.password.refs.inputField.getDOMNode().focus(); }, componentWillUnmount: function () { ResetStore.removeChangeListener(this.onStoreChange); }, onStoreChange: function () { this.setState(ResetStore.getState()); }, handleSubmit: function (event) { event.preventDefault(); event.stopPropagation(); Actions.reset({ email: this.context.router.getCurrentParams().email, key: this.context.router.getCurrentParams().key, password: this.state.password }); }, render: function () { var alerts = []; if (this.state.success) { alerts.push(<div key="success"> <div className="alert alert-success"> 你的密码已被重置,请重新登陆确认。 </div> <Link to="home" className="btn btn-link">返回登陆</Link> </div>); } else if (this.state.error) { alerts.push(<div key="danger" className="alert alert-danger"> {this.state.error} </div>); } var formElements; if (!this.state.success) { formElements = <fieldset> <TextControl name="password" label="新密码" type="password" ref="password" hasError={this.state.hasError.password} valueLink={this.linkState('password')} help={this.state.help.password} disabled={this.state.loading} /> <TextControl name="_key" label="密码" hasError={this.state.hasError.key} value={this.context.router.getCurrentParams().key} help={this.state.help.key} disabled={true} /> <TextControl name="_email" label="Email" hasError={this.state.hasError.email} value={this.context.router.getCurrentParams().email} help={this.state.help.email} disabled={true} /> <ControlGroup hideLabel={true} hideHelp={true}> <Button type="submit" inputClasses={{'btn-primary': true}} disabled={this.state.loading}> 重设密码 <Spinner space="left" show={this.state.loading}/> </Button> <Link to="home" className="btn btn-link">返回登录</Link> </ControlGroup> </fieldset>; } return ( <section> <h1 className="page-header">Reset your password</h1> <form onSubmit={this.handleSubmit}> {alerts} {formElements} </form> </section> ); } }); module.exports = Component;