summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/view_list_editable.js
diff options
context:
space:
mode:
authorniv-openerp <nicolas.vanhoren@openerp.com>2012-11-14 11:31:56 +0100
committerniv-openerp <nicolas.vanhoren@openerp.com>2012-11-14 11:31:56 +0100
commit729eb0ff4fcd1024c443a9c6c19fa7b41631164f (patch)
tree00908490fb46c68536749f5eada0e49377016fea /addons/web/static/src/js/view_list_editable.js
parent9114457d71891f844889461c887d216387804eb8 (diff)
[FIX] problem with list editable in o2m
bzr revid: nicolas.vanhoren@openerp.com-20121114103156-tzbz8sm4x54jgjvm
Diffstat (limited to 'addons/web/static/src/js/view_list_editable.js')
-rw-r--r--addons/web/static/src/js/view_list_editable.js59
1 files changed, 29 insertions, 30 deletions
diff --git a/addons/web/static/src/js/view_list_editable.js b/addons/web/static/src/js/view_list_editable.js
index becadcadf39..8bcf8b5d036 100644
--- a/addons/web/static/src/js/view_list_editable.js
+++ b/addons/web/static/src/js/view_list_editable.js
@@ -157,13 +157,7 @@ openerp.web.list_editable = function (instance) {
* @returns {$.Deferred}
*/
ensure_saved: function () {
- var self = this;
- return this.saving_mutex.exec(function() {
- if (!self.editor.is_editing()) {
- return $.when();
- }
- return self.save_edition();
- });
+ return this.save_edition();
},
/**
* Builds a record with the provided id (``false`` for a creation),
@@ -273,29 +267,34 @@ openerp.web.list_editable = function (instance) {
*/
save_edition: function () {
var self = this;
- return this.with_event('save', {
- editor: this.editor,
- form: this.editor.form,
- cancel: false
- }, function () {
- return this.editor.save().then(function (attrs) {
- var created = false;
- var record = self.records.get(attrs.id);
- if (!record) {
- // new record
- created = true;
- record = self.records.find(function (r) {
- return !r.get('id');
- }).set('id', attrs.id);
- }
- // onwrite callback could be altering & reloading the
- // record which has *just* been saved, so first perform all
- // onwrites then do a final reload of the record
- return self.handle_onwrite(record)
- .then(function () {
- return self.reload_record(record); })
- .then(function () {
- return { created: created, record: record }; });
+ return self.saving_mutex.exec(function() {
+ if (!self.editor.is_editing()) {
+ return $.when();
+ }
+ return self.with_event('save', {
+ editor: self.editor,
+ form: self.editor.form,
+ cancel: false
+ }, function () {
+ return self.editor.save().then(function (attrs) {
+ var created = false;
+ var record = self.records.get(attrs.id);
+ if (!record) {
+ // new record
+ created = true;
+ record = self.records.find(function (r) {
+ return !r.get('id');
+ }).set('id', attrs.id);
+ }
+ // onwrite callback could be altering & reloading the
+ // record which has *just* been saved, so first perform all
+ // onwrites then do a final reload of the record
+ return self.handle_onwrite(record)
+ .then(function () {
+ return self.reload_record(record); })
+ .then(function () {
+ return { created: created, record: record }; });
+ });
});
});
},