forked from JillElaine/jquery-idleTimeout
-
Notifications
You must be signed in to change notification settings - Fork 0
/
jquery-idleTimeout.min.js
1 lines (1 loc) · 2.75 KB
/
jquery-idleTimeout.min.js
1
(function(e){e.fn.idleTimeout=function(t){var n={idleTimeLimit:1200,redirectUrl:"/logout",customCallback:false,activityEvents:"click keypress scroll wheel mousewheel mousemove",enableDialog:true,dialogDisplayLimit:180,dialogTitle:"Session Expiration Warning",dialogText:"Because you have been inactive, your session is about to expire.",dialogTimeRemaining:"Time remaining",dialogStayLoggedIn:"Stay Logged In",dialogLogOutNow:"Log Out Now",dialogPrivateMode:'Please disable "Private Mode", or upgrade to a modern browser. Or perhaps a dependent file missing. Please see: https://github.com/marcuswestin/store.js',sessionKeepAliveTimer:600},r=e.extend(n,t),i=2,s=document.title,o=window.location.href,u,a,f,l,c,h,p,d,v,m,g,y,b,w,E,S,x;u=function(){if(r.sessionKeepAliveTimer){var t=function(){if(h===store.get("idleTimerLastActivity")){e.get(o)}};setInterval(t,r.sessionKeepAliveTimer*1e3)}};a=function(){e("body").on(r.activityEvents,function(){if(!r.enableDialog||r.enableDialog&&w()!==true){p()}})};c=function(){var t=e.now(),n=store.get("idleTimerLastActivity")+r.idleTimeLimit*1e3;if(t>n){if(!r.enableDialog){x()}else if(r.enableDialog&&w()!==true){v();y()}}else if(store.get("idleTimerLoggedOut")===true){x()}else{if(w()===true){E();b()}}};p=function(){d();h=e.now();store.set("idleTimerLastActivity",h);f=setInterval(c,i*1e3)};d=function(){clearInterval(f)};v=function(){var t="<div id='idletimer_warning_dialog'><p>"+r.dialogText+"</p><p style='display:inline'>"+r.dialogTimeRemaining+"<div style='display:inline' id='countdownDisplay'></div></p></div>";e(t).dialog({buttons:[{text:r.dialogStayLoggedIn,click:function(){E();b();p()}},{text:r.dialogLogOutNow,click:function(){x()}}],closeOnEscape:false,modal:true,title:r.dialogTitle,open:function(t,n){e(this).closest(".ui-dialog").find(".ui-dialog-titlebar-close").hide()}});S();document.title=r.dialogTitle};g=function(){var t=e.now(),n=store.get("idleTimerLastActivity")+r.idleTimeLimit*1e3+r.dialogDisplayLimit*1e3;if(t>n||store.get("idleTimerLoggedOut")===true){x()}};y=function(){m=setInterval(g,i*1e3)};b=function(){clearInterval(m);clearInterval(l)};w=function(){var t=e("#idletimer_warning_dialog").is(":visible");if(t===true){return true}return false};E=function(){e("#idletimer_warning_dialog").dialog("destroy").remove();document.title=s};S=function(){var t=r.dialogDisplayLimit,n,i;l=setInterval(function(){n=Math.floor(t/60);if(n<10){n="0"+n}i=t-n*60;if(i<10){i="0"+i}e("#countdownDisplay").html(n+":"+i);t-=1},1e3)};x=function(){store.set("idleTimerLoggedOut",true);if(r.customCallback){r.customCallback()}if(r.redirectUrl){window.location.href=r.redirectUrl}};return this.each(function(){if(store.enabled){h=e.now();store.set("idleTimerLastActivity",h);store.set("idleTimerLoggedOut",false)}else{alert(r.dialogPrivateMode)}a();u();p()})}})(jQuery)