summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js
diff options
context:
space:
mode:
authorMartin Trigaux <mat@openerp.com>2013-12-17 11:41:11 +0100
committerMartin Trigaux <mat@openerp.com>2013-12-17 11:41:11 +0100
commitcfd24d982295af13ac6c90f2882e7e49e754c8f3 (patch)
treea244837fa38d0e85433964b56c1a84518fd30498 /addons/web/static/src/js
parente7c1baa4d47948bf8bed3d903633a2eff171818b (diff)
[FIX] view_list_editable: toggle visibility (using force_visibility attribute) for readonly changes, using effective_invisibility instead of invisibility attribute (opw 601970)
bzr revid: mat@openerp.com-20131217104111-u9bnqvz7rd5rzwnc
Diffstat (limited to 'addons/web/static/src/js')
-rw-r--r--addons/web/static/src/js/view_list_editable.js21
1 files changed, 10 insertions, 11 deletions
diff --git a/addons/web/static/src/js/view_list_editable.js b/addons/web/static/src/js/view_list_editable.js
index bd9cee06797..4c7e4655054 100644
--- a/addons/web/static/src/js/view_list_editable.js
+++ b/addons/web/static/src/js/view_list_editable.js
@@ -274,7 +274,7 @@ openerp.web.list_editable = function (instance) {
if (!this.editor.is_editing()) { return; }
for(var i=0, len=this.fields_for_resize.length; i<len; ++i) {
var item = this.fields_for_resize[i];
- if (!item.field.get('invisible')) {
+ if (!item.field.get('effective_invisible')) {
this.resize_field(item.field, item.cell);
}
}
@@ -440,23 +440,22 @@ openerp.web.list_editable = function (instance) {
setup_events: function () {
var self = this;
_.each(this.editor.form.fields, function(field, field_name) {
- var setting = false;
var set_invisible = function() {
- if (!setting && field.get("effective_readonly")) {
- setting = true;
- field.set({invisible: true});
- setting = false;
- }
+ field.set({'force_invisible': field.get('effective_readonly')});
};
field.on("change:effective_readonly", self, set_invisible);
- field.on("change:invisible", self, set_invisible);
set_invisible();
- field.on('change:invisible', self, function () {
- if (field.get('invisible')) { return; }
+ field.on('change:effective_invisible', self, function () {
+ if (field.get('effective_invisible')) { return; }
var item = _(self.fields_for_resize).find(function (item) {
return item.field === field;
});
- if (item) { self.resize_field(item.field, item.cell); }
+ if (item) {
+ setTimeout(function() {
+ self.resize_field(item.field, item.cell);
+ }, 0);
+ }
+
});
});