diff options
| author | Vincent Schippefilt <vsc@odoo.com> | 2019-03-06 14:02:32 +0100 |
|---|---|---|
| committer | Aaron Bohy <aab@odoo.com> | 2019-03-06 20:07:17 +0100 |
| commit | ab56e637b7f97ddcdbcc9baea99ae097e342409c (patch) | |
| tree | 4cb47da9f7ef89b19d18429220a7507470ec12a9 /addons/web/static/src/js/chrome/web_client.js | |
| parent | eeed894fd50e477135e1ac9a82f6e98ce063ab90 (diff) | |
[REF] web: adapt code after jQuery update
Part of task 1896658
Co-authored-by: Aaron Bohy <aab@odoo.com>
Co-authored-by: Christophe Matthieu <chm@odoo.com>
Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com>
Co-authored-by: David Monjoie <dmo@odoo.com>
Co-authored-by: Martin Geubelle <mge@odoo.com>
Co-authored-by: svs-odoo <svs@odoo.com>
Co-authored-by: Vincent Schippefilt <vsc@odoo.com>
Diffstat (limited to 'addons/web/static/src/js/chrome/web_client.js')
| -rw-r--r-- | addons/web/static/src/js/chrome/web_client.js | 65 |
1 files changed, 34 insertions, 31 deletions
diff --git a/addons/web/static/src/js/chrome/web_client.js b/addons/web/static/src/js/chrome/web_client.js index 0688adc362f..392d534f372 100644 --- a/addons/web/static/src/js/chrome/web_client.js +++ b/addons/web/static/src/js/chrome/web_client.js @@ -111,7 +111,7 @@ return AbstractWebClient.extend({ instanciate_menu_widgets: function () { var self = this; - var defs = []; + var proms = []; return this.load_menus().then(function (menuData) { self.menu_data = menuData; @@ -122,8 +122,8 @@ return AbstractWebClient.extend({ self.menu.destroy(); } self.menu = new Menu(self, menuData); - defs.push(self.menu.prependTo(self.$el)); - return $.when.apply($, defs); + proms.push(self.menu.prependTo(self.$el)); + return Promise.all(proms); }); }, @@ -133,7 +133,7 @@ return AbstractWebClient.extend({ on_hashchange: function (event) { if (this._ignore_hashchange) { this._ignore_hashchange = false; - return $.when(); + return Promise.resolve(); } var self = this; @@ -181,48 +181,51 @@ return AbstractWebClient.extend({ return this.menu_dm.add(data_manager.load_action(ev.data.action_id)) .then(function (result) { return self.action_mutex.exec(function () { - var completed = $.Deferred(); - var options = _.extend({}, ev.data.options, { - clear_breadcrumbs: true, - action_menu_id: ev.data.menu_id, - }); - $.when(self._openMenu(result, options)).fail(function () { - completed.resolve(); - }).done(function () { - self._on_app_clicked_done(ev) - .then(completed.resolve.bind(completed)) - .fail(completed.reject.bind(completed)); + var completed = new Promise(function (resolve, reject) { + var options = _.extend({}, ev.data.options, { + clear_breadcrumbs: true, + action_menu_id: ev.data.menu_id, + }); + + Promise.resolve(self._openMenu(result, options)) + .then(function() { + self._on_app_clicked_done(ev) + .then(resolve) + .guardedCatch(reject); + }).guardedCatch(function() { + resolve(); + }); + setTimeout(function () { + resolve(); + }, 2000); }); - setTimeout(function () { - completed.resolve(); - }, 2000); return completed; }); }); }, _on_app_clicked_done: function (ev) { core.bus.trigger('change_menu_section', ev.data.menu_id); - return $.Deferred().resolve(); + return Promise.resolve(); }, on_menu_clicked: function (ev) { var self = this; return this.menu_dm.add(data_manager.load_action(ev.data.action_id)) .then(function (result) { - return self.action_mutex.exec(function () { - var completed = $.Deferred(); - $.when(self._openMenu(result, { - clear_breadcrumbs: true, - })).always(function () { - completed.resolve(); - }); + self.$el.removeClass('o_mobile_menu_opened'); - setTimeout(function () { - completed.resolve(); - }, 2000); + return self.action_mutex.exec(function () { + var completed = new Promise(function (resolve, reject) { + Promise.resolve(self._openMenu(result, { + clear_breadcrumbs: true, + })).then(resolve).guardedCatch(reject); + setTimeout(function () { + resolve(); + }, 2000); + }); return completed; }); - }).always(function () { + }).guardedCatch(function () { self.$el.removeClass('o_mobile_menu_opened'); }); }, @@ -233,7 +236,7 @@ return AbstractWebClient.extend({ * @private * @param {Object} action * @param {Object} options - * @returns {Deferred} + * @returns {Promise} */ _openMenu: function (action, options) { return this.do_action(action, options); |
