diff options
| author | Fabien Meghazi <fme@openerp.com> | 2012-03-19 18:03:36 +0100 |
|---|---|---|
| committer | Fabien Meghazi <fme@openerp.com> | 2012-03-19 18:03:36 +0100 |
| commit | 5e1c895fae8d37d7026cada95eb93bf25979163e (patch) | |
| tree | a616b3180e111951ebfe860414d71154c68c17dc /addons/web/static/src | |
| parent | 56516cc3bcc938b5dfda52d4696b7b1d1e0a4409 (diff) | |
[FIX] update_dom not called anymore on form changed
bzr revid: fme@openerp.com-20120319170336-2g7coyj92putcvuk
Diffstat (limited to 'addons/web/static/src')
| -rw-r--r-- | addons/web/static/src/js/view_form.js | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 1d551955917..dd5238fc0a1 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -34,8 +34,6 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# this.model = dataset.model; this.view_id = view_id || false; this.fields_view = {}; - this.widgets = {}; - this.widgets_counter = 0; this.fields = {}; this.fields_order = []; this.datarecord = {}; @@ -80,7 +78,7 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# this.sidebar.attachments.destroy(); this.sidebar.destroy(); } - _.each(this.widgets, function(w) { + _.each(this.get_widgets(), function(w) { w.destroy(); }); this._super(); @@ -217,14 +215,13 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# }); }, on_form_changed: function() { - for (var w in this.widgets) { - w = this.widgets[w]; + _.each(this.get_widgets(), function(w) { w.process_modifiers(); if (w.field) { w.validate(); } w.update_dom(); - } + }); }, do_notify_change: function() { this.$element.addClass('oe_form_dirty'); @@ -603,6 +600,11 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# } }); }, + get_widgets: function() { + return _.filter(this.getChildren(), function(obj) { + return obj instanceof openerp.web.form.Widget; + }); + }, get_fields_values: function(blacklist) { blacklist = blacklist || []; var values = {}; @@ -3203,9 +3205,7 @@ openerp.web.form.FieldReference = openerp.web.form.AbstractField.extend(_.extend this.get_selected_ids = view.get_selected_ids; this.do_onchange = this.on_form_changed = this.do_notify_change = this.on_nop; this.dataset = this.view.dataset; - this.widgets_counter = 0; this.view_id = 'reference_' + _.uniqueId(); - this.widgets = {}; this.fields = {}; this.fields_order = []; this.reference_ready = true; |
