Blame view

imports/modules/signup.js 1.63 KB
cac7cbc73   tmcdeveloper   4.1.0 release
1
2
  import $ from 'jquery';
  import 'jquery-validation';
7df77f0fa   tmcdeveloper   finish wiring up ...
3
  import { browserHistory } from 'react-router';
cac7cbc73   tmcdeveloper   4.1.0 release
4
5
  import { Accounts } from 'meteor/accounts-base';
  import { Bert } from 'meteor/themeteorchef:bert';
7df77f0fa   tmcdeveloper   finish wiring up ...
6
7
  
  let component;
cac7cbc73   tmcdeveloper   4.1.0 release
8
  const getUserData = () => ({
23c8a4c3c   themeteorchef   remove dependency...
9
10
    email: document.querySelector('[name="emailAddress"]').value,
    password: document.querySelector('[name="password"]').value,
f0c912bf1   tmcdeveloper   add method tests ...
11
12
    profile: {
      name: {
23c8a4c3c   themeteorchef   remove dependency...
13
14
        first: document.querySelector('[name="firstName"]').value,
        last: document.querySelector('[name="lastName"]').value,
f0c912bf1   tmcdeveloper   add method tests ...
15
16
17
      },
    },
  });
7df77f0fa   tmcdeveloper   finish wiring up ...
18

23c8a4c3c   themeteorchef   remove dependency...
19
  const signup = () => {
cac7cbc73   tmcdeveloper   4.1.0 release
20
    const user = getUserData();
7df77f0fa   tmcdeveloper   finish wiring up ...
21

f0c912bf1   tmcdeveloper   add method tests ...
22
23
24
    Accounts.createUser(user, (error) => {
      if (error) {
        Bert.alert(error.reason, 'danger');
7df77f0fa   tmcdeveloper   finish wiring up ...
25
      } else {
f0c912bf1   tmcdeveloper   add method tests ...
26
27
        browserHistory.push('/');
        Bert.alert('Welcome!', 'success');
7df77f0fa   tmcdeveloper   finish wiring up ...
28
29
30
      }
    });
  };
cac7cbc73   tmcdeveloper   4.1.0 release
31
  const validate = () => {
f0c912bf1   tmcdeveloper   add method tests ...
32
    $(component.refs.signup).validate({
7df77f0fa   tmcdeveloper   finish wiring up ...
33
34
      rules: {
        firstName: {
f0c912bf1   tmcdeveloper   add method tests ...
35
          required: true,
7df77f0fa   tmcdeveloper   finish wiring up ...
36
37
        },
        lastName: {
f0c912bf1   tmcdeveloper   add method tests ...
38
          required: true,
7df77f0fa   tmcdeveloper   finish wiring up ...
39
40
41
        },
        emailAddress: {
          required: true,
f0c912bf1   tmcdeveloper   add method tests ...
42
          email: true,
7df77f0fa   tmcdeveloper   finish wiring up ...
43
44
45
        },
        password: {
          required: true,
f0c912bf1   tmcdeveloper   add method tests ...
46
47
          minlength: 6,
        },
7df77f0fa   tmcdeveloper   finish wiring up ...
48
49
50
      },
      messages: {
        firstName: {
f0c912bf1   tmcdeveloper   add method tests ...
51
          required: 'First name?',
7df77f0fa   tmcdeveloper   finish wiring up ...
52
53
        },
        lastName: {
f0c912bf1   tmcdeveloper   add method tests ...
54
          required: 'Last name?',
7df77f0fa   tmcdeveloper   finish wiring up ...
55
56
57
        },
        emailAddress: {
          required: 'Need an email address here.',
f0c912bf1   tmcdeveloper   add method tests ...
58
          email: 'Is this email address legit?',
7df77f0fa   tmcdeveloper   finish wiring up ...
59
60
61
        },
        password: {
          required: 'Need a password here.',
f0c912bf1   tmcdeveloper   add method tests ...
62
63
          minlength: 'Use at least six characters, please.',
        },
7df77f0fa   tmcdeveloper   finish wiring up ...
64
      },
23c8a4c3c   themeteorchef   remove dependency...
65
      submitHandler() { signup(); },
7df77f0fa   tmcdeveloper   finish wiring up ...
66
67
    });
  };
23c8a4c3c   themeteorchef   remove dependency...
68
  export default function handleSignup(options) {
7df77f0fa   tmcdeveloper   finish wiring up ...
69
    component = options.component;
cac7cbc73   tmcdeveloper   4.1.0 release
70
    validate();
23c8a4c3c   themeteorchef   remove dependency...
71
  }