For those of you unfamiliar, ngIdle can be found here.
It's basically a way to make an idle timeout like many banks have on their websites using angular.
It works great, however the way that I am currently using it is by placing some of the config stuff in my controller. The problem is I am working with multiple controllers and don't really want to just copy paste this config stuff throughout my project.
Here is what the config looks like:
function closeModals()
{
// Function closes any modals that are currently open (used when coming back from idle)
if ($scope.warning) {
$scope.warning.close();
$scope.warning = null;
}
if ($scope.timedout) {
$scope.timedout.close();
$scope.timedout = null;
}
}
$scope.$on('IdleStart', function () { // What happens when the user goes idle (idle time is defined in app.js IdleProvider config)
closeModals();
$scope.warning = $modal.open({
templateUrl: 'views/timeoutModal.html',
windowClass: 'modal-danger'
});
});
$scope.$on('IdleTimeout', function () { // This is what happens when the user waits passed the warning timer
logout();
closeModals();
Idle.unwatch();
$scope.$apply();
alert("You have been signed out due to inactivity.");
});
$scope.$on('IdleEnd', function () { // What happens when the user comes back from being idle but before they are timed out
closeModals();
$scope.amIdle = false;
});
Basically, I want to be able to simply tell my controller that I want to use these configuration settings and it would be able to use them without needing to put them in the controller.