From 85a8641e2c672aa3801e49df39296335b9567368 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 18 Jul 2012 15:31:15 +0200 Subject: [PATCH] [FIX] cancel edition when deleting a record, so we're not left with a phantom editor for the deleted record on top of an other row bzr revid: xmo@openerp.com-20120718133115-8cn8wqf1ra8pjrnv --- addons/web/static/src/js/view_list_editable.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/addons/web/static/src/js/view_list_editable.js b/addons/web/static/src/js/view_list_editable.js index 58925a11ba1..052a471f0f3 100644 --- a/addons/web/static/src/js/view_list_editable.js +++ b/addons/web/static/src/js/view_list_editable.js @@ -31,6 +31,12 @@ openerp.web.list_editable = function (instance) { } }); + this.records.bind('remove', function () { + if (self.editor.is_editing()) { + self.cancel_edition(); + } + }); + this.on('edit:after', this, function () { self.$element.add(self.$buttons).addClass('oe_editing'); }); @@ -282,7 +288,12 @@ openerp.web.list_editable = function (instance) { }, function () { return this.editor.cancel().pipe(function (attrs) { if (attrs.id) { - return self.reload_record(self.records.get(attrs.id)); + var record = self.records.get(attrs.id); + if (!record) { + // Record removed by third party during edition + return + } + return self.reload_record(record); } var to_delete = self.records.find(function (r) { return !r.get('id');