diff options
| author | niv-openerp <nicolas.vanhoren@openerp.com> | 2011-09-08 18:35:36 +0200 |
|---|---|---|
| committer | niv-openerp <nicolas.vanhoren@openerp.com> | 2011-09-08 18:35:36 +0200 |
| commit | 7987d3a2f6ebc1256a33320c0d2d964687c11be4 (patch) | |
| tree | 0ac18410603256131000cc06e819dc51eb1bb1c6 /addons/web/static/src | |
| parent | ec24f26ca66f65b76d991585353c65c9d0d7d1e8 (diff) | |
[imp] added possibility to only show some states in status widget
bzr revid: nicolas.vanhoren@openerp.com-20110908163536-bewx1817u96t11rc
Diffstat (limited to 'addons/web/static/src')
| -rw-r--r-- | addons/web/static/src/js/form.js | 15 | ||||
| -rw-r--r-- | addons/web/static/src/xml/base.xml | 6 |
2 files changed, 15 insertions, 6 deletions
diff --git a/addons/web/static/src/js/form.js b/addons/web/static/src/js/form.js index 17f7efc4a14..43584ccbdf3 100644 --- a/addons/web/static/src/js/form.js +++ b/addons/web/static/src/js/form.js @@ -2482,16 +2482,25 @@ openerp.web.form.FieldStatus = openerp.web.form.Field.extend({ template: "FieldStatus", start: function() { this._super(); - this.selected_index = null; + this.selected_value = null; this.render_list(); }, set_value: function(value) { this._super(value); - var select = _.detect(this.field.selection, function(x) { return x[0] === value; }); - this.selected_index = _.indexOf(this.field.selection, select); + this.selected_value = value; this.render_list(); }, render_list: function() { + var self = this; + var shown = _.map(((this.node.attrs || {}).statusbar_visible || "").split(","), + function(x) { return x.trim(); }); + if (shown.length == 0) { + this.to_show = this.field.selection; + } else { + this.to_show = _.select(this.field.selection, function(x) { + return _.indexOf(shown, x[0]) !== -1 || x[0] === self.selected_value; + }); + } var content = openerp.web.qweb.render("FieldStatus.content", {widget: this, _:_}); this.$element.html(content); } diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index c46dbd6ab72..385d7bfd48b 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -1382,10 +1382,10 @@ </t> <t t-name="FieldStatus.content"> <ul class="oe-arrow-list"> - <t t-set="size" t-value="widget.field.selection.length"/> + <t t-set="size" t-value="widget.to_show.length"/> <t t-foreach="_.range(size)" t-as="i"> - <li t-att-class="i === widget.selected_index ? 'oe-arrow-list-selected' : ''"> - <span class="oe-arrow-list-before" t-if="i > 0"></span><span><t t-esc="widget.field.selection[i][1]"/></span><span class="oe-arrow-list-after" t-if="i < size - 1"></span> + <li t-att-class="widget.to_show[i][0] === widget.selected_value ? 'oe-arrow-list-selected' : ''"> + <span class="oe-arrow-list-before" t-if="i > 0"></span><span><t t-esc="widget.to_show[i][1]"/></span><span class="oe-arrow-list-after" t-if="i < size - 1"></span> </li> </t> </ul> |
