diff options
| author | Christophe Simonis <chs@odoo.com> | 2019-05-31 14:37:38 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2019-05-31 14:37:38 +0200 |
| commit | cfe0523714b4244b080a268c0697f270f0b19e5b (patch) | |
| tree | ec6ea86aa32afd66ff4934ee5e745652777887a3 /addons/web/static/src/js/chrome | |
| parent | e5b19bd5aa47fdb2da547cb75de9d33a20e1e180 (diff) | |
| parent | 8f21148e1a8eaae3bc09ec54377becb2361e7834 (diff) | |
[MERGE] forward port branch 12.0 up to 8f21148e1a8
Diffstat (limited to 'addons/web/static/src/js/chrome')
| -rw-r--r-- | addons/web/static/src/js/chrome/action_manager_act_window.js | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/addons/web/static/src/js/chrome/action_manager_act_window.js b/addons/web/static/src/js/chrome/action_manager_act_window.js index d36ec9371de..91b3cc7248c 100644 --- a/addons/web/static/src/js/chrome/action_manager_act_window.js +++ b/addons/web/static/src/js/chrome/action_manager_act_window.js @@ -58,7 +58,10 @@ ActionManager.include({ * @param {string} [state.view_type] */ loadState: function (state) { + var callersArguments = arguments; + var self = this; var action; + var def; var options = { clear_breadcrumbs: true, pushState: false, @@ -113,11 +116,20 @@ ActionManager.include({ action = lastAction; options.viewType = state.view_type; } + } else if (state.sa) { + def = this._rpc({ + route: '/web/session/get_session_action', + params: {key: state.sa}, + }).then(function (sessionAction) { + action = sessionAction; + }); } - if (action) { - return this.doAction(action, options); - } - return this._super.apply(this, arguments); + return $.when(def).then(function () { + if (action) { + return self.doAction(action, options); + } + return self._super.apply(self, callersArguments); + }); }, //-------------------------------------------------------------------------- |
