123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- *****************************************************************
- ** Licensed Materials - Property of IBM
- **
- ** IBM Cognos Products: drill
- **
- ** (C) Copyright IBM Corp. 2001, 2010
- **
- ** 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:xtsext="xalan://com.cognos.xts.ext.XTSExt" xmlns:xts="http://developer.cognos.com/schemas/xts/" xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/" exclude-result-prefixes="cm send xts xtsext">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:key name="env-param" match="/root/env/param" use="@name"/>
- <xsl:template match="/">
- <xts:sequence>
- <xsl:variable name="targetPath">
- <xsl:choose>
- <xsl:when test="string(key('env-param','so.searchPath'))!=''"><xsl:value-of select="key('env-param','so.searchPath')"/></xsl:when>
- <xsl:when test="string(key('env-param','m_p_target'))!=''"><xsl:value-of select="key('env-param','m_p_target')"/></xsl:when>
- </xsl:choose>
- </xsl:variable>
- <!-- Prompting is finished so wipe out the method used for prompting -->
- <xsl:if test="/root/*[local-name()='view']='properties'">
- <xts:delete select="/root/env/param[@name='method']"/>
- </xsl:if>
- <!-- Use the stored promptRequest returned because we don't want to have to keep prompting every time we leave the page for links (other than changing targets). -->
- <xsl:if test="/root/env/param[@name='promptRequest']">
- <xsl:choose>
- <xsl:when test="/root/*[local-name()='promptRequest']">
- <xts:replace select="/root/*[local-name()='promptRequest']">
- <xsl:value-of select="xtsext:web64decode(xtsext:cafaction('sign_unwrap',string(/root/env/param[@name='promptRequest'])), true())" disable-output-escaping="yes"/>
- </xts:replace>
- </xsl:when>
- <xsl:otherwise>
- <xts:append select="/root">
- <xsl:value-of select="xtsext:web64decode(xtsext:cafaction('sign_unwrap',string(/root/env/param[@name='promptRequest'])), true())" disable-output-escaping="yes"/>
- </xts:append>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:if>
- <!-- The target has changed 'selected_path' so wipe out any target parameters 'drillParam_' that are lying around from a previous target -->
- <xsl:if test="string(/root/env/param[@name='so.searchPath'])!='' and string(/root/env/param[@name='m_p_target'])!='' and string(/root/env/param[@name='so.searchPath'])!=string(/root/env/param[@name='m_p_target']) and /root/env/param[contains(string(@name),'drillParam_')]">
- <xts:delete select="/root/env/param[contains(string(@name),'drillParam_')]"/>
- </xsl:if>
- <xsl:if test="/root/env/param[@name='selected_scope']">
- <xts:delete select="/root/env/param[@name='m_p_scope' or @name='selected_scope']"/>
- <xts:append select="/root/env">
- <param name="m_p_scope">
- <xsl:choose>
- <xsl:when test="/root/env/param[@name='selected_scope']"><xsl:value-of select="string(/root/env/param[@name='selected_scope'])"/></xsl:when>
- <xsl:when test="/root/env/param[@name='m_p_scope']"><xsl:value-of select="string(/root/env/param[@name='m_p_scope'])"/></xsl:when>
- </xsl:choose>
- </param>
- </xts:append>
- </xsl:if>
- <xsl:if test="string($targetPath)!=''">
- <xts:delete select="/root/env/param[@name='m_p_target']"/>
- <xts:append select="/root/env">
- <param name="m_p_target"><xsl:value-of select="$targetPath"/></param>
- </xts:append>
- </xsl:if>
- <xsl:if test="/root/env/param[@name='selected_query']">
- <xts:delete select="/root/env/param[@name='m_p_bookmarkItem' or @name='selected_query' or @name='m_p_bookmarkText']"/>
- <xts:append select="/root/env">
- <param name="m_p_bookmarkItem">
- <xsl:choose>
- <xsl:when test="/root/env/param[@name='selected_query']"><xsl:value-of select="string(/root/env/param[@name='selected_query'])"/></xsl:when>
- <xsl:when test="/root/env/param[@name='m_p_bookmarkItem']"><xsl:value-of select="string(/root/env/param[@name='m_p_bookmarkItem'])"/></xsl:when>
- </xsl:choose>
- </param>
- </xts:append>
- </xsl:if>
- <xsl:if test="/root/env/param[@name='selected_param']">
- <xsl:variable name="sourceparam">
- <xsl:value-of select="concat('drillParam_',string(/root/env/param[@name='paramToSelect']))"/>
- </xsl:variable>
- <xts:delete select="/root/env/param[@name='{$sourceparam}' or @name='paramToSelect' or @name='selected_param']"/>
- <xts:append select="/root/env">
- <param>
- <xsl:attribute name="name"><xsl:value-of select="string($sourceparam)"/></xsl:attribute>
- <xsl:choose>
- <xsl:when test="/root/env/param[@name='selected_param']"><xsl:value-of select="string(/root/env/param[@name='selected_param'])"/></xsl:when>
- <xsl:when test="/root/env/param[@name='{$sourceparam}']"><xsl:value-of select="/root/env/param[@name='{$sourceparam}']"/></xsl:when>
- </xsl:choose>
- </param>
- </xts:append>
- </xsl:if>
- <xsl:if test="/root/env/param[@name='selected_param_MetaDataType']">
- <xsl:variable name="sourceparamSelectedMetaData">
- <xsl:value-of select="concat('MappedMetaDataType_drillParam_',string(/root/env/param[@name='paramToSelect']))"/>
- </xsl:variable>
- <xts:delete select="/root/env/param[@name='{$sourceparamSelectedMetaData}' or @name='paramToSelect' or @name='selected_param_MetaDataType']"/>
- <xts:append select="/root/env">
- <param>
- <xsl:attribute name="name"><xsl:value-of select="string($sourceparamSelectedMetaData)"/></xsl:attribute>
- <xsl:choose>
- <xsl:when test="/root/env/param[@name='selected_param_MetaDataType']"><xsl:value-of select="string(/root/env/param[@name='selected_param_MetaDataType'])"/></xsl:when>
- <xsl:when test="/root/env/param[@name='{$sourceparamSelectedMetaData}']"><xsl:value-of select="/root/env/param[@name='{$sourceparamSelectedMetaData}']"/></xsl:when>
- </xsl:choose>
- </param>
- </xts:append>
- </xsl:if>
- <xsl:if test="string($targetPath)!=''">
- <!-- Remove any existing target - this is possible because cleandrill could be called twice within properties-target. -->
- <xts:delete select="/root/target"/>
- <xts:append>
- <target>
- <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="$targetPath"/></cm:search>
- <cm:properties>
- <cm:property name="defaultName"/>
- <cm:property name="searchPath"/>
- <cm:property name="ancestors"/>
- <cm:property name="permissions"/>
- <cm:property name="parent"/>
- <cm:property name="base"/>
- </cm:properties>
- <cm:options maxObjects="1"/>
- </cm:query>
- </xts:transform>
- </send:request>
- </xts:transform>
- </target>
- </xts:append>
- </xsl:if>
- <xsl:if test="string(key('env-param','so.searchPath'))!=''">
- <xsl:if test="string(key('env-param','m_p_target'))!='' and string(key('env-param','m_p_target')) != string(key('env-param','so.searchPath'))">
- <xts:delete select="/root/env/param[starts-with(string(@name),'m_ro_outputF')]"/>
- <xts:delete select="/root/env/param[@name='m_p_action' or @name='tg_fmtselect']"/>
- </xsl:if>
- </xsl:if>
- <xts:delete select="/root/env/param[@name='radio_entry']"/>
- <xts:delete select="/root/env/param[@name='m_pg_e' or @name='pageitem']"/>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
|