| <?xml version="1.0"?> |
| <!-- |
| Copyright 2005 The Apache Software Foundation |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <!DOCTYPE script PUBLIC |
| "-//Apache Software Foundation//Tapestry Script Specification 3.0//EN" |
| "http://jakarta.apache.org/tapestry/dtd/Script_3_0.dtd"> |
| <script> |
| <input-symbol key="confirmTimeout" /> |
| <input-symbol key="expirationTimeout" /> |
| <input-symbol key="prolongSessionPeriod" /> |
| |
| <input-symbol key="confirmMessage" /> |
| <input-symbol key="expirationMessage" /> |
| |
| <input-symbol key="disableWarning" /> |
| <input-symbol key="disableAutoProlong" /> |
| |
| <input-symbol key="expirationFunction" /> |
| |
| <body> |
| tapestry.TimeoutTimerConfirm=function(){}; |
| tapestry.TimeoutProlongSessionTime=function(){}; |
| tapestry.TimeoutExpirationTime=function(){}; |
| |
| <if expression="!disableWarning"> |
| tapestry.TimeoutConfirm=function() |
| { |
| tapestry.TimeoutClearConfirmTimer(); |
| |
| var exp = new Date(); |
| exp.setTime(exp.getTime() + ${expirationTimeout}); |
| var hrs = exp.getHours(); |
| var min = exp.getMinutes(); |
| if (min < 10) |
| mins = "0" + min; |
| else |
| mins = min; |
| |
| var confirmMessage = "${confirmMessage}"; |
| confirmMessage = confirmMessage.replace("{0}", Math.round(${confirmTimeout}/60000)); |
| confirmMessage = confirmMessage.replace("{1}", hrs + ":" + mins); |
| |
| var val = confirm(confirmMessage); |
| if (!val) { |
| <if expression="expirationFunction != null"> |
| ${expirationFunction}(); |
| </if> |
| return; |
| } |
| |
| var current = new Date(); |
| if (current.getTime() > exp.getTime()) { |
| alert("${expirationMessage}"); |
| <if expression="expirationFunction != null"> |
| ${expirationFunction}(); |
| </if> |
| } |
| else { |
| tapestry.TimeoutProlongSession(); |
| } |
| } |
| </if> |
| tapestry.TimeoutProlongSession=function() |
| { |
| tapestry.TimeoutUpdateProlongSessionTime(); |
| TimeoutRenewSession(); |
| } |
| |
| TimeoutSessionRenewed=function() |
| { |
| tapestry.TimeoutClearConfirmTimer(); |
| tapestry.TimeoutInitConfirmTimer(); |
| } |
| |
| tapestry.TimeoutClearConfirmTimer=function() |
| { |
| window.clearTimeout(tapestry.TimeoutTimerConfirm); |
| } |
| |
| tapestry.TimeoutInitConfirmTimer=function() |
| { |
| <if expression="!disableWarning"> |
| tapestry.TimeoutTimerConfirm = window.setTimeout("tapestry.TimeoutConfirm()", ${confirmTimeout}); |
| </if> |
| |
| tapestry.TimeoutExpirationTime = new Date(); |
| tapestry.TimeoutExpirationTime.setTime(tapestry.TimeoutExpirationTime.getTime() + ${confirmTimeout} + ${expirationTimeout}); |
| |
| tapestry.TimeoutUpdateProlongSessionTime(); |
| } |
| |
| tapestry.TimeoutUpdateProlongSessionTime=function() |
| { |
| tapestry.TimeoutProlongSessionTime = new Date(); |
| tapestry.TimeoutProlongSessionTime.setTime(tapestry.TimeoutProlongSessionTime.getTime() + ${prolongSessionPeriod}); |
| } |
| |
| <if expression="!disableAutoProlong"> |
| tapestry.TimeoutInitChangeObserver=function() |
| { |
| dojo.event.connect(document.body, "onclick", tapestry, "TimeoutHandleOnClick"); |
| dojo.event.connect(document.body, "onmousemove", tapestry, "TimeoutHandleOnMouseMove"); |
| dojo.event.connect(document.body, "onkeydown", tapestry, "TimeoutHandleOnKeyPress"); |
| dojo.event.connect(window, "onscroll", tapestry, "TimeoutHandleOnScroll"); |
| } |
| |
| tapestry.TimeoutHandleOnClick=function() { |
| tapestry.TimeoutRegisterUserAction(); |
| } |
| |
| tapestry.TimeoutHandleOnMouseMove=function() { |
| tapestry.TimeoutRegisterUserAction(); |
| } |
| |
| tapestry.TimeoutHandleOnKeyPress=function() { |
| tapestry.TimeoutRegisterUserAction(); |
| } |
| |
| tapestry.TimeoutHandleOnScroll=function() { |
| tapestry.TimeoutRegisterUserAction(); |
| } |
| |
| tapestry.TimeoutRegisterUserAction=function() |
| { |
| var now = new Date(); |
| if (now.getTime() > tapestry.TimeoutProlongSessionTime.getTime() && |
| now.getTime() < tapestry.TimeoutExpirationTime.getTime()) |
| tapestry.TimeoutProlongSession(); |
| return true; |
| } |
| </if> |
| <if expression="!disableAutoProlong"> |
| tapestry.TimeoutInitChangeObserver(); |
| </if> |
| tapestry.TimeoutInitConfirmTimer(); |
| </body> |
| </script> |