|
|
|
@ -1,151 +1,162 @@
|
|
|
|
|
define(function() {
|
|
|
|
|
var Register = {};
|
|
|
|
|
'use strict';
|
|
|
|
|
|
|
|
|
|
Register.init = function() {
|
|
|
|
|
var username = $('#username'),
|
|
|
|
|
password = $('#password'),
|
|
|
|
|
password_confirm = $('#password-confirm'),
|
|
|
|
|
register = $('#register'),
|
|
|
|
|
emailEl = $('#email'),
|
|
|
|
|
username_notify = $('#username-notify'),
|
|
|
|
|
email_notify = $('#email-notify'),
|
|
|
|
|
password_notify = $('#password-notify'),
|
|
|
|
|
password_confirm_notify = $('#password-confirm-notify'),
|
|
|
|
|
agreeTerms = $('#agree-terms'),
|
|
|
|
|
validationError = false,
|
|
|
|
|
successIcon = '<i class="fa fa-check"></i>';
|
|
|
|
|
/* globals define, app, utils, socket, config */
|
|
|
|
|
|
|
|
|
|
$('#referrer').val(app.previousUrl);
|
|
|
|
|
|
|
|
|
|
function showError(element, msg) {
|
|
|
|
|
element.html(msg);
|
|
|
|
|
element.parent()
|
|
|
|
|
.removeClass('alert-success')
|
|
|
|
|
.addClass('alert-danger');
|
|
|
|
|
element.show();
|
|
|
|
|
define(function() {
|
|
|
|
|
var Register = {},
|
|
|
|
|
validationError = false,
|
|
|
|
|
successIcon = '<i class="fa fa-check"></i>';
|
|
|
|
|
|
|
|
|
|
function showError(element, msg) {
|
|
|
|
|
element.html(msg);
|
|
|
|
|
element.parent()
|
|
|
|
|
.removeClass('alert-success')
|
|
|
|
|
.addClass('alert-danger');
|
|
|
|
|
element.show();
|
|
|
|
|
validationError = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function showSuccess(element, msg) {
|
|
|
|
|
element.html(msg);
|
|
|
|
|
element.parent()
|
|
|
|
|
.removeClass('alert-danger')
|
|
|
|
|
.addClass('alert-success');
|
|
|
|
|
element.show();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function validateEmail(email) {
|
|
|
|
|
var email_notify = $('#email-notify');
|
|
|
|
|
|
|
|
|
|
if (!email) {
|
|
|
|
|
validationError = true;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function showSuccess(element, msg) {
|
|
|
|
|
element.html(msg);
|
|
|
|
|
element.parent()
|
|
|
|
|
.removeClass('alert-danger')
|
|
|
|
|
.addClass('alert-success');
|
|
|
|
|
element.show();
|
|
|
|
|
if (!utils.isEmailValid(email)) {
|
|
|
|
|
showError(email_notify, 'Invalid email address.');
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function validateEmail() {
|
|
|
|
|
if (!emailEl.val()) {
|
|
|
|
|
validationError = true;
|
|
|
|
|
return;
|
|
|
|
|
socket.emit('user.emailExists', {
|
|
|
|
|
email: email
|
|
|
|
|
}, function(err, exists) {
|
|
|
|
|
if(err) {
|
|
|
|
|
return app.alertError(err.message);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!utils.isEmailValid(emailEl.val())) {
|
|
|
|
|
showError(email_notify, 'Invalid email address.');
|
|
|
|
|
if (exists) {
|
|
|
|
|
showError(email_notify, 'Email address already taken!');
|
|
|
|
|
} else {
|
|
|
|
|
socket.emit('user.emailExists', {
|
|
|
|
|
email: emailEl.val()
|
|
|
|
|
}, function(err, exists) {
|
|
|
|
|
if(err) {
|
|
|
|
|
return app.alertError(err.message);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (exists) {
|
|
|
|
|
showError(email_notify, 'Email address already taken!');
|
|
|
|
|
} else {
|
|
|
|
|
showSuccess(email_notify, successIcon);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
showSuccess(email_notify, successIcon);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
emailEl.on('blur', function() {
|
|
|
|
|
validateEmail();
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function validateUsername() {
|
|
|
|
|
if (!username.val()) {
|
|
|
|
|
validationError = true;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
function validateUsername(username) {
|
|
|
|
|
var username_notify = $('#username-notify');
|
|
|
|
|
|
|
|
|
|
if (username.val().length < config.minimumUsernameLength) {
|
|
|
|
|
showError(username_notify, 'Username too short!');
|
|
|
|
|
} else if (username.val().length > config.maximumUsernameLength) {
|
|
|
|
|
showError(username_notify, 'Username too long!');
|
|
|
|
|
} else if (!utils.isUserNameValid(username.val()) || !utils.slugify(username.val())) {
|
|
|
|
|
showError(username_notify, 'Invalid username!');
|
|
|
|
|
} else {
|
|
|
|
|
socket.emit('user.exists', {
|
|
|
|
|
username: username.val()
|
|
|
|
|
}, function(err, exists) {
|
|
|
|
|
if(err) {
|
|
|
|
|
return app.alertError(err.message);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (exists) {
|
|
|
|
|
showError(username_notify, 'Username already taken!');
|
|
|
|
|
} else {
|
|
|
|
|
showSuccess(username_notify, successIcon);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
if (!username) {
|
|
|
|
|
validationError = true;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
username.on('keyup', function() {
|
|
|
|
|
$('#yourUsername').html(this.value.length > 0 ? this.value : 'username');
|
|
|
|
|
});
|
|
|
|
|
if (username.length < config.minimumUsernameLength) {
|
|
|
|
|
showError(username_notify, 'Username too short!');
|
|
|
|
|
} else if (username.length > config.maximumUsernameLength) {
|
|
|
|
|
showError(username_notify, 'Username too long!');
|
|
|
|
|
} else if (!utils.isUserNameValid(username) || !utils.slugify(username)) {
|
|
|
|
|
showError(username_notify, 'Invalid username!');
|
|
|
|
|
} else {
|
|
|
|
|
socket.emit('user.exists', {
|
|
|
|
|
username: username
|
|
|
|
|
}, function(err, exists) {
|
|
|
|
|
if(err) {
|
|
|
|
|
return app.alertError(err.message);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
username.on('blur', function() {
|
|
|
|
|
validateUsername();
|
|
|
|
|
});
|
|
|
|
|
if (exists) {
|
|
|
|
|
showError(username_notify, 'Username already taken!');
|
|
|
|
|
} else {
|
|
|
|
|
showSuccess(username_notify, successIcon);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function validatePassword() {
|
|
|
|
|
if (!password.val()) {
|
|
|
|
|
validationError = true;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
function validatePassword(password, password_confirm) {
|
|
|
|
|
if (!password) {
|
|
|
|
|
validationError = true;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
var password_notify = $('#password-notify'),
|
|
|
|
|
password_confirm_notify = $('#password-confirm-notify');
|
|
|
|
|
|
|
|
|
|
if (password.length < config.minimumPasswordLength) {
|
|
|
|
|
showError(password_notify, 'Password too short!');
|
|
|
|
|
} else if (!utils.isPasswordValid(password)) {
|
|
|
|
|
showError(password_notify, 'Invalid password!');
|
|
|
|
|
} else {
|
|
|
|
|
showSuccess(password_notify, successIcon);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (password.val().length < config.minimumPasswordLength) {
|
|
|
|
|
showError(password_notify, 'Password too short!');
|
|
|
|
|
} else if (!utils.isPasswordValid(password.val())) {
|
|
|
|
|
showError(password_notify, 'Invalid password!');
|
|
|
|
|
} else {
|
|
|
|
|
showSuccess(password_notify, successIcon);
|
|
|
|
|
}
|
|
|
|
|
if (password !== password_confirm && password_confirm !== '') {
|
|
|
|
|
showError(password_confirm_notify, 'Passwords must match!');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (password.val() !== password_confirm.val() && password_confirm.val() !== '') {
|
|
|
|
|
showError(password_confirm_notify, 'Passwords must match!');
|
|
|
|
|
}
|
|
|
|
|
function validatePasswordConfirm(password, password_confirm) {
|
|
|
|
|
var password_notify = $('#password-notify'),
|
|
|
|
|
password_confirm_notify = $('#password-confirm-notify');
|
|
|
|
|
|
|
|
|
|
if (!password || password_notify.hasClass('alert-error')) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$(password).on('blur', function() {
|
|
|
|
|
validatePassword();
|
|
|
|
|
if (password !== password_confirm) {
|
|
|
|
|
showError(password_confirm_notify, 'Passwords must match!');
|
|
|
|
|
} else {
|
|
|
|
|
showSuccess(password_confirm_notify, successIcon);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Register.init = function() {
|
|
|
|
|
var email = $('#email'),
|
|
|
|
|
username = $('#username'),
|
|
|
|
|
password = $('#password'),
|
|
|
|
|
password_confirm = $('#password-confirm'),
|
|
|
|
|
register = $('#register'),
|
|
|
|
|
agreeTerms = $('#agree-terms');
|
|
|
|
|
|
|
|
|
|
$('#referrer').val(app.previousUrl);
|
|
|
|
|
|
|
|
|
|
email.on('blur', function() {
|
|
|
|
|
validateEmail(email.val());
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
function validatePasswordConfirm() {
|
|
|
|
|
if (!password.val() || password_notify.hasClass('alert-error')) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
username.on('keyup', function() {
|
|
|
|
|
$('#yourUsername').html(this.value.length > 0 ? this.value : 'username');
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (password.val() !== password_confirm.val()) {
|
|
|
|
|
showError(password_confirm_notify, 'Passwords must match!');
|
|
|
|
|
} else {
|
|
|
|
|
showSuccess(password_confirm_notify, successIcon);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
username.on('blur', function() {
|
|
|
|
|
validateUsername(username.val());
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
password.on('blur', function() {
|
|
|
|
|
validatePassword(password.val(), password_confirm.val());
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$(password_confirm).on('blur', function() {
|
|
|
|
|
validatePasswordConfirm();
|
|
|
|
|
password_confirm.on('blur', function() {
|
|
|
|
|
validatePasswordConfirm(password.val(), password_confirm.val());
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
function validateForm() {
|
|
|
|
|
validationError = false;
|
|
|
|
|
|
|
|
|
|
validateEmail();
|
|
|
|
|
validateUsername();
|
|
|
|
|
validatePassword();
|
|
|
|
|
validatePasswordConfirm();
|
|
|
|
|
validateEmail(email.val());
|
|
|
|
|
validateUsername(username.val());
|
|
|
|
|
validatePassword(password.val(), password_confirm.val());
|
|
|
|
|
validatePasswordConfirm(password.val(), password_confirm.val());
|
|
|
|
|
|
|
|
|
|
return validationError;
|
|
|
|
|
}
|
|
|
|
|