added password confirm to registration and prettified the notifications on regiser page, need to add validation for email/username/password on server side User.create too

v1.18.x
Baris Soner Usakli 12 years ago
parent 939207ef45
commit fcbe99870a

@ -1,13 +1,17 @@
(function() { (function() {
var username = document.getElementById('username'), var username = document.getElementById('username'),
password = document.getElementById('password'), password = document.getElementById('password'),
password_confirm = document.getElementById('password-confirm'),
register = document.getElementById('register'), register = document.getElementById('register'),
emailEl = document.getElementById('email'), emailEl = document.getElementById('email'),
username_notify = document.getElementById('username-notify'), username_notify = document.getElementById('username-notify'),
email_notify = document.getElementById('email-notify'), email_notify = document.getElementById('email-notify'),
password_notify = document.getElementById('password-notify'), password_notify = document.getElementById('password-notify'),
password_confirm_notify = document.getElementById('password-confirm-notify'),
emailexists = false, emailexists = false,
userexists = false; emailvalid = false,
userexists = false,
passwordsmatch = false;
$(username).on('keyup change', function() { $(username).on('keyup change', function() {
if (username.value.length > 2) socket.emit('user.exists', {username: username.value}); if (username.value.length > 2) socket.emit('user.exists', {username: username.value});
@ -17,38 +21,69 @@
} }
}); });
emailEl.addEventListener('change', function() { $(emailEl).on('keyup change', function() {
socket.emit('user.email.exists', { email: emailEl.value }); socket.emit('user.email.exists', { email: emailEl.value });
}, false); });
password.addEventListener('keyup', function() { password.addEventListener('keyup', function() {
if (password.value.length < 5) { if (password.value.length < 5) {
password_notify.innerHTML = 'Password too short'; password_notify.innerHTML = 'Password too short';
password_notify.className = 'label label-important';
} else { } else {
password_notify.innerHTML = ''; password_notify.innerHTML = 'OK!';
password_notify.className = 'label label-success';
} }
}, false); }, false);
$(password_confirm).on('keyup', function() {
if(password.value !== password_confirm.value) {
password_confirm_notify.innerHTML = 'Passwords must match!';
password_confirm_notify.className = 'label label-important';
passwordsmatch = false;
}
else {
password_confirm_notify.innerHTML = 'OK!';
password_confirm_notify.className = 'label label-success';
passwordsmatch = true;
}
});
ajaxify.register_events(['user.exists', 'user.email.exists']); ajaxify.register_events(['user.exists', 'user.email.exists']);
socket.on('user.exists', function(data) { socket.on('user.exists', function(data) {
userexists = data.exists; userexists = data.exists;
if (data.exists == true) { if (data.exists === true) {
username_notify.innerHTML = 'Username exists'; username_notify.innerHTML = 'Username exists';
username_notify.className = 'label label-important'; username_notify.className = 'label label-important';
} else { } else {
username_notify.innerHTML = 'Not taken'; username_notify.innerHTML = 'OK!';
username_notify.className = 'label label-success'; username_notify.className = 'label label-success';
} }
}); });
socket.on('user.email.exists', function(data) { socket.on('user.email.exists', function(data) {
emailexists = data.exists; emailexists = data.exists;
emailvalid = isEmailValid(email.value);
console.log('derp');
if (data.exists === true) { if (data.exists === true) {
email_notify.innerHTML = 'Email Address exists'; email_notify.innerHTML = 'Email Address exists';
} else { email_notify.className = 'label label-important';
email_notify.innerHTML = ''; } else if(!emailvalid) {
email_notify.innerHTML = 'Invalid email address';
email_notify.className = 'label label-important';
}
else {
email_notify.innerHTML = 'OK!';
email_notify.className = 'label label-success';
} }
}); });
// from http://stackoverflow.com/questions/46155/validate-email-address-in-javascript
function isEmailValid(email) {
var re = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/;
return re.test(email);
}
// Alternate Logins // Alternate Logins
var altLoginEl = document.querySelector('.alt-logins'); var altLoginEl = document.querySelector('.alt-logins');
altLoginEl.addEventListener('click', function(e) { altLoginEl.addEventListener('click', function(e) {
@ -74,15 +109,11 @@
if (password.value.length < 5) { if (password.value.length < 5) {
password_notify.innerHTML = 'Password too short'; password_notify.innerHTML = 'Password too short';
validated = false; validated = false;
} else {
password_notify.innerHTML = '';
} }
if (email.value.indexOf('@') === -1) { if (!emailvalid) {
email_notify.innerHTML = 'Invalid email address'; email_notify.innerHTML = 'Invalid email address';
validated = false; validated = false;
} else {
email_notify.innerHTML = '';
} }
if(emailexists) { if(emailexists) {
@ -93,9 +124,14 @@
if(userexists) if(userexists)
validated = false; validated = false;
if(!passwordsmatch)
validated = false;
return validated; return validated;
} }
register.addEventListener('click', function(e) { register.addEventListener('click', function(e) {
if (!validateForm()) e.preventDefault(); if (!validateForm()) e.preventDefault();
}, false); }, false);
}()); }());

@ -5,6 +5,7 @@
<label for="email">Email Address</label><input type="email" name="email" placeholder="Enter Email Address" id="email" /> <span id="email-notify" class="label label-important"></span><br /> <label for="email">Email Address</label><input type="email" name="email" placeholder="Enter Email Address" id="email" /> <span id="email-notify" class="label label-important"></span><br />
<label for="username">Username</label><input type="text" name="username" placeholder="Enter Username" id="username" /> <span id="username-notify" class="label label-success"></span> <br /> <label for="username">Username</label><input type="text" name="username" placeholder="Enter Username" id="username" /> <span id="username-notify" class="label label-success"></span> <br />
<label for="password">Password</label><input type="password" name="password" placeholder="Enter Password" id="password" /> <span id="password-notify" class="label label-important"></span> <br /> <label for="password">Password</label><input type="password" name="password" placeholder="Enter Password" id="password" /> <span id="password-notify" class="label label-important"></span> <br />
<label for="password-confirm">Confirm Password</label><input type="password" name="password-confirm" placeholder="Confirm Password" id="password-confirm" /> <span id="password-confirm-notify" class="label label-important"></span> <br />
<input type="hidden" name="_csrf" value="{token}" /> <input type="hidden" name="_csrf" value="{token}" />
<button class="btn btn-primary" id="register" type="submit">Register Now</button> <button class="btn btn-primary" id="register" type="submit">Register Now</button>
</form> </form>

Loading…
Cancel
Save