Blame view

imports/modules/signup.js 2.36 KB
4c9b3dfc1   themeteorchef   cleaning up
1
  /* eslint-disable no-undef */
ff976df49   Deepak   added orgs public...
2
3
4
5
6
  import { browserHistory }                 from 'react-router';
  import { Accounts }                       from 'meteor/accounts-base';
  import { Bert }                           from 'meteor/themeteorchef:bert';
  import { Loading }                        from '/imports/client/components/Loading';
  import                                         './validation.js';
79c6eb079   Deepak   added validation ...
7
  import { Orgs }                           from '/imports/collections/orgs/index';
7df77f0fa   tmcdeveloper   finish wiring up ...
8
9
  
  let component;
cac7cbc73   tmcdeveloper   4.1.0 release
10
  const getUserData = () => ({
23c8a4c3c   themeteorchef   remove dependency...
11
12
    email: document.querySelector('[name="emailAddress"]').value,
    password: document.querySelector('[name="password"]').value,
f0c912bf1   tmcdeveloper   add method tests ...
13
14
    profile: {
      name: {
23c8a4c3c   themeteorchef   remove dependency...
15
16
        first: document.querySelector('[name="firstName"]').value,
        last: document.querySelector('[name="lastName"]').value,
f0c912bf1   tmcdeveloper   add method tests ...
17
18
19
      },
    },
  });
7df77f0fa   tmcdeveloper   finish wiring up ...
20

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

f0c912bf1   tmcdeveloper   add method tests ...
24
25
26
    Accounts.createUser(user, (error) => {
      if (error) {
        Bert.alert(error.reason, 'danger');
7df77f0fa   tmcdeveloper   finish wiring up ...
27
      } else {
f0c912bf1   tmcdeveloper   add method tests ...
28
29
        browserHistory.push('/');
        Bert.alert('Welcome!', 'success');
7df77f0fa   tmcdeveloper   finish wiring up ...
30
31
32
      }
    });
  };
79c6eb079   Deepak   added validation ...
33
34
35
36
37
38
39
40
41
42
43
44
45
  $.validator.addMethod(
      "uniqueSlug",
      function(value, element) {
        slug = Orgs.find({slug:value}).fetch();
        console.log(slug);
        if(slug.length>0){
          return false;
        }else{
          return true
        }
      },
      "Name is Already Taken"
  );
cac7cbc73   tmcdeveloper   4.1.0 release
46
  const validate = () => {
4c9b3dfc1   themeteorchef   cleaning up
47
    $(component.signupForm).validate({
7df77f0fa   tmcdeveloper   finish wiring up ...
48
      rules: {
79c6eb079   Deepak   added validation ...
49
50
51
52
        orgSlug: {
          required: true,
          uniqueSlug: true
        },
7df77f0fa   tmcdeveloper   finish wiring up ...
53
        firstName: {
f0c912bf1   tmcdeveloper   add method tests ...
54
          required: true,
7df77f0fa   tmcdeveloper   finish wiring up ...
55
56
        },
        lastName: {
f0c912bf1   tmcdeveloper   add method tests ...
57
          required: true,
7df77f0fa   tmcdeveloper   finish wiring up ...
58
59
60
        },
        emailAddress: {
          required: true,
f0c912bf1   tmcdeveloper   add method tests ...
61
          email: true,
7df77f0fa   tmcdeveloper   finish wiring up ...
62
63
64
        },
        password: {
          required: true,
f0c912bf1   tmcdeveloper   add method tests ...
65
66
          minlength: 6,
        },
7df77f0fa   tmcdeveloper   finish wiring up ...
67
68
      },
      messages: {
6be49625f   Deepak   created route def...
69
70
71
72
        orgSlug: {
          required: 'Choose your school url',
          uniqueSlug: 'This has already been taken!'
        },
7df77f0fa   tmcdeveloper   finish wiring up ...
73
        firstName: {
f0c912bf1   tmcdeveloper   add method tests ...
74
          required: 'First name?',
7df77f0fa   tmcdeveloper   finish wiring up ...
75
76
        },
        lastName: {
f0c912bf1   tmcdeveloper   add method tests ...
77
          required: 'Last name?',
7df77f0fa   tmcdeveloper   finish wiring up ...
78
79
80
        },
        emailAddress: {
          required: 'Need an email address here.',
f0c912bf1   tmcdeveloper   add method tests ...
81
          email: 'Is this email address legit?',
7df77f0fa   tmcdeveloper   finish wiring up ...
82
83
84
        },
        password: {
          required: 'Need a password here.',
f0c912bf1   tmcdeveloper   add method tests ...
85
86
          minlength: 'Use at least six characters, please.',
        },
7df77f0fa   tmcdeveloper   finish wiring up ...
87
      },
23c8a4c3c   themeteorchef   remove dependency...
88
      submitHandler() { signup(); },
7df77f0fa   tmcdeveloper   finish wiring up ...
89
90
    });
  };
23c8a4c3c   themeteorchef   remove dependency...
91
  export default function handleSignup(options) {
7df77f0fa   tmcdeveloper   finish wiring up ...
92
    component = options.component;
cac7cbc73   tmcdeveloper   4.1.0 release
93
    validate();
23c8a4c3c   themeteorchef   remove dependency...
94
  }