diff options
| author | Christophe Matthieu <chm@odoo.com> | 2017-10-19 16:42:25 +0200 |
|---|---|---|
| committer | Christophe Matthieu <chm@odoo.com> | 2017-10-23 12:18:28 +0200 |
| commit | 512113b78ad4b6c1fb59c313ec73f6c4a04f8737 (patch) | |
| tree | 216d5c7bf31e081386a074d5eac74a1ec93f2cc2 /addons/web/static/src/js/fields/relational_fields.js | |
| parent | dc2a6c6cd2a281b7d9e5d33d8e37d2f6b15d7e78 (diff) | |
[FIX] web: reordering lines using the handle widget triggers onchange
issue: When reorder each line trigger an onchange on the line (if they are an
onchange linked to the field) and one onchange per line on the parent.
Adding an option doNotNotifyChange to avoid the trigger on the parent.
Diffstat (limited to 'addons/web/static/src/js/fields/relational_fields.js')
| -rw-r--r-- | addons/web/static/src/js/fields/relational_fields.js | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/addons/web/static/src/js/fields/relational_fields.js b/addons/web/static/src/js/fields/relational_fields.js index cbcab4743f6..749efb4ce82 100644 --- a/addons/web/static/src/js/fields/relational_fields.js +++ b/addons/web/static/src/js/fields/relational_fields.js @@ -967,13 +967,25 @@ var FieldX2Many = AbstractField.extend({ */ _onResequence: function (event) { var self = this; - _.each(event.data.rowIDs, function (rowID, index) { + var rowIDs = event.data.rowIDs.slice(); + var rowID = rowIDs.pop(); + var defs = _.map(rowIDs, function (rowID, index) { var data = {}; data[event.data.handleField] = event.data.offset + index; - self._setValue({ + return self._setValue({ operation: 'UPDATE', id: rowID, data: data, + }, { + notifyChange: false, + }); + }); + $.when.apply($, defs).then(function () { + // trigger only once the onchange for parent record + self._setValue({ + operation: 'UPDATE', + id: rowID, + data: _.object([event.data.handleField], [event.data.offset + rowIDs.length]), }); }); }, |
