portals-jetspeed-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Glenn Golden <ggol...@umich.edu>
Subject panels in portlets conflict with Maximize
Date Mon, 06 May 2002 17:16:43 GMT
A "panel", let us accept as a definition for now, is a independently
updatable area of a portlet's display.  We can implement this by making the
main portlet spit out iframes for each panel section, mixed with any other
HTML we want for the portlet.

The "src=" for the panel iframe is a request back to Jetspeed to render a
sub-section of the portlet.  This subsection  must be portlet (sub-) content
only, no control, no page layout.  So, the request needs to identify the
following:

js_peid/<id> - to id the portlet involved (used by the content.vm templates)
panel/<panel id> - to tell the portlet which sub-section to display (used by
the portlets)
template/content - to tell jetspeed to do some special formatting (this is
our new "content" templates)

The panel names can be whatever the portlet wants them to be.

So, for example, we might have this:

http://chefproject.org/jetspeed/portal/js_peid/304/panel/List/template/conte
nt

This works just fine... Until we maximize this portlet.

The way Maximize.java "works", along with the JetspeedSessionValidator, is
to store the js_peid in the user's session's get/setTemp() as "js_peid", and
if that value is present when any request comes in from that user / session,
to change to the Maximize template.

Consider what we need when we maximize a  "paneled" portlet.  The first
request, for the entire portlet, needs to do the standard maximize thing.
The subsequent requests for each iframe need to be processed without any
modifications for maximize.

What is happening now is that the maximize template is used instad of the
"content" template as requested.  The result is we get each panel of the
maximized portlet, as expected, but each panel has the entire jetspeed
screen navigation and control, which is not what we want.

So...

I don't like how maximize works, anyway, and want to change it to use the
new StateManager, and consider the maximized state as part of the portal
page's session state for this user.

But this won't help here, because what we really need is to change
JetspeedSessionValidator.  It must recognize when the page is set to
maximize something, and modify the request for only the page - level
requests, not the iframe - panel level requests.

There are two situations: the first time maximize is invoked (in which case
the Maximize action is called), and subsequent requests for the page (in
which case no maximize action is called, just the standard page request).

In the cases where action=Maximize is in the request, the Maximize action
can take care of things.

In the normal URL to the page case, JetspeedSessionValidator needs to
distinguish between the URL to the page and those to a portlet.

I propose that if JetspeedSessionValidator sees the "js_peid" in the
request, then it can assume it is a request to a portal element, not the
entire page.  Only when this is absent will it change the request to use the
"maximize" template.

We can also look for an explicit "template" in the request, and leave these
alone as well.

I'll be testing this today and seeing how it works... Please, comment!

Thanks.

- Glenn
 
--------------------------------------------
Glenn R. Golden, Systems Research Programmer
University of Michigan School of Information
ggolden@umich.edu               734-615-1419
--------------------------------------------


--
To unsubscribe, e-mail:   <mailto:jetspeed-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:jetspeed-dev-help@jakarta.apache.org>


Mime
View raw message