Blame view

imports/modules/reset-password.js 1.31 KB
4c9b3dfc1   themeteorchef   cleaning up
1
  /* eslint-disable no-undef */
7df77f0fa   tmcdeveloper   finish wiring up ...
2
  import { browserHistory } from 'react-router';
cac7cbc73   tmcdeveloper   4.1.0 release
3
4
  import { Accounts } from 'meteor/accounts-base';
  import { Bert } from 'meteor/themeteorchef:bert';
4c9b3dfc1   themeteorchef   cleaning up
5
  import './validation.js';
7df77f0fa   tmcdeveloper   finish wiring up ...
6

f0c912bf1   tmcdeveloper   add method tests ...
7
8
  let component;
  let token;
7df77f0fa   tmcdeveloper   finish wiring up ...
9

cac7cbc73   tmcdeveloper   4.1.0 release
10
  const handleReset = () => {
23c8a4c3c   themeteorchef   remove dependency...
11
    const password = document.querySelector('[name="newPassword"]').value;
f0c912bf1   tmcdeveloper   add method tests ...
12
13
14
    Accounts.resetPassword(token, password, (error) => {
      if (error) {
        Bert.alert(error.reason, 'danger');
7df77f0fa   tmcdeveloper   finish wiring up ...
15
      } else {
f0c912bf1   tmcdeveloper   add method tests ...
16
17
        browserHistory.push('/');
        Bert.alert('Password reset!', 'success');
7df77f0fa   tmcdeveloper   finish wiring up ...
18
19
20
      }
    });
  };
cac7cbc73   tmcdeveloper   4.1.0 release
21
  const validate = () => {
4c9b3dfc1   themeteorchef   cleaning up
22
    $(component.resetPassword).validate({
7df77f0fa   tmcdeveloper   finish wiring up ...
23
24
25
      rules: {
        newPassword: {
          required: true,
f0c912bf1   tmcdeveloper   add method tests ...
26
          minlength: 6,
7df77f0fa   tmcdeveloper   finish wiring up ...
27
28
29
30
        },
        repeatNewPassword: {
          required: true,
          minlength: 6,
f0c912bf1   tmcdeveloper   add method tests ...
31
32
          equalTo: '[name="newPassword"]',
        },
7df77f0fa   tmcdeveloper   finish wiring up ...
33
34
35
      },
      messages: {
        newPassword: {
f0c912bf1   tmcdeveloper   add method tests ...
36
37
          required: 'Enter a new password, please.',
          minlength: 'Use at least six characters, please.',
7df77f0fa   tmcdeveloper   finish wiring up ...
38
39
        },
        repeatNewPassword: {
f0c912bf1   tmcdeveloper   add method tests ...
40
41
42
          required: 'Repeat your new password, please.',
          equalTo: 'Hmm, your passwords don\'t match. Try again?',
        },
7df77f0fa   tmcdeveloper   finish wiring up ...
43
      },
cac7cbc73   tmcdeveloper   4.1.0 release
44
      submitHandler() { handleReset(); },
7df77f0fa   tmcdeveloper   finish wiring up ...
45
46
    });
  };
23c8a4c3c   themeteorchef   remove dependency...
47
  export default function handleResetPassword(options) {
7df77f0fa   tmcdeveloper   finish wiring up ...
48
    component = options.component;
f0c912bf1   tmcdeveloper   add method tests ...
49
    token = options.token;
cac7cbc73   tmcdeveloper   4.1.0 release
50
    validate();
23c8a4c3c   themeteorchef   remove dependency...
51
  }