summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/stock/static/src/js/stock_traceability_report_backend.js2
-rw-r--r--addons/web/static/src/js/chrome/action_manager_report.js4
-rw-r--r--addons/web/static/src/js/fields/basic_fields.js2
-rw-r--r--addons/web/static/src/js/views/pivot/pivot_controller.js2
-rw-r--r--addons/web/static/src/js/widgets/data_export.js2
-rw-r--r--addons/web/static/tests/chrome/action_manager_tests.js40
6 files changed, 46 insertions, 6 deletions
diff --git a/addons/stock/static/src/js/stock_traceability_report_backend.js b/addons/stock/static/src/js/stock_traceability_report_backend.js
index 31e42767cf5..9a3b7872947 100644
--- a/addons/stock/static/src/js/stock_traceability_report_backend.js
+++ b/addons/stock/static/src/js/stock_traceability_report_backend.js
@@ -103,7 +103,7 @@ var stock_report_generic = AbstractAction.extend({
url: url_data.replace('output_format', 'pdf'),
data: {data: JSON.stringify(dict)},
complete: framework.unblockUI,
- error: () => this.call('crash_manager', 'rpc_error', ...arguments),
+ error: (error) => self.call('crash_manager', 'rpc_error', error),
});
});
return this.$buttons;
diff --git a/addons/web/static/src/js/chrome/action_manager_report.js b/addons/web/static/src/js/chrome/action_manager_report.js
index 416cad6a942..5c1c5cbeb8e 100644
--- a/addons/web/static/src/js/chrome/action_manager_report.js
+++ b/addons/web/static/src/js/chrome/action_manager_report.js
@@ -53,8 +53,8 @@ ActionManager.include({
data: JSON.stringify([url, type]),
},
success: resolve,
- error: () => {
- this.call('crash_manager', 'rpc_error', ...arguments);
+ error: (error) => {
+ self.call('crash_manager', 'rpc_error', error);
reject();
},
complete: framework.unblockUI,
diff --git a/addons/web/static/src/js/fields/basic_fields.js b/addons/web/static/src/js/fields/basic_fields.js
index a782e128bc7..664ce51b570 100644
--- a/addons/web/static/src/js/fields/basic_fields.js
+++ b/addons/web/static/src/js/fields/basic_fields.js
@@ -1941,7 +1941,7 @@ var FieldBinaryFile = AbstractFieldBinary.extend({
'download': true,
'data': utils.is_bin_size(this.value) ? null : this.value,
},
- error: () => this.call('crash_manager', 'rpc_error', ...arguments),
+ error: (error) => this.call('crash_manager', 'rpc_error', error),
url: '/web/content',
});
ev.stopPropagation();
diff --git a/addons/web/static/src/js/views/pivot/pivot_controller.js b/addons/web/static/src/js/views/pivot/pivot_controller.js
index 7875dcef52e..998d6ccc22c 100644
--- a/addons/web/static/src/js/views/pivot/pivot_controller.js
+++ b/addons/web/static/src/js/views/pivot/pivot_controller.js
@@ -150,7 +150,7 @@ var PivotController = AbstractController.extend({
url: '/web/pivot/export_xls',
data: {data: JSON.stringify(table)},
complete: framework.unblockUI,
- error: () => this.call('crash_manager', 'rpc_error', ...arguments),
+ error: (error) => this.call('crash_manager', 'rpc_error', error),
});
},
/**
diff --git a/addons/web/static/src/js/widgets/data_export.js b/addons/web/static/src/js/widgets/data_export.js
index 964e03e4aa1..64d54d942a1 100644
--- a/addons/web/static/src/js/widgets/data_export.js
+++ b/addons/web/static/src/js/widgets/data_export.js
@@ -178,7 +178,7 @@ var DataExport = Dialog.extend({
})
},
complete: framework.unblockUI,
- error: () => this.call('crash_manager', 'rpc_error', ...arguments),
+ error: (error) => this.call('crash_manager', 'rpc_error', error),
});
},
/**
diff --git a/addons/web/static/tests/chrome/action_manager_tests.js b/addons/web/static/tests/chrome/action_manager_tests.js
index 26ec7b1562b..bc40fc97011 100644
--- a/addons/web/static/tests/chrome/action_manager_tests.js
+++ b/addons/web/static/tests/chrome/action_manager_tests.js
@@ -2205,6 +2205,46 @@ QUnit.module('ActionManager', {
testUtils.mock.unpatch(ReportClientAction);
});
+ QUnit.test('crashmanager service called on failed report download actions', async function (assert) {
+ assert.expect(1);
+
+ var actionManager = await createActionManager({
+ data: this.data,
+ actions: this.actions,
+ services: {
+ report: ReportService,
+ },
+ mockRPC: function (route) {
+ if (route === '/report/check_wkhtmltopdf') {
+ return Promise.resolve('ok');
+ }
+ return this._super.apply(this, arguments);
+ },
+ session: {
+ get_file: function (params) {
+ params.error({
+ data: {
+ name: 'error',
+ exception_type: 'warning',
+ arguments: ['could not download file'],
+ }
+ });
+ params.complete();
+ },
+ },
+ });
+
+ try {
+ await actionManager.doAction(11);
+ } catch (e) {
+ // e is undefined if we land here because of a rejected promise,
+ // otherwise, it is an Error, which is not what we expect
+ assert.strictEqual(e, undefined);
+ }
+
+ actionManager.destroy();
+ });
+
QUnit.module('Window Actions');
QUnit.test('can execute act_window actions from db ID', async function (assert) {