summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorChristophe Simonis <chs@openerp.com>2011-12-20 18:37:42 +0100
committerChristophe Simonis <chs@openerp.com>2011-12-20 18:37:42 +0100
commit5168ac754c907272024974fb2d56ff1d06f44816 (patch)
treef68208fd53adf47ee0651247b4ff834a83c51b5e /addons
parent303d1f6d11d60f8de690a4d7981b35347e566756 (diff)
[FIX] show/hide views when there are loaded
bzr revid: chs@openerp.com-20111220173742-cel6khizmlrv9qom
Diffstat (limited to 'addons')
-rw-r--r--addons/web/static/src/js/views.js27
1 files changed, 16 insertions, 11 deletions
diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js
index 5800939ec36..a0819379795 100644
--- a/addons/web/static/src/js/views.js
+++ b/addons/web/static/src/js/views.js
@@ -313,17 +313,18 @@ session.web.ViewManager = session.web.Widget.extend(/** @lends session.web.View
.filter('[data-view-type="' + view_type + '"]')
.attr('disabled', true);
- for (var view_name in this.views) {
- if (!this.views.hasOwnProperty(view_name)) { continue; }
- if (this.views[view_name].controller) {
- if (view_name === view_type) {
- $.when(view_promise).then(this.views[view_name].controller.do_show);
- } else {
- this.views[view_name].controller.do_hide();
- }
- }
- }
$.when(view_promise).then(function () {
+ _.each(_.keys(self.views), function(view_name) {
+ var controller = self.views[view_name].controller;
+ if (controller) {
+ if (view_name === view_type) {
+ controller.do_show();
+ } else {
+ controller.do_hide();
+ }
+ }
+ });
+
self.$element.find('.oe_view_title_text:first').text(
self.display_title());
});
@@ -604,7 +605,11 @@ session.web.ViewManagerAction = session.web.ViewManager.extend(/** @lends oepner
var self = this,
defs = [];
if (state.view_type && state.view_type !== this.active_view) {
- defs.push(this.on_mode_switch(state.view_type, true));
+ defs.push(
+ this.views[this.active_view].deferred.pipe(function() {
+ return self.on_mode_switch(state.view_type, true);
+ })
+ );
}
$.when(defs).then(function() {