diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js
index 4feacf42323..6b2fdb0a7cb 100644
--- a/addons/base/static/src/js/form.js
+++ b/addons/base/static/src/js/form.js
@@ -71,6 +71,9 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV
} else {
this.dataset.read_index(_.keys(this.fields_view.fields), this.on_record_loaded);
}
+ if (this.view_manager && this.view_manager.sidebar) {
+ this.view_manager.sidebar.refresh(true);
+ }
},
do_hide: function () {
this.$element.hide();
diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js
index 70ab1110baa..8261725cf72 100644
--- a/addons/base/static/src/js/list.js
+++ b/addons/base/static/src/js/list.js
@@ -251,6 +251,9 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi
this.do_reload();
this.hidden = false;
}
+ if (this.view_manager && this.view_manager.sidebar) {
+ this.view_manager.sidebar.refresh(true);
+ }
},
do_hide: function () {
this.$element.hide();
diff --git a/addons/base/static/src/js/views.js b/addons/base/static/src/js/views.js
index a3c235a1aae..c99da8fb66d 100644
--- a/addons/base/static/src/js/views.js
+++ b/addons/base/static/src/js/views.js
@@ -295,17 +295,31 @@ openerp.base.Sidebar = openerp.base.BaseWidget.extend({
var section = {elements:toolbar[type[0]], label:type[1]};
self.sections.push(section);
});
- this.refresh();
+ this.refresh(true);
},
- refresh: function() {
- this.$element.html(QWeb.render("ViewManager.sidebar.internal", _.extend({_:_}, this)));
+ refresh: function(new_view) {
+ var view = this.view_manager.active_view;
+ the_condition = this.sections.length > 0 && _.detect(this.sections,
+ function(x) {return x.elements.length > 0;}) != undefined
+ && (!new_view || view != 'list');
+ if (!the_condition) {
+ this.$element.addClass('closed-sidebar');
+ this.$element.removeClass('open-sidebar');
+ } else {
+ this.$element.addClass('open-sidebar');
+ this.$element.removeClass('closed-sidebar');
+ }
+
+ this.$element.html(QWeb.render("ViewManager.sidebar.internal",this));
+
var self = this;
this.$element.find(".toggle-sidebar").click(function(e) {
self.$element.toggleClass('open-sidebar closed-sidebar');
e.stopPropagation();
e.preventDefault();
});
- this.$element.find("a").click(function(e) {
+
+ this.$element.find("a.oe_sidebar_action_a").click(function(e) {
var $this = jQuery(this);
var i = $this.attr("data-i");
var j = $this.attr("data-j");
@@ -320,7 +334,7 @@ openerp.base.Sidebar = openerp.base.BaseWidget.extend({
},
start: function() {
this._super();
- this.refresh();
+ this.refresh(false);
}
});
diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml
index 5242a0ee523..eb177195411 100644
--- a/addons/base/static/src/xml/base.xml
+++ b/addons/base/static/src/xml/base.xml
@@ -557,37 +557,31 @@
-
+
-
- d.the_condition = d.sections.length > 0 && d._.detect(d.sections, function(x) {
- return x.elements.length > 0;
- }) != undefined
-
-
-
-