summaryrefslogtreecommitdiff
path: root/addons/base/static/src
diff options
context:
space:
mode:
authorniv-openerp <nicolas.vanhoren@openerp.com>2011-05-18 17:17:10 +0200
committerniv-openerp <nicolas.vanhoren@openerp.com>2011-05-18 17:17:10 +0200
commita55e66ccbbf4dee980a6af473e4f8453f32c3c52 (patch)
tree9b4af37675f61dffd22934f28abf3aec62e715cf /addons/base/static/src
parent800493bf30bfef003b737f8a78994e314db5a339 (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.js3
-rw-r--r--addons/base/static/src/js/list.js3
-rw-r--r--addons/base/static/src/js/views.js24
-rw-r--r--addons/base/static/src/xml/base.xml42
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 &gt; 0 &amp;&amp; d._.detect(d.sections, function(x) {
- return x.elements.length &gt; 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 &gt; 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 &gt; 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">