From cb265f710c0b752e2928553ffc8a654ed2436ca5 Mon Sep 17 00:00:00 2001 From: "Vidhin Mehta (OpenERP)" Date: Thu, 4 Oct 2012 17:57:11 +0530 Subject: [PATCH 1/5] [IMP]replace callenabled for on_record_loaded method. bzr revid: vme@tinyerp.com-20121004122711-hzymzdnzbyutxge5 --- addons/web/static/src/js/view_form.js | 20 ++++++---- addons/web_diagram/static/src/js/diagram.js | 42 +++++++++++++++++---- 2 files changed, 47 insertions(+), 15 deletions(-) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 1c32d5ef63e..279f44827ba 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -111,6 +111,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM self.on("change:actual_mode", self, self.init_pager); self.init_pager(); }); + self.on("record_load", self, self.on_record_loaded); instance.web.bus.on('clear_uncommitted_changes', this, function(e) { if (!this.can_be_discarded()) { e.preventDefault(); @@ -316,7 +317,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM fields.push('display_name'); return self.dataset.read_index(fields, { context: { 'bin_size': true, 'future_display_name' : true } - }).pipe(self.on_record_loaded); + }).pipe(function(r){self.trigger('record_load',r)}); }); } return shown.pipe(function() { @@ -364,6 +365,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM field._inhibit_on_change_flag = false; set_values.push(result); }); + console.log("on_record_loaded"); return $.when.apply(null, set_values).pipe(function() { if (!record.id) { // New record: Second pass in order to trigger the onchanges @@ -398,12 +400,13 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM * @return {$.Deferred} */ load_defaults: function () { + var self = this; var keys = _.keys(this.fields_view.fields); if (keys.length) { return this.dataset.default_get(keys) - .pipe(this.on_record_loaded); + .pipe(function(r){self.trigger('record_load',r)}); } - return this.on_record_loaded({}); + return self.trigger('record_load',{}); }, on_form_changed: function() { this.trigger("view_content_has_changed"); @@ -737,7 +740,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM this.trigger('history_back'); } else { this.to_view_mode(); - this.on_record_loaded(this.datarecord); + self.trigger('record_load',this.datarecord); } } return false; @@ -943,7 +946,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM fields.push('display_name'); return self.dataset.read_index(fields, { context : { 'bin_size' : true, 'future_display_name' : true } - }).pipe(self.on_record_loaded); + }).pipe(function(r){self.trigger('record_load',r)}); } }); }, @@ -3291,9 +3294,10 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({ if (self.get("effective_readonly")) { $(".oe_form_buttons", controller.$el).children().remove(); } - controller.on_record_loaded.add_last(function() { - once.resolve(); - }); + controller.on("record_load", self, function(){ + console.log("view manager form"); + once.resolve(); + }); controller.on_pager_action.add_first(function() { self.save_any_view(); }); diff --git a/addons/web_diagram/static/src/js/diagram.js b/addons/web_diagram/static/src/js/diagram.js index 543cc6a9c12..e2ec463ec8e 100644 --- a/addons/web_diagram/static/src/js/diagram.js +++ b/addons/web_diagram/static/src/js/diagram.js @@ -241,22 +241,35 @@ instance.web.DiagramView = instance.web.View.extend({ } ); - pop.on_write.add(function() { + pop.on_write_completed.add(function() { self.dataset.read_index(_.keys(self.fields_view.fields)).pipe(self.on_diagram_loaded); }); var form_fields = [self.parent_field]; var form_controller = pop.view_form; - form_controller.on_record_loaded.add_first(function() { + /*form_controller.on_record_loaded.add_first(function() { + console.log("web diagram add_first"); _.each(form_fields, function(fld) { if (!(fld in form_controller.fields)) { return; } var field = form_controller.fields[fld]; field.$input.prop('disabled', true); field.$drop_down.unbind(); - field.$menu_btn.unbind(); + //field.$menu_btn.unbind(); }); - }); + });*/ + form_controller.on("record_load", self, function(){ + console.log("web diagram add_first"); + _.each(form_fields, function(fld) { + if (!(fld in form_controller.fields)) { return; } + var field = form_controller.fields[fld]; + field.$input.prop('disabled', true); + field.$drop_down.unbind(); + //field.$menu_btn.unbind(); + }); + }); + + }, // Creates a popup to add a node to the diagram @@ -281,7 +294,15 @@ instance.web.DiagramView = instance.web.View.extend({ var form_controller = pop.view_form; var form_fields = [this.parent_field]; - form_controller.on_record_loaded.add_last(function() { + /*form_controller.on_record_loaded.add_last(function() { + _.each(form_fields, function(fld) { + if (!(fld in form_controller.fields)) { return; } + var field = form_controller.fields[fld]; + field.set_value(self.id); + field.dirty = true; + }); + });*/ + form_controller.on("record_load", self, function(){ _.each(form_fields, function(fld) { if (!(fld in form_controller.fields)) { return; } var field = form_controller.fields[fld]; @@ -340,12 +361,19 @@ instance.web.DiagramView = instance.web.View.extend({ var form_controller = pop.view_form; - form_controller.on_record_loaded.add_last(function () { + /*form_controller.on_record_loaded.add_last(function () { form_controller.fields[self.connectors.attrs.source].set_value(node_source_id); form_controller.fields[self.connectors.attrs.source].dirty = true; form_controller.fields[self.connectors.attrs.destination].set_value(node_dest_id); form_controller.fields[self.connectors.attrs.destination].dirty = true; - }); + });*/ + form_controller.on("record_load", self, function(){ + console.log("add_connector"); + form_controller.fields[self.connectors.attrs.source].set_value(node_source_id); + form_controller.fields[self.connectors.attrs.source].dirty = true; + form_controller.fields[self.connectors.attrs.destination].set_value(node_dest_id); + form_controller.fields[self.connectors.attrs.destination].dirty = true; + }); }, on_pager_action: function(action) { From abac1cae455e3380fee45a2d9503427ed6fa3269 Mon Sep 17 00:00:00 2001 From: "Vidhin Mehta (OpenERP)" Date: Tue, 9 Oct 2012 18:05:32 +0530 Subject: [PATCH 2/5] [IMP]improvements to record load event. bzr revid: vme@tinyerp.com-20121009123532-bwlrg4ldtprd1w2d --- addons/web/static/src/js/view_form.js | 3 +- addons/web_diagram/static/src/js/diagram.js | 34 +++------------------ addons/web_tests/static/src/js/web_tests.js | 6 ++-- 3 files changed, 8 insertions(+), 35 deletions(-) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index e55258d45d1..45e49366ba2 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -380,7 +380,6 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM field._inhibit_on_change_flag = false; set_values.push(result); }); - console.log("on_record_loaded"); return $.when.apply(null, set_values).pipe(function() { if (!record.id) { // New record: Second pass in order to trigger the onchanges @@ -755,7 +754,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM this.trigger('history_back'); } else { this.to_view_mode(); - self.trigger('record_load',this.datarecord); + this.trigger('record_load',this.datarecord); } } return false; diff --git a/addons/web_diagram/static/src/js/diagram.js b/addons/web_diagram/static/src/js/diagram.js index 083dfd56dc0..6c32a12384a 100644 --- a/addons/web_diagram/static/src/js/diagram.js +++ b/addons/web_diagram/static/src/js/diagram.js @@ -239,24 +239,13 @@ instance.web.DiagramView = instance.web.View.extend({ title: _t("Open: ") + title } ); - - pop.on_write_completed.add(function() { + pop.on('on_write_complete', self, function() { self.dataset.read_index(_.keys(self.fields_view.fields)).pipe(self.on_diagram_loaded); }); - + var form_fields = [self.parent_field]; var form_controller = pop.view_form; - /*form_controller.on_record_loaded.add_first(function() { - console.log("web diagram add_first"); - _.each(form_fields, function(fld) { - if (!(fld in form_controller.fields)) { return; } - var field = form_controller.fields[fld]; - field.$input.prop('disabled', true); - field.$drop_down.unbind(); - //field.$menu_btn.unbind(); - }); - });*/ form_controller.on("record_load", self, function(){ console.log("web diagram add_first"); _.each(form_fields, function(fld) { @@ -264,7 +253,6 @@ instance.web.DiagramView = instance.web.View.extend({ var field = form_controller.fields[fld]; field.$input.prop('disabled', true); field.$drop_down.unbind(); - //field.$menu_btn.unbind(); }); }); @@ -293,14 +281,6 @@ instance.web.DiagramView = instance.web.View.extend({ var form_controller = pop.view_form; var form_fields = [this.parent_field]; - /*form_controller.on_record_loaded.add_last(function() { - _.each(form_fields, function(fld) { - if (!(fld in form_controller.fields)) { return; } - var field = form_controller.fields[fld]; - field.set_value(self.id); - field.dirty = true; - }); - });*/ form_controller.on("record_load", self, function(){ _.each(form_fields, function(fld) { if (!(fld in form_controller.fields)) { return; } @@ -324,7 +304,7 @@ instance.web.DiagramView = instance.web.View.extend({ title: _t("Open: ") + title } ); - pop.on_write.add(function() { + pop.on('on_write_complete', self, function() { self.dataset.read_index(_.keys(self.fields_view.fields)).pipe(self.on_diagram_loaded); }); }, @@ -360,14 +340,8 @@ instance.web.DiagramView = instance.web.View.extend({ var form_controller = pop.view_form; - /*form_controller.on_record_loaded.add_last(function () { - form_controller.fields[self.connectors.attrs.source].set_value(node_source_id); - form_controller.fields[self.connectors.attrs.source].dirty = true; - form_controller.fields[self.connectors.attrs.destination].set_value(node_dest_id); - form_controller.fields[self.connectors.attrs.destination].dirty = true; - });*/ + form_controller.on("record_load", self, function(){ - console.log("add_connector"); form_controller.fields[self.connectors.attrs.source].set_value(node_source_id); form_controller.fields[self.connectors.attrs.source].dirty = true; form_controller.fields[self.connectors.attrs.destination].set_value(node_dest_id); diff --git a/addons/web_tests/static/src/js/web_tests.js b/addons/web_tests/static/src/js/web_tests.js index 5b9c1d02503..8c146644372 100644 --- a/addons/web_tests/static/src/js/web_tests.js +++ b/addons/web_tests/static/src/js/web_tests.js @@ -23,14 +23,14 @@ openerp.web_tests = function (instance) { on_everything_loaded: function (slice) { var records = slice[0].records; if (!records.length) { - this.form.on_record_loaded({}); + this.form.trigger("record_load",{}); return; } - this.form.on_record_loaded(records[0]); + this.form.trigger("record_load", records[0]) _(records.slice(1)).each(function (record, index) { this.dataset.index = index+1; this.form.reposition($('
').appendTo(this.$el)); - this.form.on_record_loaded(record); + this.form.trigger("record_load", record) }, this); } }); From 91f97769790fbd59bd6360c0392a4c1c1cece0cd Mon Sep 17 00:00:00 2001 From: "Vidhin Mehta (OpenERP)" Date: Tue, 9 Oct 2012 18:26:47 +0530 Subject: [PATCH 3/5] [rem]console bzr revid: vme@tinyerp.com-20121009125647-zwx4fj95fjs0y34u --- addons/web_diagram/static/src/js/diagram.js | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/web_diagram/static/src/js/diagram.js b/addons/web_diagram/static/src/js/diagram.js index 6c32a12384a..3b9e81fdf6e 100644 --- a/addons/web_diagram/static/src/js/diagram.js +++ b/addons/web_diagram/static/src/js/diagram.js @@ -247,7 +247,6 @@ instance.web.DiagramView = instance.web.View.extend({ var form_controller = pop.view_form; form_controller.on("record_load", self, function(){ - console.log("web diagram add_first"); _.each(form_fields, function(fld) { if (!(fld in form_controller.fields)) { return; } var field = form_controller.fields[fld]; From b8d7b8cb0ac768220eb28b3823b02d63027267ca Mon Sep 17 00:00:00 2001 From: "Vidhin Mehta (OpenERP)" Date: Tue, 9 Oct 2012 18:30:30 +0530 Subject: [PATCH 4/5] [REM]one more console. bzr revid: vme@tinyerp.com-20121009130030-8437spz1j1eogh8x --- addons/web/static/src/js/view_form.js | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 45e49366ba2..43afe3a3bf1 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -3372,7 +3372,6 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({ $(".oe_form_buttons", controller.$el).children().remove(); } controller.on("record_load", self, function(){ - console.log("view manager form"); once.resolve(); }); controller.on_pager_action.add_first(function() { From 40eceb20a384b56b1e1acad6750afa27521a8fa4 Mon Sep 17 00:00:00 2001 From: "vta vta@openerp.com" <> Date: Wed, 10 Oct 2012 12:02:33 +0200 Subject: [PATCH 5/5] [FIX] Fixed on_record_loaded. bzr revid: vta@openerp.com-20121010100233-tulf3c1fvnt2s85e --- addons/web/static/src/js/view_form.js | 31 ++++++++++++------- .../web/static/src/js/view_list_editable.js | 7 ++--- addons/web_diagram/static/src/js/diagram.js | 6 ++-- addons/web_tests/static/src/js/web_tests.js | 6 ++-- 4 files changed, 29 insertions(+), 21 deletions(-) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 43afe3a3bf1..6a9d1dcb3a4 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -126,7 +126,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM self.on("change:actual_mode", self, self.init_pager); self.init_pager(); }); - self.on("record_load", self, self.on_record_loaded); + self.on("load_record", self, self.load_record); instance.web.bus.on('clear_uncommitted_changes', this, function(e) { if (!this.can_be_discarded()) { e.preventDefault(); @@ -332,7 +332,9 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM fields.push('display_name'); return self.dataset.read_index(fields, { context: { 'bin_size': true, 'future_display_name' : true } - }).pipe(function(r){self.trigger('record_load',r)}); + }).pipe(function(r) { + self.trigger('load_record', r); + }); }); } return shown.pipe(function() { @@ -355,7 +357,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM } this._super(); }, - on_record_loaded: function(record) { + load_record: function(record) { var self = this, set_values = []; if (!record) { this.set({ 'title' : undefined }); @@ -417,10 +419,11 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM var self = this; var keys = _.keys(this.fields_view.fields); if (keys.length) { - return this.dataset.default_get(keys) - .pipe(function(r){self.trigger('record_load',r)}); + return this.dataset.default_get(keys).pipe(function(r) { + self.trigger('load_record', r); + }); } - return self.trigger('record_load',{}); + return self.trigger('load_record', {}); }, on_form_changed: function() { this.trigger("view_content_has_changed"); @@ -754,7 +757,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM this.trigger('history_back'); } else { this.to_view_mode(); - this.trigger('record_load',this.datarecord); + this.trigger('load_record', this.datarecord); } } return false; @@ -954,9 +957,15 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM } else { var fields = _.keys(self.fields_view.fields); fields.push('display_name'); - return self.dataset.read_index(fields, { - context : { 'bin_size' : true, 'future_display_name' : true } - }).pipe(function(r){self.trigger('record_load',r)}); + return self.dataset.read_index(fields, + { + context: { + 'bin_size': true, + 'future_display_name': true + } + }).pipe(function(r) { + self.trigger('load_record', r); + }); } }); }, @@ -3371,7 +3380,7 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({ if (self.get("effective_readonly")) { $(".oe_form_buttons", controller.$el).children().remove(); } - controller.on("record_load", self, function(){ + controller.on("load_record", self, function(){ once.resolve(); }); controller.on_pager_action.add_first(function() { diff --git a/addons/web/static/src/js/view_list_editable.js b/addons/web/static/src/js/view_list_editable.js index 892221a347b..fe0f525fe3f 100644 --- a/addons/web/static/src/js/view_list_editable.js +++ b/addons/web/static/src/js/view_list_editable.js @@ -626,7 +626,7 @@ openerp.web.list_editable = function (instance) { }, start: function () { var self = this; - var _super = this._super(); + var _super = this._super(); this.form.embedded_view = this._validate_view( this.delegate.edition_view(this)); var form_ready = this.form.appendTo(this.$el).then( @@ -708,10 +708,9 @@ openerp.web.list_editable = function (instance) { var self = this; var form = self.form; var loaded = record - ? form.on_record_loaded(_.extend({}, record)) + ? form.trigger('load_record', _.extend({}, record)) : form.load_defaults(); - - return loaded.pipe(function () { + return $.when(loaded).pipe(function () { return form.do_show({reload: false}); }).pipe(function () { self.record = form.datarecord; diff --git a/addons/web_diagram/static/src/js/diagram.js b/addons/web_diagram/static/src/js/diagram.js index 3b9e81fdf6e..9fd74853c3c 100644 --- a/addons/web_diagram/static/src/js/diagram.js +++ b/addons/web_diagram/static/src/js/diagram.js @@ -246,7 +246,7 @@ instance.web.DiagramView = instance.web.View.extend({ var form_fields = [self.parent_field]; var form_controller = pop.view_form; - form_controller.on("record_load", self, function(){ + form_controller.on("load_record", self, function(){ _.each(form_fields, function(fld) { if (!(fld in form_controller.fields)) { return; } var field = form_controller.fields[fld]; @@ -280,7 +280,7 @@ instance.web.DiagramView = instance.web.View.extend({ var form_controller = pop.view_form; var form_fields = [this.parent_field]; - form_controller.on("record_load", self, function(){ + form_controller.on("load_record", self, function(){ _.each(form_fields, function(fld) { if (!(fld in form_controller.fields)) { return; } var field = form_controller.fields[fld]; @@ -340,7 +340,7 @@ instance.web.DiagramView = instance.web.View.extend({ var form_controller = pop.view_form; - form_controller.on("record_load", self, function(){ + form_controller.on("load_record", self, function(){ form_controller.fields[self.connectors.attrs.source].set_value(node_source_id); form_controller.fields[self.connectors.attrs.source].dirty = true; form_controller.fields[self.connectors.attrs.destination].set_value(node_dest_id); diff --git a/addons/web_tests/static/src/js/web_tests.js b/addons/web_tests/static/src/js/web_tests.js index 8c146644372..bc7d16913fb 100644 --- a/addons/web_tests/static/src/js/web_tests.js +++ b/addons/web_tests/static/src/js/web_tests.js @@ -23,14 +23,14 @@ openerp.web_tests = function (instance) { on_everything_loaded: function (slice) { var records = slice[0].records; if (!records.length) { - this.form.trigger("record_load",{}); + this.form.trigger("load_record", {}); return; } - this.form.trigger("record_load", records[0]) + this.form.trigger("load_record", records[0]); _(records.slice(1)).each(function (record, index) { this.dataset.index = index+1; this.form.reposition($('
').appendTo(this.$el)); - this.form.trigger("record_load", record) + this.form.trigger("load_record", record); }, this); } });