From a55e66ccbbf4dee980a6af473e4f8453f32c3c52 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Wed, 18 May 2011 17:17:10 +0200 Subject: [PATCH] [imp] improved sidebar, now hide it by default in list views. bzr revid: nicolas.vanhoren@openerp.com-20110518151710-qq2gwssi75g51uhk --- addons/base/static/src/js/form.js | 3 +++ addons/base/static/src/js/list.js | 3 +++ addons/base/static/src/js/views.js | 24 +++++++++++++++----- addons/base/static/src/xml/base.xml | 42 +++++++++++++++-------------------- 4 files changed, 43 insertions(+), 29 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 4feacf4..6b2fdb0 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 70ab111..8261725 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 a3c235a..c99da8f 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 5242a0e..eb17719 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -557,37 +557,31 @@ -