Issue #160: Provide Async Error Handling

Added Toast notification for unexpected errors
    On 401 and 403 Errors, user is redirected to login
This commit is contained in:
Mario Zupan
2016-12-01 19:28:28 +01:00
parent e5ed24fcf7
commit feb38eef8c
8 changed files with 160 additions and 4 deletions

View File

@ -0,0 +1,34 @@
define(
['backbone', 'underscore'],
function(Backbone, _) {
return {
init: function() {
var backboneSync = Backbone.sync;
var asyncErrorHandler = function(error) {
return function(jqXHR) {
var statusCode = jqXHR.status;
var errorCodes = {
404: true,
500: true,
503: true,
504: true
};
if (statusCode === 401 || statusCode === 403) {
window.top.location.href = "login";
} else if(errorCodes[statusCode]) {
Backbone.trigger("error:unhandled");
}
};
};
Backbone.sync = function(method, model, options) {
// override error handler
options.error = asyncErrorHandler(options.error);
return backboneSync(method, model, options);
}
}
};
}
);