aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/404.jade9
-rw-r--r--src/include/layout-loggedin.jade32
-rw-r--r--src/js/Botleagues.js19
-rw-r--r--src/js/BotleaguesCallback.js15
-rw-r--r--src/js/BotleaguesFrontend.js30
-rw-r--r--src/js/forms.js7
-rw-r--r--src/js/main.js26
-rw-r--r--src/js/profile.js13
-rw-r--r--src/profile.jade12
-rw-r--r--src/register.jade33
10 files changed, 138 insertions, 58 deletions
diff --git a/src/404.jade b/src/404.jade
new file mode 100644
index 0000000..65e0aed
--- /dev/null
+++ b/src/404.jade
@@ -0,0 +1,9 @@
+extends ./include/layout-main.jade
+
+block menu
+ -var selected = ''
+
+block content
+ .jumbotron
+ h1 404
+ p.lead Congrats. You did it: you broke my website. \ No newline at end of file
diff --git a/src/include/layout-loggedin.jade b/src/include/layout-loggedin.jade
new file mode 100644
index 0000000..fca8c17
--- /dev/null
+++ b/src/include/layout-loggedin.jade
@@ -0,0 +1,32 @@
+doctype html
+html(lang="en")
+ head
+ include ./head.jade
+
+ body
+ .container
+
+ block menu
+ -var selected = '/profile'; //default
+
+ -var menu = { 'Home': '/', 'Leagues': '/leagues', 'My Bots': '/profile/bots', 'Profile': '/profile' };
+
+ .header.clearfix
+ 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
+ h3#banner Botleagues
+
+ #messages
+
+ block content
+
+ footer.footer: :markdown
+ © [ViviSoft](http://vivisoft.nl/) 2015
+
+ include ./foot.jade
+
+ block js \ No newline at end of file
diff --git a/src/js/Botleagues.js b/src/js/Botleagues.js
index 21dd5d7..35c8c0d 100644
--- a/src/js/Botleagues.js
+++ b/src/js/Botleagues.js
@@ -2,6 +2,12 @@ function Botleagues(){}
Botleagues.url = 'https://api.local.botleagues.camilstaps.nl';
+$.cookie.json = true;
+Botleagues.cookie_login_email = 'botleagues_login_email';
+Botleagues.cookie_login_user_id = 'botleagues_login_user_id';
+Botleagues.cookie_login_token = 'botleagues_login_token';
+Botleagues.cookie_login_valid_till = 'botleagues_login_valid_till';
+
Botleagues.request = function(user_options) {
var callback = user_options.callback;
@@ -39,10 +45,17 @@ Botleagues.login = function(email, password) {
}
});
- $.cookie(BotleaguesFrontend.cookie_login_email, email);
+ $.cookie(Botleagues.cookie_login_email, email);
};
Botleagues.logout = function(){
- BotleaguesFrontend.clearLoginCookies();
- BotleaguesFrontend.redirect('/');
+ Botleagues.clearLoginCookies();
+ window.location = '/';
+};
+
+Botleagues.clearLoginCookies = function() {
+ $.removeCookie(Botleagues.cookie_login_email);
+ $.removeCookie(Botleagues.cookie_login_user_id);
+ $.removeCookie(Botleagues.cookie_login_token);
+ $.removeCookie(Botleagues.cookie_login_valid_till);
}; \ No newline at end of file
diff --git a/src/js/BotleaguesCallback.js b/src/js/BotleaguesCallback.js
index b4916c1..13305fa 100644
--- a/src/js/BotleaguesCallback.js
+++ b/src/js/BotleaguesCallback.js
@@ -33,21 +33,20 @@ BotleaguesCallback.register = function(data) {
BotleaguesCallback.login = function(data) {
if (data.user_token) {
- BotleaguesFrontend.error({
- message: "Login successful!",
- type: 'success'
+ BotleaguesFrontend.success({
+ message: "Login successful!"
});
- $.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,
+ $.cookie(Botleagues.cookie_login_user_id, data.user_token.userId);
+ $.cookie(Botleagues.cookie_login_token, data.user_token.token);
+ $.cookie(Botleagues.cookie_login_valid_till,
(new Date()).getTime() + Date.parse(data.user_token.valid_till) - Date.parse(data.user_token.updated_at));
- BotleaguesFrontend.refresh();
+ window.location = '/profile';
} else {
BotleaguesFrontend.error({
message: data.error ? data.error : "Could not login."
});
- $.removeCookie(BotleaguesFrontend.cookie_login_email);
+ $.removeCookie(Botleagues.cookie_login_email);
}
}; \ No newline at end of file
diff --git a/src/js/BotleaguesFrontend.js b/src/js/BotleaguesFrontend.js
index b94708e..ebc71f2 100644
--- a/src/js/BotleaguesFrontend.js
+++ b/src/js/BotleaguesFrontend.js
@@ -1,16 +1,10 @@
function BotleaguesFrontend(){}
-$.cookie.json = true;
-BotleaguesFrontend.cookie_login_email = 'botleagues_login_email';
-BotleaguesFrontend.cookie_login_user_id = 'botleagues_login_user_id';
-BotleaguesFrontend.cookie_login_token = 'botleagues_login_token';
-BotleaguesFrontend.cookie_login_valid_till = 'botleagues_login_valid_till';
-
-BotleaguesFrontend.error = function(user_options) {
+BotleaguesFrontend.message = function(user_options) {
options = {
dismissable: true,
prepend_to: $('#messages'),
- type: 'danger'
+ type: 'info'
};
for (var key in user_options) {
options[key] = user_options[key];
@@ -27,17 +21,17 @@ BotleaguesFrontend.error = function(user_options) {
html.hide().prependTo(options.prepend_to).slideDown().delay(3000).fadeOut().queue(html.remove);
};
-BotleaguesFrontend.refresh = function() {
- location.reload();
+BotleaguesFrontend.danger = BotleaguesFrontend.error = function(user_options) {
+ user_options.type = 'danger';
+ return BotleaguesFrontend.message(user_options);
};
-BotleaguesFrontend.redirect = function(location) {
- window.location = location;
-}
+BotleaguesFrontend.success = function(user_options) {
+ user_options.type = 'success';
+ return BotleaguesFrontend.message(user_options);
+};
-BotleaguesFrontend.clearLoginCookies = function() {
- $.removeCookie(BotleaguesFrontend.cookie_login_email);
- $.removeCookie(BotleaguesFrontend.cookie_login_user_id);
- $.removeCookie(BotleaguesFrontend.cookie_login_token);
- $.removeCookie(BotleaguesFrontend.cookie_login_valid_till);
+BotleaguesFrontend.warning = function(user_options) {
+ user_options.type = 'warning';
+ return BotleaguesFrontend.message(user_options);
}; \ No newline at end of file
diff --git a/src/js/forms.js b/src/js/forms.js
index 6a567a8..8a58b2d 100644
--- a/src/js/forms.js
+++ b/src/js/forms.js
@@ -5,8 +5,9 @@ $('form.form-register').submit(function(){
data: {
email: $(this).find('input[name="email"]').val(),
password: $(this).find('input[name="password"]').val()
- }
- }, BotleaguesCallback.register);
+ },
+ callback: BotleaguesCallback.register
+ });
event.preventDefault();
});
@@ -17,5 +18,5 @@ $('.btn-botleagues-login').focus(function(){
});
$('#login-form').submit(function(){
Botleagues.login($('#login-email').val(), $('#login-password').val());
- return false;
+ event.preventDefault();
}); \ No newline at end of file
diff --git a/src/js/main.js b/src/js/main.js
index 4444273..1f869c4 100644
--- a/src/js/main.js
+++ b/src/js/main.js
@@ -1,21 +1,25 @@
$(document).ready(function(){
// Show profile link instead of login if user is logged in
- var email = $.cookie(BotleaguesFrontend.cookie_login_email);
- if (typeof email != 'undefined' && $.cookie(BotleaguesFrontend.cookie_login_valid_till) > (new Date()).getTime()) {
- setupLoginMenu(email);
+ var email = $.cookie(Botleagues.cookie_login_email);
+ if (typeof email != 'undefined' && $.cookie(Botleagues.cookie_login_valid_till) > (new Date()).getTime()) {
+ setupLoginMenu();
}
});
-function setupLoginMenu(email) {
+function setupLoginMenu() {
$('#nav .login-link').remove();
- $('<li>').append(
- $('<a>')
- .attr('role', 'presentation')
- .attr('title', 'User profile')
- .attr('href', '/profile')
- .text(email))
- .appendTo($('#nav'));
+
+ if ($('#nav').find('[href="/profile"]').length == 0) {
+ $('<li>').append(
+ $('<a>')
+ .attr('role', 'presentation')
+ .attr('title', 'User profile')
+ .attr('href', '/profile')
+ .text('Profile'))
+ .appendTo($('#nav'));
+ }
+
$('<li>').append(
$('<a>')
.attr('role', 'presentation')
diff --git a/src/js/profile.js b/src/js/profile.js
new file mode 100644
index 0000000..48600db
--- /dev/null
+++ b/src/js/profile.js
@@ -0,0 +1,13 @@
+$(document).ready(function(){
+ setupGreeter();
+});
+
+function setupGreeter() {
+ $('#greeter').append(' ' + $.cookie(Botleagues.cookie_login_email));
+ $('#banner').append(
+ $('<span>')
+ .attr('id', 'banner-email')
+ .addClass('text-muted')
+ .text(' / ' + $.cookie(Botleagues.cookie_login_email))
+ );
+} \ No newline at end of file
diff --git a/src/profile.jade b/src/profile.jade
new file mode 100644
index 0000000..568434c
--- /dev/null
+++ b/src/profile.jade
@@ -0,0 +1,12 @@
+extends ./include/layout-loggedin.jade
+
+block menu
+ -var selected = '/profile'
+
+block content
+ .jumbotron
+ h1 Welcome back
+ p.lead#greeter You're logged in as
+
+block js
+ script(src='/assets/js/profile.js', type='text/javascript') \ No newline at end of file
diff --git a/src/register.jade b/src/register.jade
index 8f79715..b373d1c 100644
--- a/src/register.jade
+++ b/src/register.jade
@@ -6,21 +6,24 @@ block menu
block content
.row
.col-lg-6
- h4 Register
- form.form-register(action='#')
- .form-group
- label(for="register-email") Email
- input.form-control#register-email(type='email',name='email',placeholder="Enter email")
- .form-group
- label(for="register-password") Password
- input.form-control#register-password(type='password',name='password',placeholder="Enter password")
- .form-group
- label(for="register-password2") Password (confirmation)
- input.form-control#register-password2(type='password',name='password',placeholder="Enter password again")
- .checkbox: label
- input#accepts-toc(type='checkbox',name="accepts-toc")
- | I accept the terms and conditions
- button.btn.btn-lg.btn-success.pull-right(type='submit') Register
+ div.well.bs-component
+ h4 Register
+ form.form-register(action='#')
+ .form-group
+ label(for="register-email") Email
+ input.form-control#register-email(type='email',name='email',placeholder="Enter email")
+ .form-group
+ label(for="register-password") Password
+ input.form-control#register-password(type='password',name='password',placeholder="Enter password")
+ .form-group
+ label(for="register-password2") Password (confirmation)
+ input.form-control#register-password2(type='password',name='password',placeholder="Enter password again")
+ .checkbox: label
+ input#accepts-toc(type='checkbox',name="accepts-toc")
+ | I accept the terms and conditions
+ button.btn.btn-lg.btn-success.pull-right(type='submit') Register
+ br(style='clear:both;')
+
.col-lg-6
h4 Subheading
p Donec id elit non mi porta gravida at eget metus. Maecenas faucibus mollis interdum.