From 498f671126ecab868c232f8a0e1886f74f26ff70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Fri, 27 Mar 2015 15:06:29 +0100 Subject: [PATCH] Wait save tree state when closing all tabs --- src/screen.js | 9 +++++++-- src/tab.js | 5 +++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/screen.js b/src/screen.js index a19b086cee..3753b95aad 100644 --- a/src/screen.js +++ b/src/screen.js @@ -1274,6 +1274,8 @@ } }, save_tree_state: function(store) { + var prms = []; + var prm; store = (store === undefined) ? true : store; var i, len, view, widgets, wi, wlen; var parent_ = this.group.parent ? this.group.parent.id : null; @@ -1287,7 +1289,8 @@ widgets = view.widgets[wid_key]; for (wi = 0, wlen = widgets.length; wi < wlen; wi++) { if (widgets[wi].screen) { - widgets[wi].screen.save_tree_state(store); + prm = widgets[wi].screen.save_tree_state(store); + prms.push(prm); } } } @@ -1312,15 +1315,17 @@ if (store && view.attributes.tree_state) { var tree_state_model = new Sao.Model( 'ir.ui.view_tree_state'); - tree_state_model.execute('set', [ + prm = tree_state_model.execute('set', [ this.model_name, this.get_tree_domain(parent_), view.children_field, JSON.stringify(paths), JSON.stringify(selected_paths)], {}); + prms.push(prm); } } } + return jQuery.when.apply(jQuery, prms); }, get_tree_domain: function(parent_) { var domain; diff --git a/src/tab.js b/src/tab.js index 0d565a6ff8..2e1aa8feaf 100644 --- a/src/tab.js +++ b/src/tab.js @@ -135,8 +135,9 @@ }); } if (Sao.main_menu_screen) { - Sao.main_menu_screen.save_tree_state(); - Sao.main_menu_screen = null; + return Sao.main_menu_screen.save_tree_state().then(function() { + Sao.main_menu_screen = null; + }); } return jQuery.when(); };