[IMP] CrashManager use event dispatcher and cleanups
bzr revid: al@openerp.com-20121011003729-jjbh5se1cpsachvm
This commit is contained in:
parent
462eccb10d
commit
f44ea704fe
|
@ -181,7 +181,7 @@ instance.web.Dialog = instance.web.Widget.extend({
|
|||
});
|
||||
|
||||
instance.web.CrashManager = instance.web.CallbackEnabled.extend({
|
||||
on_rpc_error: function(error) {
|
||||
rpc_error: function(error) {
|
||||
if (error.data.fault_code) {
|
||||
var split = ("" + error.data.fault_code).split('\n')[0].split(' -- ');
|
||||
if (split.length > 1) {
|
||||
|
@ -190,12 +190,12 @@ instance.web.CrashManager = instance.web.CallbackEnabled.extend({
|
|||
}
|
||||
}
|
||||
if (error.code === 200 && error.type) {
|
||||
this.on_managed_error(error);
|
||||
this.show_warning(error);
|
||||
} else {
|
||||
this.on_traceback(error);
|
||||
this.show_error(error);
|
||||
}
|
||||
},
|
||||
on_managed_error: function(error) {
|
||||
show_warning: function(error) {
|
||||
instance.web.dialog($('<div>' + QWeb.render('CrashManager.warning', {error: error}) + '</div>'), {
|
||||
title: "OpenERP " + _.str.capitalize(error.type),
|
||||
buttons: [
|
||||
|
@ -203,7 +203,7 @@ instance.web.CrashManager = instance.web.CallbackEnabled.extend({
|
|||
]
|
||||
});
|
||||
},
|
||||
on_traceback: function(error) {
|
||||
show_error: function(error) {
|
||||
var self = this;
|
||||
var buttons = {};
|
||||
buttons[_t("Ok")] = function() {
|
||||
|
@ -219,8 +219,8 @@ instance.web.CrashManager = instance.web.CallbackEnabled.extend({
|
|||
}).open();
|
||||
dialog.$el.html(QWeb.render('CrashManager.error', {session: instance.session, error: error}));
|
||||
},
|
||||
on_javascript_exception: function(exception) {
|
||||
this.on_traceback({
|
||||
show_message: function(exception) {
|
||||
this.show_error({
|
||||
type: _t("Client Error"),
|
||||
message: exception,
|
||||
data: {debug: ""}
|
||||
|
@ -236,7 +236,7 @@ instance.web.Loading = instance.web.Widget.extend({
|
|||
this.blocked_ui = false;
|
||||
this.session.on("request", this, this.request_call);
|
||||
this.session.on("response", this, this.response_call);
|
||||
this.session.on("error", this, this.response_call);
|
||||
this.session.on("response_failed", this, this.response_call);
|
||||
},
|
||||
destroy: function() {
|
||||
this.on_rpc_event(-this.count);
|
||||
|
@ -957,7 +957,7 @@ instance.web.Client = instance.web.Widget.extend({
|
|||
show_common: function() {
|
||||
var self = this;
|
||||
this.crashmanager = new instance.web.CrashManager();
|
||||
instance.session.on_rpc_error.add(this.crashmanager.on_rpc_error);
|
||||
instance.session.on('error', this.crashmanager, this.crashmanager.rpc_error);
|
||||
self.notification = new instance.web.Notification(this);
|
||||
self.notification.appendTo(self.$el);
|
||||
self.loading = new instance.web.Loading(self);
|
||||
|
@ -1007,7 +1007,7 @@ instance.web.WebClient = instance.web.Client.extend({
|
|||
var self = this;
|
||||
this._super();
|
||||
window.onerror = function (message, file, line) {
|
||||
self.crashmanager.on_traceback({
|
||||
self.crashmanager.show_error({
|
||||
type: _t("Client Error"),
|
||||
message: message,
|
||||
data: {debug: file + ':' + line}
|
||||
|
|
|
@ -980,7 +980,8 @@ instance.web.JsonRPC = instance.web.CallbackEnabled.extend({
|
|||
triggers: {
|
||||
'request': 'Request sent',
|
||||
'response': 'Response received',
|
||||
'error': 'HTTP Error response or timeout received',
|
||||
'response_failed': 'HTTP Error response or timeout received',
|
||||
'error': 'The received response is an JSON-RPC error',
|
||||
},
|
||||
/**
|
||||
* @constructs instance.web.JsonRPC
|
||||
|
@ -1336,7 +1337,7 @@ instance.web.JsonRPC = instance.web.CallbackEnabled.extend({
|
|||
}
|
||||
},
|
||||
function(jqXHR, textStatus, errorThrown) {
|
||||
self.trigger('error');
|
||||
self.trigger('response_failed', jqXHR);
|
||||
var error = {
|
||||
code: -32098,
|
||||
message: "XmlHttpRequestError " + errorThrown,
|
||||
|
@ -1348,7 +1349,7 @@ instance.web.JsonRPC = instance.web.CallbackEnabled.extend({
|
|||
deferred.fail(function() {
|
||||
deferred.fail(function(error, event) {
|
||||
if (!event.isDefaultPrevented()) {
|
||||
self.on_rpc_error(error, event);
|
||||
self.trigger('error', error, event);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
@ -1434,8 +1435,6 @@ instance.web.JsonRPC = instance.web.CallbackEnabled.extend({
|
|||
return deferred;
|
||||
}
|
||||
},
|
||||
on_rpc_error: function(error) {
|
||||
},
|
||||
get_url: function (file) {
|
||||
return this.prefix + file;
|
||||
},
|
||||
|
|
|
@ -615,7 +615,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
|
|||
return self.on_processed_onchange(response, processed);
|
||||
} catch(e) {
|
||||
console.error(e);
|
||||
instance.webclient.crashmanager.on_javascript_exception(e);
|
||||
instance.webclient.crashmanager.show_message(e);
|
||||
return $.Deferred().reject();
|
||||
}
|
||||
});
|
||||
|
@ -650,7 +650,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
|
|||
return $.Deferred().resolve();
|
||||
} catch(e) {
|
||||
console.error(e);
|
||||
instance.webclient.crashmanager.on_javascript_exception(e);
|
||||
instance.webclient.crashmanager.show_message(e);
|
||||
return $.Deferred().reject();
|
||||
}
|
||||
},
|
||||
|
@ -3316,11 +3316,7 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({
|
|||
var views = [];
|
||||
_.each(modes, function(mode) {
|
||||
if (! _.include(["list", "tree", "graph", "kanban"], mode)) {
|
||||
try {
|
||||
throw new Error(_.str.sprintf("View type '%s' is not supported in One2Many.", mode));
|
||||
} catch(e) {
|
||||
instance.webclient.crashmanager.on_javascript_exception(e)
|
||||
}
|
||||
throw new Error(_.str.sprintf("View type '%s' is not supported in One2Many.", mode));
|
||||
}
|
||||
var view = {
|
||||
view_id: false,
|
||||
|
|
Loading…
Reference in New Issue