suppressionFinish.xts 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. Licensed Materials - Property of IBM
  4. IBM Cognos Products: AGS
  5. (C) Copyright IBM Corp. 2005, 2015
  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/" messageBase="messages/portal.xml,messages/AGS.xml,messages/portalRL.xml" requiredCapability="canUseEventStudio">
  9. <!--
  10. ===============================================================================================
  11. formlogic_init - standard form logic initialization
  12. ===============================================================================================
  13. -->
  14. <xts:block id="formlogic_init" type="exec" mode="interpret" processor="XSLT" path="/logicsheets/formlogic_init.xslt"/>
  15. <!--
  16. ================================================================================
  17. decode the agent items from their javascript generated form fields
  18. ===============================================================================================
  19. -->
  20. <xts:block id="extract_agent_definition" processor="XSLT" type="exec" mode="interpret" dependency="formlogic_init">
  21. <!-- portal specific information -->
  22. <xts:logicsheet path="logicsheets/portal.xsl"/>
  23. <!-- agent dialogs stuff -->
  24. <xts:logicsheet path="ags/logicsheets/dialogs.xsl"/>
  25. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:pf="http://developer.cognos.com/schemas/xts/pf" xmlns:agsdlg="http://developer.cognos.com/schemas/xts/logicsheets/xslt/ags/dialog/" xmlns:xts="http://developer.cognos.com/schemas/xts/" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt" exclude-result-prefixes="pf agsdlg xts xtsext">
  26. <pf:variables/>
  27. <xsl:template match="/">
  28. <!-- create a place holder -->
  29. <xts:sequence>
  30. <xts:append select="/root">
  31. <agent_definition_fragment>
  32. <!--xsl:message>summary event key <xsl:value-of select="$sek"/> at /root/agent_definition/param[@name='Summary_event_key']/text()
  33. </xsl:message-->
  34. <summaryEventKey>
  35. <xsl:choose>
  36. <xsl:when test="root/env/param[@name = 'AGENT_PARAM_Summary_event_key']">
  37. <xsl:value-of select="root/env/param[@name = 'AGENT_PARAM_Summary_event_key']/text()"/>
  38. </xsl:when>
  39. <xsl:otherwise>
  40. <xsl:value-of select="root/env/param[@name = 'Summary_event_key']/text()"/>
  41. </xsl:otherwise>
  42. </xsl:choose>
  43. </summaryEventKey>
  44. <xsl:if test="/root/env/param[starts-with(@name, 'ACTION_') and contains(@name,'PARAM_')]">
  45. <suppressionSet>true</suppressionSet>
  46. </xsl:if>
  47. <items/>
  48. </agent_definition_fragment>
  49. </xts:append>
  50. <!-- look for the params that indicate an agent and its position create an item place holder for each -->
  51. <xsl:for-each select="/root/env/param[@name = 'ACTION_XX_MARKER']">
  52. <xsl:variable name="item_index" select="substring-after(text(), 'ACTION_')"/>
  53. <xts:append select="/root/agent_definition_fragment/items">
  54. <item item_index="{$item_index}">
  55. <suppression/>
  56. </item>
  57. </xts:append>
  58. </xsl:for-each>
  59. <!-- go throught the rest of the AGENT ACTION params and decode their contents -->
  60. <xsl:for-each select="/root/env/param[starts-with(@name, 'ACTION_')]">
  61. <xsl:if test="not(contains(@name, 'ACTION_XX_MARKER'))">
  62. <xsl:variable name="param_details" select="substring-after(@name, 'ACTION_')"/>
  63. <xsl:variable name="param_value" select="text()"/>
  64. <xsl:variable name="index" select="substring-before($param_details, '_')"/>
  65. <xsl:choose>
  66. <xsl:when test="contains($param_details,'PARAM_')">
  67. <xsl:variable name="action_param_name" select="substring-after($param_details, 'PARAM_')"/>
  68. <xts:append select="/root/agent_definition_fragment/items/item[@item_index = {$index}]/suppression">
  69. <xsl:element name="param">
  70. <xsl:attribute name="name"><xsl:value-of select="$action_param_name"/></xsl:attribute>
  71. <xsl:value-of select="$param_value"/>
  72. </xsl:element>
  73. </xts:append>
  74. </xsl:when>
  75. <xsl:otherwise>
  76. <xsl:variable name="action_param_name" select="substring-after($param_details, '_')"/>
  77. <xts:append select="/root/agent_definition_fragment/items/item[@item_index = {$index}]">
  78. <xsl:element name="{$action_param_name}">
  79. <xsl:value-of select="$param_value"/>
  80. </xsl:element>
  81. </xts:append>
  82. </xsl:otherwise>
  83. </xsl:choose>
  84. </xsl:if>
  85. </xsl:for-each>
  86. <!-- get rid of the form vars passed in by the js on the suppression wizard page -->
  87. <xts:delete select="/root/env/param[starts-with(@name,'AGENT_PARAM') or starts-with(@name,'ACTION_')]"/>
  88. <!-- restore the stack -->
  89. <agsdlg:stack-down/>
  90. </xts:sequence>
  91. </xsl:template>
  92. </xsl:stylesheet>
  93. </xts:block>
  94. <!--
  95. ================================================================================
  96. encode the agent items again
  97. ================================================================================
  98. -->
  99. <xts:block id="decode_agent_definition" dependency="extract_agent_definition" mode="interpret" processor="XSLT" type="exec">
  100. <xts:logicsheet path="ags/logicsheets/agentDefinition.xsl"/>
  101. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xts="http://developer.cognos.com/schemas/xts/" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt" xmlns:agsad="http://developer.cognos.com/schemas/xts/logicsheets/xslt/ags/agentDefinition/" exclude-result-prefixes="xsl xts xtsext agsad">
  102. <xsl:template match="/">
  103. <xts:sequence>
  104. <!-- get the old one out -->
  105. <agsad:decodeAgentDefinition clean="true"/>
  106. </xts:sequence>
  107. </xsl:template>
  108. </xsl:stylesheet>
  109. </xts:block>
  110. <!--
  111. ================================================================================
  112. merge the agent blobs again
  113. ================================================================================
  114. -->
  115. <xts:block id="merge_agent_definition" dependency="decode_agent_definition" mode="interpret" processor="XSLT" type="exec">
  116. <xts:logicsheet path="ags/logicsheets/agentDefinition.xsl"/>
  117. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xts="http://developer.cognos.com/schemas/xts/" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt" xmlns:agsad="http://developer.cognos.com/schemas/xts/logicsheets/xslt/ags/agentDefinition/" exclude-result-prefixes="xsl xts xtsext agsad">
  118. <xsl:template match="/">
  119. <xts:sequence>
  120. <!-- merge in the suppression changes-->
  121. <agsad:mergeAgentDefinition over="/root/agent_definition_fragment"/>
  122. </xts:sequence>
  123. </xsl:template>
  124. </xsl:stylesheet>
  125. </xts:block>
  126. <!--
  127. ================================================================================
  128. encode the agent items again
  129. ================================================================================
  130. -->
  131. <xts:block id="encode_agent_definition" dependency="merge_agent_definition" mode="interpret" processor="XSLT" type="exec">
  132. <xts:logicsheet path="ags/logicsheets/agentDefinition.xsl"/>
  133. <xts:logicsheet path="logicsheets/portal.xsl"/>
  134. <xsl:stylesheet version="1.0" xmlns:pf="http://developer.cognos.com/schemas/xts/pf" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xts="http://developer.cognos.com/schemas/xts/" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt" xmlns:agsad="http://developer.cognos.com/schemas/xts/logicsheets/xslt/ags/agentDefinition/" exclude-result-prefixes="pf xsl xts xtsext agsad">
  135. <pf:serialize-xml/>
  136. <pf:variables/>
  137. <xsl:template match="/">
  138. <xts:sequence>
  139. <!-- reencode the blob -->
  140. <agsad:encodeAgentDefinition/>
  141. </xts:sequence>
  142. </xsl:template>
  143. </xsl:stylesheet>
  144. </xts:block>
  145. <!--
  146. ================================================================================
  147. TWEAK M
  148. ================================================================================
  149. -->
  150. <!--xts:block id="tweakm" dependency="encode_agent_definition" processor="XSLT" type="exec">
  151. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt" exclude-result-prefixes="xtsext">
  152. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  153. <xsl:template match="/">
  154. <xts:sequence>
  155. <xts:delete select="/root/env/param[@name='m']"/>
  156. <xts:append select="/root/env">
  157. <param name="m">
  158. <xsl:text>/ags/dialogAdapter.xts</xsl:text>
  159. </param>
  160. </xts:append>
  161. </xts:sequence>
  162. </xsl:template>
  163. </xsl:stylesheet>
  164. </xts:block-->
  165. <!--
  166. ===============================================================================================
  167. render-page: Proxy display and redirect to dialogAdapter
  168. ===============================================================================================
  169. -->
  170. <xts:block id="writeToDialogAdapter" mode="output" processor="XSLT" type="exec" mimeType="text/html" dependency="encode_agent_definition">
  171. <!-- portal specific information -->
  172. <xts:logicsheet path="logicsheets/portal.xsl"/>
  173. <!-- Get the new theme logicsheets. -->
  174. <xts:logicsheet path="logicsheets/presentation/dialog/presentation.xsl"/>
  175. <!-- apply the form logic -->
  176. <xts:logicsheet path="logicsheets/formlogic.xslt"/>
  177. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  178. xmlns:utml="http://developer.cognos.com/schemas/xts/logicsheet/xslt/formlogic/"
  179. xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
  180. xmlns:dp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/presentation/"
  181. xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
  182. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  183. exclude-result-prefixes="utml dp pf xtsext">
  184. <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no"/>
  185. <!-- add any theme variables -->
  186. <pf:variables/>
  187. <xsl:variable name="agent_definition_blob"><xsl:value-of select="xtsext:javascriptencode(string(/root/env/param[@name='agent_definition_blob']))"/></xsl:variable>
  188. <xsl:template match="/">
  189. <xsl:text disable-output-escaping='yes'>&lt;!DOCTYPE html></xsl:text><dp:page>
  190. <dp:script>
  191. <script type="text/javascript" src="../ags/layout.js">//</script>
  192. <script type="text/javascript" src="../ags/cmd.js">//</script>
  193. <script type="text/javascript" src="../ags/util.js">//</script>
  194. <script type="text/javascript">
  195. function init() {
  196. var msgFrame = getMessageIFrame();
  197. var frameElement = null;
  198. if (msgFrame != null) {
  199. var elmnt = eval(msgFrame.document.forms[0].agent_definition_blob);
  200. if (!elmnt) {
  201. elmnt = createHiddenInput(msgFrame.document, "agent_definition_blob", "");
  202. var pformElement = msgFrame.document.forms[0];
  203. pformElement.appendChild(elmnt);
  204. }
  205. elmnt.value = '<xsl:value-of select="$agent_definition_blob"/>';
  206. frameElement = agsFormUtils.getElementFromFrame(msgFrame.parent,msgFrame.name);
  207. hideDialogFrame();
  208. }
  209. someThingGood();
  210. }
  211. function someThingGood() {
  212. var msgFrame = getMessageIFrame();
  213. var doc = getFrameDocument(msgFrame);
  214. var holder = new Object();
  215. holder['tabSelectedID'] = doc.getElementById('tabSelectedID').value;
  216. holder['prevTabID'] = doc.getElementById('prevTabID').value;
  217. holder['itemSelected'] = doc.getElementById('itemSelected').value;
  218. holder['itemNewLocation'] = doc.getElementById("itemNewLocation").value;
  219. holder['agentItemOp'] = doc.getElementById("agentItemOp").value;
  220. holder['agent_definition_blob'] = '<xsl:value-of select="xtsext:javascriptencode(string(/root/env/param[@name='agent_definition_blob']))"/>';
  221. holder['m'] = "/ags/summaryBarUpdate.xts";
  222. var dispatcher = new parent.cf.XHTTPDispatcher(updateDialogAdpater, holder);
  223. parent.cf.applicationActionManager.httpStart();
  224. try{
  225. dispatcher.dispatch();
  226. }catch(ex){
  227. parent.cf.applicationActionManager.httpStop();
  228. }
  229. }
  230. function updateDialogAdpater(responseArray)
  231. {
  232. var responseXML = responseArray[0];
  233. var responseText = responseArray[1];
  234. parent.cf.applicationActionManager.httpStop();
  235. var markupNode = responseXML.getElementsByTagName("markup");
  236. var markup = parent.getTextNodeValue(markupNode[0]);
  237. if (markup &amp;&amp; markup != '') {
  238. // do the HTML injection - should be interesting
  239. updateSummaryBarHTML(markup);
  240. }
  241. var suppressionNode = responseXML.getElementsByTagName("suppressionDetails");
  242. var suppressionList = parent.getTextNodeValue(suppressionNode[0]);
  243. if (suppressionList &amp;&amp; suppressionList != '') {
  244. var messageIFrame = getMessageIFrame();
  245. var messageIFrame_doc = getFrameDocument(messageIFrame);
  246. // do the HTML injection - should be interesting
  247. var eventListTable = messageIFrame_doc.getElementById("eventListTable");
  248. if (eventListTable) {
  249. eventListTable.style.display = '';
  250. eventListTable.parentNode.innerHTML = suppressionList;
  251. }
  252. }
  253. var isFailureTaskNode = responseXML.getElementsByTagName("isCurrentFailureTask");
  254. var isFailureTask = parent.getTextNodeValue(isFailureTaskNode[0]);
  255. parent.cfgSet("isCurrentFailureTask",isFailureTask == "true");
  256. getConfigFrame().hideDialogFrame();
  257. }
  258. function updateSummaryBarHTML(markup)
  259. {
  260. // do the HTML injection - should be interesting
  261. var messageIFrame = getMessageIFrame();
  262. var messageIFrame_doc = getFrameDocument(messageIFrame);
  263. // get the insertion location - and inject the HTML
  264. var summaryBarDiv = messageIFrame_doc.getElementById("d1");
  265. summaryBarDiv.innerHTML=markup;
  266. messageIFrame.initSummaryMenu();
  267. // resize must be called to draw summarybar full width
  268. messageIFrame.setBarSize();
  269. }
  270. </script>
  271. </dp:script>
  272. </dp:page>
  273. </xsl:template>
  274. </xsl:stylesheet>
  275. </xts:block>
  276. <!--
  277. ================================================================================
  278. render_page
  279. Render the HTML really, just the dialog adapter page
  280. ===============================================================================================
  281. -->
  282. <!--xts:block id="render_page" dependency="tweakm" processor="XSLT" type="exec" mode="interpret">
  283. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xos="http://developer.cognos.com/schemas/xts/output/" exclude-result-prefixes="xsl xos">
  284. <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no"/>
  285. <xsl:template match="/">
  286. <xts:sequence>
  287. <xts:append select="/root/output">
  288. <xos:part>
  289. <xos:entityHeader>
  290. <xos:param name="Content-Type">text/html; charset=utf-8</xos:param>
  291. </xos:entityHeader>
  292. <xos:entityBody>
  293. <xts:request name="BUS" target="bus://xts2/ags/dialogAdapter.xts" option="content" outputHeader="true">
  294. <env>
  295. <xsl:copy-of select="/root/env"/>
  296. <system>
  297. <xsl:copy-of select="/root/system"/>
  298. <header >
  299. <xsl:copy-of select="/root/header"/>
  300. <http >
  301. <xsl:copy-of select="/root/http"/>
  302. <session >
  303. <xsl:copy-of select="/root/session"/>
  304. <credential >
  305. <xsl:copy-of select="/root/credential"/>
  306. <cookies>
  307. <xsl:copy-of select="/root/cookies"/>
  308. <user vars >
  309. <xsl:copy-of select="/root/user"/>
  310. </xts:request>
  311. </xos:entityBody>
  312. </xos:part>
  313. </xts:append>
  314. </xts:sequence>
  315. </xsl:template>
  316. </xsl:stylesheet>
  317. </xts:block-->
  318. <!--
  319. ================================================================================
  320. debug
  321. ================================================================================
  322. -->
  323. <xts:block id="debug" type="exec" mode="output" processor="XSLT" condition=".[/root/session/param[@name = 'debug'] != '1']" mandatory="false" mimeType="text/html" dependency="writeToDialogAdapter">
  324. <!-- Get the debug logic sheet -->
  325. <xts:logicsheet path="logicsheets/debuglogic.xslt"/>
  326. <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">
  327. <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no"/>
  328. <xsl:template match="/">
  329. <dbg:dumpxml select="/root"/>
  330. </xsl:template>
  331. </xsl:stylesheet>
  332. </xts:block>
  333. </xts:morphlet>