summaryrefslogtreecommitdiff
path: root/addons/web/static
diff options
context:
space:
mode:
authorMohammed Shekha <msh@odoo.com>2019-08-19 07:06:39 +0000
committerPierre Masereel <pim@odoo.com>2019-08-27 12:13:43 +0000
commit6952ee18bce6fa2274e1e960cec5f5f4df67ef23 (patch)
treee33b424b5a9b7690f30ffa17dc53c958d516e2a4 /addons/web/static
parente74c6ef86a63b7d8ef50d8214b8ac48ea9f69f7e (diff)
[FIX] web: crashmanager wrong syntax of arrow function
arrow function used for error handler and error function is defined inside inner function so this will get changed, need to use self, also arrow function doesn't have its own arguments object, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions Issue raised from following commit: https://github.com/odoo/odoo/commit/2d6dc75a2cb5fa81189920d0f7fdc7b7f12132ab task-2052484 closes odoo/odoo#35788 Signed-off-by: pimodoo <pimodoo@users.noreply.github.com>
Diffstat (limited to 'addons/web/static')
-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
5 files changed, 45 insertions, 5 deletions
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) {