dispatch_actions.xts 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. Licensed Materials - Property of IBM
  4. IBM Cognos Products: cogadmin
  5. (C) Copyright IBM Corp. 2011
  6. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  7. -->
  8. <xts:morphlet xmlns:xts="http://developer.cognos.com/schemas/xts/" resolverBase="cogadmin">
  9. <xts:block id="loadInterfaces" type="exec" processor="XML">
  10. <xts:sequence>
  11. <xts:append select="/root">
  12. <actions>
  13. <xts:request protocol="FILEREAD" target="/cogadmin/controls/interface.xml"/>
  14. </actions>
  15. </xts:append>
  16. </xts:sequence>
  17. </xts:block>
  18. <xts:block id="getMeta" type="exec" dependency="loadInterfaces" processor="XSLT">
  19. <xsl:stylesheet version="1.0"
  20. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  21. xmlns:xos="http://developer.cognos.com/schemas/xts/output/"
  22. xmlns:ctrls="http://ibm.cognos.com/xts/cogadmin/controls/dispatcher"
  23. exclude-result-prefixes="xsl xts xos ctrls">
  24. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  25. <xsl:variable name="actions">
  26. <xsl:for-each select="/root/actions/*[local-name()='interface']/*[local-name()='operation']">
  27. <xsl:variable name="rawOperation"><xsl:value-of select="@name"/></xsl:variable>
  28. <xsl:variable name="operation" select="normalize-space($rawOperation)"/>
  29. <xsl:if test="$operation != ''">
  30. <xsl:value-of select="$operation"/>
  31. <xsl:if test="position() != last()">
  32. <xsl:text>,</xsl:text>
  33. </xsl:if>
  34. </xsl:if>
  35. </xsl:for-each>
  36. </xsl:variable>
  37. <xsl:template match="/">
  38. <xts:sequence>
  39. <xts:append select="/root/output">
  40. <xos:part>
  41. <xos:entityHeader>
  42. <xos:param name="Content-Type">text/xml; charset=utf-8</xos:param>
  43. </xos:entityHeader>
  44. <xos:entityBody>
  45. <fragment>
  46. <info>
  47. <title>Todo</title>
  48. </info>
  49. <meta>
  50. <globalValidator>
  51. <parameter>
  52. <namePattern>
  53. <regex>actionResourceID_[0-9]$</regex>
  54. </namePattern>
  55. <ruleRef id="fragment-cogadmin:resourceID"/>
  56. </parameter>
  57. <parameter>
  58. <namePattern>
  59. <regex>actionResourceID</regex>
  60. </namePattern>
  61. <ruleRef id="fragment-cogadmin:resourceID"/>
  62. </parameter>
  63. <parameter>
  64. <name>actionQRBT</name>
  65. <rule>
  66. <enumeration>
  67. <list>containedBy,dispatchers</list>
  68. </enumeration>
  69. </rule>
  70. </parameter>
  71. <parameter>
  72. <name>action</name>
  73. <rule>
  74. <enumeration>
  75. <list><xsl:value-of select="$actions"/></list>
  76. </enumeration>
  77. </rule>
  78. </parameter>
  79. <parameter>
  80. <name>actionType</name>
  81. <ruleRef id="fragment-cogadmin:actionType"/>
  82. </parameter>
  83. <parameter>
  84. <name>actionContextID</name>
  85. <ruleRef id="fragment-cogadmin:actionContextID"/>
  86. </parameter>
  87. <parameter>
  88. <name>actionLabel</name>
  89. <rule>
  90. <type>
  91. <string maxLength="255"/>
  92. </type>
  93. </rule>
  94. </parameter>
  95. </globalValidator>
  96. </meta>
  97. </fragment>
  98. </xos:entityBody>
  99. </xos:part>
  100. </xts:append>
  101. </xts:sequence>
  102. </xsl:template>
  103. </xsl:stylesheet>
  104. </xts:block>
  105. <xts:block id="dispatch" type="exec" dependency="getMeta" processor="XSLT" condition=".[not(/root/env/param[@name='frag-directive']='meta-only')]">
  106. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  107. <xts:logicsheet path="logicsheets/presentation/dialog/connections.xslt"/>
  108. <xsl:stylesheet
  109. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  110. xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/"
  111. xmlns:ctrls="http://ibm.cognos.com/xts/cogadmin/controls/dispatcher"
  112. version="1.0">
  113. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  114. <xsl:key name="env-param" match="/root/env/param" use="@name"/>
  115. <xsl:template match="/root">
  116. <xts:sequence>
  117. <xts:append select="/root/output/*[local-name()='part']/*[local-name()='entityBody']/fragment">
  118. <send:request provider="xts">
  119. <xsl:variable name="requestName">
  120. <xsl:choose>
  121. <xsl:when test="key('env-param', 'dispatchAction') != ''">
  122. <xsl:value-of select="key('env-param', 'dispatchAction')"/>
  123. </xsl:when>
  124. <xsl:when test="key('env-param', 'action') != ''">
  125. <xsl:value-of select="key('env-param', 'action')"/>
  126. </xsl:when>
  127. <xsl:otherwise>
  128. <xsl:text>performDefaultAction</xsl:text>
  129. </xsl:otherwise>
  130. </xsl:choose>
  131. </xsl:variable>
  132. <xsl:element name="{$requestName}" namespace="http://ibm.cognos.com/xts/cogadmin/controls/dispatcher"/>
  133. </send:request>
  134. </xts:append>
  135. </xts:sequence>
  136. </xsl:template>
  137. </xsl:stylesheet>
  138. </xts:block>
  139. </xts:morphlet>