sync/templates/register.pug

129 lines
5.2 KiB
Plaintext
Raw Normal View History

2013-12-26 03:04:26 +00:00
doctype html
html(lang="en")
head
include head
+head()
body
#wrap
nav.navbar.navbar-inverse.navbar-fixed-top(role="navigation")
include nav
+navheader()
#nav-collapsible.collapse.navbar-collapse
ul.nav.navbar-nav
+navdefaultlinks("/register")
if loggedIn
+navlogoutform("/register")
section#mainpage.container
if loggedIn
.col-lg-6.col-lg-offset-3.col-md-6.col-md-offset-3
.alert.alert-danger.messagebox.center
strong Already logged in
p.
You are already logged in. If you intend to register a new account, please <a href="/logout?redirect=/register">Logout</a> first.
// TODO Link to My Account page
else if !registered
.col-lg-6.col-lg-offset-3.col-md-6.col-md-offset-3
if registerError
.alert.alert-danger.messagebox.center
strong Registration Failed
p= registerError
h2 Register
form(role="form", action="/register", method="post", onsubmit="return verify()")
2015-02-23 00:15:22 +00:00
input(type="hidden", name="_csrf", value=csrfToken)
.form-group
label.control-label(for="username") Username
2017-06-05 05:04:39 +00:00
input#username.form-control(type="text", name="name", onkeyup="checkUsername()", maxlength="20")
2017-06-05 06:44:46 +00:00
p#validate_username.text-danger.pull-right
.form-group
label.control-label(for="password") Password
input#password.form-control(type="password", name="password", onkeyup="checkPasswords()")
2017-06-05 06:44:46 +00:00
p#validate_password.text-danger.pull-right
.form-group
label.control-label(for="password_confirm") Confirm Password
input#password_confirm.form-control(type="password", onkeyup="checkPasswords()")
2017-06-05 06:44:46 +00:00
p#validate_confirm.text-danger.pull-right
.form-group
label.control-label(for="email") Email (optional)
input#email.form-control(type="email", name="email")
2017-06-05 06:44:46 +00:00
p#validate_email.text-danger.pull-right
p
| Providing an email address is optional and will allow you to recover your account via email if you forget your password.
strong &nbsp;&nbsp;If you do not provide an email address, you will not be able to recover a lost account!
button#registerbtn.btn.btn-success.btn-block(type="submit") Register
else
.col-lg-6.col-lg-offset-3.col-md-6.col-md-offset-3
.alert.alert-success.messagebox.center
strong Registration Successful
p Thanks for registering, #{registerName}! Now you can <a href="/login">Login</a> to use your account.
include footer
+footer()
script(src="/js/jquery.js")
script(type="text/javascript").
function verify() {
var valid = checkUsername();
valid = checkPasswords() && valid;
valid = checkEmail() && valid;
return valid;
}
function checkUsername() {
2017-06-05 06:44:46 +00:00
function stateError(text){
2017-06-05 05:04:39 +00:00
target.parent()
.addClass("has-error")
.removeClass("has-success");
2017-06-05 06:44:46 +00:00
$("#validate_username").text(text);
2017-06-05 05:04:39 +00:00
}
var target = $("#username");
var name = target.val();
if (name === "") {
2017-06-05 06:44:46 +00:00
stateError('Username must not be empty')
return false;
} else if (!(/^[-\w\u00c0-\u00ff]{1,20}$/).test(name)) {
2017-06-05 06:44:46 +00:00
stateError("Username must consist of 1-20 characters" +
" a-Z, A-Z, 0-9, -, or _.");
return false;
} else {
2017-06-05 06:44:46 +00:00
target.parent()
.removeClass("has-error")
.addClass("has-success");
2017-06-05 06:44:46 +00:00
$("#validate_username").text('');
}
}
function checkPasswords() {
2017-06-05 06:44:46 +00:00
function stateError(text, target, validator){
2017-06-05 05:04:39 +00:00
target.parent()
.addClass("has-error")
.removeClass("has-success");
2017-06-05 06:44:46 +00:00
$(`#${validator}`).text(text);
2017-06-05 05:04:39 +00:00
}
var target = $("#password");
var target2 = $("#password_confirm");
var pw = target.val();
var pwc = target2.val();
2017-06-05 06:44:46 +00:00
$("#validate_password").text('');
$("#validate_confirm").text('');
if (pw === "") {
2017-06-05 06:44:46 +00:00
stateError('Password must not be empty', target, 'validate_password')
return false;
} else {
2017-06-05 06:44:46 +00:00
target.parent()
.removeClass("has-error")
.addClass("has-success");
if (pw !== pwc) {
2017-06-05 06:44:46 +00:00
stateError('Passwords do not match', target2, 'validate_confirm')
return false;
} else {
2017-06-05 05:04:39 +00:00
target2.parent()
.removeClass("has-error")
.addClass("has-success");
}
}
}
function checkEmail() {
var email = $("#email").val();
if (email.trim() === "") {
return confirm("Are you sure you want to register without setting a recovery email address? If you lose the password, or if your account is compromised, you WILL NOT be able to recover it.");
}
return true;
}