44 lines
1.4 KiB
JavaScript
44 lines
1.4 KiB
JavaScript
(function () {
|
|
global.dashModule
|
|
.controller('activityCheckerCtrl', ['$scope', '$timeout', '$window', '$http', 'utilsService', activityCheckerCtrl])
|
|
.directive('activityChecker', [activityCheckerDirective]);
|
|
|
|
function activityCheckerDirective() {
|
|
return {
|
|
restrict: 'E',
|
|
templateUrl: 'utils/html/activityCheckerTemplate'
|
|
};
|
|
}
|
|
|
|
function activityCheckerCtrl($scope, $timeout, $window, $http, utilsService) {
|
|
$scope.checkLastActivity = checkLastActivity;
|
|
$scope.activityDialogClose = activityDialogClose;
|
|
$scope.hasTimeExpired = false;
|
|
|
|
const MAX_INACTIVE_TIME = 1000 * 60 * 24;
|
|
|
|
function checkLastActivity() {
|
|
$timeout(checkActivityOnServer, MAX_INACTIVE_TIME);
|
|
}
|
|
|
|
function checkActivityOnServer(){
|
|
$http({
|
|
method: 'POST',
|
|
url: 'utils/api/checkActivityStatus'
|
|
}).then(showInactiveMessage, utilsService.onHttpError);
|
|
}
|
|
|
|
function showInactiveMessage(response) {
|
|
if(response.data && response.data.hasSessionExpired === true){
|
|
$scope.hasTimeExpired = true;
|
|
}else{
|
|
checkLastActivity();
|
|
}
|
|
}
|
|
|
|
function activityDialogClose(){
|
|
$window.location.href = 'logout.php';
|
|
}
|
|
}
|
|
})();
|