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