From ce65e897f9651082b3d0d7db5c08dd9b0b040b97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9ry=20Debongnie?= Date: Mon, 7 Dec 2015 11:14:46 +0100 Subject: [PATCH] [FIX] bus: prevent crosstab bus from longpolling on init only need to longpoll after start_polling... --- addons/bus/static/src/js/bus.js | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/addons/bus/static/src/js/bus.js b/addons/bus/static/src/js/bus.js index 969a1316d58..cbcf0fdfa83 100644 --- a/addons/bus/static/src/js/bus.js +++ b/addons/bus/static/src/js/bus.js @@ -106,17 +106,9 @@ bus.Bus = Widget.extend({ */ var CrossTabBus = bus.Bus.extend({ init: function(){ - var self = this; this._super.apply(this, arguments); this.is_master = false; - tab_manager.register_tab(function () { - self.is_master = true; - self.start_polling(); - }, function () { - self.is_master = false; - self.stop_polling(); - }); - + this.is_registered = false; if (parseInt(getItem('bus.last_ts', 0)) + 50000 < new Date().getTime()) { setItem('bus.last', -1); } @@ -132,6 +124,19 @@ var CrossTabBus = bus.Bus.extend({ }, start_polling: function(){ + var self = this; + if (!this.is_registered) { + this.is_registered = true; + tab_manager.register_tab(function () { + self.is_master = true; + self.start_polling(); + }, function () { + self.is_master = false; + self.stop_polling(); + }); + return; // start_polling will be called again on tab registration + } + if (this.is_master) { this._super.apply(this, arguments); }