From 8da3756438dede0223732a24d2e9e6cf87880332 Mon Sep 17 00:00:00 2001 From: Antony Lesuisse Date: Fri, 16 Dec 2011 16:05:41 +0100 Subject: [PATCH] [IMP] Connection minor changes bzr revid: al@openerp.com-20111216150541-ogukhprtnkh7raht --- addons/web/static/src/js/chrome.js | 2 +- addons/web/static/src/js/core.js | 37 +++++++++++------------------- 2 files changed, 15 insertions(+), 24 deletions(-) diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index e7ec69c336d..412e74a5b6a 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -598,7 +598,7 @@ openerp.web.Login = openerp.web.Widget.extend(/** @lends openerp.web.Login# */{ do_login: function (db, login, password) { var self = this; this.session.session_authenticate(db, login, password).then(function() { - if(self.session.is_valid()) { + if(self.session.session_is_valid()) { if (self.has_local_storage) { if(self.remember_credentials) { localStorage.setItem('last_db_login_success', db); diff --git a/addons/web/static/src/js/core.js b/addons/web/static/src/js/core.js index 7f2775c0264..f63c975334f 100644 --- a/addons/web/static/src/js/core.js +++ b/addons/web/static/src/js/core.js @@ -360,18 +360,13 @@ openerp.web.Connection = openerp.web.CallbackEnabled.extend( /** @lends openerp. // TODO: session store in cookie should be optional this.name = openerp._session_id; }, - bind: function(server) { - if (this.server) { - throw new Error("Connection already bound to " + this.server); - } - - var hostname = _.str.sprintf('%s//%s', location.protocol, location.host); - this.server = _.str.rtrim((!server) ? hostname : server, '/'); - openerp.web.qweb.default_dict['_s'] = this.server; - this.rpc_function = (this.server == hostname) ? this.rpc_json : this.rpc_jsonp; - - this.prefix = this.server; // make al happy - + bind: function(origin) { + var window_origin = location.protocol+"//"+location.host; + this.origin = origin ? _.str.rtrim(origin,'/') : window_origin; + this.prefix = this.origin; + this.server = this.origin; // keep chs happy + openerp.web.qweb.default_dict['_s'] = this.origin; + this.rpc_function = (this.origin == window_origin) ? this.rpc_json : this.rpc_jsonp; this.session_id = false; this.uid = false; this.username = false; @@ -385,14 +380,6 @@ openerp.web.Connection = openerp.web.CallbackEnabled.extend( /** @lends openerp. this.ready = $.Deferred(); return this.session_init(); }, - - /** - * Called when a rpc call fail due to an invalid session. - * By default, it's a noop - */ - on_session_invalid: function(retry_callback) { - }, - /** * Executes an RPC call, registering the provided callbacks. * @@ -566,11 +553,9 @@ openerp.web.Connection = openerp.web.CallbackEnabled.extend( /** @lends openerp. return deferred; }); }, - - is_valid: function() { + session_is_valid: function() { return !!this.uid; }, - /** * The session is validated either by login or by restoration of a previous session */ @@ -595,6 +580,12 @@ openerp.web.Connection = openerp.web.CallbackEnabled.extend( /** @lends openerp. this.set_cookie('session_id', ''); window.location.reload(); }, + /** + * Called when a rpc call fail due to an invalid session. + * By default, it's a noop + */ + on_session_invalid: function(retry_callback) { + }, /** * Fetches a cookie stored by an openerp session *