[IMP] web_linkedin: error catcher

bzr revid: chm@openerp.com-20130131135254-cor4tdu0uulf7ax9
This commit is contained in:
Christophe Matthieu
2013-01-31 14:52:54 +01:00
parent 0e860b7954
commit 9b748c3d37
+29 -19
View File
@@ -26,30 +26,36 @@ openerp.web_linkedin = function(instance) {
this.window_onerror = window.onerror;
}
if (!callback) {
window.onerror = self.window_onerror;
Error = self.realError;
return false;
}
this.callback = callback;
window.onerror = function(message, fileName, lineNumber) {
if (!window.onerror.prototype.catched) {
self.window_onerror(message, fileName, lineNumber);
}
if (self.realError != Error) {
window.onerror.prototype.catched = false;
} else {
window.onerror = self.window_onerror;
}
};
window.onerror.prototype.catched = false;
Error = function (message, fileName, lineNumber) {
this.name = message;
this.message = message;
this.fileName = fileName;
this.lineNumber = lineNumber;
if (Error.caller.toString().match(/API Key is invalid/)) {
self.callback.apply(self, [this]);
Error.prototype.catched = true;
}
this.caller = Error.caller.toString();
window.onerror.prototype.catched = self.callback.apply(self, [this]);
return this;
};
Error.prototype.toString = function () {return this.name;};
Error.prototype.catched = false;
window.onerror = function(message, fileName, lineNumber) {
if (!Error.prototype.catched) {
self.window_onerror(message, fileName, lineNumber);
}
Error.prototype.catched = false;
};
},
linkedin_disabled: function(error) {
this.linkedin_def.reject();
this.auth_def.reject();
IN = false;
instance.web.dialog($(QWeb.render("LinkedIn.DisabledWarning", {'error': error})), {
title: _t("LinkedIn is not enabled"),
buttons: [
@@ -65,13 +71,16 @@ openerp.web_linkedin = function(instance) {
}
self.error_catcher(function (error) {
self.linkedin_disabled(error);
self.auth_def.reject();
self.linkedin_def.reject();
self.$linkedin.remove();
IN = false;
self.linkedin_added = false;
self.error_catcher(false);
if (!!error.caller.match(/API Key is invalid/)) {
self.linkedin_disabled(error);
self.$linkedin.remove();
console.debug("LinkedIn JavaScript removed.");
self.linkedin_added = false;
self.error_catcher(false);
return true;
} else {
return false;
}
});
self.$linkedin = $('<div class="oe_linkedin_login_hidden" style="display:none;"><script type="in/Login"></script></div>');
@@ -86,6 +95,7 @@ openerp.web_linkedin = function(instance) {
$(tag).load(function(event) {
console.debug("LinkedIn JavaScript inserted.");
IN.Event.on(IN, "frameworkLoaded", function() {
self.error_catcher(false);
console.debug("LinkedIn DOM node inserted and frameworkLoaded.");
});
IN.Event.on(IN, "systemReady", function() {