nav-request.xslt 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. Licensed Materials - Property of IBM
  4. IBM Cognos Products: cpscrn
  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. <!-- $Header: //cpscrn/main/templates/cps4/portlets/nav/logicsheets/nav-request.xslt#1 $ -->
  13. <!-- $DateTime: 2008/10/22 11:12:04 $ -->
  14. <!-- $Change: 25109 $ -->
  15. <xsl:stylesheet version="1.0"
  16. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  17. xmlns:out="dummy-uri"
  18. xmlns:xts="http://developer.cognos.com/schemas/xts/"
  19. xmlns:nreq="http://developer.cognos.com/schemas/cps/logic/nav/request/1/"
  20. xmlns:nav="http://developer.cognos.com/schemas/cps/navigation/1/">
  21. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  22. <xsl:namespace-alias stylesheet-prefix="out" result-prefix="xsl"/>
  23. <xsl:template match="xsl:stylesheet" priority="1">
  24. <xsl:copy>
  25. <xsl:apply-templates select="@*"/>
  26. <xsl:apply-templates select="*|text()|processing-instruction()"/>
  27. </xsl:copy>
  28. </xsl:template>
  29. <xsl:template match="nreq:common-request-params" priority="1">
  30. <out:if test="$portlet-markups/wsrp:extensions/cps:portalContext/cps:param[@name = 'gatewayURL'] != ''">
  31. <nav:param name="gatewayURL">
  32. <out:value-of select="$portlet-markups/wsrp:extensions/cps:portalContext/cps:param[@name = 'gatewayURL']"/>
  33. </nav:param>
  34. </out:if>
  35. <out:if test="$portlet-markups/wsrp:extensions/cps:portalContext/cps:param[@name = 'webContentURL'] != ''">
  36. <nav:param name="webContentURL">
  37. <out:value-of select="$portlet-markups/wsrp:extensions/cps:portalContext/cps:param[@name = 'webContentURL']"/>
  38. </nav:param>
  39. </out:if>
  40. <nav:param name="portalAgent">
  41. <out:choose>
  42. <out:when test="$portlet-markups/wsrp:extensions/cps:portalContext/cps:portalAgent and $portlet-markups/wsrp:extensions/cps:portalContext/cps:portalAgent != ''">
  43. <out:value-of select="$portlet-markups/wsrp:extensions/cps:portalContext/cps:portalAgent"/>
  44. </out:when>
  45. <out:otherwise>
  46. <out:value-of select="$portlet-registration-params[@name='consumerAgent']"/>
  47. </out:otherwise>
  48. </out:choose>
  49. </nav:param>
  50. <nav:param name="browserAgent">
  51. <!-- TODO : these variables (browser ..) are also defined in the cps-ui logicsheet
  52. This should be removed once we use one common logicsheet for variables.
  53. -->
  54. <out:variable name="portlet-user-agent" select="translate(string( $portlet-markups/wsrp:clientData/wsrp:userAgent ), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')"/>
  55. <out:choose>
  56. <out:when test="contains($portlet-user-agent , 'msie')">ie</out:when> <!-- IE 4.xx and above -->
  57. <out:when test="contains($portlet-user-agent , 'safari/5') and not(contains($portlet-user-agent , 'chrome'))">safari</out:when> <!-- Safari user-agent does not contain Chrome -->
  58. <out:when test="contains($portlet-user-agent , 'chrome')">chrome</out:when> <!-- Chrome user-agent contains Safari also -->
  59. <out:when test="contains($portlet-user-agent , 'mozilla/5.0')">
  60. <out:choose>
  61. <out:when test="contains($portlet-user-agent , 'netscape/7.1')">ns71</out:when>
  62. <out:when test="contains($portlet-user-agent , 'netscape/7.0')">ns70</out:when>
  63. <out:when test="contains($portlet-user-agent , 'aol/7.0')">ns70</out:when>
  64. <out:when test="contains($portlet-user-agent , 'cs 2000 7.0/7.0')">ns70</out:when>
  65. <out:when test="contains($portlet-user-agent , 'netscape6')">ns6</out:when>
  66. <out:otherwise>moz</out:otherwise>
  67. </out:choose>
  68. </out:when>
  69. <out:when test="contains($portlet-user-agent , 'mozilla/4.')">ns4</out:when> <!-- NS 4.xx -->
  70. <out:otherwise>other</out:otherwise>
  71. </out:choose>
  72. </nav:param>
  73. </xsl:template>
  74. <xsl:template match="nreq:*" priority="0">
  75. <xsl:call-template name="nreq-compile-error">
  76. <xsl:with-param name="errno">0100</xsl:with-param>
  77. <xsl:with-param name="errmsg">Unsupported logicsheet tag: <xsl:value-of select="local-name(.)"/></xsl:with-param>
  78. </xsl:call-template>
  79. </xsl:template>
  80. <xsl:template name="nreq-compile-error">
  81. <xsl:param name="errno"/>
  82. <xsl:param name="errmsg"/>
  83. <xsl:message>
  84. <xsl:text>CPS-ERR-</xsl:text>
  85. <xsl:value-of select="$errno"/>
  86. <xsl:text>: </xsl:text>
  87. <xsl:value-of select="$errmsg"/>
  88. <xsl:text>.</xsl:text>
  89. </xsl:message>
  90. <xsl:message terminate="yes">
  91. <xsl:text> ...at: </xsl:text>
  92. <xsl:for-each select="ancestor-or-self::node()[name()!='']">
  93. <xsl:text>/</xsl:text>
  94. <xsl:value-of select="name()"/>
  95. </xsl:for-each>
  96. </xsl:message>
  97. </xsl:template>
  98. <xsl:template match="*|@*|text()|processing-instruction()" priority="-1">
  99. <xsl:copy>
  100. <xsl:apply-templates select="*|@*|text()|processing-instruction()"/>
  101. </xsl:copy>
  102. </xsl:template>
  103. </xsl:stylesheet>