From 2664d857350392f4900851cdaf6cbcf71aca334a Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Sun, 10 May 2015 22:41:00 +0200 Subject: Login form start --- src/include/layout-main.jade | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/include') diff --git a/src/include/layout-main.jade b/src/include/layout-main.jade index 72331ee..df3fdc5 100644 --- a/src/include/layout-main.jade +++ b/src/include/layout-main.jade @@ -18,10 +18,22 @@ html(lang="en") li.active(role='presentation'): a(href=val,title=key)= key else li(role='presentation'): a(href=val,title=key)= key + li(role='presentation'): a.btn-botleagues-login(href='#',title='Login') Login h3 Botleagues #messages + #login-block + form.form-inline#login-form + .form-group + label.control-label(for='login-email') Email: + input.form-control#login-email(type='email') + .form-group + label.control-label(for='login-password') Password: + input.form-control#login-password(type='password') + a.btn.btn-default#login-submit(href='#') Login + + block content footer.footer: :markdown -- cgit v1.2.3 From f51ce6f4acf28c224ec4a02f35ae35726cdc4c38 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Tue, 12 May 2015 22:31:07 +0200 Subject: Working login, but doesn't save token yet --- gulpfile.js | 2 +- src/css/forms.less | 6 ++++++ src/include/layout-main.jade | 10 ++++------ src/js/Botleagues.js | 24 ++++++++++++++++++++---- src/js/BotleaguesCallback.js | 13 +++++++++++++ src/js/BotleaguesFrontend.js | 8 +------- src/js/forms.js | 7 ++++++- 7 files changed, 51 insertions(+), 19 deletions(-) (limited to 'src/include') diff --git a/gulpfile.js b/gulpfile.js index 23b113c..181462c 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -92,7 +92,7 @@ gulp.task('styles', function() { return file; } }})) - .pipe(changed(dst, { destination: 'style.css' })) + //.pipe(changed(dst, { destination: 'style.css' })) .pipe(gulpif(isBootswatchFile, foreach(function(stream, file) { var themeName = path.basename(path.dirname(file.path)), content = replaceAll(baseContent, bootswatch_theme, themeName), diff --git a/src/css/forms.less b/src/css/forms.less index 6ddc244..e29f4d7 100644 --- a/src/css/forms.less +++ b/src/css/forms.less @@ -1,3 +1,9 @@ #login-block { display: none; + + #login-form { + display: inline-block; + float: right; + margin-bottom: 0.5em; + } } \ No newline at end of file diff --git a/src/include/layout-main.jade b/src/include/layout-main.jade index df3fdc5..7b15138 100644 --- a/src/include/layout-main.jade +++ b/src/include/layout-main.jade @@ -24,15 +24,13 @@ html(lang="en") #messages #login-block - form.form-inline#login-form + form.form-inline#login-form(action='#',method='post') .form-group - label.control-label(for='login-email') Email: - input.form-control#login-email(type='email') + input.form-control#login-email(type='email',placeholder='Email') .form-group - label.control-label(for='login-password') Password: - input.form-control#login-password(type='password') + input.form-control#login-password(type='password',placeholder='Password') a.btn.btn-default#login-submit(href='#') Login - + br(style='clear:both;') block content diff --git a/src/js/Botleagues.js b/src/js/Botleagues.js index f9d34b7..2ab1bc7 100644 --- a/src/js/Botleagues.js +++ b/src/js/Botleagues.js @@ -2,7 +2,9 @@ function Botleagues(){} Botleagues.url = 'https://api.local.botleagues.camilstaps.nl'; -Botleagues.request = function(user_options, callback) { +Botleagues.request = function(user_options) { + var callback = user_options.callback; + var options = { endpoint: null, method: 'GET', @@ -11,16 +13,30 @@ Botleagues.request = function(user_options, callback) { callback(data.responseJSON); } }; + + var url = Botleagues.url + '/' + user_options['endpoint']; + delete user_options['callback']; + delete user_options['endpoint']; + for (var name in user_options) { options[name] = user_options[name]; } - var url = Botleagues.url + '/' + options['endpoint']; - delete options['endpoint']; - jQuery.ajax(url, options); }; Botleagues.redirect = function(user_options) { window.location = Botleagues.url + '/' + user_options['endpoint']; +}; + +Botleagues.login = function(username, password) { + Botleagues.request({ + endpoint: 'user_token', + method: 'POST', + callback: BotleaguesCallback.login, + async: false, + headers: { + 'Authorization': 'Basic ' + btoa(username + ':' + password) + } + }); }; \ No newline at end of file diff --git a/src/js/BotleaguesCallback.js b/src/js/BotleaguesCallback.js index f162e7c..3b1de02 100644 --- a/src/js/BotleaguesCallback.js +++ b/src/js/BotleaguesCallback.js @@ -29,4 +29,17 @@ BotleaguesCallback.register = function(data) { } } } +}; + +BotleaguesCallback.login = function(data) { + if (data.user_token) { + BotleaguesFrontend.error({ + message: "Login successful!", + type: 'success' + }); + } else { + BotleaguesFrontend.error({ + message: data.error ? data.error : "Could not login." + }); + } }; \ No newline at end of file diff --git a/src/js/BotleaguesFrontend.js b/src/js/BotleaguesFrontend.js index e9ab570..c25a7f2 100644 --- a/src/js/BotleaguesFrontend.js +++ b/src/js/BotleaguesFrontend.js @@ -18,11 +18,5 @@ BotleaguesFrontend.error = function(user_options) { 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/' - }); + html.hide().prependTo(options.prepend_to).slideDown().delay(3000).fadeOut().queue(html.remove); }; \ No newline at end of file diff --git a/src/js/forms.js b/src/js/forms.js index e096794..c6bdffe 100644 --- a/src/js/forms.js +++ b/src/js/forms.js @@ -14,4 +14,9 @@ $('form.form-register').submit(function(){ $('.btn-botleagues-login').focus(function(){ $('#login-block').slideDown(); $('#login-email').focus(); -}); \ No newline at end of file +}); +var login = function(){ + Botleagues.login($('#login-email').val(), $('#login-password').val()); +}; +$('#login-submit').click(login); +$('#login-form').submit(login); \ No newline at end of file -- cgit v1.2.3 From 49a41885b1f5167056ba97c5e573f8a833b8055d Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Wed, 13 May 2015 07:48:45 +0200 Subject: Nicer login form --- src/include/layout-main.jade | 3 ++- src/js/forms.js | 6 ++---- 2 files changed, 4 insertions(+), 5 deletions(-) (limited to 'src/include') diff --git a/src/include/layout-main.jade b/src/include/layout-main.jade index 7b15138..fac12f2 100644 --- a/src/include/layout-main.jade +++ b/src/include/layout-main.jade @@ -29,7 +29,8 @@ html(lang="en") input.form-control#login-email(type='email',placeholder='Email') .form-group input.form-control#login-password(type='password',placeholder='Password') - a.btn.btn-default#login-submit(href='#') Login + .form-group + button.btn.btn-default.pull-right#login-submit(role='submit') Login br(style='clear:both;') block content diff --git a/src/js/forms.js b/src/js/forms.js index c6bdffe..dfecb7f 100644 --- a/src/js/forms.js +++ b/src/js/forms.js @@ -15,8 +15,6 @@ $('.btn-botleagues-login').focus(function(){ $('#login-block').slideDown(); $('#login-email').focus(); }); -var login = function(){ +$('#login-form').submit(function(){ Botleagues.login($('#login-email').val(), $('#login-password').val()); -}; -$('#login-submit').click(login); -$('#login-form').submit(login); \ No newline at end of file +}); \ No newline at end of file -- cgit v1.2.3 From e7f88122ace11130d566e57461f14e383917f5a8 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Wed, 13 May 2015 09:45:54 +0200 Subject: Show login email if logged in --- src/include/foot.jade | 4 +++- src/include/layout-main.jade | 4 ++-- src/js/BotleaguesCallback.js | 3 ++- src/js/main.js | 16 ++++++++++++++++ 4 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 src/js/main.js (limited to 'src/include') diff --git a/src/include/foot.jade b/src/include/foot.jade index 1e383f2..4c8a7a1 100644 --- a/src/include/foot.jade +++ b/src/include/foot.jade @@ -2,4 +2,6 @@ script(src='/assets/js/script.js', type='text/javascript') script(src='/assets/js/Botleagues.js', type='text/javascript') script(src='/assets/js/BotleaguesCallback.js', type='text/javascript') script(src='/assets/js/BotleaguesFrontend.js', type='text/javascript') -script(src='/assets/js/forms.js', type='text/javascript') \ No newline at end of file + +script(src='/assets/js/forms.js', type='text/javascript') +script(src='/assets/js/main.js', type='text/javascript') \ No newline at end of file diff --git a/src/include/layout-main.jade b/src/include/layout-main.jade index fac12f2..164a7b2 100644 --- a/src/include/layout-main.jade +++ b/src/include/layout-main.jade @@ -12,13 +12,13 @@ html(lang="en") -var menu = { 'Home': '/', 'About': '/about', 'Contact': '/contact' }; .header.clearfix - nav: ul.nav.nav-pills.pull-right + nav: ul.nav.nav-pills.pull-right#nav each val, key in menu if selected === val li.active(role='presentation'): a(href=val,title=key)= key else li(role='presentation'): a(href=val,title=key)= key - li(role='presentation'): a.btn-botleagues-login(href='#',title='Login') Login + li.login-link(role='presentation'): a.btn-botleagues-login(href='#',title='Login') Login h3 Botleagues #messages diff --git a/src/js/BotleaguesCallback.js b/src/js/BotleaguesCallback.js index 3e7e512..ea837fd 100644 --- a/src/js/BotleaguesCallback.js +++ b/src/js/BotleaguesCallback.js @@ -39,7 +39,8 @@ BotleaguesCallback.login = function(data) { }); $.cookie(BotleaguesFrontend.cookie_login_user_id, data.user_token.userId); $.cookie(BotleaguesFrontend.cookie_login_token, data.user_token.token); - $.cookie(BotleaguesFrontend.cookie_login_valid_till, Date.parse(data.user_token.valid_till)); + $.cookie(BotleaguesFrontend.cookie_login_valid_till, + (new Date()).getTime() + Date.parse(data.user_token.valid_till) - Date.parse(data.user_token.updated_at)); } else { BotleaguesFrontend.error({ message: data.error ? data.error : "Could not login." diff --git a/src/js/main.js b/src/js/main.js new file mode 100644 index 0000000..04b5c6f --- /dev/null +++ b/src/js/main.js @@ -0,0 +1,16 @@ +$(document).ready(function(){ + + // Show profile link instead of login if user is logged in + var email = $.cookie(BotleaguesFrontend.cookie_login_email); + console.log(email); + if (typeof email != 'undefined' && $.cookie(BotleaguesFrontend.cookie_login_valid_till) > (new Date()).getTime()) { + $('#nav .login-link').remove(); + $('