diff options
| author | Martin Trigaux <mat@openerp.com> | 2013-12-17 11:41:11 +0100 |
|---|---|---|
| committer | Martin Trigaux <mat@openerp.com> | 2013-12-17 11:41:11 +0100 |
| commit | cfd24d982295af13ac6c90f2882e7e49e754c8f3 (patch) | |
| tree | a244837fa38d0e85433964b56c1a84518fd30498 /addons/web/static/src/js/view_list_editable.js | |
| parent | e7c1baa4d47948bf8bed3d903633a2eff171818b (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/view_list_editable.js')
| -rw-r--r-- | addons/web/static/src/js/view_list_editable.js | 21 |
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); + } + }); }); |
