aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCamil Staps2015-05-07 16:50:29 +0300
committerCamil Staps2015-05-07 16:50:29 +0300
commit3282ddaa098463adc778a2a81f5239769c922f65 (patch)
tree1a906be1df9603fd585b32bc6222cec6cde5fb75
parentHTTP authentication (diff)
Register form + validation
-rw-r--r--src/css/forms.less3
-rw-r--r--src/css/style.less1
-rw-r--r--src/include/head.jade3
-rw-r--r--src/include/layout-main.jade2
-rw-r--r--src/js/Botleagues.js4
-rw-r--r--src/js/BotleaguesCallback.js33
-rw-r--r--src/js/BotleaguesFrontend.js21
-rw-r--r--src/js/forms.js1
-rw-r--r--src/register.jade2
9 files changed, 61 insertions, 9 deletions
diff --git a/src/css/forms.less b/src/css/forms.less
new file mode 100644
index 0000000..233bde5
--- /dev/null
+++ b/src/css/forms.less
@@ -0,0 +1,3 @@
+label {
+ display: block;
+} \ No newline at end of file
diff --git a/src/css/style.less b/src/css/style.less
new file mode 100644
index 0000000..f32a0b2
--- /dev/null
+++ b/src/css/style.less
@@ -0,0 +1 @@
+@import 'forms.less'; \ No newline at end of file
diff --git a/src/include/head.jade b/src/include/head.jade
index 63cb17c..b3b12e4 100644
--- a/src/include/head.jade
+++ b/src/include/head.jade
@@ -5,4 +5,5 @@ meta(http-equiv='X-UA-Compatible', content='IE=edge')
meta(name='viewport', content='width=device-width, initial-scale=1')
link(rel='stylesheet', href='/assets/css/bootswatch.css', type='text/css')
-link(rel='stylesheet', href='/assets/css/font-awesome.css', type='text/css') \ No newline at end of file
+link(rel='stylesheet', href='/assets/css/font-awesome.css', type='text/css')
+link(rel='stylesheet', href='/assets/css/style.css', type='text/css') \ No newline at end of file
diff --git a/src/include/layout-main.jade b/src/include/layout-main.jade
index b680d9f..72331ee 100644
--- a/src/include/layout-main.jade
+++ b/src/include/layout-main.jade
@@ -20,6 +20,8 @@ html(lang="en")
li(role='presentation'): a(href=val,title=key)= key
h3 Botleagues
+ #messages
+
block content
footer.footer: :markdown
diff --git a/src/js/Botleagues.js b/src/js/Botleagues.js
index efc56d8..f9d34b7 100644
--- a/src/js/Botleagues.js
+++ b/src/js/Botleagues.js
@@ -7,8 +7,8 @@ Botleagues.request = function(user_options, callback) {
endpoint: null,
method: 'GET',
dataType: 'json',
- done: function(data) {
- callback(data);
+ complete: function(data) {
+ callback(data.responseJSON);
}
};
for (var name in user_options) {
diff --git a/src/js/BotleaguesCallback.js b/src/js/BotleaguesCallback.js
index 1efe8d6..f162e7c 100644
--- a/src/js/BotleaguesCallback.js
+++ b/src/js/BotleaguesCallback.js
@@ -1,9 +1,32 @@
function BotleaguesCallback(){}
BotleaguesCallback.register = function(data) {
- console.log(data);
-};
+ $('form.form-register .form-group')
+ .removeClass('has-feedback has-success has-warning, has-error')
+ .find('.form-control-feedback').remove();
-BotleaguesCallback.login = function(data) {
- console.log(data);
-} \ No newline at end of file
+ if (typeof data.error !== 'undefined') {
+ BotleaguesFrontend.error({message: data.error, prepend_to: $('form.form-register')});
+ if (typeof data.errors !== 'undefined') {
+ for (var key in data.errors) {
+ var error_msg = data.errors[key].join('; ');
+
+ $('#register-' + key)
+ .attr('title', error_msg)
+ .parent()
+ .addClass('has-feedback has-error')
+ .append(
+ $('<span>')
+ .addClass('glyphicon glyphicon-remove form-control-feedback')
+ .attr('aria-hidden', true)
+ )
+ .find('label')
+ .append(
+ $('<span>')
+ .addClass('pull-right text-danger')
+ .text(error_msg)
+ );
+ }
+ }
+ }
+}; \ No newline at end of file
diff --git a/src/js/BotleaguesFrontend.js b/src/js/BotleaguesFrontend.js
index 461ce92..e9ab570 100644
--- a/src/js/BotleaguesFrontend.js
+++ b/src/js/BotleaguesFrontend.js
@@ -1,5 +1,26 @@
function BotleaguesFrontend(){}
+BotleaguesFrontend.error = function(user_options) {
+ options = {
+ dismissable: true,
+ prepend_to: $('#messages'),
+ type: 'danger'
+ };
+ for (var key in user_options) {
+ options[key] = user_options[key];
+ }
+
+ var html = '<div class="alert alert-' + options.type + '">';
+ if (options.dismissable === true)
+ html += '<a href="#" class="close" data-dismiss="alert">&times;</a>';
+ html += options.message;
+ html += '</div>';
+
+ html = $(html);
+
+ html.prependTo(options.prepend_to).delay(3000).fadeOut().queue(html.remove);
+};
+
BotleaguesFrontend.login = function() {
Botleagues.redirect({
endpoint: 'user/login?redirect=http://local.botleagues.camilstaps.nl/'
diff --git a/src/js/forms.js b/src/js/forms.js
index 5ad9959..24f0f43 100644
--- a/src/js/forms.js
+++ b/src/js/forms.js
@@ -7,5 +7,6 @@ $('form.form-register').submit(function(){
password: $(this).find('input[name="password"]').val()
}
}, BotleaguesCallback.register);
+
event.preventDefault();
}); \ No newline at end of file
diff --git a/src/register.jade b/src/register.jade
index 2aca779..8f79715 100644
--- a/src/register.jade
+++ b/src/register.jade
@@ -7,7 +7,7 @@ block content
.row
.col-lg-6
h4 Register
- form.form-register
+ form.form-register(action='#')
.form-group
label(for="register-email") Email
input.form-control#register-email(type='email',name='email',placeholder="Enter email")