123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- Licensed Materials - Property of IBM
- IBM Cognos Products: rsvp
- (C) Copyright IBM Corp. 2005, 2019
- US Government Users Restricted Rights - Use, duplication or disclosure
- restricted by GSA ADP Schedule Contract with IBM Corp.
- -->
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rsext="xalan://com.cognos.reportserver.ext.RSExt" version="1.0" extension-element-prefixes="rsext">
- <xsl:import href="V5environment.xsl"/>
- <xsl:variable name="isNewViewer" select="'true'"/>
- <xsl:param name="renderIntermediateXML" select="''"/>
- <xsl:param name="renderEnvironment" select="''"/>
- <xsl:include href="V5ReportEngine.xsl"/>
- <xsl:include href="V5drillthru.xsl"/>
- <xsl:include href="prompting.xsl"/>
- <xsl:include href="viewer_debug.xsl"/>
- <xsl:include href="../../ps/prompting/p_include_V5ParamSafe.xsl"/>
- <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:variable name="promptLocale" select="$contentLocale"/>
- <xsl:variable name="promptFormName" select="'formWarpRequest'"/>
- <xsl:variable name="sGenerateContextData" select="'true'"/>
- <xsl:template match="/Document">
- <xsl:if test="$firstPage='true'">
- <xsl:text disable-output-escaping="yes"><html xmlns:xlink="http://www.w3.org/1999/xlink" lang="</xsl:text>
- <xsl:value-of select="$contentLocale"/>
- <xsl:text disable-output-escaping="yes">">
- </xsl:text>
- <xsl:text disable-output-escaping="yes"><head></xsl:text>
- <xsl:call-template name="ViewerDebug"/>
- <xsl:apply-templates select="/Document/styleOptions"/>
- <xsl:text disable-output-escaping="yes">
- <title></xsl:text>
- <xsl:value-of select="$reportTitle" disable-output-escaping="yes"/>
- <xsl:text disable-output-escaping="yes"></title>
- </xsl:text>
- <xsl:text disable-output-escaping="yes">
- <metaData><![CDATA[</xsl:text>
- <xsl:value-of select="string(/Document/META-DATA/Block)" disable-output-escaping="yes"/>
- <xsl:text disable-output-escaping="yes">]]></metaData>
- </xsl:text>
- <xsl:text disable-output-escaping="yes">
- <ctxData><![CDATA[</xsl:text>
- <xsl:value-of select="string(/Document/CONTEXT-DATA/*[local-name()=$contextBlock])" disable-output-escaping="yes"/>
- <xsl:text disable-output-escaping="yes">]]></ctxData>
- </xsl:text>
- <ASPS>
- <xsl:if test="$PRMT_allowEmptyStrings='false'">
- <ASP name="allowEmptyStrings" value="false"/>
- </xsl:if>
- <xsl:if test="$PRMT_allowEmptyStringTextHeader='false'">
- <ASP name="allowEmptyStringTextHeader" value="false"/>
- </xsl:if>
- </ASPS>
- <xsl:if test="dataStores">
- <xsl:text disable-output-escaping="yes">
- </xsl:text>
- <dataStores>
- <xsl:for-each select="dataStores/dataStore">
- <xsl:text disable-output-escaping="yes">
- </xsl:text>
- <dataStore>
- <xsl:for-each select="@*">
- <xsl:choose>
- <xsl:when test="self::node()[name() = 'layoutClass']">
- <!-- Skip this one -->
- </xsl:when>
- <xsl:when test="self::node()[name() = 'srcsave' or name() = 'srcsaveAs']">
- <!-- output as src -->
- <xsl:attribute name="src"><xsl:value-of select="."/></xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:copy-of select="."/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:for-each>
- <xsl:for-each select="./geoStore">
- <xsl:text disable-output-escaping="yes">
- </xsl:text>
- <geoStore>
- <xsl:for-each select="@*">
- <xsl:choose>
- <xsl:when test="self::node()[name() = 'srcsave' or name() = 'srcsaveAs']">
- <!-- output as src -->
- <xsl:attribute name="src"><xsl:value-of select="."/></xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:copy-of select="."/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:for-each>
- </geoStore>
- </xsl:for-each>
- <xsl:text disable-output-escaping="yes">
- </xsl:text>
- </dataStore>
- </xsl:for-each>
- <xsl:text disable-output-escaping="yes">
- </xsl:text>
- </dataStores>
- <xsl:text disable-output-escaping="yes">
- </xsl:text>
- </xsl:if>
- <!--
- <xsl:if test="$drillSupport!='no'">
- <xsl:call-template name="getDrillThruHead"/>
- </xsl:if>
- -->
- <!-- <xsl:call-template name="chartConfig"/> -->
- <!-- <xsl:call-template name="parentViewerScript"/> -->
- <!-- <xsl:call-template name="preProcess"/> -->
- <PageCache>
- <xsl:attribute name="index"><xsl:value-of select="$pageCacheIndex"/></xsl:attribute>
- <xsl:attribute name="reset"><xsl:value-of select="$resetPageCache"/></xsl:attribute>
- </PageCache>
- <xsl:apply-templates select="/Document/ReportPageSet"/>
- <xsl:apply-templates select="/Document/DRILLS"/>
- <xsl:text disable-output-escaping="yes">
- </head>
- <body</xsl:text>
- <xsl:if test="$accessible='true'">
- <xsl:choose>
- <xsl:when test="$appSupport='false'">
- <xsl:text disable-output-escaping="yes"> role="main"</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text disable-output-escaping="yes"> role="application"</xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:if>
- <xsl:text disable-output-escaping="yes">>
- </xsl:text>
- </xsl:if>
- <xsl:apply-templates select="DATA"/>
- <xsl:if test="$lastPage='true'">
- <xsl:call-template name="getDrillThruBody"/>
- <!-- <xsl:call-template name="postProcess"/> -->
- <xsl:text disable-output-escaping="yes">
- </body>
- </html>
- </xsl:text>
- </xsl:if>
- </xsl:template>
- <xsl:template name="startPage"/>
- <!-- used in selection -->
- <xsl:template name="GenEventHandlers">
- <xsl:if test="$sGenerateContextData='true' and (@layoutClass='listColumnBody' or @layoutClass='listColumnTitle' or @layoutClass='rowCell' or @layoutClass='crosstabFactCell' or @layoutClass='crosstabNodeMember' or @layoutClass='crosstabCorner' or @layoutClass='repeaterTableCell' or name()='OCHART')">
- <xsl:copy-of select="@ctx"/>
- <xsl:if test="@class">
- <xsl:copy-of select="@class"/>
- </xsl:if>
- <!--
- <xsl:if test="$appSupport='false'">
- <xsl:copy-of select="@type"/>
- </xsl:if>
- -->
- </xsl:if>
- </xsl:template>
- <xsl:template match="OCLI[@layoutClass='listControl']" priority="2">
- <listControl>
- <xsl:copy-of select="@*[name(.) != 'layoutClass']"/>
- <xsl:copy-of select="HA/@*[name(.) != 'layoutClass']"/>
- </listControl>
- </xsl:template>
- <!-- used to add events to the main page for selection -->
- <xsl:template match="*[@layoutClass='textItem']" priority="1">
- <span>
- <xsl:call-template name="GenTabIndexAttribute"/>
- <xsl:call-template name="AddAccessibleTagsForSpan"/>
- <xsl:copy-of select="@ctx"/>
- <xsl:call-template name="GenCommonAttributes"/>
- <xsl:value-of select="rsext:htmlencode(string(.))" disable-output-escaping="yes"/>
- </span>
- </xsl:template>
- <xsl:template match="OAREA" priority="2">
- <xsl:if test="MEMBER or drillTargets or MEASURE">
- <xsl:choose>
- <xsl:when test="@type='legendTitle'">
- <xsl:attribute name="isChartTitle">true</xsl:attribute>
- </xsl:when>
- </xsl:choose>
- <xsl:choose>
- <xsl:when test="@type='ordinalAxisTitle'">
- <xsl:attribute name="isChartTitle">true</xsl:attribute>
- </xsl:when>
- </xsl:choose>
- <xsl:if test="./drillTargets">
- <xsl:choose>
- <xsl:when test="count(./drillTargets/drillTarget) = 1 and ./drillTargets/drillTarget/@bookmarkRef != '' and $drillSupport='no'">
- <!-- We only get in this template if there is drill information to be rendered
- but if drillSupport=no, then we are dealing with a simple bookmark -->
- <xsl:attribute name="href"><xsl:text disable-output-escaping="yes">#</xsl:text><xsl:value-of select="rsext:replace (rsext:urlencode(string(./drillTargets/drillTarget/@bookmarkRef)), '+', '-')"/></xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="createDrillTarget">
- <xsl:with-param name="node" select="./drillTargets"/>
- </xsl:call-template>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:if>
- </xsl:if>
- </xsl:template>
- <xsl:template match="styleOptions">
- <xsl:text disable-output-escaping="yes">
- </xsl:text>
- <styleOptions>
- <xsl:text disable-output-escaping="yes">
- </xsl:text>
- <xsl:copy-of select="cssUrl[contains(text(),'GlobalReportStyles')]"/>
- <xsl:text disable-output-escaping="yes">
- </xsl:text>
- <xsl:copy-of select="namedCssStyleText"/>
- <xsl:text disable-output-escaping="yes">
- </xsl:text>
- </styleOptions>
- </xsl:template>
- <xsl:template match="ReportPageSet">
- <TabSet>
- <xsl:call-template name="createJsonTabset">
- <xsl:with-param name="node" select="."/>
- </xsl:call-template>
- </TabSet>
- </xsl:template>
- <xsl:template match="DRILLS">
- <xsl:text disable-output-escaping="yes">
- <DRILLS>
- </xsl:text>
- <xsl:for-each select="DRILL">
- <xsl:copy-of select="."/>
- <xsl:text disable-output-escaping="yes">
- </xsl:text>
- </xsl:for-each>
- <xsl:text disable-output-escaping="yes"></DRILLS>
- </xsl:text>
- </xsl:template>
- <!--
- drillTargets on TextItems
- -->
- <xsl:template match="drillTargets">
- <xsl:choose>
- <xsl:when test="./WRAP">
- <div class="q-div">
- <xsl:attribute name="style"><xsl:value-of select="./WRAP/@style"/></xsl:attribute>
- <xsl:call-template name="createDrillTargets"/>
- </div>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="createDrillTargets"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
- <xsl:template name="createDrillTargets">
- <span>
- <xsl:call-template name="createDrillTarget">
- <xsl:with-param name="node" select="."/>
- </xsl:call-template>
- <xsl:apply-templates select="OTI|WRAP/OTI"/>
- </span>
- </xsl:template>
- <!--
- drillTargets on Images
- -->
- <xsl:template match="OIMG/drillTargets">
- <xsl:call-template name="createDrillTarget">
- <xsl:with-param name="node" select="."/>
- </xsl:call-template>
- </xsl:template>
- <xsl:template name="createDrillTarget">
- <xsl:param name="node"/>
- <xsl:attribute name="dt">[<xsl:for-each select="$node/drillTarget"><xsl:if test="position() > 1">,</xsl:if>{"i":<xsl:value-of select="@drillIdx"/><xsl:if test="@bookmarkRef">,"b":"<xsl:value-of select="rsext:jsonencode(rsext:replace(rsext:urlencode(string(@bookmarkRef)), '+', '-'))"/>"</xsl:if>,"p":[<xsl:for-each select="drillParameter"><xsl:if test="position() > 1">,</xsl:if>{"n":"<xsl:value-of select="rsext:jsonencode(@name)"/>"<xsl:if test="@value">,"v":"<xsl:value-of select="rsext:jsonencode(rsext:xmlencode(@value))"/>"</xsl:if><xsl:if test="@displayValue">,"d":"<xsl:value-of select="rsext:jsonencode(@displayValue)"/>"</xsl:if><xsl:if test="@mun">,"m":"<xsl:value-of select="rsext:jsonencode(@mun)"/>"</xsl:if>}</xsl:for-each>]}</xsl:for-each>]</xsl:attribute>
- </xsl:template>
- <xsl:template match="dataStore" priority="2">
- <dataStore>
- <xsl:choose>
- <xsl:when test="@src">
- <xsl:call-template name="GenDataStore"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:copy-of select="@name"/>
- <xsl:text disable-output-escaping="yes"><![CDATA[</xsl:text>
- <xsl:value-of select="string(.)" disable-output-escaping="yes"/>
- <xsl:text disable-output-escaping="yes">]]></xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- </dataStore>
- </xsl:template>
- <xsl:template match="UNKNOWN[@layoutClass='vizControl']">
- <vizControl>
- <xsl:copy-of select="HA/@roid"/>
- <xsl:copy-of select="HA/@specname"/>
- </vizControl>
- </xsl:template>
- <xsl:template match="NB[@layoutClass='notebook']">
- <notebook>
- <xsl:copy-of select="@*[name(.) != 'layoutClass']"/>
- <xsl:copy-of select="HA/@*[name(.) != 'layoutClass']"/>
- <xsl:value-of select="string(RP)" disable-output-escaping="yes"/>
- </notebook>
- </xsl:template>
- </xsl:stylesheet>
|