See below:

> JetspeedTemplateLink is not quite right for the new peid 
> feature.  It still has forPortlet() taking a portlet name 
> (not id) and producing a url with "/portlet/<name>" intead of 
> "/js_peid/<id>".
> 
> We need some call in there to make take a portlet id and make 
> a url with "/js_peid/<id>".
> 
> Do we want to change the definition of forPortlet()?  It's 
> new, so doing so might not break too much.  We would change 
> it to encode the new "js_peid" parameter.  It would have to 
> be passed the peid from the request, which can be found in 
> the $data.Js_peid.
> 
> Forms that want to be submitted to just a portlet could 
> encode their action url as:
> 
> $jlink.forPortlet("$!data.Js_peid")
> 
> forPortlet() would, if passed a null or empty parameter, for 
> the case where there is no peid in the request, just be 
> ignored, so the $jink would be back to the entire portal 
> rather than specifying a portlet.
> 

That all sounds fine.
Any objections to changing forPortlet to using an id?

Btw - I don't like that Js_peid notation...
Don't really have an alternative right now,  but it looks clumsy


> * * *
> 
> Also, we would have to assure that whenever a reqest comes in 
> with a "js_peid", that the rundata's Js_peid() is properly 
> set with it, and not rely upon an action (such as Maximize) 
> to set this value.
> 
> We need to fix JetspeedSessionValidator.doPerform():
> 
>         String maximizedPortlet = 
> (String)jdata.getUser().getTemp("portlet");
>         if (maximizedPortlet != null) {
>             jdata.setPortlet(maximizedPortlet);
>             jdata.setScreenTemplate("Maximize");
>         }
> 
>         // if a portlet is referenced in the parameters 
> request, store it
>         // in the RunData object
>         String paramPortlet = 
> jdata.getParameters().getString("portlet");
>         if (paramPortlet != null && paramPortlet.length() > 0) {
>             jdata.setPortlet(paramPortlet);
>         }
> 
> Are we ok that the user.getTemp("portlet") is reserved here 
> for maximize? If so, we need to fix it so it sets the 
> jdata.Js_peid(), which is what Maxmize now uses, and check 
> the getTemp("js_peid"), which Maximize is also setting.
> 
> To assure that the Js_peid() is set in the rundata, we also 
> need another hunk of code like this:
> 
>         // if a portlet is referenced in the parameters 
> request, store it
>         // in the RunData object
>         String paramPortletID = 
> jdata.getParameters().getString("js_peid");
>         if (paramPortletID != null && paramPortletID.length() > 0) {
>             jdata.setJs_peid(paramPortletID);
>         }
> 
> So all the new peid folks will have it set in the rundata.
> 

Agreed. I will apply your patches and combine them with the code that Im
adding to support referencing non-default psml pages. All template links
will now have to consider the profile parameters. Hope to have this
checked in early this week.



--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to