summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/fields
diff options
context:
space:
mode:
authorfja-odoo <fja@odoo.com>2019-07-25 08:20:59 +0000
committerfja-odoo <fja@odoo.com>2019-07-30 15:57:14 +0000
commit2d6dc75a2cb5fa81189920d0f7fdc7b7f12132ab (patch)
tree676231ee9b42ca9957936023ada029784889deec /addons/web/static/src/js/fields
parentcaf6cb929b852209e84fa23efd10f58651d18d8e (diff)
[FIX] web, *: make crash_manager use services correctly
* = website_forum, stock Fix for: https://github.com/odoo/odoo/pull/32132 crash_manager.js was using the services while bypassing ServiceProviderMixin That means all services are duplicated, each having their own state. To fix this issue, CrashManager now extends AbstractService. Also crash_manager is now registered in serviceRegistry instead of being instanciated on the fly. The crash_manager now being a Service raise one issue with the tests: The services are not run for the tests but some tests needs the crash_manager 'unhandledrejection' listener. For that matter the services are reenable in qunit. Also the crash_manager's 'unhandledrejection' listener has to have precedence over the qunit listener as it will handle rejections wich have no reason or are not Errors. Part of: https://github.com/odoo/odoo/pull/35209
Diffstat (limited to 'addons/web/static/src/js/fields')
-rw-r--r--addons/web/static/src/js/fields/basic_fields.js10
1 files changed, 4 insertions, 6 deletions
diff --git a/addons/web/static/src/js/fields/basic_fields.js b/addons/web/static/src/js/fields/basic_fields.js
index 4e63e5d3613..322168a7241 100644
--- a/addons/web/static/src/js/fields/basic_fields.js
+++ b/addons/web/static/src/js/fields/basic_fields.js
@@ -10,7 +10,6 @@ odoo.define('web.basic_fields', function (require) {
var AbstractField = require('web.AbstractField');
var config = require('web.config');
var core = require('web.core');
-var crash_manager = require('web.crash_manager');
var datepicker = require('web.datepicker');
var dom = require('web.dom');
var Domain = require('web.Domain');
@@ -1928,11 +1927,10 @@ var FieldBinaryFile = AbstractFieldBinary.extend({
ev.stopPropagation();
} else if (this.res_id) {
framework.blockUI();
- var c = crash_manager;
var filename_fieldname = this.attrs.filename;
this.getSession().get_file({
- 'url': '/web/content',
- 'data': {
+ complete: framework.unblockUI,
+ data: {
'model': this.model,
'id': this.res_id,
'field': this.name,
@@ -1941,8 +1939,8 @@ var FieldBinaryFile = AbstractFieldBinary.extend({
'download': true,
'data': utils.is_bin_size(this.value) ? null : this.value,
},
- 'complete': framework.unblockUI,
- 'error': c.rpc_error.bind(c),
+ error: () => this.call('crash_manager', 'rpc_error', ...arguments),
+ url: '/web/content',
});
ev.stopPropagation();
}