From e2603dfa427975d7aa8b690d10079398b8ca897c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Fri, 6 Mar 2015 09:33:03 +0100 Subject: [PATCH] Refactor session management - remove cookie (mostly useless since login is a form) - fix focus - show modal only when database are fecthed - fix selection of database in URL review11041002 --- src/session.js | 116 +++++++++++++++++-------------------------------- 1 file changed, 39 insertions(+), 77 deletions(-) diff --git a/src/session.js b/src/session.js index 6195357cae..6378f3a424 100644 --- a/src/session.js +++ b/src/session.js @@ -3,42 +3,12 @@ (function() { 'use strict'; - Sao.parse_cookie = function() { - var cookie = {}; - var parts = document.cookie.split('; '); - for (var i = 0, length = parts.length; i < length; i++) { - var part = parts[i].split('='); - if (part.length != 2) { - continue; - } - cookie[part[0]] = part[1]; - } - return cookie; - }; - - - Sao.set_cookie = function(values) { - for (var name in values) { - if (!values.hasOwnProperty(name)) { - continue; - } - var value = values[name]; - document.cookie = name + '=' + value; - } - }; - Sao.Session = Sao.class_(Object, { - init: function(database, login) { - this.user_id = null; - this.session = null; - if (!database && !login) { - var cookie = Sao.parse_cookie(); - this.database = cookie.database; - this.login = cookie.login; - } else { - this.database = database; - this.login = login; - } + init: function(database, login) { + this.user_id = null; + this.session = null; + this.database = database; + this.login = login; this.context = {}; if (!Sao.Session.current_session) { Sao.Session.current_session = this; @@ -73,10 +43,6 @@ } else { this.user_id = data.result[0]; this.session = data.result[1]; - Sao.set_cookie({ - 'login': this.login, - 'database': this.database - }); } dfd.resolve(); } @@ -116,16 +82,16 @@ }); Sao.Session.get_credentials = function(parent_dfd) { - var cookie = Sao.parse_cookie(); - var login = cookie.login; var database = window.location.hash.replace( /^(#(!|))/, '') || null; - var database_select; - var login_modal; + var database_select = jQuery('#login-database'); + var login_input = jQuery('#login-login'); + var password_input = jQuery('#login-password'); + var login_modal = jQuery('#login'); var ok_func = function() { - var login = jQuery('#login-login').val(); - var password = jQuery('#login-password').val(); + var login = login_input.val(); + var password = password_input.val(); var database = database || database_select.val(); if (!(login && password)) { return; @@ -138,41 +104,37 @@ login_modal.modal('hide'); }; - var fill_database = function() { - jQuery.when(Sao.DB.list()).then(function(databases) { - databases.forEach(function(database) { - database_select.append(jQuery('