modal.xts 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  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 xmlns:xts="http://developer.cognos.com/schemas/xts/">
  13. <xts:block
  14. id="getContent"
  15. mode="interpret"
  16. processor="XSLT"
  17. type="exec"
  18. mandatory="false"
  19. condition=".[/root/env/param[starts-with(@name, 'md.return_')] and string(/root/env/param[@name = 'crnobj']) != '']">
  20. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  21. <xsl:stylesheet version="1.0"
  22. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  23. xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/"
  24. xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
  25. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt">
  26. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  27. <!-- perform a simple request just to validate the passport -->
  28. <xsl:template match="/">
  29. <xts:sequence>
  30. <xts:append>
  31. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  32. <send:request provider="cm">
  33. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  34. <cm:query xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
  35. <cm:search><xsl:value-of select="/root/env/param[@name = 'crnobj']"/></cm:search>
  36. <cm:properties>
  37. <xsl:for-each select="/root/env/param[starts-with(@name, 'md.return_')]">
  38. <cm:property name="{substring-after(@name, 'md.return_')}"/>
  39. </xsl:for-each>
  40. </cm:properties>
  41. </cm:query>
  42. </xts:transform>
  43. </send:request>
  44. </xts:transform>
  45. </xts:append>
  46. </xts:sequence>
  47. </xsl:template>
  48. </xsl:stylesheet>
  49. </xts:block>
  50. <!-- End conversation with host app. If there is data to return then return it. -->
  51. <xts:block
  52. id="terminate"
  53. dependency="getContent"
  54. mode="output"
  55. processor="XSLT"
  56. type="exec"
  57. mandatory="false"
  58. mimeType="text/html">
  59. <xts:logicsheet path="logicsheets/portal.xsl"/>
  60. <xsl:stylesheet version="1.0"
  61. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  62. xmlns:xts="http://developer.cognos.com/schemas/xts/"
  63. xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
  64. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  65. xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
  66. exclude-result-prefixes="xsl pf xtsext xts cm">
  67. <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no" omit-xml-declaration="yes"/>
  68. <pf:variables/>
  69. <pf:modalVariables/>
  70. <xsl:template match="/root">
  71. <!-- Build the return XML (no line breaks) - By hand (probably faster) - If there is anything to return. -->
  72. <xsl:variable name="returnXML">
  73. <xsl:if test="/root/cm:queryResponse/*/*">
  74. <xsl:text>&amp;lt;return&amp;gt;&amp;lt;object&amp;gt;</xsl:text>
  75. <xsl:for-each select="/root/cm:queryResponse/*/*[local-name() != 'objectClass']">
  76. <xsl:text>&amp;lt;item&amp;gt;</xsl:text>
  77. <xsl:text>&amp;lt;name&amp;gt;</xsl:text><xsl:value-of select="local-name()"/><xsl:text>&amp;lt;/name&amp;gt;</xsl:text>
  78. <xsl:text>&amp;lt;value&amp;gt;</xsl:text><xsl:value-of select="xtsext:xmlencode(xtsext:xmlencode(.))"/><xsl:text>&amp;lt;/value&amp;gt;</xsl:text>
  79. <xsl:text>&amp;lt;/item&amp;gt;</xsl:text>
  80. </xsl:for-each>
  81. <xsl:text>&amp;lt;/object&amp;gt;&amp;lt;/return&amp;gt;</xsl:text>
  82. </xsl:if>
  83. </xsl:variable>
  84. <xsl:text disable-output-escaping='yes'>&lt;!DOCTYPE html></xsl:text>
  85. <html lang="{$productLocale}">
  86. <head>
  87. <script language="JavaScript">
  88. function init()
  89. {
  90. <xsl:variable name="success" select="xtsext:javascriptencode(key('env-param', 'm_success'))"/>
  91. <xsl:choose>
  92. <!-- Operation ended successfully. -->
  93. <xsl:when test="key('env-param', 'm_success') or $returnXML != ''">
  94. var sResponse = "ok";
  95. </xsl:when>
  96. <xsl:otherwise>
  97. var sResponse = "close";
  98. </xsl:otherwise>
  99. </xsl:choose>
  100. <xsl:choose>
  101. <xsl:when test="$returnXML != ''">
  102. var sReturnData = "<xsl:value-of select="xtsext:javascriptencode(string($returnXML))"/>";
  103. </xsl:when>
  104. <xsl:otherwise>
  105. var sReturnData = null;
  106. </xsl:otherwise>
  107. </xsl:choose>
  108. <!-- Set the right call back target -->
  109. var callBackTarget = <xsl:value-of select="$callBackTargetJSVar"/>;
  110. if( callBackTarget )
  111. {
  112. callBackTarget.<xsl:value-of select="$callBackFunctionName"/>(sResponse, sReturnData);
  113. }
  114. }
  115. </script>
  116. </head>
  117. <body onload="init()"/>
  118. </html>
  119. </xsl:template>
  120. </xsl:stylesheet>
  121. </xts:block>
  122. <!--
  123. <xts:block id="debug" dependency="terminate" type="exec" mode="output" processor="XSLT" mandatory="false" mimeType="text/html" >
  124. <xts:logicsheet path="logicsheets/debuglogic.xslt"/>
  125. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dbg="http://developer.cognos.com/schemas/xts/logicsheets/xslt/debug/" exclude-result-prefixes="dbg">
  126. <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no" omit-xml-declaration="yes"/>
  127. <xsl:template match="/">
  128. <dbg:dumpxml select="/root"/>
  129. </xsl:template>
  130. </xsl:stylesheet>
  131. </xts:block>
  132. -->
  133. </xts:morphlet>