You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by livelock <di...@masse.de> on 2006/09/04 00:45:01 UTC

Contrib:Timeout does (almost) nothing

Hi,
I'm on Tapestry 4.1.1 snapshot and playing around wiith components.
Contrib:Timeout does nothing for me except generating a lot of Javscript
code. Is this known?

This is my page:

<body jwcid="@Shell" title="foo" ajaxEnabled="true" >
<div jwcid="@Body" >

	
<h1>Tapestry Component Database</h1>


<ul><form jwcid="frm@Form" success="listener:doSubmit"
clientValidationEnabled="true">
	<li>
	<input jwcid="message@TextField" value="ognl:string" size="8"/><button
jwcid="but@Button" label="Send"/></li>
	<li> Add New Project <span jwcid="ins@Insert"
value="prop:counter">37</span> </li>
	<span jwcid="fog@Any">
		<span jwcid="i1@Insert" value="ognl:cart.size()"/>
		<span jwcid="i2@Insert" value="ognl:cart.(#size=(#this.size()), #size>0 ?
#this.get( #size-1 ) : 'no')"/>
		<span jwcid="@contrib:Timeout" warningTime="19" 
disableAutoProlong="true"/>
	</span>
	</form>
</ul>
</div>
</body>

This is the generated page:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<!-- Application: null -->
<!-- Page: Home -->
<!-- Generated: Mon Sep 04 00:31:56 CEST 2006 -->
<html>
<head>
<meta name="generator" content="Tapestry Application Framework, version
4.1"/>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
<base href="http://localhost:8080/TimtT/"/><!--[if IE]></base><![endif]-->
<title>foo</title>
<script type="text/javascript">djConfig = { isDebug: true,
debugContainerId:'debug',
baseRelativePath:"http://localhost:8080/TimtT/app?service=asset&path=%2Fdojo%2F",
preventBackButtonFix: false, parseWidgets:false} </script>

 <script type="text/javascript"
src="http://localhost:8080/TimtT/app?service=asset&path=%2Fdojo%2Fdojo.js"></script><script
type="text/javascript"
src="http://localhost:8080/TimtT/app?service=asset&path=%2Ftapestry%2Fcore.js"></script>

<script type="text/javascript">dojo.require("dojo.logging.Logger");
dojo.log.setLevel(dojo.log.getLevel("WARNING"));</script>
</head>

<body id="Body">
<script type="text/javascript"><!--


    tapestry.TimeoutTimerConfirm=function(){};
    tapestry.TimeoutProlongSessionTime=function(){};
    tapestry.TimeoutExpirationTime=function(){};
    
    
    tapestry.TimeoutConfirm=function()
    {
    	tapestry.TimeoutClearConfirmTimer();
    
    	var exp = new Date();
    	exp.setTime(exp.getTime() + 19000);
	    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(1781000/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();
		tapestry.TimeoutRenewSession();
    }
    
    tapestry.TimeoutSessionRenewed=function()
    {
    	tapestry.TimeoutClearConfirmTimer();
    	tapestry.TimeoutInitConfirmTimer();
    }
    
    tapestry.TimeoutClearConfirmTimer=function()
    {
    	window.clearTimeout(tapestry.TimeoutTimerConfirm);
    }
    
    tapestry.TimeoutInitConfirmTimer=function()
    {
	    
    	tapestry.TimeoutTimerConfirm = window.setTimeout("TimeoutConfirm()",
1781000);
    	

    	tapestry.TimeoutExpirationTime = new Date();
    
tapestry.TimeoutExpirationTime.setTime(tapestry.TimeoutExpirationTime.getTime()
+ 1781000 + 19000);

		tapestry.TimeoutUpdateProlongSessionTime();
    }
    
    tapestry.TimeoutUpdateProlongSessionTime=function()
    {
    	tapestry.TimeoutProlongSessionTime = new Date();
    
tapestry.TimeoutProlongSessionTime.setTime(tapestry.TimeoutProlongSessionTime.getTime()
+ 900000);
    }

    
    
    
    tapestry.TimeoutInitConfirmTimer();
	
	function TimeoutRenewSession() 
	{
		var requestObject = getRequest();
		if (!requestObject) {
			
			return;
		}
		
	    var url =
"/TimtT/app?component=%24Timeout.%24XTile&page=Home&service=xtile";
	    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);
	}
	
	
	
	function getRequest()
	{
		var xmlhttp=false;
		/*@cc_on @*/
		/*@if (@_jscript_version >= 5)
		 try {
		  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		 } catch (e) {
		  try {
		   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		  } catch (E) {
		   xmlhttp = false;
		  }
		 }
		@end @*/
		if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		  xmlhttp = new XMLHttpRequest();
		}
		return xmlhttp;
	}
	
	function extractData(response)
	{
		var xml = response.responseXML.documentElement;
		var dataList = new Array();
		if (xml) dataList = xml.getElementsByTagName('sp');
		var dataLen = dataList.length;
		var data = new Array();
		for (i = 0; i < dataLen; i++) {
			var child = dataList[i].firstChild;
			if (child)
				data[i] = child.data;
			else
				data[i] = "";
		}
		return data;
	}
	
	
	
	
        
            dojo.require("dojo.event");
            dojo.require("tapestry.*");
        
    
        
    

// --></script>

	
<h1>Tapestry Component Database</h1>


<ul><form method="post" action="/TimtT/app" id="frm">
<div style="display:none;" id="frmhidden"><input type="hidden"
name="formids" value="message,but,If"/>
<input type="hidden" name="component" value="frm"/>
<input type="hidden" name="page" value="Home"/>

<input type="hidden" name="service" value="direct"/>
<input type="hidden" name="session" value="T"/>
<input type="hidden" name="submitmode" value=""/>
<input type="hidden" name="submitname" value=""/>
<input type="hidden" name="If" value="T"/>
</div>
	<li>
	<input type="text" name="message" value="cdefg" id="message"
size="8"/><button type="button" name="but" id="but">Send</button></li>
	<li> /TimtT/app?page=AddProject&amp;service=page Add New Project 6 </li>
	<span id="fog">
		0
		no
		


	</span>

	</form>
</ul>
<script type="text/javascript"><!--
dojo.event.connect(window, 'onload', function(e) {
dojo.require("tapestry.form");tapestry.form.registerForm("frm");
tapestry.form.clearProfiles('frm'); tapestry.form.registerProfile('frm',{});

        
            
        
        
            
                 tapestry.cleanConnect(dojo.byId("but"), 
                                     "onclick", "formEvent993266796");
                tapestry.formEvent993266796=function(e){
                    var content={beventname:"onclick"};
                    tapestry.event.buildEventProperties(e, content);
                    if (!content["beventtarget.id"])
content["beventtarget.id"]="but";
                    
                    
                   var
validateState=tapestry.form.forms["frm"].validateForm;
                   var validateForm=false;
                   tapestry.form.setFormValidating("frm", validateForm);
                   
                    
                    tapestry.form.submitAsync("frm", content);
                    
                    
                    
                    tapestry.form.setFormValidating("frm", validateState);
                    
                };
                dojo.event.connect(dojo.byId("but"), "onclick",
                                   tapestry, "formEvent993266796");
            
        
    

        
            
                tapestry.cleanConnect(dojo.byId("bag"), "onmouseover",
"event1405460374");
                tapestry.event1405460374=function(e){
                    var content={beventname:"onmouseover"};
                    tapestry.event.buildEventProperties(e, content);
                    if (!content["beventtarget.id"])
content["beventtarget.id"]="bag";
                   
tapestry.bind("/TimtT/app?component=%24Body&page=Home&service=directevent&session=T",
content);
                };
                dojo.event.connect(dojo.byId("bag"), "onmouseover",
tapestry, "event1405460374");
            
        
        
            
        
    
});
// --></script></body>
</html>
<!-- Render time: ~ 47 ms -->


-- 
View this message in context: http://www.nabble.com/Contrib%3ATimeout-does-%28almost%29-nothing-tf2212490.html#a6127692
Sent from the Tapestry - Dev forum at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org