contar el tiempo que un usuario esta inactivo en el sistema
Publicado por javier (1 intervención) el 14/01/2015 23:54:00
Hola que tal gente, recurro a ustedes porque soy bastante novato en esto de JS, estoy trabajando con un sistema que utiliza un archivo JS para contar el tiempo que un usuario esta inactivo en el sistema, se supone que al pasar cierto tiempo inactivo en el sistema debe de mostrarte en pantalla que tu tiempo en el sistema esta por acabar y si deseas seguir conectado, el archivo que uso no funciona totalmente puesto que no me muestra en pantalla el mensaje que les decia anteriormente, solo me redirecciona a la pagina que yo le indico, cabe aclarar que el sistema que estoy programando esta basado en php con code igniter, no se si este problema sea del archivo en si o probablemente algo me falte de declarar en php.
les anexo el codigo del archivo, de hecho este archivo no lo hice yo, lo descargue de internet y probablemente a alguno de aqui pueda que se le haga conocido, espero y pueda ayudarme.
saludos.
les anexo el codigo del archivo, de hecho este archivo no lo hice yo, lo descargue de internet y probablemente a alguno de aqui pueda que se le haga conocido, espero y pueda ayudarme.
saludos.
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
//######
//## This work is licensed under the Creative Commons Attribution-Share Alike 3.0
//## United States License. To view a copy of this license,
//## visit http://creativecommons.org/licenses/by-sa/3.0/us/ or send a letter
//## to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
//######
(function($){
$.fn.idleTimeout = function(options) {
var defaults = {
inactivity: 1200000, //20 Minutes
noconfirm: 10000, //10 Seconds
sessionAlive: 30000, //10 Minutes
redirect_url: '/auth/acceder/',
click_reset: true,
alive_url: '/js_sandbox/',
logout_url: '/auth/acceder/',
showDialog: true,
dialogTitle: 'TU SESION ESTA A PUNTO DE CADUCAR',
dialogText: 'Por Seguridad el sistema esta a punto de Cerrar tu Sesión ¿Deseas seguir Conectado?.',
dialogButton: 'Seguir Conectado'
}
//##############################
//## Private Variables
//##############################
var opts = $.extend(defaults, options);
var liveTimeout, confTimeout, sessionTimeout;
var modal = "<div id='modal_pop'><p>"+opts.dialogText+"</p></div>";
//##############################
//## Private Functions
//##############################
var start_liveTimeout = function()
{
clearTimeout(liveTimeout);
clearTimeout(confTimeout);
liveTimeout = setTimeout(logout, opts.inactivity);
if(opts.sessionAlive)
{
clearTimeout(sessionTimeout);
sessionTimeout = setTimeout(keep_session, opts.sessionAlive);
}
}
var logout = function()
{
var my_dialog;
var buttonsOpts = {};
confTimeout = setTimeout(redirect, opts.noconfirm);
buttonsOpts[opts.dialogButton] = function(){
my_dialog.dialog('close');
stay_logged_in();
}
if(opts.showDialog)
{
my_dialog = $(modal).dialog({
buttons: buttonsOpts,
modal: true,
title: opts.dialogTitle
});
}
}
var redirect = function()
{
if(opts.logout_url)
{
$.get(opts.logout_url);
}
window.location.href = opts.redirect_url;
}
var stay_logged_in = function(el)
{
start_liveTimeout();
if(opts.alive_url)
{
$.get(opts.alive_url);
}
}
var keep_session = function()
{
$.get(opts.alive_url);
clearTimeout(sessionTimeout);
sessionTimeout = setTimeout(keep_session, opts.sessionAlive);
}
//###############################
//Build & Return the instance of the item as a plugin
// This is basically your construct.
//###############################
return this.each(function() {
obj = $(this);
start_liveTimeout();
if(opts.click_reset)
{
$(document).bind('click', start_liveTimeout);
}
if(opts.sessionAlive)
{
keep_session();
}
});
};
})(jQuery);
Valora esta pregunta


0