sessionTimeoutCtrl.js
4.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
angular.module('newApp').controller('sessionTimeoutCtrl', function ($scope, $location) {
$scope.$on('$viewContentLoaded', function () {
function sessionTimeout() {
var $countdown;
$('body').append('<div class="modal fade" id="session-timeout" tabindex="-1" role="dialog" aria-hidden="true">' +
'<div class="modal-dialog">' +
'<div class="modal-content">' +
'<div class="modal-header bg-primary">' +
'<button type="button" class="close" data-dismiss="modal" aria-hidden="true"><i class="icons-office-52"></i></button>' +
'<h4 class="modal-title">Your session is about to <strong>expire</strong></h4>' +
'</div>' +
'<div class="modal-body">' +
'<p>The screen will be locked in <span id="idle-timeout-counter" class="w-700"></span> seconds.</p>' +
'<p>Do you want to stay connected?</p>' +
'</div>' +
'<div class="modal-footer">' +
'<button id="idle-timeout-dialog-logout" type="button" class="btn btn-default btn-embossed">No, Logout</button>' +
'<button id="idle-timeout-dialog-keepalive" type="button" class="btn btn-primary btn-embossed" data-dismiss="modal">Yes, Keep Working</button>' +
'</div>' +
'</div>' +
'</div>' +
'</div>');
/* Start the idle timer plugin */
$.idleTimeout('#session-timeout', '.modal-content button:last', {
idleAfter: 5, // 5 seconds before a dialog appear (very short for demo purpose)
timeout: 30000, // 30 seconds to timeout
pollingInterval: 5, // 5 seconds
keepAliveURL: '../../../assets/global/plugins/idle-timeout/keepalive.php',
serverResponseEquals: 'OK',
onTimeout: function () {
if ($location.path() === '/user-sessionTimeout') {//remove this condition to apply timout for all the pages
window.location = "../../user-lockscreen.html";
}
},
onIdle: onIdle,
onCountdown: function (counter) {
/* We update the counter */
if ($countdown)
$countdown.html(counter);
}
});
};
var onIdle = function () {
$('#session-timeout').modal('show');
$countdown = $('#idle-timeout-counter');
$('#idle-timeout-dialog-keepalive').on('click', function () {
$('#session-timeout').modal('hide');
});
$('#idle-timeout-dialog-logout').on('click', function () {
$('#session-timeout').modal('hide');
$.idleTimeout.options.onTimeout.call(this);
});
}
sessionTimeout();
$('body').append('<div class="modal fade" id="session-timeout" tabindex="-1" role="dialog" aria-hidden="true">' +
'<div class="modal-dialog">' +
'<div class="modal-content">' +
'<div class="modal-header bg-primary">' +
'<button type="button" class="close" data-dismiss="modal" aria-hidden="true"><i class="icons-office-52"></i></button>' +
'<h4 class="modal-title">Your session is about to <strong>expire</strong></h4>' +
'</div>' +
'<div class="modal-body">' +
'<p>The screen will be locked in <span id="idle-timeout-counter" class="w-700"></span> seconds.</p>' +
'<p>Do you want to stay connected?</p>' +
'</div>' +
'<div class="modal-footer">' +
'<button id="idle-timeout-dialog-logout" type="button" class="btn btn-default btn-embossed">No, Logout</button>' +
'<button id="idle-timeout-dialog-keepalive" type="button" class="btn btn-primary btn-embossed" data-dismiss="modal">Yes, Keep Working</button>' +
'</div>' +
'</div>' +
'</div>' +
'</div>');
});
$scope.$on('$destroy', function () {
$(document).unbind("idle.idleTimer");
delete onIdle;
});
});