Yes. I'm sure it has session. It is not a trivial application, we used
session everywhere. And I used your way to confirm it too. The value is
true.
Here is the js part from generated html.
tapestry.TimeoutTimerConfirm=function(){};
tapestry.TimeoutProlongSessionTime=function(){};
tapestry.TimeoutExpirationTime=function(){};
tapestry.TimeoutConfirm=function()
{
tapestry.TimeoutClearConfirmTimer();
var exp = new Date();
exp.setTime(exp.getTime() + 660000);
var hrs = exp.getHours();
var min = exp.getMinutes();
if (min < 10)
mins = "0" + min;
else
mins = min;
var confirmMessage = "The connection was inactive for more than {0}
minutes. Your session will expire at {1}.\n Please click OK to continue your
work or CANCEL to close the session.";
confirmMessage = confirmMessage.replace("{0}", Math.round(0/60000));
confirmMessage = confirmMessage.replace("{1}", hrs + ":" + mins);
var val = confirm(confirmMessage);
if (!val) {
return;
}
var current = new Date();
if (current.getTime() > exp.getTime()) {
alert("Your session has expired. Please log in again.");
}
else {
tapestry.TimeoutProlongSession();
}
}
tapestry.TimeoutProlongSession=function()
{
tapestry.TimeoutUpdateProlongSessionTime();
TimeoutRenewSession();
}
TimeoutSessionRenewed=function()
{
tapestry.TimeoutClearConfirmTimer();
tapestry.TimeoutInitConfirmTimer();
}
tapestry.TimeoutClearConfirmTimer=function()
{
window.clearTimeout(tapestry.TimeoutTimerConfirm);
}
tapestry.TimeoutInitConfirmTimer=function()
{
tapestry.TimeoutTimerConfirm = window.setTimeout("TimeoutConfirm()",
0);
tapestry.TimeoutExpirationTime = new Date();
tapestry.TimeoutExpirationTime.setTime(tapestry.TimeoutExpirationTime.getTim
e() + 0 + 660000);
tapestry.TimeoutUpdateProlongSessionTime();
}
tapestry.TimeoutUpdateProlongSessionTime=function()
{
tapestry.TimeoutProlongSessionTime = new Date();
tapestry.TimeoutProlongSessionTime.setTime(tapestry.TimeoutProlongSessionTim
e.getTime() + -240000);
}
tapestry.TimeoutInitConfirmTimer();
function TimeoutRenewSession()
{
var requestObject = getRequest();
if (!requestObject) {
return;
}
var url =
"/dboard/xtile.svc?component=%24Border.%24Timeout.%24XTile&page=Boards";
var arguments = TimeoutRenewSession.arguments;
var argumentCount = arguments.length;
for (i = 0; i < argumentCount; i++) {
url = url + "&sp=" + encodeURI(arguments[i]);
}
url = url + "&rand=" + Math.random();
requestObject.onreadystatechange = function() {
if (requestObject.readyState == 4) {
if (requestObject.status == 200) {
var data =
extractData(requestObject);
TimeoutSessionRenewed(data);
}
}
}
requestObject.open("GET", url, true);
requestObject.send(null);
}
-----Original Message-----
From: Hugo Palma [mailto:[EMAIL PROTECTED]
Sent: Tuesday, July 17, 2007 11:29 AM
To: Tapestry users
Subject: Re: contrib:Timeout
Are you sure ur application is creating a session ?
Add this to ur page class:
@InjectObject("infrastructure:request")
public abstract WebRequest getRequest();
public boolean isInSession() {
return getRequest().getSession(false) != null;
}
and print out the value of the inSession property. Does it confirm that
u r in a session ?
Henry Chen wrote:
> For some reason, when I post from Nable the code parts were lost. I'm
> reposting from outlook this time.
>
> Thank you for helping.
>
> Sorry I didn't realize that the code is missing from my original post.
> Here it is:
>
> <span jwcid="@contrib:Timeout" warningTime="100"
disableAutoProlong="true"/>
>
> There is no js error. I read the generated js code and it looks like
> warningTime should be in millisecond. So I tried the following which
didn't
> work either.
>
> <span jwcid="@contrib:Timeout" warningTime="60000"
> disableAutoProlong="true"/>
>
>
> -----Original Message-----
> From: Henry Chen [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, July 17, 2007 10:27 AM
> To: [email protected]
> Subject: Re: contrib:Timeout
>
>
> Thank you for helping.
>
> Sorry I didn't realize that the code is missing from my original post.
> Here it is:
>
>
>
> There is no js error. I read the generated js code and it looks like
> warningTime should be in millisecond. So I tried the following which
didn't
> work either.
>
>
>
>
>
>
> HugoPalma wrote:
>
>> Did the session actually expire after the 10 minutes wait ?
>> What parameters did u provide to the TimeoutComponent and what are their
>> values ?
>> Did u check for javascript errors on the page ?
>>
>> Henry Chen wrote:
>>
>>> Nobody had the similar experience? Can anybody help? Thank you very much
>>> in
>>> advance.
>>>
>>>
>>> Henry Chen wrote:
>>>
>>>
>>>> I'm using the latest Tap4.1.2.
>>>>
>>>> Did anybody successfully use contrib:Timeout?
>>>> I tried to use it in the my border component as below.
>>>>
>>>>
>>>>
>>>> I set the session time in web.xml to 10 mins and waited but nothing
>>>> happened. I found some "timeout" related js code are added. Why didn't
>>>> it
>>>> work? Please help. Thank you.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]