From 044e7bb59989500bdbdc8ace0402c314534a9975 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9ry=20Debongnie?= Date: Wed, 22 Feb 2017 16:48:20 +0100 Subject: [FIX] web: display error dialog when onchanges fails When the onchange returns a dictionary with a 'warning' key, it is supposed to fail and display a dialog with the content of the warning. --- addons/web/static/src/js/views/basic/basic_model.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'addons/web/static/src/js/views/basic/basic_model.js') diff --git a/addons/web/static/src/js/views/basic/basic_model.js b/addons/web/static/src/js/views/basic/basic_model.js index ac82b5bf2e8..c2855c8aaa4 100644 --- a/addons/web/static/src/js/views/basic/basic_model.js +++ b/addons/web/static/src/js/views/basic/basic_model.js @@ -951,7 +951,8 @@ var Model = AbstractModel.extend({ * * @param {Object} record * @param {string[]} fields changed fields - * @returns + * @returns {Deferred} The returned deferred can fail, in which case the + * fail value will be the warning message received from the server */ _applyOnChange: function (record, fields) { var self = this; @@ -980,6 +981,9 @@ var Model = AbstractModel.extend({ return this.mutex.exec(function () { var args = [idList, currentData, fields, onchange_spec, context]; return self.performModelRPC(record.model, 'onchange', args, {}).then(function (result) { + if (result.warning) { + return $.Deferred().reject(result.warning); + } var defs = []; _.each(result.value, function (val, name) { var field = record.fields[name]; -- cgit v1.2.3