DrMartiner
11/27/2013 - 10:54 AM

Directive for idle timer

Directive for idle timer

<idle ng-idle-wait-time="300000" ng-after-redirect="afterIdleRedirect()" />
angular.module('app')
    .directive 'idle', () ->
        return {
            restrict: 'E'
            scope:
                waitTime: '@ngIdleWaitTime'
                afterRedirect: '&ngAfterRedirect'
            link: (scope, element, attrs) ->
                idleTimer = null
                idleState = false

                $(document).bind 'mousemove keydown scroll', () ->
                    clearTimeout idleTimer # отменяем прежний временной отрезок

                    idleState = false
                    idleTimer = setTimeout () ->
                        idleState = true
                        scope.afterRedirect()
                    , scope.waitTime
                $('body').trigger 'mousemove'
        }