Merge lp:~openerp-dev/openerp-web/7.0-opw-591158-vme into lp:openerp-web/7.0

Proposed by Vidhin Mehta (OpenERP)
Status: Needs review
Proposed branch: lp:~openerp-dev/openerp-web/7.0-opw-591158-vme
Merge into: lp:openerp-web/7.0
Diff against target: 45 lines (+20/-7)
1 file modified
addons/web/static/src/js/view_form.js (+20/-7)
To merge this branch: bzr merge lp:~openerp-dev/openerp-web/7.0-opw-591158-vme
Reviewer Review Type Date Requested Status
OpenERP Core Team Pending
Review via email: mp+158602@code.launchpad.net

Description of the change

To post a comment you must log in.

Unmerged revisions

3894. By Vidhin Mehta (OpenERP)

[FIX]handle_button should call after form view loaded.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'addons/web/static/src/js/view_form.js'
2--- addons/web/static/src/js/view_form.js 2013-04-11 16:32:38 +0000
3+++ addons/web/static/src/js/view_form.js 2013-04-12 13:02:30 +0000
4@@ -356,6 +356,7 @@
5 }
6 self.$el.add(self.$buttons).removeClass('oe_form_dirty');
7 self.autofocus();
8+ self.trigger('record_loaded');
9 });
10 },
11 /**
12@@ -3919,14 +3920,26 @@
13 }
14 var parent_form = this.o2m.view;
15 var self = this;
16- this.ensure_saved().then(function () {
17- if (parent_form)
18- return parent_form.save();
19- else
20- return $.when();
21- }).done(function () {
22+ var dirty = parent_form.$el.hasClass('oe_form_dirty');
23+
24+ // if parent_form and dirty found than, handle_button function must call after
25+ // loading all record and initializing form view.
26+ var call_handle_button = function(){
27+ parent_form.off("record_loaded", self, call_handle_button);
28 self.handle_button(name, id, callback);
29- });
30+ };
31+ parent_form.on("record_loaded", self, call_handle_button);
32+
33+ this.ensure_saved().then(function () {
34+ if (parent_form)
35+ return parent_form.save();
36+ else
37+ return $.when();
38+ }).done(function () {
39+ if(!parent_form || (parent_form && !dirty)){
40+ call_handle_button();
41+ }
42+ });
43 },
44
45 _before_edit: function () {