Blame view

imports/client/views/nonOrg/enter/signup.js 2.47 KB
4c9b3dfc1   themeteorchef   cleaning up
1
  /* eslint-disable no-undef */
ff976df49   Deepak   added orgs public...
2
3
4
5
  import { browserHistory }                 from 'react-router';
  import { Accounts }                       from 'meteor/accounts-base';
  import { Bert }                           from 'meteor/themeteorchef:bert';
  import { Loading }                        from '/imports/client/components/Loading';
cc8fd8a94   Deepak   Moved all files t...
6
  import                                         '/imports/client/components/validation';
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,
39d8f536d   Deepak   some more cleamup
13
14
    orgSlug: document.querySelector('[name="orgSlug"]').value,
    orgName: document.querySelector('[name="orgName"]').value,
f0c912bf1   tmcdeveloper   add method tests ...
15
16
    profile: {
      name: {
23c8a4c3c   themeteorchef   remove dependency...
17
18
        first: document.querySelector('[name="firstName"]').value,
        last: document.querySelector('[name="lastName"]').value,
f0c912bf1   tmcdeveloper   add method tests ...
19
20
21
      },
    },
  });
7df77f0fa   tmcdeveloper   finish wiring up ...
22

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

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