diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index 0f92d769fa2..da3cc8b8d2a 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -557,7 +557,7 @@ class Home(http.Controller): 'modules': simplejson.dumps(module_boot(db=db)), 'init': 'var wc = new s.web.WebClient();wc.appendTo($(document.body));' } - return r + return request.make_response(r, {'Cache-Control': 'no-cache', 'Content-Type': 'text/html; charset=utf-8'}) @http.route('/login', type='http', auth="user") def login(self, db, login, key): diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 036f57eee7a..89c44a9b7ed 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -792,10 +792,17 @@ instance.web.redirect = function(url, wait) { instance.client.crashmanager.active = false; } - var wait_server = function() { - instance.session.rpc("/web/webclient/version_info", {}).done(function() { + var load = function() { + var old = "" + window.location; + if (old === url) { + window.location.reload(); + } else { window.location = url; - }).fail(function() { + } + }; + + var wait_server = function() { + instance.session.rpc("/web/webclient/version_info", {}).done(load).fail(function() { setTimeout(wait_server, 250); }); }; @@ -803,7 +810,7 @@ instance.web.redirect = function(url, wait) { if (wait) { setTimeout(wait_server, 1000); } else { - window.location = url; + load(); } }; @@ -818,7 +825,6 @@ instance.web.Reload = function(parent, action) { var l = window.location; var sobj = $.deparam(l.search.substr(1)); - sobj.ts = new Date().getTime(); if (params.url_search) { sobj = _.extend(sobj, params.url_search); } diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 643bca0e798..fb622b056a1 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -459,7 +459,7 @@ -