From f0218468f76a01e7644bc727ea9502015a5047c3 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Thu, 7 May 2015 12:00:54 +0300 Subject: Register page & more --- src/js/Botleagues.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/js/Botleagues.js (limited to 'src/js/Botleagues.js') diff --git a/src/js/Botleagues.js b/src/js/Botleagues.js new file mode 100644 index 0000000..fd8ed21 --- /dev/null +++ b/src/js/Botleagues.js @@ -0,0 +1,22 @@ +function Botleagues(){} + +Botleagues.url = 'https://api.local.botleagues.camilstaps.nl'; + +Botleagues.request = function(user_options, callback) { + var options = { + endpoint: null, + method: 'GET', + dataType: 'json', + done: function(data) { + callback(data); + } + }; + for (var name in user_options) { + options[name] = user_options[name]; + } + + var url = Botleagues.url + '/' + options['endpoint']; + delete options['endpoint']; + + jQuery.ajax(url, options); +}; \ No newline at end of file -- cgit v1.2.3 From 9de17f00941e56d7c063241e3f87bfeb70e50276 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Thu, 7 May 2015 15:43:22 +0300 Subject: HTTP authentication --- src/js/Botleagues.js | 4 ++++ src/js/BotleaguesCallback.js | 4 +++- src/js/BotleaguesFrontend.js | 6 +++--- 3 files changed, 10 insertions(+), 4 deletions(-) (limited to 'src/js/Botleagues.js') diff --git a/src/js/Botleagues.js b/src/js/Botleagues.js index fd8ed21..efc56d8 100644 --- a/src/js/Botleagues.js +++ b/src/js/Botleagues.js @@ -19,4 +19,8 @@ Botleagues.request = function(user_options, callback) { delete options['endpoint']; jQuery.ajax(url, options); +}; + +Botleagues.redirect = function(user_options) { + window.location = Botleagues.url + '/' + user_options['endpoint']; }; \ No newline at end of file diff --git a/src/js/BotleaguesCallback.js b/src/js/BotleaguesCallback.js index 271deb0..1efe8d6 100644 --- a/src/js/BotleaguesCallback.js +++ b/src/js/BotleaguesCallback.js @@ -4,4 +4,6 @@ BotleaguesCallback.register = function(data) { console.log(data); }; -BotleaguesCallback.login = function(data) {} \ No newline at end of file +BotleaguesCallback.login = function(data) { + console.log(data); +} \ No newline at end of file diff --git a/src/js/BotleaguesFrontend.js b/src/js/BotleaguesFrontend.js index 37e84d4..461ce92 100644 --- a/src/js/BotleaguesFrontend.js +++ b/src/js/BotleaguesFrontend.js @@ -1,7 +1,7 @@ function BotleaguesFrontend(){} BotleaguesFrontend.login = function() { - Botleagues.request({ - endpoint: 'user/login' - }, BotleaguesCallback.login); + Botleagues.redirect({ + endpoint: 'user/login?redirect=http://local.botleagues.camilstaps.nl/' + }); }; \ No newline at end of file -- cgit v1.2.3 From 3282ddaa098463adc778a2a81f5239769c922f65 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Thu, 7 May 2015 16:50:29 +0300 Subject: Register form + validation --- src/css/forms.less | 3 +++ src/css/style.less | 1 + src/include/head.jade | 3 ++- src/include/layout-main.jade | 2 ++ src/js/Botleagues.js | 4 ++-- src/js/BotleaguesCallback.js | 33 ++++++++++++++++++++++++++++----- src/js/BotleaguesFrontend.js | 21 +++++++++++++++++++++ src/js/forms.js | 1 + src/register.jade | 2 +- 9 files changed, 61 insertions(+), 9 deletions(-) create mode 100644 src/css/forms.less create mode 100644 src/css/style.less (limited to 'src/js/Botleagues.js') 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( + $('') + .addClass('glyphicon glyphicon-remove form-control-feedback') + .attr('aria-hidden', true) + ) + .find('label') + .append( + $('') + .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 = '
'; + if (options.dismissable === true) + html += '×'; + html += options.message; + html += '
'; + + 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") -- cgit v1.2.3