summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js
diff options
context:
space:
mode:
authorniv-openerp <nicolas.vanhoren@openerp.com>2012-05-10 17:23:35 +0200
committerniv-openerp <nicolas.vanhoren@openerp.com>2012-05-10 17:23:35 +0200
commit8c0c6c1bd7ac5adc8fd2fadec7e11b2160d388c8 (patch)
treeb8d0f403a34d609beea1a2ba5ce2a89fb650d5ef /addons/web/static/src/js
parentd08ad3bab3d3ff48d2d9624989546b926c624964 (diff)
parentb1e48d1b6a20909dd816ef13d5e524bdb6d78b66 (diff)
[imp] improvements for future functionality
bzr revid: nicolas.vanhoren@openerp.com-20120510152335-2xhs5m1xvoo97d4h
Diffstat (limited to 'addons/web/static/src/js')
-rw-r--r--addons/web/static/src/js/view_form.js18
1 files changed, 13 insertions, 5 deletions
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index 198b3d4ff85..27606a564be 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -1118,8 +1118,6 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
// invisibility transfer
var field_modifiers = JSON.parse($child.attr('modifiers') || '{}');
var invisible = field_modifiers.invisible;
- field_modifiers.invisible = undefined;
- $child.attr('modifiers', JSON.stringify(field_modifiers));
self.handle_common_properties($td, $("<dummy>").attr("modifiers", JSON.stringify({invisible: invisible})));
$tr.append($td.append($child));
@@ -1371,17 +1369,27 @@ instance.web.form.InvisibilityChangerMixin = {
instance.web.form.compute_domain(this._ic_invisible_modifier, this._ic_field_manager.fields);
this.set({"invisible": result});
});
- this.set({invisible: this._ic_invisible_modifier === true});
+ this.set({invisible: this._ic_invisible_modifier === true, force_invisible: false});
+ var check = function() {
+ if (this.get("invisible") || this.get('force_invisible')) {
+ this.set({"effective_invisible": true});
+ } else {
+ this.set({"effective_invisible": false});
+ }
+ };
+ this.on('change:invisible', this, check);
+ this.on('change:force_invisible', this, check);
+ _.bind(check, this)();
},
start: function() {
var check_visibility = function() {
- if (this.get("invisible")) {
+ if (this.get("effective_invisible")) {
this.$element.hide();
} else {
this.$element.show();
}
};
- this.on("change:invisible", this, check_visibility);
+ this.on("change:effective_invisible", this, check_visibility);
_.bind(check_visibility, this)();
},
};