summaryrefslogtreecommitdiff
path: root/addons/base_import
diff options
context:
space:
mode:
authorXavier Morel <xmo@openerp.com>2013-02-04 13:52:14 +0100
committerXavier Morel <xmo@openerp.com>2013-02-04 13:52:14 +0100
commitd5a0ddc99bc91d3ef68f0cb5d877f1a363a87d85 (patch)
treedac319cd486216d99c15a1f2c52cdc140295cc4c /addons/base_import
parent2722b91ca5d065911e03de0bd9e4613f8da60c1a (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')
-rw-r--r--addons/base_import/static/src/js/import.js14
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 })