includes/clientside/static/ajax.js
changeset 118 0c5efda996bf
parent 103 a8891e108c95
child 133 af0f6ec48de3
--- a/includes/clientside/static/ajax.js	Fri Sep 07 00:48:51 2007 -0400
+++ b/includes/clientside/static/ajax.js	Fri Sep 07 16:25:16 2007 -0400
@@ -1094,3 +1094,57 @@
   catHTMLBuf = false;
 }
 
+var keepalive_interval = false;
+
+function ajaxPingServer()
+{
+  ajaxGet(stdAjaxPrefix + '&_mode=ping', function()
+    {
+    });
+}
+
+function ajaxToggleKeepalive()
+{
+  if ( readCookie('admin_keepalive') == '1' )
+  {
+    createCookie('admin_keepalive', '0', 3650);
+    if ( keepalive_interval )
+      clearInterval(keepalive_interval);
+    var span = document.getElementById('keepalivestat');
+    span.firstChild.nodeValue = 'Turn on keep-alive';
+  }
+  else
+  {
+    createCookie('admin_keepalive', '1', 3650);
+    if ( !keepalive_interval )
+      keepalive_interval = setInterval('ajaxPingServer();', 600000);
+    var span = document.getElementById('keepalivestat');
+    span.firstChild.nodeValue = 'Turn off keep-alive';
+    ajaxPingServer();
+  }
+}
+
+var keepalive_onload = function()
+{
+  if ( readCookie('admin_keepalive') == '1' )
+  {
+    if ( !keepalive_interval )
+      keepalive_interval = setInterval('ajaxPingServer();', 600000);
+    var span = document.getElementById('keepalivestat');
+    span.firstChild.nodeValue = 'Turn off keep-alive';
+    ajaxPingServer();
+  }
+  else
+  {
+    if ( keepalive_interval )
+      clearInterval(keepalive_interval);
+    var span = document.getElementById('keepalivestat');
+    span.firstChild.nodeValue = 'Turn on keep-alive';
+  }
+};
+
+function aboutKeepAlive()
+{
+  new messagebox(MB_OK|MB_ICONINFORMATION, 'About the keep-alive feature', 'Keep-alive is a new Enano feature that keeps your administrative session from timing out while you are using the administration panel. This feature can be useful if you are editing a large page or doing something in the administration interface that will take longer than 15 minutes.<br /><br />For security reasons, Enano mandates that high-privilege logins last only 15 minutes, with the time being reset each time a page is loaded (or, more specifically, each time the session API is started). The consequence of this is that if you are performing an action in the administration panel that takes more than 15 minutes, your session may be terminated. The keep-alive feature attempts to relieve this by sending a "ping" to the server every 10 minutes.<br /><br />Please note that keep-alive state is determined by a cookie. Thus, if you log out and then back in as a different administrator, keep-alive will use the same setting that was used when you were logged in as the first administrative user. In the same way, if you log into the administration panel under your account from another computer, keep-alive will be set to "off".');
+}
+