diff options
author | Siteshwar Vashisht <siteshwar@gmail.com> | 2013-10-19 22:36:18 +0530 |
---|---|---|
committer | Siteshwar Vashisht <siteshwar@gmail.com> | 2013-10-19 22:36:18 +0530 |
commit | 892cc7da31f769bba6f2bb9e7c4f3350a22395c8 (patch) | |
tree | 1c123c3e8ba1e15bb9e16f794623d7a8842084b8 /share/tools/web_config/js/app.js | |
parent | eb9e712f912d80618e612931e4b74c0db23e8058 (diff) |
Added a global error handler
Diffstat (limited to 'share/tools/web_config/js/app.js')
-rw-r--r-- | share/tools/web_config/js/app.js | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/share/tools/web_config/js/app.js b/share/tools/web_config/js/app.js index 06d38651..296a11c1 100644 --- a/share/tools/web_config/js/app.js +++ b/share/tools/web_config/js/app.js @@ -31,3 +31,39 @@ fishconfig.config( redirectTo: "/colors" }) }]); + +/* Inspired from http://blog.tomaka17.com/2012/12/random-tricks-when-using-angularjs/ */ +fishconfig.config(function($httpProvider, $compileProvider) { + var global_error_element = null; + + var showMessage = function(content) { + global_error_element.text(content); + }; + + $httpProvider.responseInterceptors.push(function($q) { + return function(promise) { + return promise.then(function(successResponse) { + showMessage(''); + return successResponse; + }, function(errorResponse) { + switch (errorResponse.status) { + case 0: + showMessage("The request received an error. Perhaps the server has shut down."); + break; + case 500: + showMessage('Server internal error: ' + errorResponse.data); + break; + default: + showMessage('Error ' + errorResponse.status + ': ' + errorResponse.data); + } + return $q.reject(errorResponse); + }); + }; + }); + + $compileProvider.directive('errorMessage', function() { + return { + link: function(scope, element, attrs) { global_error_element = element; } + }; + }); +}); |