diff options
Diffstat (limited to 'addons/web/static/src/js/chrome/web_client.js')
| -rw-r--r-- | addons/web/static/src/js/chrome/web_client.js | 51 |
1 files changed, 23 insertions, 28 deletions
diff --git a/addons/web/static/src/js/chrome/web_client.js b/addons/web/static/src/js/chrome/web_client.js index e12f22fcf05..3522a7fc109 100644 --- a/addons/web/static/src/js/chrome/web_client.js +++ b/addons/web/static/src/js/chrome/web_client.js @@ -74,36 +74,31 @@ return AbstractWebClient.extend({ return menuData; }); }, - show_application: function () { - var self = this; + async show_application() { this.set_title(); - return this.menu_dp.add(this.instanciate_menu_widgets()).then(function () { - $(window).bind('hashchange', self.on_hashchange); - - // If the url's state is empty, we execute the user's home action if there is one (we - // show the first app if not) - var state = $.bbq.getState(true); - if (_.keys(state).length === 1 && _.keys(state)[0] === "cids") { - return self.menu_dp.add(self._rpc({ - model: 'res.users', - method: 'read', - args: [session.uid, ["action_id"]], - })) - .then(function (result) { - var data = result[0]; - if (data.action_id) { - return self.do_action(data.action_id[0]).then(function () { - self.menu.change_menu_section(self.menu.action_id_to_primary_menu_id(data.action_id[0])); - }); - } else { - self.menu.openFirstApp(); - } - }); - } else { - return self.on_hashchange(); - } - }); + await this.menu_dp.add(this.instanciate_menu_widgets()); + $(window).bind('hashchange', this.on_hashchange); + + const state = $.bbq.getState(true); + if (!_.isEqual(_.keys(state), ["cids"])) { + return this.on_hashchange(); + } + + const [data] = await this.menu_dp.add(this._rpc({ + model: 'res.users', + method: 'read', + args: [session.uid, ["action_id"]], + })); + if (data.action_id) { + await this.do_action(data.action_id[0]); + this.menu.change_menu_section(this.menu.action_id_to_primary_menu_id(data.action_id[0])); + return; + } + + if (!this.menu.openFirstApp()) { + this.trigger_up('webclient_started'); + } }, instanciate_menu_widgets: function () { |
