aboutsummaryrefslogtreecommitdiffhomepage
path: root/share/tools/web_config/js/app.js
diff options
context:
space:
mode:
authorGravatar Siteshwar Vashisht <siteshwar@gmail.com>2013-10-19 22:36:18 +0530
committerGravatar Siteshwar Vashisht <siteshwar@gmail.com>2013-10-19 22:36:18 +0530
commit892cc7da31f769bba6f2bb9e7c4f3350a22395c8 (patch)
tree1c123c3e8ba1e15bb9e16f794623d7a8842084b8 /share/tools/web_config/js/app.js
parenteb9e712f912d80618e612931e4b74c0db23e8058 (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.js36
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; }
+ };
+ });
+});