summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorvta vta@openerp.com <>2012-10-10 12:05:24 +0200
committervta vta@openerp.com <>2012-10-10 12:05:24 +0200
commitd50874c9b6ea65c123119fb4e07fc6c0edcee543 (patch)
tree3c5d0e94772568f6b877952f9cd0c7d11689fbaf /addons
parent8f7b3acb7c84812daa523baea5c1d71c193d0613 (diff)
parent40eceb20a384b56b1e1acad6750afa27521a8fa4 (diff)
[MERGE] Merged trunk-trigger-on_record_loaded.
bzr revid: vta@openerp.com-20121010100524-8njbdbkio2ehfebs
Diffstat (limited to 'addons')
-rw-r--r--addons/web/static/src/js/view_form.js35
-rw-r--r--addons/web/static/src/js/view_list_editable.js7
-rw-r--r--addons/web_diagram/static/src/js/diagram.js21
-rw-r--r--addons/web_tests/static/src/js/web_tests.js6
4 files changed, 40 insertions, 29 deletions
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index ecec1f51040..d635ab7e640 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -126,6 +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("load_record", self, self.load_record);
instance.web.bus.on('clear_uncommitted_changes', this, function(e) {
if (!this.can_be_discarded()) {
e.preventDefault();
@@ -331,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(self.on_record_loaded);
+ }).pipe(function(r) {
+ self.trigger('load_record', r);
+ });
});
}
return shown.pipe(function() {
@@ -354,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 });
@@ -413,12 +416,14 @@ 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);
+ return this.dataset.default_get(keys).pipe(function(r) {
+ self.trigger('load_record', r);
+ });
}
- return this.on_record_loaded({});
+ return self.trigger('load_record', {});
},
on_form_changed: function() {
this.trigger("view_content_has_changed");
@@ -752,7 +757,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);
+ this.trigger('load_record', this.datarecord);
}
}
return false;
@@ -952,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(self.on_record_loaded);
+ return self.dataset.read_index(fields,
+ {
+ context: {
+ 'bin_size': true,
+ 'future_display_name': true
+ }
+ }).pipe(function(r) {
+ self.trigger('load_record', r);
+ });
}
});
},
@@ -3369,9 +3380,9 @@ 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("load_record", self, function(){
+ once.resolve();
+ });
controller.on_pager_action.add_first(function() {
self.save_any_view();
});
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 508aeb30563..9fd74853c3c 100644
--- a/addons/web_diagram/static/src/js/diagram.js
+++ b/addons/web_diagram/static/src/js/diagram.js
@@ -239,23 +239,23 @@ 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);
});
-
+
var form_fields = [self.parent_field];
var form_controller = pop.view_form;
- form_controller.on_record_loaded.add_first(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];
field.$input.prop('disabled', true);
field.$drop_down.unbind();
- field.$menu_btn.unbind();
});
- });
+ });
+
+
},
// Creates a popup to add a node to the diagram
@@ -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_loaded.add_last(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];
@@ -303,7 +303,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);
});
},
@@ -339,12 +339,13 @@ instance.web.DiagramView = instance.web.View.extend({
var form_controller = pop.view_form;
- form_controller.on_record_loaded.add_last(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);
form_controller.fields[self.connectors.attrs.destination].dirty = true;
- });
+ });
},
on_pager_action: function(action) {
diff --git a/addons/web_tests/static/src/js/web_tests.js b/addons/web_tests/static/src/js/web_tests.js
index 5b9c1d02503..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.on_record_loaded({});
+ this.form.trigger("load_record", {});
return;
}
- this.form.on_record_loaded(records[0]);
+ this.form.trigger("load_record", records[0]);
_(records.slice(1)).each(function (record, index) {
this.dataset.index = index+1;
this.form.reposition($('<div>').appendTo(this.$el));
- this.form.on_record_loaded(record);
+ this.form.trigger("load_record", record);
}, this);
}
});