kibana-with-account
Version:
kibana-with-account is develop based kibana project
87 lines (75 loc) • 2.5 kB
JSX
var React = require('react/addons');
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/User');
var Component = React.createClass({
mixins: [React.addons.LinkedStateMixin],
getInitialState: function () {
return {};
},
componentWillReceiveProps: function (nextProps) {
if (!this.props.identity.hydrated) {
this.replaceState({});
}
},
handleSubmit: function (event) {
event.preventDefault();
event.stopPropagation();
Actions.savePassword({
id: this.props.identity._id,
password: this.state.password,
passwordConfirm: this.state.passwordConfirm
});
},
render: function () {
var alerts = [];
if (this.props.data.success) {
alerts.push(<div key="success" className="alert alert-success">
Success. Changes have been saved.
</div>);
}
else if (this.props.data.error) {
alerts.push(<div key="danger" className="alert alert-danger">
{this.props.data.error}
</div>);
}
return (
<form onSubmit={this.handleSubmit}>
<fieldset>
<legend>Password</legend>
{alerts}
<TextControl
name="password"
label="New password"
type="password"
hasError={this.props.data.hasError.password}
valueLink={this.linkState('password')}
help={this.props.data.help.password}
disabled={this.props.data.loading}
/>
<TextControl
name="passwordConfirm"
label="Confirm new password"
type="password"
hasError={this.props.data.hasError.passwordConfirm}
valueLink={this.linkState('passwordConfirm')}
help={this.props.data.help.passwordConfirm}
disabled={this.props.data.loading}
/>
<ControlGroup hideLabel={true} hideHelp={true}>
<Button
type="submit"
inputClasses={{'btn-primary': true}}
disabled={this.props.data.loading}>
Set password
<Spinner space="left" show={this.props.data.loading}/>
</Button>
</ControlGroup>
</fieldset>
</form>
);
}
});
module.exports = Component;