summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristophe Simonis <chs@openerp.com>2012-10-30 12:37:50 +0100
committerChristophe Simonis <chs@openerp.com>2012-10-30 12:37:50 +0100
commitf986227f8f0b354dd2ea4aabdcdec02b3628fdfd (patch)
tree0d303b1c49d606d24b5df44f9bdb80f840f41b16
parentda27fd32e05675b7234868927bab667ed1e29da9 (diff)
[IMP] reload: can wait server is available
bzr revid: chs@openerp.com-20121030113750-4y039gx7cunwz859
-rw-r--r--addons/web/static/src/js/chrome.js47
1 files changed, 36 insertions, 11 deletions
diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js
index d5f72ee8bb9..26f82665a03 100644
--- a/addons/web/static/src/js/chrome.js
+++ b/addons/web/static/src/js/chrome.js
@@ -615,22 +615,47 @@ instance.web.client_actions.add("login", "instance.web.Login");
/**
* Client action to reload the whole interface.
* If params has an entry 'menu_id', it opens the given menu entry.
+ * If params has an entry 'wait', reload will wait the openerp server to be reachable before reloading
*/
instance.web.Reload = function(parent, params) {
- var menu_id = (params && params.menu_id) || false;
- var l = window.location;
+ // hide errors
+ if (instance.client && instance.client.crashmanager) {
+ instance.client.crashmanager.destroy();
+ }
+
+ var reload = function() {
+ console.log('relocate');
+ var menu_id = (params && params.menu_id) || false;
+ var l = window.location;
- var sobj = $.deparam(l.search.substr(1));
- sobj.ts = new Date().getTime();
- var search = '?' + $.param(sobj);
+ var sobj = $.deparam(l.search.substr(1));
+ sobj.ts = new Date().getTime();
+ var search = '?' + $.param(sobj);
+
+ var hash = l.hash;
+ if (menu_id) {
+ hash = "#menu_id=" + menu_id;
+ }
+ var url = l.protocol + "//" + l.host + l.pathname + search + hash;
+ window.location = url;
+ };
+
+ var wait_server = function() {
+ parent.session.rpc("/web/webclient/version_info", {})
+ .done(function() {
+ reload();
+ })
+ .fail(function() {
+ setTimeout(wait_server, 250);
+ });
+ };
- var hash = l.hash;
- if (menu_id) {
- hash = "#menu_id=" + menu_id;
+ if (parent && params && params.wait) {
+ setTimeout(wait_server, 1000);
+ } else {
+ reload();
}
- var url = l.protocol + "//" + l.host + l.pathname + search + hash;
- window.onerror = function() {};
- window.location = url;
+
};
instance.web.client_actions.add("reload", "instance.web.Reload");