launch.xts 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. Licensed Materials - Property of IBM
  4. IBM Cognos Products: ps
  5. (C) Copyright IBM Corp. 2005, 2011
  6. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  7. -->
  8. <!--
  9. Copyright (C) 2008 Cognos ULC, an IBM Company. All rights reserved.
  10. Cognos (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated).
  11. -->
  12. <xts:morphlet version="1.0" messageBase="messages/portal.xml, messages/portalRL.xml" xmlns:xts="http://developer.cognos.com/schemas/xts/">
  13. <!--
  14. ===============================================================================================
  15. getObj - do nav query for the given object to get the defaultAction URL
  16. ===============================================================================================
  17. -->
  18. <xts:block id="getObj" processor="XSLT" type="exec" mode="interpret">
  19. <xts:logicsheet path="logicsheets/portal.xsl"/>
  20. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  21. xmlns:xos="http://developer.cognos.com/schemas/xts/output/"
  22. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  23. xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
  24. xmlns:nav="http://developer.cognos.com/schemas/cps/navigation/1/"
  25. xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  26. xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
  27. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  28. xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
  29. xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  30. exclude-result-prefixes="xos xtsext bus nav xsd xsi SOAP-ENC SOAP-ENV xts">
  31. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  32. <pf:variables/>
  33. <xsl:template match="/root">
  34. <xts:sequence>
  35. <xts:append>
  36. <obj>
  37. <xts:request href="bus://dispatcher" protocol="NAV" outputHeader="true" faultBlock="ignore">
  38. <SOAP-ENV:Envelope>
  39. <SOAP-ENV:Header>
  40. <xsl:copy-of select="header/bus:biBusHeader"/>
  41. </SOAP-ENV:Header>
  42. <SOAP-ENV:Body>
  43. <nav:getItem>
  44. <nav:validateTag/>
  45. <nav:id>
  46. <xsl:choose>
  47. <xsl:when test="string(env/param[@name='id']) != ''">
  48. <xsl:text/>_<xsl:value-of select="env/param[@name='id']"/>
  49. </xsl:when>
  50. <xsl:when test="string(env/param[@name='path']) != ''">
  51. <xsl:value-of select="xtsext:web64encode(env/param[@name='path'], false())"/>
  52. </xsl:when>
  53. </xsl:choose>
  54. </nav:id>
  55. <nav:param name="browserAgent"><xsl:value-of select="$browser"/></nav:param>
  56. <nav:param name="gatewayURL">
  57. <xsl:value-of select="http/param[@name='SCRIPT_NAME']"/>
  58. </nav:param>
  59. </nav:getItem>
  60. </SOAP-ENV:Body>
  61. </SOAP-ENV:Envelope>
  62. </xts:request>
  63. </obj>
  64. </xts:append>
  65. </xts:sequence>
  66. </xsl:template>
  67. </xsl:stylesheet>
  68. </xts:block>
  69. <!--
  70. ===============================================================================================
  71. redirect - redirect to the URL
  72. ===============================================================================================
  73. -->
  74. <xts:block id="redirect" processor="XSLT" type="exec" mode="interpret" dependency="getObj">
  75. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  76. xmlns:xos="http://developer.cognos.com/schemas/xts/output/"
  77. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  78. xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
  79. xmlns:nav="http://developer.cognos.com/schemas/cps/navigation/1/"
  80. xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  81. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  82. xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
  83. xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  84. exclude-result-prefixes="xos xtsext bus nav xsd xsi SOAP-ENC SOAP-ENV xts">
  85. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  86. <xsl:template match="/root">
  87. <xts:sequence>
  88. <xts:append select="/root/output">
  89. <xos:part>
  90. <xsl:choose>
  91. <xsl:when test="string(env/param[@name='d'])='1'">
  92. <xos:entityHeader>
  93. <xos:param name="Content-Type">text/xml; charset="utf-8"</xos:param>
  94. </xos:entityHeader>
  95. <xos:entityBody>
  96. <debug>
  97. <url><xsl:value-of select="xtsext:xmlencode(obj/nav:getItemResponse/*/nav:defaultAction/nav:url)"/></url>
  98. <xts:queryNode select="/root/obj"/>
  99. </debug>
  100. </xos:entityBody>
  101. </xsl:when>
  102. <xsl:when test="string(obj/nav:getItemResponse/*/nav:defaultAction/nav:url) != ''">
  103. <xos:statusCode>301</xos:statusCode>
  104. <xos:entityHeader>
  105. <xos:param name="Location">
  106. <xsl:value-of select="obj/nav:getItemResponse/*/nav:defaultAction/nav:url"/>
  107. </xos:param>
  108. </xos:entityHeader>
  109. </xsl:when>
  110. <xsl:otherwise>
  111. <xos:statusCode>404</xos:statusCode>
  112. <xos:entityHeader>
  113. <xos:param name="Content-Length">0</xos:param>
  114. </xos:entityHeader>
  115. </xsl:otherwise>
  116. </xsl:choose>
  117. </xos:part>
  118. </xts:append>
  119. </xts:sequence>
  120. </xsl:template>
  121. </xsl:stylesheet>
  122. </xts:block>
  123. <xts:block id="ignore" processor="XML" type="fault">
  124. <ignore/>
  125. </xts:block>
  126. </xts:morphlet>