JSFiddle - React, Tailwind, and code Playground
by ian_smithz
HTML
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/ui-lightness/jquery-ui.css">
<p>The warning dialog will fire after 3 seconds.</p>
<p>The page will redirect (causing an error on jsfiddle) after 5 minutes with no activity.</p>
JavaScript
(function(a){jQuery.sessionTimeout=function(b){function f(a){switch(a){case"start":redirTimer=setTimeout(function(){window.location=d.redirUrl},d.redirAfter-d.warnAfter);break;case"stop":clearTimeout(redirTimer);break}}function e(b){switch(b){case"start":dialogTimer=setTimeout(function(){a("#sessionTimeout-dialog").dialog("open");f("start")},d.warnAfter);break;case"stop":clearTimeout(dialogTimer);break}}var c={message:"Your session is about to expire.",keepAliveUrl:"keepAlive.asp",redirUrl:"timedOut.asp",logoutUrl:"logout.asp",warnAfter:9e5,redirAfter:12e5};var d=c;if(b){var d=a.extend(c,b)}a("body").append('<div title="Session Timeout" id="sessionTimeout-dialog">'+d.message+"</div>");a("#sessionTimeout-dialog").dialog({autoOpen:false,width:400,modal:true,closeOnEscape:false,open:function(b,c){a(".ui-dialog-titlebar-close").hide()},buttons:{"Log Out Now":function(){window.location=d.logoutUrl},"Stay Connected":function(){a(this).dialog("close");a.ajax({type:"POST",url:d.keepAliveUrl});f("stop");e("start")}}});e("start")}})(jQuery)
$(document).ready(function() {
$.sessionTimeout({
warnAfter: 3000,
redirAfter: 300000
});
});