You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pluto-dev@portals.apache.org by "Neil Griffin (Jira)" <ji...@apache.org> on 2021/12/15 18:47:00 UTC

[jira] [Closed] (PLUTO-784) When a portlet is maximized portlets after it are still visible

     [ https://issues.apache.org/jira/browse/PLUTO-784?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Neil Griffin closed PLUTO-784.
------------------------------
    Resolution: Not A Bug

[~mehdi.javan] Thanks for reporting this issue, and sorry it took so long to get back to you.

h2. TL;DR

Things are working as designed, so I'm closing this issue with status "Not A Bug"

h2. Detailed Explanation

The "meaning" of {{WindowState.MAXIMIZED}} is left open for interpretation by the implementer of the portlet container (Pluto, Jetspeed, Liferay, etc.)

Actually, the rendering/display of portlets and their window states is not handled by the portlet container, but by the page engine of the portal. So that's why it's left open for interpretation.

In the case of Apache Pluto, pluto-default-theme.jsp will [render a single column of portlets|https://github.com/apache/portals-pluto/blob/pluto-3.1.0/pluto-portal/src/main/webapp/WEB-INF/themes/pluto-default-theme.jsp#L111-L117] if one of them is maximized. [Otherwise, it will render two columns|https://github.com/apache/portals-pluto/blob/pluto-3.1.0/pluto-portal/src/main/webapp/WEB-INF/themes/pluto-default-theme.jsp#L119-L137]. In either case, there is a {{<c:forEach>...</c:forEach>}} that iterates through ALL of the portlets on the page and invokes each one for rendering via the [<pluto:portlet/> tag in portlet-skin.jsp|https://github.com/apache/portals-pluto/blob/pluto-3.1.0/pluto-portal/src/main/webapp/WEB-INF/themes/portlet-skin.jsp#L24]. This will in turn cause {{PortletTag.doStartTag()}} to be invoked for each portlet. [And that's where Pluto determines whether or not the markup of a portlet should be rendered|https://github.com/apache/portals-pluto/blob/pluto-3.1.0/pluto-portal-driver/src/main/java/org/apache/pluto/driver/tags/PortletTag.java#L179-L181].

The key is the [iteration over portalURL.getWindowStates(|https://github.com/apache/portals-pluto/blob/pluto-3.1.0/pluto-portal-driver/src/main/java/org/apache/pluto/driver/tags/PortletTag.java#L175]). The reason why the returned map contains some portlets, and not all portlets, is determined by the Portal URL.

So for example, when you click on the "Maximize" link for the "PH Color Selection Portlet", the reason why only the following 3 portlets are rendered, is because all three care about the {{"color"}} public render parameter:
- PH Color Selection Portlet, see [ColorSelPortlet.java|https://github.com/apache/portals-pluto/blob/pluto-3.1.0/demo/hub-demo-portlet/src/main/java/org/apache/portals/pluto/demo/hub/ColorSelPortlet.java#L57])
- PH Message Box Portlet, see [MessageBoxPortlet.java|https://github.com/apache/portals-pluto/blob/pluto-3.1.0/demo/hub-demo-portlet/src/main/java/org/apache/portals/pluto/demo/hub/MessageBoxPortlet.java#L53]
- Partial Action Portlet, see [PartialActionPortlet.java|https://github.com/apache/portals-pluto/blob/pluto-3.1.0/demo/hub-demo-portlet/src/main/java/org/apache/portals/pluto/demo/hub/PartialActionPortlet.java#L48]

And that's reflected in the URL that was requested by the browser:

http://localhost:9080/pluto/portal/V3.0%20Portlet%20Hub%20Demo/__pdhub-demo-portlet.ImageSelPortlet%21-1503889707%7C0;0/__pdhub-demo-portlet.PH-ColorSelPortlet%21-1503889707%7C2;1/__pdhub-demo-portlet.MessageBoxPortlet%21-1503889707%7C3;2/__pdhub-demo-portlet.PH-ResourcePortlet-PRP%21-1503889707%7C1;3/__pdhub-demo-portlet.PartialActionPortlet%21-1503889707%7C4;4/__ws0;normal/__ws1;maximized


> When a portlet is maximized portlets after it are still visible
> ---------------------------------------------------------------
>
>                 Key: PLUTO-784
>                 URL: https://issues.apache.org/jira/browse/PLUTO-784
>             Project: Pluto
>          Issue Type: Bug
>          Components: portlet container
>    Affects Versions: 3.1.0
>         Environment: Chrome 78
>            Reporter: Mehdi Javan
>            Assignee: Neil Griffin
>            Priority: Major
>         Attachments: image-2019-12-11-11-21-04-421.png, image-2019-12-11-11-21-18-565.png
>
>
> For example, on the following page, if *PH Color Selection Portlet* is maximized two other portlets are still visible; see the next image below. 
> My expectation is that the maximized portlet fit to the whole page and all the other portlets are hidden.
> !image-2019-12-11-11-21-18-565.png!
>  
> !image-2019-12-11-11-21-04-421.png!



--
This message was sent by Atlassian Jira
(v8.20.1#820001)