mirror of
https://github.com/sudoxnym/habitica-self-host.git
synced 2026-08-02 04:00:36 +00:00
app.js: intercept errors, show them on page, show loading screen in interceptor
This commit is contained in:
parent
633d6fdb52
commit
b22ccc0a23
3 changed files with 23 additions and 2 deletions
|
|
@ -23,4 +23,24 @@ window.habitrpg = angular.module('habitrpg',
|
||||||
$httpProvider.defaults.headers.common['x-api-user'] = settings.auth.apiId;
|
$httpProvider.defaults.headers.common['x-api-user'] = settings.auth.apiId;
|
||||||
$httpProvider.defaults.headers.common['x-api-key'] = settings.auth.apiId;
|
$httpProvider.defaults.headers.common['x-api-key'] = settings.auth.apiId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Handle errors
|
||||||
|
var interceptor = ['$rootScope', '$q', function ($rootScope, $q) {
|
||||||
|
function success(response) {
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
function error(response) {
|
||||||
|
//var status = response.status;
|
||||||
|
response.data = (response.data.err) ? response.data.err : response.data;
|
||||||
|
if (response.status == 0) response.data = 'Server currently unreachable';
|
||||||
|
if (response.status == 500) response.data += '(see Chrome console for more details).';
|
||||||
|
$rootScope.flash.errors.push(response.status + ': ' + response.data);
|
||||||
|
console.log(arguments);
|
||||||
|
return $q.reject(response);
|
||||||
|
}
|
||||||
|
return function (promise) {
|
||||||
|
return promise.then(success, error);
|
||||||
|
}
|
||||||
|
}];
|
||||||
|
$httpProvider.responseInterceptors.push(interceptor);
|
||||||
}])
|
}])
|
||||||
|
|
@ -9,6 +9,7 @@ habitrpg.controller("RootCtrl", ['$scope', '$rootScope', '$location', 'User', '$
|
||||||
$rootScope.User = User;
|
$rootScope.User = User;
|
||||||
$rootScope.user = User.user;
|
$rootScope.user = User.user;
|
||||||
$rootScope.settings = User.settings;
|
$rootScope.settings = User.settings;
|
||||||
|
$rootScope.flash = {errors: [], warnings: []};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
FIXME this is dangerous, organize helpers.coffee better, so we can group them by which controller needs them,
|
FIXME this is dangerous, organize helpers.coffee better, so we can group them by which controller needs them,
|
||||||
|
|
|
||||||
|
|
@ -84,8 +84,8 @@ html
|
||||||
#wrap
|
#wrap
|
||||||
|
|
||||||
// Errors
|
// Errors
|
||||||
ul.unstyled.alert.alert-error(ng-show='_flash.error')
|
.unstyled.alert.alert-error(ng-repeat='error in flash.errors') {{error}}
|
||||||
li(ng-repeat='error in _flash.error') {{error}}
|
.unstyled.alert.alert-error(ng-repeat='error in flash.warnings') {{error}}
|
||||||
|
|
||||||
//if they hide the header, we still need user-menu visible
|
//if they hide the header, we still need user-menu visible
|
||||||
div(ng-if='user.preferences.hideHeader')
|
div(ng-if='user.preferences.hideHeader')
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue