123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- Licensed Materials - Property of IBM
- IBM Cognos Products: ps
- (C) Copyright IBM Corp. 2005, 2011
- 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).
- -->
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/"
- xmlns:xts="http://developer.cognos.com/schemas/xts/"
- xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
-
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
-
- <xsl:key name="system-param" match="/root/system/param" use="@name"/>
- <xsl:key name="env-param" match="/root/env/param" use="@name"/>
-
- <xsl:template match="/root">
- <!-- Contains the values entered by the User in the pagers Entries input fields -->
- <xsl:variable name="pagerToValueEntered" select="key('env-param', 'm_pagertorecentoutputs')"/>
- <xsl:variable name="pagerFromValueEntered" select="key('env-param', 'm_pagerfromrecentoutputs')"/>
-
- <!-- If a lang filter is specified then use it otherwise use the user's content locale -->
- <xsl:variable name="locale">
- <xsl:choose>
- <!-- Language flag set to 'all' or not set means no language filter -->
- <xsl:when test="key('env-param', 'cur_lang') = 'all'"></xsl:when>
- <!-- Language flag set to 'all' or not set means no language filter -->
- <xsl:when test="(string(key('env-param', 'cur_lang')) = '') and /root/outputs"></xsl:when>
- <!-- This dialog is being called for the first time from a schedule management tool -->
- <xsl:when test="not(key('env-param', 'cur_lang')) and key('env-param', 'runHistoryRequestedTime')"></xsl:when>
- <!-- An explicit language filter is specified -->
- <xsl:when test="string(key('env-param', 'cur_lang')) != ''"><xsl:value-of select="key('env-param', 'cur_lang')"/></xsl:when>
- <!-- Default to the user's content locale -->
- <xsl:otherwise><xsl:value-of select="/root/user/param[@name = 'contentLocale']"/></xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <!-- The CM locale filter -->
- <xsl:variable name="localeFilter">
- <xsl:if test="$locale != ''">[@locale = '<xsl:value-of select="$locale"/>']</xsl:if>
- </xsl:variable>
-
- <xsl:variable name="maxObjects">
- <xsl:choose>
- <xsl:when test="string($pagerToValueEntered) !='' and string($pagerFromValueEntered) !=''">
- <xsl:value-of select="($pagerToValueEntered - $pagerFromValueEntered) + 1"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="/root/session/param[@name='linesPerPage']"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:variable name="skipObjects">
- <xsl:choose>
- <xsl:when test="$pagerFromValueEntered and $pagerFromValueEntered!=''">
- <xsl:value-of select="($pagerFromValueEntered)-1"/>
- </xsl:when>
- <xsl:when test="key('env-param', 'm_recentoutputssection')!=''">
- <xsl:choose>
- <xsl:when test="key('env-param', 'm_recentoutputssection')!='-1'">
- <xsl:value-of select="((key('env-param', 'm_recentoutputssection')) -1)"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="($maxObjects) * -1"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <xsl:otherwise>0</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xts:sequence>
- <!-- If this is a second attempt at fetching outputs, then clean up after the first one. -->
- <xsl:if test="/root/outputs">
- <xts:delete select="/root/outputs"/>
- <xts:delete select="/root/localeFilter"/>
- </xsl:if>
-
- <!-- Remember the locale we filtered on so we can use it in the presentation -->
- <xts:append select="/root">
- <localeFilter><xsl:value-of select="$locale"/></localeFilter>
- </xts:append>
-
- <!-- If this page is being accessed for the first time for "administrative" purposes then set the language filter to 'all' -->
- <xsl:if test="(not(key('env-param', 'cur_lang')) and key('env-param', 'runHistoryRequestedTime'))">
- <xts:append select="/root/env">
- <param name="cur_lang">all</param>
- </xts:append>
- </xsl:if>
-
- <xsl:variable name="vn" select="key('env-param', 'versionName')"/>
- <xsl:variable name="sq">'</xsl:variable>
- <xsl:variable name="path">
- <xsl:choose>
- <xsl:when test="key('env-param', 'reportVersionPath') and key('env-param', 'reportVersionPath') != ''">
- <xsl:value-of select="key('env-param', 'reportVersionPath')"/>
- </xsl:when>
- <xsl:when test="$vn != '' and not( contains($vn, '/') or contains($vn, '*') or contains($vn, $sq))">
- <xsl:value-of select="key('env-param', 'm_obj')"/>/*[@defaultName='<xsl:value-of select="$vn"/>']<xsl:text/>
- </xsl:when>
- <xsl:when test="key('env-param', 'm_class') = 'document'">
- <xsl:value-of select="/root/objectVersions/cm:queryResponse/cm:queryReply[2]/cm:documentVersion[1]/cm:searchPath"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="/root/objectVersions/cm:queryResponse/cm:queryReply[2]/cm:reportVersion[1]/cm:searchPath"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:variable name="validFormats">
- <xsl:for-each select="key('system-param', 'reportFormats')/format">
- <xsl:choose>
- <xsl:when test="position() = last()"><xsl:value-of select="concat('@format = "', @id, '"')"/></xsl:when>
- <xsl:otherwise><xsl:value-of select="concat('@format = "', @id, '" or ')"/></xsl:otherwise>
- </xsl:choose>
- </xsl:for-each>
- </xsl:variable>
- <xsl:variable name="formatFilter">
- <xsl:if test="key('env-param', 'm_class') != 'document' and $validFormats != '' ">
- <xsl:choose>
- <xsl:when test="key('env-param', 'm_class') = 'interactiveReport'">
- <xsl:text>[@format='XHTML']</xsl:text>
- </xsl:when>
- <xsl:otherwise>[<xsl:value-of select="$validFormats"/>]</xsl:otherwise>
- </xsl:choose>
- </xsl:if>
- </xsl:variable>
- <xts:append>
- <outputs>
- <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
- <send:request provider="cm">
- <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
- <cm:query>
- <cm:search>
- <xsl:value-of select="$path"/>/*[permission('read')]<xsl:value-of select="$localeFilter"/><xsl:value-of select="$formatFilter"/>
- </cm:search>
- <cm:properties>
- <cm:property name="defaultName"/>
- <cm:property name="searchPath"/>
- <cm:property name="storeID"/>
- <cm:property name="format"/>
- <cm:property name="locale"/>
- <cm:property name="burstKey"/>
- <cm:property name="dataType"/>
- <cm:property name="dataSize"/>
- <cm:property name="position"/>
- </cm:properties>
- <cm:sortBy>
- <cm:sort name="burstKey" order="ascending"/>
- <cm:sort name="locale" order="ascending"/>
- </cm:sortBy>
- <cm:options maxObjects="{($maxObjects)+1}" skipObjects="{$skipObjects}"/>
- </cm:query>
- </xts:transform>
- </send:request>
- </xts:transform>
- </outputs>
- <versionInfo>
- <xsl:choose>
- <xsl:when test="key('env-param', 'm_class') = 'document'"><xsl:copy-of select="/root/objectVersions/cm:queryResponse/cm:queryReply[2]/cm:documentVersion[string(./cm:searchPath) = $path]/*"/></xsl:when>
- <xsl:otherwise><xsl:copy-of select="/root/objectVersions/cm:queryResponse/cm:queryReply[2]/cm:reportVersion[string(./cm:searchPath) = $path]/*"/></xsl:otherwise>
- </xsl:choose>
- </versionInfo>
- </xts:append>
- <xts:delete select="/root/env/param[@name='pagerfromrecentoutputs' or @name='pagertorecentoutputs' or @name='pagerfrom_drecentoutputs' or @name='pagerto_drecentoutputs']"/>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
|