diff options
| author | niv-openerp <nicolas.vanhoren@openerp.com> | 2011-05-18 17:17:10 +0200 |
|---|---|---|
| committer | niv-openerp <nicolas.vanhoren@openerp.com> | 2011-05-18 17:17:10 +0200 |
| commit | a55e66ccbbf4dee980a6af473e4f8453f32c3c52 (patch) | |
| tree | 9b4af37675f61dffd22934f28abf3aec62e715cf /addons/base/static/src | |
| parent | 800493bf30bfef003b737f8a78994e314db5a339 (diff) | |
[imp] improved sidebar, now hide it by default in list views.
bzr revid: nicolas.vanhoren@openerp.com-20110518151710-qq2gwssi75g51uhk
Diffstat (limited to 'addons/base/static/src')
| -rw-r--r-- | addons/base/static/src/js/form.js | 3 | ||||
| -rw-r--r-- | addons/base/static/src/js/list.js | 3 | ||||
| -rw-r--r-- | addons/base/static/src/js/views.js | 24 | ||||
| -rw-r--r-- | 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 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 @@ <input t-att-id="element_id"/> </t> <t t-name="ViewManager.sidebar"> - <div t-att-id="element_id" class="sidebar-main-div open-sidebar"> + <div t-att-id="element_id" class="sidebar-main-div closed-sidebar"> </div> </t> <t t-name="ViewManager.sidebar.internal"> - <t t-js="d"> - d.the_condition = d.sections.length > 0 && d._.detect(d.sections, function(x) { - return x.elements.length > 0; - }) != undefined - </t> - <t t-if="the_condition"> - <a class="toggle-sidebar"></a> - <div t-att-id="element_id" class="sidebar-sub-div"> - <div class="sidebar-displaying-div"> - <t t-set="i" t-value="1-1"/> <!-- al do stupid things --> - <t t-foreach="sections" t-as="section"> - <t t-if="section.elements.length > 0"> - <h2><t t-esc="section.label"/></h2> - <ul> - <t t-set="j" t-value="1-1"/> - <t t-foreach="section.elements" t-as="element"> - <li><a t-att-data-i="i" t-att-data-j="j" href="#"><t t-esc="element.name"/></a></li> - <t t-set="j" t-value="j+1"/> - </t> - </ul> + <a class="toggle-sidebar"></a> + <div t-att-id="element_id" class="sidebar-sub-div"> + <div class="sidebar-displaying-div"> + <t t-set="i" t-value="1-1"/> <!-- al do stupid things --> + <t t-foreach="sections" t-as="section"> + <t t-if="section.elements.length > 0"> + <h2><t t-esc="section.label"/></h2> + <ul> + <t t-set="j" t-value="1-1"/> + <t t-foreach="section.elements" t-as="element"> + <li><a class="oe_sidebar_action_a" t-att-data-i="i" t-att-data-j="j" href="#"> + <t t-esc="element.name"/></a></li> + <t t-set="j" t-value="j+1"/> </t> - <t t-set="i" t-value="i+1"/> + </ul> </t> - </div> + <t t-set="i" t-value="i+1"/> + </t> </div> - </t> + </div> </t> <t t-name="DialogWarning"> <div id="dialog-message" t-att-title="title"> |
