From 1626a6de6f16ba0878160b0a7eae9f49b8d34d4f Mon Sep 17 00:00:00 2001
From: =Corey Hulen <corey@hulen.com>
Date: Wed, 23 Sep 2015 12:49:28 -0700
Subject: PLT-349 adding team mgt to admin console

---
 .../admin_console/reset_password_modal.jsx         | 136 +++++++++++++++++++++
 1 file changed, 136 insertions(+)
 create mode 100644 web/react/components/admin_console/reset_password_modal.jsx

(limited to 'web/react/components/admin_console/reset_password_modal.jsx')

diff --git a/web/react/components/admin_console/reset_password_modal.jsx b/web/react/components/admin_console/reset_password_modal.jsx
new file mode 100644
index 000000000..4aa86dfcb
--- /dev/null
+++ b/web/react/components/admin_console/reset_password_modal.jsx
@@ -0,0 +1,136 @@
+// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+var Client = require('../../utils/client.jsx');
+var Modal = ReactBootstrap.Modal;
+
+export default class ResetPasswordModal extends React.Component {
+    constructor(props) {
+        super(props);
+
+        this.doSubmit = this.doSubmit.bind(this);
+        this.doCancel = this.doCancel.bind(this);
+
+        this.state = {
+            serverError: null
+        };
+    }
+
+    doSubmit(e) {
+        e.preventDefault();
+        var password = React.findDOMNode(this.refs.password).value;
+
+        if (!password || password.length < 5) {
+            this.state.serverError = 'Please enter at least 5 characters.';
+            this.setState(this.state);
+            return;
+        }
+
+        this.state.serverError = null;
+        this.setState(this.state);
+
+        var data = {};
+        data.new_password = password;
+        data.name = this.props.team.name;
+        data.user_id = this.props.user.id;
+
+        Client.resetPassword(data,
+            () => {
+                this.props.onModalSubmit(React.findDOMNode(this.refs.password).value);
+            },
+            (err) => {
+                this.state.serverError = err.message;
+                this.setState(this.state);
+            }
+        );
+    }
+
+    doCancel() {
+        this.state.serverError = null;
+        this.setState(this.state);
+        this.props.onModalDismissed();
+    }
+
+    render() {
+        if (this.props.user == null) {
+            return <div/>;
+        }
+
+        let urlClass = 'input-group input-group--limit';
+        let serverError = null;
+
+        if (this.state.serverError) {
+            urlClass += ' has-error';
+            serverError = <div className='form-group has-error'><p className='input__help error'>{this.state.serverError}</p></div>;
+        }
+
+        return (
+            <Modal
+                show={this.props.show}
+                onHide={this.doCancel}
+            >
+                <Modal.Header closeButton={true}>
+                    <Modal.Title>{'Reset Password'}</Modal.Title>
+                </Modal.Header>
+                <form
+                    role='form'
+                    className='form-horizontal'
+                >
+                    <Modal.Body>
+                        <div className='form-group'>
+                            <div className='col-sm-10'>
+                                <div className={urlClass}>
+                                    <span
+                                        data-toggle='tooltip'
+                                        title='New Password'
+                                        className='input-group-addon'
+                                    >
+                                        {'New Password'}
+                                    </span>
+                                    <input
+                                        type='password'
+                                        ref='password'
+                                        className='form-control'
+                                        maxLength='22'
+                                        autoFocus={true}
+                                        tabIndex='1'
+                                    />
+                                </div>
+                                {serverError}
+                            </div>
+                        </div>
+                    </Modal.Body>
+                    <Modal.Footer>
+                        <button
+                            type='button'
+                            className='btn btn-default'
+                            onClick={this.doCancel}
+                        >
+                            {'Close'}
+                        </button>
+                        <button
+                            onClick={this.doSubmit}
+                            type='submit'
+                            className='btn btn-primary'
+                            tabIndex='2'
+                        >
+                            {'Select'}
+                        </button>
+                    </Modal.Footer>
+                </form>
+            </Modal>
+        );
+    }
+}
+
+ResetPasswordModal.defaultProps = {
+    show: false
+};
+
+ResetPasswordModal.propTypes = {
+    user: React.PropTypes.object,
+    team: React.PropTypes.object,
+    show: React.PropTypes.bool.isRequired,
+    onModalSubmit: React.PropTypes.func,
+    onModalDismissed: React.PropTypes.func
+};
-- 
cgit v1.2.3-1-g7c22


From 985aebf86120188c2a14adfab39af7c4da3c1c9d Mon Sep 17 00:00:00 2001
From: =Corey Hulen <corey@hulen.com>
Date: Wed, 23 Sep 2015 15:16:48 -0700
Subject: Fixing state setting

---
 web/react/components/admin_console/reset_password_modal.jsx | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

(limited to 'web/react/components/admin_console/reset_password_modal.jsx')

diff --git a/web/react/components/admin_console/reset_password_modal.jsx b/web/react/components/admin_console/reset_password_modal.jsx
index 4aa86dfcb..0b83edb17 100644
--- a/web/react/components/admin_console/reset_password_modal.jsx
+++ b/web/react/components/admin_console/reset_password_modal.jsx
@@ -21,13 +21,11 @@ export default class ResetPasswordModal extends React.Component {
         var password = React.findDOMNode(this.refs.password).value;
 
         if (!password || password.length < 5) {
-            this.state.serverError = 'Please enter at least 5 characters.';
-            this.setState(this.state);
+            this.setState({serverError: 'Please enter at least 5 characters.'});
             return;
         }
 
-        this.state.serverError = null;
-        this.setState(this.state);
+        this.setState({serverError: null});
 
         var data = {};
         data.new_password = password;
@@ -39,15 +37,13 @@ export default class ResetPasswordModal extends React.Component {
                 this.props.onModalSubmit(React.findDOMNode(this.refs.password).value);
             },
             (err) => {
-                this.state.serverError = err.message;
-                this.setState(this.state);
+                this.setState({serverError: err.message});
             }
         );
     }
 
     doCancel() {
-        this.state.serverError = null;
-        this.setState(this.state);
+        this.setState({serverError: null});
         this.props.onModalDismissed();
     }
 
-- 
cgit v1.2.3-1-g7c22

