Blame view
imports/client/views/nonOrg/enter/signup.js
2.47 KB
4c9b3dfc1
|
1 |
/* eslint-disable no-undef */ |
ff976df49
|
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
|
6 |
import '/imports/client/components/validation'; |
79c6eb079
|
7 |
import { Orgs } from '/imports/collections/orgs/index'; |
7df77f0fa
|
8 9 |
let component; |
cac7cbc73
|
10 |
const getUserData = () => ({ |
23c8a4c3c
|
11 12 |
email: document.querySelector('[name="emailAddress"]').value, password: document.querySelector('[name="password"]').value, |
39d8f536d
|
13 14 |
orgSlug: document.querySelector('[name="orgSlug"]').value, orgName: document.querySelector('[name="orgName"]').value, |
f0c912bf1
|
15 16 |
profile: { name: { |
23c8a4c3c
|
17 18 |
first: document.querySelector('[name="firstName"]').value, last: document.querySelector('[name="lastName"]').value, |
f0c912bf1
|
19 20 21 |
}, }, }); |
7df77f0fa
|
22 |
|
23c8a4c3c
|
23 |
const signup = () => { |
cac7cbc73
|
24 |
const user = getUserData(); |
7df77f0fa
|
25 |
|
f0c912bf1
|
26 27 28 |
Accounts.createUser(user, (error) => { if (error) { Bert.alert(error.reason, 'danger'); |
7df77f0fa
|
29 |
} else { |
f0c912bf1
|
30 31 |
browserHistory.push('/'); Bert.alert('Welcome!', 'success'); |
7df77f0fa
|
32 33 34 |
} }); }; |
79c6eb079
|
35 36 37 38 |
$.validator.addMethod( "uniqueSlug", function(value, element) { slug = Orgs.find({slug:value}).fetch(); |
79c6eb079
|
39 40 41 42 43 44 45 46 |
if(slug.length>0){ return false; }else{ return true } }, "Name is Already Taken" ); |
cac7cbc73
|
47 |
const validate = () => { |
4c9b3dfc1
|
48 |
$(component.signupForm).validate({ |
7df77f0fa
|
49 |
rules: { |
79c6eb079
|
50 51 52 53 |
orgSlug: { required: true, uniqueSlug: true }, |
7df77f0fa
|
54 |
firstName: { |
f0c912bf1
|
55 |
required: true, |
7df77f0fa
|
56 57 |
}, lastName: { |
f0c912bf1
|
58 |
required: true, |
7df77f0fa
|
59 60 61 |
}, emailAddress: { required: true, |
f0c912bf1
|
62 |
email: true, |
7df77f0fa
|
63 64 65 |
}, password: { required: true, |
f0c912bf1
|
66 67 |
minlength: 6, }, |
7df77f0fa
|
68 69 |
}, messages: { |
6be49625f
|
70 71 72 73 |
orgSlug: { required: 'Choose your school url', uniqueSlug: 'This has already been taken!' }, |
7df77f0fa
|
74 |
firstName: { |
f0c912bf1
|
75 |
required: 'First name?', |
7df77f0fa
|
76 77 |
}, lastName: { |
f0c912bf1
|
78 |
required: 'Last name?', |
7df77f0fa
|
79 80 81 |
}, emailAddress: { required: 'Need an email address here.', |
f0c912bf1
|
82 |
email: 'Is this email address legit?', |
7df77f0fa
|
83 84 85 |
}, password: { required: 'Need a password here.', |
f0c912bf1
|
86 87 |
minlength: 'Use at least six characters, please.', }, |
7df77f0fa
|
88 |
}, |
23c8a4c3c
|
89 |
submitHandler() { signup(); }, |
7df77f0fa
|
90 91 |
}); }; |
23c8a4c3c
|
92 |
export default function handleSignup(options) { |
7df77f0fa
|
93 |
component = options.component; |
cac7cbc73
|
94 |
validate(); |
23c8a4c3c
|
95 |
} |