var BS, PasswordResetField, React, RosterActions;
React = require('react');
BS = require('react-bootstrap');
RosterActions = require('../../flux/roster').RosterActions;
PasswordResetField = React.createClass({
displayName: 'ResetStudentPasswordField',
mixins: [React.addons.LinkedStateMixin],
getInitialState: function() {
return {
password: ''
};
},
getValue: function() {
return this.state.password;
},
componentDidMount: function() {
return React.findDOMNode(this.refs.input).focus();
},
render: function() {
return React.createElement("input", {
"autofocus": true,
"ref": 'input',
"valueLink": this.linkState('password'),
"type": 'password',
"className": 'form-control'
});
}
});
module.exports = React.createClass({
displayName: 'ResetPasswordLink',
propTypes: {
student: React.PropTypes.object.isRequired,
courseId: React.PropTypes.string.isRequired
},
performUpdate: function() {
RosterActions.save(this.props.student.id, {
password: this.refs.password.getValue()
});
return this.refs.overlay.hide();
},
resetPassword: function() {
return React.createElement(BS.Popover, React.__spread({
"title": 'Update password:'
}, this.props), React.createElement(PasswordResetField, {
"ref": 'password'
}), React.createElement(BS.Button, {
"block": true,
"onClick": this.performUpdate
}, "Update ", React.createElement("i", {
"className": 'fa fa-angle-double-right'
})));
},
render: function() {
return React.createElement(BS.OverlayTrigger, {
"ref": 'overlay',
"rootClose": true,
"trigger": 'click',
"placement": 'left',
"overlay": this.resetPassword()
}, React.createElement("a", null, React.createElement("i", {
"className": 'fa fa-key'
}), " Reset Password"));
}
});
|