[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
This commit is contained in:
Martin Trigaux
2013-12-17 11:41:11 +01:00
parent e7c1baa4d4
commit cfd24d9822
+10 -11
View File
@@ -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);
}
});
});