123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- Licensed Materials - Property of IBM
- IBM Cognos Products: cpscrn
- (C) Copyright IBM Corp. 2005, 2014
- US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- -->
- <!--
- Copyright (C) 2008 Cognos ULC, an IBM Company. All rights reserved.
- Cognos (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated).
- -->
- <!-- $Header: //cpscrn/main/templates/cps4/portlets/nav/portlet-impl/viewer/viewer.xts#1 $ -->
- <!-- $DateTime: 2008/10/22 11:12:04 $ -->
- <!-- $Change: 25109 $ -->
- <xts:morphlet version="1.0" xmlns:xts="http://developer.cognos.com/schemas/xts/">
- <xts:block id="session" type="exec" mode="interpret" processor="XSLT">
- <xts:logicsheet path="/cps4/producer/logicsheets/cps-portlet.xslt"/>
- <xts:logicsheet path="/cps4/common/logicsheets/soaplogic.xslt"/>
- <xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:portlet="http://developer.cognos.com/schemas/cps/logic/portlet/1/">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
-
- <portlet:passport/>
- <xsl:template match="/">
- <portlet:if-mode name="wsrp:view|wsrp:preview">
- <portlet:property name="channel" select="'channel'"/>
- <xsl:if test="$channel != ''">
- <xts:sequence>
- <xts:append>
- <portlet:session-read channel="$channel">
- <portlet:session-data name="'display_id'"/>
- <portlet:session-data name="'session_id'"/>
- </portlet:session-read>
- </xts:append>
- </xts:sequence>
- </xsl:if>
- </portlet:if-mode>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <xts:block id="request" dependency="session" type="exec" mode="interpret" processor="XSLT">
- <xts:logicsheet path="/cps4/producer/logicsheets/cps-portlet.xslt"/>
- <xts:logicsheet path="/cps4/portlets/nav/logicsheets/nav-request.xslt"/>
- <xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:wsrp="urn:oasis:names:tc:wsrp:v1:types"
- xmlns:portlet="http://developer.cognos.com/schemas/cps/logic/portlet/1/"
- xmlns:nav="http://developer.cognos.com/schemas/cps/navigation/1/"
- xmlns:nreq="http://developer.cognos.com/schemas/cps/logic/nav/request/1/"
- xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
- xmlns:cps="http://developer.cognos.com/schemas/cps/asm/objects/1/">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:variable name="nav-service">interface://crn</xsl:variable>
- <xsl:variable name="deployment-id" select="$portlet-state-params[@name = 'display_id_dep']"/>
- <portlet:property name="display-id" select="'display_id'"/>
- <portlet:property name="display-action" select="'display_action'"/>
- <portlet:property name="view-action" select="'view_action'"/>
- <portlet:property name="display-settings-norm" select="'display_settings_norm'"/>
- <portlet:property name="display-settings-max" select="'display_settings_max'"/>
- <portlet:property name="cw-hide" select="'cw_hide'"/>
- <portlet:property name="viewer-resize" select="'viewer_resize'"/>
- <xsl:template match="/">
- <xts:sequence>
- <xts:append>
- <results>
- <portlet:if-window-state name="wsrp:normal|wsrp:maximized|wsrp:solo">
- <portlet:if-mode name="wsrp:view|wsrp:preview">
- <xsl:call-template name="get-report">
- <xsl:with-param name="id" select="$display-id"/>
- </xsl:call-template>
- </portlet:if-mode>
- <portlet:if-mode name="wsrp:edit|cps:config">
- <xsl:choose>
- <xsl:when test="contains( $portlet-navigational-params[@name = 'edit_mode'], 'about' )">
- <portlet:get-version/>
- </xsl:when>
- <xsl:when test="contains( $portlet-navigational-params[@name = 'edit_mode'], 'listreports' )">
- <xsl:call-template name="list-content"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="get-report">
- <xsl:with-param name="id">
- <xsl:choose>
- <xsl:when test="$portlet-navigational-params[@name = 'p_display_id'] != ''">
- <xsl:value-of select="$portlet-navigational-params[@name = 'p_display_id']"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$display-id"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:with-param>
- <xsl:with-param name="in-edit-mode" select="true()"/>
- </xsl:call-template>
- </xsl:otherwise>
- </xsl:choose>
- </portlet:if-mode>
- </portlet:if-window-state>
- </results>
- </xts:append>
- </xts:sequence>
- </xsl:template>
- <xsl:template name="cps-header">
- <!-- TODO: replace the cpsh:CPSHeader locales into the BIBUS header -->
- <xts:queryNode select="/root/envelope/*[local-name()='Envelope']/*[local-name()='Header']/*"/>
- </xsl:template>
- <xsl:template name="get-report">
- <xsl:param name="id"/>
- <xsl:param name="in-edit-mode" select="false()"/>
- <xsl:if test="$id != ''">
- <xts:request protocol="NAV" target="{ $nav-service }" faultBlock="requestFault">
- <xsl:choose>
- <xsl:when test="$in-edit-mode = 'true'">
- <xsl:attribute name="responseEnvelope">true</xsl:attribute>
- <xsl:attribute name="faultBlock">faultHandler</xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="responseEnvelope">false</xsl:attribute>
- </xsl:otherwise>
- </xsl:choose>
- <SOAP-ENV:Envelope>
- <SOAP-ENV:Header>
- <xsl:call-template name="cps-header"/>
- </SOAP-ENV:Header>
- <SOAP-ENV:Body>
- <nav:getItem>
- <nav:validateTag>
- <xsl:value-of select="$portlet-markups/wsrp:validateTag"/>
- </nav:validateTag>
- <nav:id>
- <xsl:value-of select="$id"/>
- </nav:id>
- <xsl:if test="$portlet-state-params[@name = 'display_id'] = $id">
- <nav:deploymentId>
- <xsl:value-of select="$deployment-id"/>
- </nav:deploymentId>
- </xsl:if>
- <nav:property name="screenTip"/>
- <nav:property name="internalId"/>
- <nav:property name="searchPath"/>
- <xsl:choose>
- <xsl:when test="$in-edit-mode = 'true'">
- <nav:property name="deploymentId"/>
- <nav:property name="parentId"/>
- <nav:property name="fullPath"/>
- <nav:property name="hidden"/>
- <nav:param name="useDefaultIcon"/>
- </xsl:when>
- <xsl:otherwise>
- <!--
- if we're only running the report, ask explicity for the "run" action, however be aware that "run"
- or "run_options" could be returned, depending on the implementation.
- -->
- <nav:property name="action">
- <xsl:if test="$display-action != 'view' or $view-action='run'">run</xsl:if>
- </nav:property>
- <nav:param name="urlFlags">
- <xsl:choose>
- <xsl:when test="( ($portlet-markups/wsrp:windowState = 'wsrp:maximized' and $display-settings-max != '' ) or ($portlet-markups/wsrp:windowState != 'wsrp:maximized' and $display-settings-norm != '' ) ) ">
- <xsl:text>t1</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text>t0</xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- </nav:param>
- </xsl:otherwise>
- </xsl:choose>
-
- <!-- Add the CW hide parameter -->
- <nav:param name="DashboardConsole.param.remUI">
- <xsl:choose>
- <xsl:when test="$cw-hide">
- <xsl:value-of select="$cw-hide"/>
- </xsl:when>
- <xsl:otherwise>
- <!-- By default, we hide the banner and the sidebar -->
- <xsl:text>banner,sidebar</xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- </nav:param>
- <!-- Add the embedded parameter to the workspace url -->
- <nav:param name="DashboardConsole.param.ui.embedded">true</nav:param>
- <nreq:common-request-params/>
- <nav:param name="defaultAction">viewOutput</nav:param>
- <nav:param name="default:backUrl">back.xts</nav:param>
- <xsl:if test="$display-action != 'view'">
- <nav:param name="run_options:backUrl">back.xts</nav:param>
- </xsl:if>
- </nav:getItem>
- </SOAP-ENV:Body>
- </SOAP-ENV:Envelope>
- </xts:request>
- </xsl:if>
- </xsl:template>
- <xsl:template name="list-content">
- <xsl:variable name="from" select="$portlet-navigational-params[@name = 'tmp_from']"/>
- <xsl:variable name="to" select="$portlet-navigational-params[@name = 'tmp_to']"/>
- <xsl:variable name="skip" select="$portlet-navigational-params[@name = 'tmp_skip']"/>
- <xsl:variable name="skipObjects">
- <xsl:choose>
- <xsl:when test="$from != ''">
- <xsl:value-of select="number( $from ) - 1"/>
- </xsl:when>
- <xsl:when test="$skip != ''">
- <xsl:value-of select="$skip"/>
- </xsl:when>
- <xsl:otherwise>0</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:variable name="maxObjects">
- <xsl:choose>
- <xsl:when test="$to != ''">
- <xsl:value-of select="number( $to ) - number($skipObjects)"/>
- </xsl:when>
- <xsl:otherwise>10</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xts:request protocol="NAV" target="{ $nav-service }" responseEnvelope="false" faultBlock="requestFault">
- <SOAP-ENV:Envelope>
- <SOAP-ENV:Header>
- <xsl:call-template name="cps-header"/>
- </SOAP-ENV:Header>
- <SOAP-ENV:Body>
- <nav:getContainer>
- <nav:id>
- <xsl:choose>
- <xsl:when test="$portlet-navigational-params[@name = 'tmp_folder_id'] != ''">
- <xsl:value-of select="$portlet-navigational-params[@name = 'tmp_folder_id']"/>
- </xsl:when>
- <xsl:otherwise>rootDefault</xsl:otherwise>
- </xsl:choose>
- </nav:id>
- <nav:childObjects>all</nav:childObjects>
- <nav:skipObjects>
- <xsl:value-of select="$skipObjects"/>
- </nav:skipObjects>
- <nav:maxObjects>
- <xsl:value-of select="$maxObjects"/>
- </nav:maxObjects>
- <nav:property name="screenTip"/>
- <nav:property name="parentId"/>
- <nav:property name="viewable"/>
- <nav:property name="hidden"/>
- <nreq:common-request-params/>
- <!-- This is used to override the default portal action of a package so we can drill into it and select reports . -->
- <nav:param name="defaultAction">view</nav:param>
- <nav:param name="useDefaultIcon"/>
- </nav:getContainer>
- </SOAP-ENV:Body>
- </SOAP-ENV:Envelope>
- </xts:request>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <xts:block id="asm-request" dependency="request" condition=".[ /root/envelope/*[local-name()='Envelope']/*[local-name()='Body']/*[local-name()='getMarkup']/*[local-name()='markupParams']/*[local-name()='extensions']/*[local-name()='portalContext']/*[local-name()='portalAgent'] = 'cognos' and (/root/results/*[local-name()='getItemResponse']/*[local-name()='item']/*[local-name()='type'] = 'pagelet' or /root/results/*[local-name()='getItemResponse']/*[local-name()='shortcut']/*[local-name()='item']/*[local-name()='type']='pagelet')]" type="exec" mode="interpret" processor="XSLT" mandatory="false">
- <xts:logicsheet path="/cps4/producer/logicsheets/cps-portlet.xslt"/>
- <xts:logicsheet path="/cps4/common/logicsheets/soaplogic.xslt"/>
-
- <xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:wsrp="urn:oasis:names:tc:wsrp:v1:types"
- xmlns:portlet="http://developer.cognos.com/schemas/cps/logic/portlet/1/"
- xmlns:nav="http://developer.cognos.com/schemas/cps/navigation/1/"
- xmlns:soap="http://developer.cognos.com/schemas/cps/logic/soap"
- xmlns:cps="http://developer.cognos.com/schemas/cps/asm/objects/1/"
- xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
- xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <portlet:property name="display-id" select="'display_id'"/>
-
- <portlet:passport/>
- <xsl:template match="/">
- <xts:sequence>
- <xsl:variable name="display-id-pagelet" select="/root/results/nav:getItemResponse/nav:item/nav:id | /root/results/nav:getItemResponse/nav:shortcut/nav:item/nav:id"/>
- <soap:cpx-tracking-param name="viewer-path-recursive-marker"/>
- <xsl:choose>
- <xsl:when test="$viewer-path-recursive-marker = $display-id-pagelet">
- <xts:append select="/root/results">
- <recursive-error/>
- </xts:append>
- </xsl:when>
- <xsl:otherwise>
- <xsl:variable name="package-name" select="'//connection'"/>
- <xsl:variable name="path">
- <xsl:choose>
- <xsl:when test="starts-with($display-id-pagelet,'_')">
- <xsl:text>/connection/</xsl:text>
- <xsl:value-of select="substring-after($display-id-pagelet,'_')"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text>/connection/path:</xsl:text>
- <xsl:value-of select="$display-id-pagelet"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <!-- send the request to the assembler and append the response to the root document -->
- <xts:append>
- <assembler>
- <soap:request provider="assembler" target="interface://cps/assembler">
- <soap:cpx-tracking name="viewer-path-recursive-marker" select="$display-id-pagelet"/>
- <asm:getPagelet xmlns:asm="http://developer.cognos.com/schemas/cps/asm/assembler/1/">
- <cps:path>
- <xsl:value-of select="$path"/>
- </cps:path>
- <!-- Generate the pageletContext and interaction params -->
- <xsl:variable name="page-nav-params" select="$portlet-markups/wsrp:navigationalState/param"/>
- <!-- assembler pagelet state in case this is a pagelet request
- <navigationalState>
- <param name="pagelet-id"> pagelet id</param>
- <param name="interaction"> [xml encoded interaction params ] </param>
- <param name="pagelet-params"> [xml encoded pagelet params ] </param>
- <param name="pageletStatePath">pagelet state path </param>
- <param name="pageletState"> pagelet state</param>
- </navigationalState>
- -->
-
- <!--
- Extract the pagelet interaction-params and the pageletstate from the navigational state, only if the navigational state is for the pagelet that we are currently viewing.
- Here is a scenario that could explain this better:
- Viewer portlet is configure to use p2p. We open pagelet (A) and the navigate in it.
- Now the last render or action request made in this pagelet is saved in the navigational state of the viewer portlet.
- If, using p2p, we change viewer to display pagelet (B). Since there was no interaction made with the viewer portlet, it will use the last navigational state
- but this will fail because the last nav state has references to a portlet id/ instance id that only exist in the previous pagelet (A).
- -->
- <xsl:if test="$page-nav-params[@name='pagelet-id'] = $display-id-pagelet">
- <xsl:if test="$page-nav-params">
- <xts:transform name="XSLT" src="/cps4/portlets/nav/portlet-impl/viewer/pagestate.xslt">
- <navigational-state>
- <!--
- Decode the interaction params if they exist.
- -->
- <xsl:if test="$page-nav-params[@name='interaction']">
- <xsl:value-of disable-output-escaping="yes" select="xtsext:base64decode(string($page-nav-params[@name='interaction']),true())"/>
- </xsl:if>
- <xsl:copy-of select="$page-nav-params[@name='pagelet-params' or @name='pageletStatePath' or @name='pageletState']"/>
- </navigational-state>
- </xts:transform>
- </xsl:if>
- </xsl:if>
-
- <xsl:choose>
- <xsl:when test="$portlet-markups/wsrp:extensions/cps:portalContext != ''">
- <xsl:copy-of select="$portlet-markups/wsrp:extensions/cps:portalContext"/>
- </xsl:when>
- <xsl:otherwise>
- <cps:portalContext>
- <cps:portalAgent>
- <xsl:value-of select="$portlet-registration-params[@name='consumerAgent']"/>
- </cps:portalAgent>
- </cps:portalContext>
- </xsl:otherwise>
- </xsl:choose>
- <cps:userContext>
- <cps:userContextKey>
- <xsl:value-of select="$portlet-op/wsrp:userContext/wsrp:userContextKey"/>
- </cps:userContextKey>
- <cps:profile>
- <xsl:copy-of select="$portlet-op/wsrp:userContext/wsrp:profile/*"/>
- </cps:profile>
- <cps:preferences>
- <xsl:for-each select="/root/envelope/SOAP-ENV:Envelope/SOAP-ENV:Header/bus:biBusHeader/bus:userPreferenceVars/item">
- <cps:param name="{ name }">
- <xsl:value-of select="value"/>
- </cps:param>
- </xsl:for-each>
- </cps:preferences>
- </cps:userContext>
- <cps:pageletParams>
- <cps:userAgent>
- <xsl:value-of select="$portlet-markups/*[local-name()='clientData']/*[local-name()='userAgent']"/>
- </cps:userAgent>
- <cps:pageletMode>cps:view</cps:pageletMode>
- <cps:locales>
- <xsl:value-of select="$portlet-content-locale"/>
- </cps:locales>
- <xsl:if test="$portlet-content-locale != $portlet-product-locale">
- <cps:locales>
- <xsl:value-of select="$portlet-product-locale"/>
- </cps:locales>
- </xsl:if>
- <cps:mimeTypes>text/html</cps:mimeTypes>
- </cps:pageletParams>
- <!-- Get the package state stored in the session
- <cps:packageContext>
- ....
- </cps:packageContext>
- -->
-
- <xts:function name="TDSRequest">
- <xts:param name="action">get</xts:param>
- <xts:param name="session-id"><xsl:value-of select="$passport"/></xts:param>
- <xts:param name="map-id"><xsl:value-of select="'portlets'"/></xts:param>
- <xts:param name="name"><xsl:value-of select="$package-name"/></xts:param>
- </xts:function>
-
- </asm:getPagelet>
- </soap:request>
- </assembler>
- </xts:append>
- </xsl:otherwise>
- </xsl:choose>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <xts:block id="response" dependency="asm-request" type="exec" mode="interpret" processor="XSLT">
- <xts:logicsheet path="/cps4/producer/logicsheets/cps-portlet.xslt"/>
- <xts:logicsheet path="/cps4/common/logicsheets/soaplogic.xslt"/>
- <xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:wsrp="urn:oasis:names:tc:wsrp:v1:types"
- xmlns:portlet="http://developer.cognos.com/schemas/cps/logic/portlet/1/"
- xmlns:nav="http://developer.cognos.com/schemas/cps/navigation/1/"
- xmlns:soap="http://developer.cognos.com/schemas/cps/logic/soap"
- xmlns:cps="http://developer.cognos.com/schemas/cps/asm/objects/1/"
- xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
- xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <portlet:property name="display-id" select="'display_id'"/>
- <portlet:property name="channel" select="'channel'"/>
- <xsl:variable name="display-id-pagelet" select="/root/results/nav:getItemResponse/nav:item/nav:id | /root/results/nav:getItemResponse/nav:shortcut/nav:item/nav:id"/>
- <xsl:template match="/">
- <portlet:portlet handle="viewer">
- <portlet:soap-response>
- <xsl:choose>
- <xsl:when test="/root/results/error">
- <portlet:soap-fault select="/root/results/error"/>
- </xsl:when>
- <xsl:otherwise>
-
- <portlet:if-mode name="wsrp:view|wsrp:preview">
- <portlet:response>
- <portlet:content>
- <xsl:variable name="val-tag">
- <xsl:choose>
- <xsl:when test="/root/results/nav:getItemResponse">
- <xsl:value-of select="/root/results/nav:getItemResponse/nav:validateTag"/>
- </xsl:when>
- <xsl:otherwise>norequest</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:variable name="use-cache" select="$portlet-markups/wsrp:validateTag = string($val-tag) and (string($val-tag) != '')"/>
-
- <portlet:markup-context useCachedMarkup="$use-cache" mimeType="'text/html'" requiresUrlRewriting="'true'">
- <xsl:if test="not($use-cache = 'true')">
- <portlet:if-window-state name="wsrp:minimized">
- <portlet:markup-string/>
- </portlet:if-window-state>
-
- <portlet:if-window-state name="wsrp:normal|wsrp:maximized|wsrp:solo">
- <xsl:variable name="xslt-src">
- <xsl:choose>
- <xsl:when test="$display-id != ''">
- <xsl:text>/cps4/portlets/nav/portlet-impl/viewer/view.xslt</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text>/cps4/portlets/nav/portlet-impl/viewer/ready.xslt</xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:choose>
- <xsl:when test="(/root/assembler) and not(/root/results/recursive-error)">
- <!--
- Now we have the assembler response, we need to re-write all urls to include the
- page-state and the interaction params in the navigationalstate
- get the markup after rewriting it using pagelet-rewrite.xslt.
- -->
- <xts:transform name="XSLT" src="/cps4/portlets/nav/portlet-impl/viewer/pagelet-rewrite.xslt">
- <xts:param name="messageBaseLocale">
- <xsl:value-of select="$portlet-product-locale"/>
- </xts:param>
- <xts:param name="messageBase">/cps4/portlets/nav/messages/cpsnavmsgs.xml</xts:param>
- <root>
- <pageletId><xsl:value-of select="$display-id-pagelet"/></pageletId>
- <!-- New pagelet state to include in the navigational state when we do rewriting -->
- <newPageContext>
- <xts:queryNode select="/root/assembler/*[local-name()='Envelope']/*[local-name()='Body']/*[local-name()='getPageletResponse']/*[local-name()='updateResponse']/*[local-name()='pageletContext']"/>
- </newPageContext>
-
- <!-- Current pageletstate. The rewriter will use this state if there is no new state-->
- <currentPageContext>
- <pageletContext>
- <path>
- <xsl:value-of select="$portlet-markups/wsrp:navigationalState/param[@name='pageletStatePath']"/>
- </path>
- <state>
- <xsl:value-of select="$portlet-markups/wsrp:navigationalState/param[@name='pageletState']"/>
- </state>
- </pageletContext>
- </currentPageContext>
-
- <!-- copy more stuff for P2PC -->
- <portletState>
- <xsl:copy-of select="$portlet-state-params"/>
- </portletState>
- <session>
- <xsl:copy-of select="$portlet-session-params"/>
- </session>
- <windowState>
- <xsl:value-of select="$portlet-window-state"/>
- </windowState>
-
- <!-- Get the page response -->
- <xts:queryNode select="/root/assembler/*[local-name()='Envelope']/*[local-name()='Body']/*[local-name()='getPageletResponse']"/>
-
- <xsl:if test="$portlet-mode = 'wsrp:preview'">
- <preview-markup>
- <xts:transform name="XMLEncode">
- <portlet:markup-preview/>
- </xts:transform>
- </preview-markup>
- </xsl:if>
- </root>
- </xts:transform>
- </xsl:when>
-
- <xsl:otherwise>
- <portlet:markup-transform name="XSLT" src="$xslt-src">
- <portlet:logicsheet>/cps4/producer/logicsheets/cps-ui.xslt</portlet:logicsheet>
- <portlet:messageBase>/cps4/producer/messages/cpsproducermsgs.xml</portlet:messageBase>
- <portlet:messageBase>/cps4/portlets/nav/messages/cpsnavmsgs.xml</portlet:messageBase>
- <portlet:source>
- <xts:queryNode select="/root/results/*"/>
- </portlet:source>
- </portlet:markup-transform>
- </xsl:otherwise>
- </xsl:choose>
-
- <!--
- If we are viewing a pagelet, do not return the validate tag ..
- This will be fixed once the viewer starts using the assembler cache.
- The plan is when we are using the assembler cache, we will mark the assembler validate tag so we can recognize it and not send it in the NAV request.
- -->
- <xsl:if test="$channel = '' and not(/root/results/nav:getItemResponse/nav:item/nav:type = 'pagelet' or /root/results/nav:getItemResponse/nav:shortcut/nav:item/nav:type='pagelet')">
- <portlet:cache-control expires="'15'" validateTag="$val-tag"/>
- </xsl:if>
- <portlet:property name="use-title" select="'use_title'"/>
- <xsl:choose>
- <xsl:when test="$use-title = 'true'">
- <xsl:variable name="titles" select="$portlet-state-params[starts-with( @name, 'title_' ) and .!='']"/>
- <portlet:preferred-title-localized select="$titles"/>
- </xsl:when>
-
- <xsl:otherwise>
- <portlet:preferred-title>
- <xsl:value-of select="/root/results/nav:getItemResponse/*/nav:name"/>
- </portlet:preferred-title>
- </xsl:otherwise>
- </xsl:choose>
- </portlet:if-window-state>
- </xsl:if>
- </portlet:markup-context>
- </portlet:content>
- </portlet:response>
- </portlet:if-mode>
-
- <portlet:if-mode name="wsrp:edit|cps:config">
- <portlet:response>
- <portlet:content>
- <portlet:markup-context mimeType="'text/html'" requiresUrlRewriting="'true'">
- <xsl:variable name="xslt-src">
- <xsl:choose>
- <xsl:when test="contains( $portlet-navigational-params[@name = 'edit_mode'], 'about' )">
- <xsl:text>/cps4/producer/wsrp-impl/transforms/display-about.xslt</xsl:text>
- </xsl:when>
- <xsl:when test="contains( $portlet-navigational-params[@name = 'edit_mode'], 'listreports' )">
- <xsl:text>/cps4/portlets/nav/portlet-impl/viewer/list-reports.xslt</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text>/cps4/portlets/nav/portlet-impl/viewer/edit.xslt</xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <portlet:markup-transform name="XSLT" src="$xslt-src">
- <portlet:logicsheet>/cps4/portlets/nav/logicsheets/nav-ui.xslt</portlet:logicsheet>
- <portlet:logicsheet>/cps4/producer/logicsheets/cps-ui-ext.xslt</portlet:logicsheet>
- <portlet:logicsheet>/cps4/producer/logicsheets/cps-ui.xslt</portlet:logicsheet>
- <portlet:logicsheet>/cps4/producer/logicsheets/cps-formlogic.xslt</portlet:logicsheet>
- <portlet:messageBase>/cps4/producer/messages/cpsproducermsgs.xml</portlet:messageBase>
- <portlet:messageBase>/cps4/portlets/nav/messages/cpsnavmsgs.xml</portlet:messageBase>
- <portlet:source>
- <xts:queryNode select="/root/results/*"/>
- <xts:function name="getConfiguration">
- <xts:param name="contentLocales">
- <xsl:value-of select="$portlet-product-locale"/>
- </xts:param>
- </xts:function>
- <xsl:variable name="nav-titles" select="$portlet-navigational-params[starts-with( @name, 'p_title_' ) and .!='']"/>
- <xsl:variable name="state-titles" select="$portlet-state-params[starts-with( @name, 'title_' ) and .!='']"/>
- <portlet:title-locale selectState1="$nav-titles" selectState2="$state-titles"/>
- </portlet:source>
- </portlet:markup-transform>
- </portlet:markup-context>
- </portlet:content>
- </portlet:response>
- </portlet:if-mode>
-
- <portlet:if-mode name="wsrp:help">
- <portlet:response>
- <portlet:content>
- <portlet:markup-context mimeType="'text/html'" requiresUrlRewriting="'false'">
- <portlet:markup-help/>
- </portlet:markup-context>
- </portlet:content>
- </portlet:response>
- </portlet:if-mode>
- </xsl:otherwise>
- </xsl:choose>
- </portlet:soap-response>
- </portlet:portlet>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <xts:block id="save-state" dependency="response" condition=".[/root/assembler]" type="exec" mode="interpret" processor="XSLT">
- <xts:logicsheet path="/cps4/producer/logicsheets/cps-portlet.xslt"/>
- <xts:logicsheet path="/cps4/common/logicsheets/soaplogic.xslt"/>
- <xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:wsrp="urn:oasis:names:tc:wsrp:v1:types"
- xmlns:portlet="http://developer.cognos.com/schemas/cps/logic/portlet/1/"
- xmlns:nav="http://developer.cognos.com/schemas/cps/navigation/1/"
- xmlns:soap="http://developer.cognos.com/schemas/cps/logic/soap"
- xmlns:cps="http://developer.cognos.com/schemas/cps/asm/objects/1/">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
-
- <portlet:passport/>
- <xsl:template match="/">
- <xsl:variable name="new-packagestate" select="/root/assembler/*[local-name()='Envelope']/*[local-name()='Body']/*[local-name()='getPageletResponse']/*[local-name()='updateResponse']/*[local-name()='packageContext']"/>
- <xsl:variable name="package-name" select="'//connection'"/>
- <xsl:if test="$new-packagestate">
- <xts:sequence>
- <xts:discard>
-
- <xts:function name="TDSRequest">
- <xts:param name="action">set</xts:param>
- <xts:param name="session-id"><xsl:value-of select="$passport"/></xts:param>
- <xts:param name="map-id"><xsl:value-of select="'portlets'"/></xts:param>
- <xts:param name="name"><xsl:value-of select="$package-name"/></xts:param>
- <xts:param name="source">
- <xts:transform processor="XMLEncode">
- <xsl:copy-of select="$new-packagestate"/>
- </xts:transform>
- </xts:param>
- </xts:function>
-
- </xts:discard>
- </xts:sequence>
- </xsl:if>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <xts:block id="requestFault" type="fault" processor="XSLT">
- <xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/">
- <xsl:variable name="xts-fault" select="/root/fault/xts:exception[last()]"/>
- <xsl:variable name="code" select="$xts-fault/xts:exceptionCode"/>
- <xsl:variable name="prefix" select="substring-before( string( $code ), ':' )"/>
- <xsl:variable name="local-code" select="substring-after( string( $code ), ':' )"/>
-
- <xsl:choose>
- <xsl:when test="($prefix = 'nav') and ($local-code = 'InvalidCredentials')">
- <error type="invalidCookie">
- <message>
- <xsl:value-of select="$xts-fault/xts:exceptionMsg"/>
- </message>
- </error>
- </xsl:when>
- <xsl:otherwise>
- <xsl:copy-of select="/root/fault"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
-
- </xts:morphlet>
|