aboutsummaryrefslogtreecommitdiff
path: root/src/js
diff options
context:
space:
mode:
Diffstat (limited to 'src/js')
-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
6 files changed, 67 insertions, 43 deletions
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