diff options
| author | Christophe Simonis <chs@odoo.com> | 2014-10-14 14:36:45 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2014-10-14 14:36:45 +0200 |
| commit | db759948ffdda5f73eaa989a6b14f291b9a8f9b8 (patch) | |
| tree | ca52f753c9fb29379b7b0a14e2c5bf933976487d /addons/web/static/src | |
| parent | 695935253a2148d2d60f37264db90dbbdb41f963 (diff) | |
| parent | 75d3ea6208a8495610e1ba9ade93eee057222dc7 (diff) | |
[MERGE] forward port of branch 7.0 up to 75d3ea6
Diffstat (limited to 'addons/web/static/src')
| -rw-r--r-- | addons/web/static/src/js/view_form.js | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index e93375c1d81..d0951b6537e 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -119,6 +119,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM this.mutating_mutex = new $.Mutex(); this.on_change_list = []; this.save_list = []; + this.render_value_defs = []; this.reload_mutex = new $.Mutex(); this.__clicked_inside = false; this.__blur_timeout = null; @@ -697,6 +698,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM } else if (mode === "create") { mode = "edit"; } + this.render_value_defs = []; this.set({actual_mode: mode}); }, check_actual_mode: function(source, options) { @@ -747,12 +749,15 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM }); }, on_button_cancel: function(event) { + var self = this; if (this.can_be_discarded()) { if (this.get('actual_mode') === 'create') { this.trigger('history_back'); } else { this.to_view_mode(); - this.trigger('load_record', this.datarecord); + $.when.apply(null, this.render_value_defs).then(function(){ + self.trigger('load_record', self.datarecord); + }); } } this.trigger('on_button_cancel'); @@ -2257,7 +2262,7 @@ instance.web.form.ReinitializeWidgetMixin = { instance.web.form.ReinitializeFieldMixin = _.extend({}, instance.web.form.ReinitializeWidgetMixin, { reinitialize: function() { instance.web.form.ReinitializeWidgetMixin.reinitialize.call(this); - this.render_value(); + this.view.render_value_defs.push(this.render_value()); }, }); @@ -4452,9 +4457,8 @@ instance.web.form.FieldMany2ManyTags = instance.web.form.AbstractField.extend(in self.render_tag(data); } if (! values || values.length > 0) { - this._display_orderer.add(self.get_render_data(values)).done(handle_names); - } - else{ + return this._display_orderer.add(self.get_render_data(values)).done(handle_names); + } else { handle_names([]); } }, |
