Blame view
imports/modules/signup.js
2.36 KB
4c9b3dfc1
|
1 |
/* eslint-disable no-undef */ |
ff976df49
|
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
|
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, |
f0c912bf1
|
13 14 |
profile: { name: { |
23c8a4c3c
|
15 16 |
first: document.querySelector('[name="firstName"]').value, last: document.querySelector('[name="lastName"]').value, |
f0c912bf1
|
17 18 19 |
}, }, }); |
7df77f0fa
|
20 |
|
23c8a4c3c
|
21 |
const signup = () => { |
cac7cbc73
|
22 |
const user = getUserData(); |
7df77f0fa
|
23 |
|
f0c912bf1
|
24 25 26 |
Accounts.createUser(user, (error) => { if (error) { Bert.alert(error.reason, 'danger'); |
7df77f0fa
|
27 |
} else { |
f0c912bf1
|
28 29 |
browserHistory.push('/'); Bert.alert('Welcome!', 'success'); |
7df77f0fa
|
30 31 32 |
} }); }; |
79c6eb079
|
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
|
46 |
const validate = () => { |
4c9b3dfc1
|
47 |
$(component.signupForm).validate({ |
7df77f0fa
|
48 |
rules: { |
79c6eb079
|
49 50 51 52 |
orgSlug: { required: true, uniqueSlug: true }, |
7df77f0fa
|
53 |
firstName: { |
f0c912bf1
|
54 |
required: true, |
7df77f0fa
|
55 56 |
}, lastName: { |
f0c912bf1
|
57 |
required: true, |
7df77f0fa
|
58 59 60 |
}, emailAddress: { required: true, |
f0c912bf1
|
61 |
email: true, |
7df77f0fa
|
62 63 64 |
}, password: { required: true, |
f0c912bf1
|
65 66 |
minlength: 6, }, |
7df77f0fa
|
67 68 |
}, messages: { |
6be49625f
|
69 70 71 72 |
orgSlug: { required: 'Choose your school url', uniqueSlug: 'This has already been taken!' }, |
7df77f0fa
|
73 |
firstName: { |
f0c912bf1
|
74 |
required: 'First name?', |
7df77f0fa
|
75 76 |
}, lastName: { |
f0c912bf1
|
77 |
required: 'Last name?', |
7df77f0fa
|
78 79 80 |
}, emailAddress: { required: 'Need an email address here.', |
f0c912bf1
|
81 |
email: 'Is this email address legit?', |
7df77f0fa
|
82 83 84 |
}, password: { required: 'Need a password here.', |
f0c912bf1
|
85 86 |
minlength: 'Use at least six characters, please.', }, |
7df77f0fa
|
87 |
}, |
23c8a4c3c
|
88 |
submitHandler() { signup(); }, |
7df77f0fa
|
89 90 |
}); }; |
23c8a4c3c
|
91 |
export default function handleSignup(options) { |
7df77f0fa
|
92 |
component = options.component; |
cac7cbc73
|
93 |
validate(); |
23c8a4c3c
|
94 |
} |