cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hennig, Ronald" <Ronald.Hen...@swisslife.de>
Subject Reload/Rerendering navigation layout
Date Wed, 29 Apr 2015 07:25:11 GMT
Hello dev-cocoon,

first I want to describe the scenario:
We have an old portal based on cocoon 2.1.11 and now we want to develop a feature which requires
to reload/rerendering the layout for navigation. In detail, the logged in user can switch
to another identity, which may be have less or more navigation points on navigation bar. That
is why the portal must re-rendering the layout for displaying the current (navigation rights
of the identity) navigation.

The navigation is based on composite layouts:
<composite-layout name="tab" id="maintab">

       <!-- Startmenü -->
       <named-item name="Allgemein">
             <composite-layout name="linktab">
                    <named-item name="Startseite">
                           <coplet-layout name="coplet">
                                  <coplet-instance-data>homepage-1</coplet-instance-data>
                           </coplet-layout>
                    </named-item>
...
The composite-layout which describe the role profile for navigation will be filtered by permissions.
I have found a solution for re-rendering by trial and error and I don't understand why it
works.
On flow.js I've the following code:
function loadSkin( reload) {
var toolManager = cocoon.getComponent("org.apache.cocoon.portal.tools.PortalToolManager");
                // the following line seem to be triggering the rendering?
       var portalObjects = toolManager.getPortalObjects();
       var portalService = portalObjects.getPortalService();
       var portalLayout = portalObjects.getPortalLayout();

       // TODO: reload needed for changing the layout profile - but how?
       if (reload) {

             /**
            * This method is invoked when the user logs out of the portal
            *
            */
             //portalService.getComponentManager().getProfileManager().logout();
             portalObjects.getProfileManager().logout();
       }
}

I don't understand why the method logout() from class ProfileManager invoke the re-rendering
due to the fact that the comment of this method (interface ProfileManager) say it logs user
out of the portal. But the user is stay logged in and the navigation bar was updated in the
right way. Where is the relation between this method call and the re-rendering of the portal
layout? Does anybody know which implementation was used by the ProfileManager or knows the
relation?

 *   The version of Cocoon: 2.1.11
 *   The servlet container: build in Jetty on local and  Tomcat 6 for testing and production.
 *   Platform details: JDK 1.6.0_26 on Win7
Thanks.
Mit freundlichen Grüßen
Ronald Hennig

Softwareentwickler
Portaltechnologie
Standort Hannover
2. OG, weiß, Wabe 2
Tel. +49 511 9020-5732



Swiss Life Deutschland Operations GmbH
Rechtsform: GmbH, Sitz der Gesellschaft: Hannover, Registergericht: AG Hannover, Registernummer:
HRB 210245
Geschäftsführer: Thorsten Geier, Jürgen Rössler, Holger Torner

Die Swiss Life Deutschland Operations GmbH ist eine Servicegesellschaft der Swiss Life Gruppe
in Deutschland. Sie ist damit beauftragt für die Vertriebsgesellschaften Swiss Life Select
Deutschland GmbH, tecis Finanzdienstleistungen AG, HORBACH Wirtschaftsberatung GmbH und Deutsche
Proventus AG Dienstleistungen sowohl im Innen- als auch im Außenverhältnis zu erbringen.
Die Swiss Life Deutschland Operations GmbH ist in diesem Zusammenhang berechtigt, Willenserklärungen
für die jeweiligen Vertriebsgesellschaften abzugeben und entgegenzunehmen.

Diese E-Mail sowie alle mit ihr verbundenen Dateien sind möglicherweise vertraulich. Wenn
Sie diese E-Mail irrtümlicherweise erhalten haben, bitte ich Sie, diese Mitteilung nicht
weiter zu verbreiten, zu kopieren, weiterzuleiten oder auf andere Weise davon Gebrauch zu
machen. Bitte informieren Sie mich umgehend per E-Mail, falls Sie diese Mitteilung fälschlicherweise
erhalten haben und löschen Sie diese E-Mail endgültig aus Ihrem System. Vielen Dank.

Mime
View raw message