Blame view

imports/modules/signup.js 1.64 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
8
  import { getInputValue } from './get-input-value';
  
  let component;
cac7cbc73   tmcdeveloper   4.1.0 release
9
10
11
  const getUserData = () => ({
    email: getInputValue(component.refs.emailAddress),
    password: getInputValue(component.refs.password),
f0c912bf1   tmcdeveloper   add method tests ...
12
13
    profile: {
      name: {
cac7cbc73   tmcdeveloper   4.1.0 release
14
15
        first: getInputValue(component.refs.firstName),
        last: getInputValue(component.refs.lastName),
f0c912bf1   tmcdeveloper   add method tests ...
16
17
18
      },
    },
  });
7df77f0fa   tmcdeveloper   finish wiring up ...
19

cac7cbc73   tmcdeveloper   4.1.0 release
20
21
  const signUp = () => {
    const user = getUserData();
7df77f0fa   tmcdeveloper   finish wiring up ...
22

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