forked from Coded/SIPRP
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.0 KiB
77 lines
2.0 KiB
//intercepts all inbound/outbound ajax data
|
|
evoapp.factory('httpInterceptor', function ($rootScope, $q){
|
|
|
|
//http://endlessindirection.wordpress.com/2013/05/19/angularjs-global-loading-message-with-http-interceptors/
|
|
|
|
var activeRequests = 0;
|
|
|
|
var started = function(broadcastEvents){
|
|
|
|
if(activeRequests == 0 && broadcastEvents === true)
|
|
{
|
|
$rootScope.$broadcast('loadingStatusActive');
|
|
}
|
|
|
|
activeRequests++;
|
|
};
|
|
|
|
var ended = function(response){
|
|
|
|
//intercept SECURITYEXCEPTION responses
|
|
//if(!response.data.success && response.data.response)
|
|
//{
|
|
// if(response.data.response.ServerResponse.length > 0)
|
|
// {
|
|
// var sr = response.data.response.ServerResponse[0];
|
|
|
|
// if(sr.MessageType == 'SECURITYEXCEPTION')
|
|
// {
|
|
// $rootScope.$broadcast('response', {response: response.data});
|
|
// }
|
|
// }
|
|
//}
|
|
|
|
activeRequests--;
|
|
|
|
if(activeRequests==0)
|
|
{
|
|
$rootScope.$broadcast('loadingStatusInactive');
|
|
}
|
|
};
|
|
|
|
return {
|
|
request: function (config){
|
|
|
|
started(config.$$broadcastEvents);
|
|
|
|
return config || $q.when(config);
|
|
},
|
|
|
|
// On request failure
|
|
requestError: function (rejection){
|
|
ended(rejection);
|
|
return $q.reject(rejection);
|
|
},
|
|
|
|
// On response success
|
|
response: function (response){
|
|
ended(response);
|
|
return response || $q.when(response);
|
|
},
|
|
|
|
// On response failure
|
|
responseError: function (rejection){
|
|
ended(rejection);
|
|
return $q.reject(rejection);
|
|
}
|
|
};
|
|
});
|
|
|
|
//instantiate httpInterceptor
|
|
evoapp.config(function ($httpProvider){
|
|
|
|
$httpProvider.interceptors.push('httpInterceptor');
|
|
});
|
|
|
|
|