diff options
| author | Xavier Morel <xmo@openerp.com> | 2013-02-04 13:52:14 +0100 |
|---|---|---|
| committer | Xavier Morel <xmo@openerp.com> | 2013-02-04 13:52:14 +0100 |
| commit | d5a0ddc99bc91d3ef68f0cb5d877f1a363a87d85 (patch) | |
| tree | dac319cd486216d99c15a1f2c52cdc140295cc4c /addons/base_import/static/src/js/import.js | |
| parent | 2722b91ca5d065911e03de0bd9e4613f8da60c1a (diff) | |
[FIX] base_import: don't crash UI when an unexpected exception is raised during the import process
treat exceptions as 'normal' failures, convert to a regular 'error' message
bzr revid: xmo@openerp.com-20130204125214-gy0l6qlt9obkb81x
Diffstat (limited to 'addons/base_import/static/src/js/import.js')
| -rw-r--r-- | addons/base_import/static/src/js/import.js | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/addons/base_import/static/src/js/import.js b/addons/base_import/static/src/js/import.js index d29452cc138..bc2635114a5 100644 --- a/addons/base_import/static/src/js/import.js +++ b/addons/base_import/static/src/js/import.js @@ -336,8 +336,18 @@ openerp.base_import = function (instance) { var fields = this.$('.oe_import_fields input.oe_import_match_field').map(function (index, el) { return $(el).select2('val') || false; }).get(); - return this.Import.call( - 'do', [this.id, fields, this.import_options()], options); + return this.Import.call('do', [this.id, fields, this.import_options()], options) + .then(undefined, function (error, event) { + // In case of unexpected exception, convert + // "JSON-RPC error" to an import failure, and + // prevent default handling (warning dialog) + if (event) { event.preventDefault(); } + return $.when([{ + type: 'error', + record: false, + message: error.data.fault_code, + }]); + }) ; }, onvalidate: function () { return this.call_import({ dryrun: true }) |
