merged cont.
[opensuse:yast-rest-service.git] / webservice / public / javascripts / jquerySessionTimeout.js
1 /*
2 #--
3 # Webyast Webservice framework
4 #
5 # Copyright (C) 2009, 2010 Novell, Inc.
6 #   This library is free software; you can redistribute it and/or modify
7 # it only under the terms of version 2.1 of the GNU Lesser General Public
8 # License as published by the Free Software Foundation.
9 #
10 #   This library is distributed in the hope that it will be useful, but WITHOUT
11 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12 # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
13 # details.
14 #
15 #   You should have received a copy of the GNU Lesser General Public
16 # License along with this library; if not, write to the Free Software
17 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 #++
19 */
20
21 function sessionTimeout(currentTime, expirationDate) {
22   // Don't start the timer if user is logged out
23   var logout_path =  window.location.protocol + "//" + window.location.host + "/logout";
24   var loged_out = String(window.location.protocol + "//" + window.location.host + "/session/");
25   var current_location = String(window.location);
26
27   var expiresIn = expirationDate-currentTime;
28
29   //DEBUG
30   //expiresIn  = 305 //just for test
31   //var logContainer = jQuery("div.time_left");
32   //<END>
33
34   //console.log(expirationDate - currentTime)
35
36   expiresIn = expiresIn-35; // show warning message 5 minutes before the session expires
37
38   // check current location and start timer if user is logged on
39   if(current_location.match(loged_out) == null) {
40     jQuery.fjTimer({
41       interval: 1000,
42       repeat: expiresIn,
43       tick: function(counter, timerId) {
44           //DEBUG
45           //timeLeft = (expiresIn - (counter+1));
46           //$("div.timer_logpanel").text("Expire in "+ timeLeft + "Time zone " + tzo);
47           //$("div.time_left").text("Expire in "+ timeLeft);
48           //console.log(timeLeft);
49           //<END>
50
51       },
52       onComplete: function() {
53         $("#timeoutMessage").slideDown(); // show the warning bar
54
55         messageTimeout = 30;
56
57         jQuery.fjTimer({
58           interval: 1000,
59           repeat: messageTimeout,
60           tick: function(counter, timerId) {
61             $("#counter").text(" " + (messageTimeout-counter) + " ");
62           },
63           onComplete: function() {
64             $("#timeoutMessage").slideUp(); // show the warning bar
65             location = logout_path; // redirect to logout page and stop all counters
66           }
67         });
68       }
69     });
70   }
71 }
72