added login session timeout alerts for when the session is about to expire
authorerickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 7 Dec 2005 21:47:04 +0000 (21:47 +0000)
committererickson <erickson@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 7 Dec 2005 21:47:04 +0000 (21:47 +0000)
and for when the session has expired

git-svn-id: svn://svn.open-ils.org/ILS/trunk@2272 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/web/opac/common/js/config.js
Open-ILS/web/opac/common/js/opac_utils.js
Open-ILS/web/opac/locale/en-US/lang.dtd
Open-ILS/web/opac/skin/default/xml/ilsevents.xml

index d4604c0..133c5e1 100644 (file)
@@ -59,6 +59,8 @@ var STYPE_SUBJECT     = "subject";
 var STYPE_SERIES       = "series";
 var STYPE_KEYWORD      = "keyword";
 
+var LOGOUT_WARNING_TIME = 15;
+
 
 /* container for global variables shared accross pages */
 var G          = {};
index 994e38e..8617f25 100644 (file)
@@ -250,10 +250,18 @@ function grabUser(ses, force) {
                        return G.user;
 
        /* first make sure the session is valid */
-       var request = new Request(FETCH_SESSION, ses );
+       var request = new Request(FETCH_SESSION, ses, 1 );
        request.send(true);
        var user = request.result();
+       //if(checkILSEvent(user)) throw user; /* unable to grab the session */
+
+       if(checkILSEvent(user)) {
+               doLogout();
+               return false; /* unable to grab the session */
+       }
+
        if( !(typeof user == 'object' && user._isfieldmapper) ) {
+               doLogout();
                return false;
        }
 
@@ -267,6 +275,9 @@ function grabUser(ses, force) {
        if(G.user.prefs['opac.hits_per_page'])
                COUNT = parseInt(G.user.prefs['opac.hits_per_page']);
 
+       //new AuthTimer(getAuthtime()).run();
+       new AuthTimer(20).run();
+
        return G.user;
 
 }
@@ -601,16 +612,30 @@ function _timerRun(tname) {
        _t.count++;
 }
 
-
-
 function checkILSEvent(obj) {
        if( obj.ilsevent != null && obj.ilsevent != 0 )
                return parseInt(obj.ilsevent);
        return null;
 }
 function alertILSEvent(code) {
-       /*alert(code);*/
        alert( $('ilsevent.' + code).innerHTML );
 }
 
 
+var __authTimer;
+function AuthTimer(time) { 
+       this.time = (time - LOGOUT_WARNING_TIME) * 1000; 
+       __authTimer = this;
+}
+
+AuthTimer.prototype.run = function() {
+       setTimeout('_authTimerAlert()', this.time);
+}
+
+function _authTimerAlert() {
+       if( confirm( $('auth_session_expiring').innerHTML ) ) 
+               doLogout();
+       else grabUser(null, true);
+}
+
+
index b48a1ca..ef28aa9 100644 (file)
@@ -50,6 +50,8 @@
 <!ENTITY opac.llt "&lt;">
 <!ENTITY opac.ggt "&gt;">
 
+<!ENTITY opac.session_expiring "Your login session will soon expire.  Click 'OK' to logout and return to the home page.  Click 'Cancel' to continue browsing.">
+<!ENTITY opac.session_expired "Your login session has expired">
 
 <!-- Navigations links -->
 <!ENTITY navigate.home "Home">
index 75759b6..6db5f47 100644 (file)
@@ -2,5 +2,9 @@
        <span id='ilsevent.1000'>&ilsevent.1000;</span>
        <span id='ilsevent.5000'>&ilsevent.5000;</span>
        <span id='ilsperm.CREATE_HOLD'>&ilsperm.CREATE_HOLD;</span>
+
+       <!-- Local OPAC Specific strings/events -->
+       <span id='auth_session_expiring'>&opac.session_expiring;</span>
+       <span id='auth_session_expired'>&opac.session_expired;</span>
 </span>