processAgentOptions.xts 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411
  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/AGS.xml,messages/portal.xml, messages/portalRL.xml" resolverBase="prompting" includeConfig="true" 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. appendAgentDefinitionBlob - Append the AgentDefinition blob here so we can create the tasks.
  18. ===============================================================================================
  19. -->
  20. <xts:block id="decode_agent_definition" dependency="formlogic_init" processor="XSLT" type="exec" condition=".[/root/env/param[@name = 'agent_definition_blob'] and /root/env/param[@name = 'agent_definition_blob']!='']" mandatory="false">
  21. <xts:logicsheet path="logicsheets/presentation/dialog/controller-templates.xsl"/>
  22. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  23. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt" exclude-result-prefixes="xsl xtsext">
  24. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  25. <xsl:template match="/">
  26. <xts:sequence>
  27. <xts:append select="/root">
  28. <xsl:value-of select="xtsext:web64decode( xtsext:cafaction('sign_unwrap_settemplatename_decodeagentdefinition_settemplateid_dialogadapter001', string( /root/env/param[@name = 'agent_definition_blob'])), true() )" disable-output-escaping="yes"/>
  29. </xts:append>
  30. <!-- get rid of the blob for the time being -->
  31. <xts:delete select="/root/env/param[@name = 'agent_definition_blob']"/>
  32. </xts:sequence>
  33. </xsl:template>
  34. </xsl:stylesheet>
  35. </xts:block>
  36. <!--
  37. ===============================================================================================
  38. getContent - get delivery option query results, page definitions and selected languages
  39. ===============================================================================================
  40. -->
  41. <xts:block id="getContent" dependency="decode_agent_definition formlogic_init" processor="XSLT" type="exec" condition=".[/root/agent_definition]" mandatory="false">
  42. <xts:logicsheet path="logicsheets/presentation/dialog/templates.xsl"/>
  43. <xts:logicsheet path="logicsheets/cm-logic.xsl"/>
  44. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  45. <xts:logicsheet path="logicsheets/portal.xsl"/>
  46. <xsl:stylesheet version="1.0"
  47. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  48. xmlns:cml="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/cml/1/"
  49. xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/"
  50. xmlns:dt="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/templates/"
  51. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  52. xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
  53. xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/" exclude-result-prefixes="xsl cml send dt xtsext pf cm">
  54. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  55. <pf:serialize-xml/>
  56. <pf:variables/>
  57. <xsl:template match="/">
  58. <xts:sequence>
  59. <xsl:variable name="checkUIHelpers">
  60. <xsl:choose>
  61. <xsl:when test="/root/agent_definition/*[local-name()='agentOptions']/*[local-name()='UIHelpers']">true</xsl:when>
  62. <xsl:otherwise>false</xsl:otherwise>
  63. </xsl:choose>
  64. </xsl:variable>
  65. <!-- get the delivery options-->
  66. <xts:append>
  67. <deliveryOptionsQueries>
  68. <xts:transform src="transforms/portal/options/generateCMQueriesForDeliveryInfo.xslt" processor="XSLT">
  69. <root>
  70. <!-- only query CM for delivery options when UIHelpers is empty-->
  71. <checkUIHelpers><xsl:value-of select="$checkUIHelpers"/></checkUIHelpers>
  72. <queryReply><xsl:copy-of select="/root/agent_definition/*[local-name()='agentOptions']"/></queryReply>
  73. <xsl:copy-of select="/root/agent_definition/*[local-name()='agentOptions']/*[local-name()='UIHelpers']"/>
  74. </root>
  75. </xts:transform>
  76. </deliveryOptionsQueries>
  77. </xts:append>
  78. </xts:sequence>
  79. <!-- get the page definitions-->
  80. <xts:sequence>
  81. <xts:append>
  82. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  83. <send:request provider="cm" requester="AGS:processAgentOptions">
  84. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  85. <cm:query xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
  86. <cm:requests>
  87. <!-- Page definitions -->
  88. <cm:query>
  89. <cm:search>/configuration/pageDefinition</cm:search>
  90. <cm:properties>
  91. <cm:property name="displaySequence"/>
  92. <cm:property name="defaultName"/>
  93. <cm:property name="searchPath"/>
  94. </cm:properties>
  95. <cm:sortBy>
  96. <cm:sort name="displaySequence" order="descending"/>
  97. </cm:sortBy>
  98. </cm:query>
  99. <!-- need to get all the archiveLocations -->
  100. <cm:query>
  101. <cm:search>/configuration/archiveLocation</cm:search>
  102. <cm:properties>
  103. <cm:property name="searchPath"/>
  104. <cm:property name="defaultName"/>
  105. </cm:properties>
  106. <cm:sortBy>
  107. <cm:sort name="defaultName" order="ascending"/>
  108. </cm:sortBy>
  109. </cm:query>
  110. </cm:requests>
  111. </cm:query>
  112. </xts:transform>
  113. </send:request>
  114. </xts:transform>
  115. </xts:append>
  116. </xts:sequence>
  117. <!-- if we have a language blob, then unpack it -->
  118. <!--xsl:if test="key('env-param','selected_languages')">
  119. <xts:sequence>
  120. <xts:append>
  121. <xsl:value-of select="xtsext:xmldecode( string( /root/env/param[@name = 'selected_languages'] ) )" disable-output-escaping="yes"/>
  122. </xts:append>
  123. </xts:sequence>
  124. </xsl:if-->
  125. </xsl:template>
  126. </xsl:stylesheet>
  127. </xts:block>
  128. <!--
  129. ===============================================================================================
  130. updateDefaultAgentOptions - build the agentOptions structure using the params present in /env/param. Should only get executed
  131. when we've returned from the 'agent default options' dialog and the user has hit the OK button
  132. ===============================================================================================
  133. -->
  134. <xts:block id="updateDefaultAgentOptions" dependency="getContent" type="exec" mode="interpret" processor="XSLT" condition=".[/root/env/param[@name = 'run_options_visited'] = 'true' and /root/env/param[@name = 'userHitOK']]" mandatory="false">
  135. <xts:logicsheet path="logicsheets/presentation/dialog/templates.xsl"/>
  136. <xts:logicsheet path="logicsheets/presentation/controls/framework.xsl"/>
  137. <xts:logicsheet path="logicsheets/presentation/controls/presentation.xsl"/>
  138. <xts:logicsheet path="logicsheets/portal.xsl"/>
  139. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:x="x" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/" xmlns:dt="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/templates/" xmlns:pf="http://developer.cognos.com/schemas/xts/pf" xmlns:cf="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/framework/" xmlns:cp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/presentation/" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt" exclude-result-prefixes="xts xtsext xsl x cm dt pf cf cp">
  140. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  141. <pf:variables/>
  142. <xsl:template match="/">
  143. <xts:sequence>
  144. <!-- remove the old agentOptions-->
  145. <xts:delete select="/root/agent_definition/agentOptions/*[local-name()='options' or local-name()='UIHelpers' or local-name()='parameters']"/>
  146. <!-- remove the old form vars-->
  147. <xts:delete select="/root/agent_definition/agentOptions/form-vars"/>
  148. <!-- remove any options from the env that aren't suppose to be there (i.e. dependent on checkboxes that aren't checked -->
  149. <xts:replace select="/root/env">
  150. <xts:transform src="transforms/portal/options/cleanEnv.xslt" processor="XSLT">
  151. <root>
  152. <xsl:copy-of select="/root/env"/>
  153. </root>
  154. </xts:transform>
  155. </xts:replace>
  156. <!-- if the override default report options checkbox isn't checked, then delete all the m_ro_ from the env -->
  157. <xsl:if test="not(key('env-param','override_default_options')='true')">
  158. <xts:delete select="/root/env/param[starts-with(@name,'m_ro_')]"/>
  159. </xsl:if>
  160. <xsl:if test="not(key('env-param','override_default_content_task_options')='true')">
  161. <xts:delete select="/root/env/param[starts-with(@name,'ctro_runoption')]"/>
  162. </xsl:if>
  163. <!-- place the updated agent options in the agent definition-->
  164. <xts:append select="/root/agent_definition/agentOptions">
  165. <form-vars>
  166. <!-- save ui variables-->
  167. <xsl:copy-of select="key('env-param','override_default_options')"/>
  168. <xsl:copy-of select="key('env-param','override_default_content_task_options')"/>
  169. <xsl:copy-of select="key('env-param','override_default_deployment_options')"/>
  170. <xsl:copy-of select="key('env-param','override_default_index_update_task_options')"/>
  171. <xsl:copy-of select="key('env-param','report_options_collapsed')"/>
  172. <xsl:copy-of select="key('env-param','content_task_options_collapsed')"/>
  173. <xsl:copy-of select="key('env-param','index_update_task_options_collapsed')"/>
  174. <xsl:copy-of select="key('env-param','deployment_options_collapsed')"/>
  175. </form-vars>
  176. <xts:transform src="transforms/portal/options/buildOptions.xslt" processor="XSLT">
  177. <root>
  178. <xts:transform src="transforms/portal/options/buildOptionItems.xslt" processor="XSLT">
  179. <root>
  180. <xts:queryNode select="/root/env"/>
  181. <xts:transform name="XML" src="portal/options.xml"/>
  182. <contentLocale>
  183. <xsl:value-of select="$contentLocale"/>
  184. </contentLocale>
  185. <xsl:if test="key('env-param','deliveryOptions') != ''">
  186. <deliveryOptions>
  187. <xsl:value-of select="xtsext:web64decode( xtsext:cafaction('sign_unwrap', string( key('env-param','deliveryOptions') )),true())" disable-output-escaping="yes"/>
  188. </deliveryOptions>
  189. </xsl:if>
  190. <xsl:if test="key('env-param','mobileOptions') != ''">
  191. <mobileOptions>
  192. <xsl:value-of select="xtsext:web64decode( xtsext:cafaction('sign_unwrap', string( key('env-param','mobileOptions') )),true())" disable-output-escaping="yes"/>
  193. </mobileOptions>
  194. </xsl:if>
  195. <optionType>runOptions</optionType>
  196. <xsl:if test="key('env-param','override_default_content_task_options')='true'">
  197. <optionType>contentTaskOptions</optionType>
  198. </xsl:if>
  199. <xsl:if test="key('env-param','override_default_deployment_task_options')='true'">
  200. <optionType>deploymentOptions</optionType>
  201. </xsl:if>
  202. <xsl:if test="key('env-param','override_default_index_update_task_options')='true'">
  203. <optionType>indexOptions</optionType>
  204. </xsl:if>
  205. <optionType>pdfOptions</optionType>
  206. <optionType>archiveOptions</optionType>
  207. <genDefaults>false</genDefaults>
  208. </root>
  209. </xts:transform>
  210. </root>
  211. </xts:transform>
  212. <!-- update the UIHelper markup-->
  213. <xsl:if test="key('env-param','override_default_options')='true'">
  214. <dt:buildUIHelper/>
  215. </xsl:if>
  216. </xts:append>
  217. <!-- remove the options from the environment now that the agentOptions has been created -->
  218. <xts:replace select="/root/env">
  219. <xts:transform src="ags/transforms/delete_run_options.xslt" processor="XSLT">
  220. <!-- do not remove any report options-->
  221. <root>
  222. <exclude>reportOptions</exclude>
  223. <xsl:copy-of select="/root/env"/>
  224. </root>
  225. </xts:transform>
  226. </xts:replace>
  227. <xts:delete select="/root/env/param[@name='run_options_visited']"/>
  228. <!-- delete the override flags-->
  229. <xts:delete select="/root/env/param[@name='override_default_options']"/>
  230. <xts:delete select="/root/env/param[@name='override_default_content_task_options']"/>
  231. <xts:delete select="/root/env/param[@name='index_update_task_options_collapsed']"/>
  232. <xts:delete select="/root/env/param[@name='deployment_options_collapsed']"/>
  233. </xts:sequence>
  234. </xsl:template>
  235. </xsl:stylesheet>
  236. </xts:block>
  237. <!--
  238. ================================================================================
  239. encode the agent items again
  240. ================================================================================
  241. -->
  242. <xts:block id="encode_agent_definition" dependency="updateDefaultAgentOptions" processor="XSLT" type="exec">
  243. <xts:logicsheet path="logicsheets/portal.xsl"/>
  244. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:pf="http://developer.cognos.com/schemas/xts/pf" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt" exclude-result-prefixes="pf xtsext">
  245. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  246. <pf:serialize-xml/>
  247. <pf:variables/>
  248. <xsl:template match="/">
  249. <xts:sequence>
  250. <xsl:variable name="markup">
  251. <xsl:call-template name="serialize-xml">
  252. <xsl:with-param name="node-set" select="/root/agent_definition"/>
  253. </xsl:call-template>
  254. </xsl:variable>
  255. <xts:append select="/root/env">
  256. <param name="agent_definition_blob">
  257. <xsl:value-of select="xtsext:cafaction( concat('sign_wrap_setpassportid_', $passport, '_settemplatename_encodeagentdefinition_settemplateid_seqagenttasks002'), xtsext:web64encode( string( $markup ), true()))"/>
  258. </param>
  259. </xts:append>
  260. </xts:sequence>
  261. </xsl:template>
  262. </xsl:stylesheet>
  263. </xts:block>
  264. <!--
  265. ===============================================================================================
  266. render-page: Proxy display and redirect to dialogAdapter
  267. ===============================================================================================
  268. -->
  269. <xts:block id="renderPage" mode="output" processor="XSLT" type="exec" mimeType="text/html" dependency="encode_agent_definition">
  270. <!-- portal specific information -->
  271. <xts:logicsheet path="logicsheets/portal.xsl"/>
  272. <!-- Get the new theme logicsheets. -->
  273. <xts:logicsheet path="logicsheets/presentation/dialog/presentation.xsl"/>
  274. <!-- apply the form logic -->
  275. <xts:logicsheet path="logicsheets/formlogic.xslt"/>
  276. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  277. xmlns:utml="http://developer.cognos.com/schemas/xts/logicsheet/xslt/formlogic/"
  278. xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
  279. xmlns:dp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/presentation/"
  280. xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
  281. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  282. exclude-result-prefixes="utml dp pf xtsext">
  283. <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no"/>
  284. <!-- add any theme variables -->
  285. <pf:variables/>
  286. <xsl:variable name="agent_definition_blob"><xsl:value-of select="xtsext:javascriptencode(string(/root/env/param[@name='agent_definition_blob']))"/></xsl:variable>
  287. <xsl:template match="/">
  288. <xsl:text disable-output-escaping='yes'>&lt;!DOCTYPE html></xsl:text><dp:page>
  289. <dp:script>
  290. <script type="text/javascript" src="../ags/layout.js">//</script>
  291. <script type="text/javascript" src="../ags/cmd.js">//</script>
  292. <script type="text/javascript">
  293. function init() {
  294. var msgFrame = getMessageIFrame();
  295. //fix "Set Default Options for All Tasks..." options do not get saved issue.
  296. if (msgFrame.document.getElementsByName("agent_definition_blob").length != 0) {
  297. msgFrame.d2.removeChild(msgFrame.document.getElementsByName("agent_definition_blob")[0]);
  298. }
  299. if (msgFrame != null) {
  300. var elmnt = msgFrame.document.getElementById("agent_definition_blob");
  301. if (elmnt == null) {
  302. elmnt = createHiddenInput(msgFrame.document, "agent_definition_blob", "");
  303. msgFrame.d2.appendChild(elmnt);
  304. }
  305. elmnt.value = '<xsl:value-of select="$agent_definition_blob"/>';
  306. }
  307. //determine whether the report option summary should be updated. This will be seen in the report task in the
  308. //Options:
  309. var renderDefaultOptions = false;
  310. if (msgFrame.document.pform.override_default_run_options==undefined || (msgFrame.document.pform.override_default_run_options!==undefined &amp;&amp; msgFrame.document.pform.override_default_run_options.value=='false')) {
  311. renderDefaultOptions = true;
  312. }
  313. if (renderDefaultOptions) {
  314. updateReportOptionSummary();
  315. }
  316. getConfigFrame().hideDialogFrame();
  317. }
  318. function updateReportOptionSummary() {
  319. var msgFrame = getMessageIFrame();
  320. var doc = getFrameDocument(msgFrame);
  321. var holder = new Object();
  322. holder['agent_definition_blob'] = '<xsl:value-of select="/root/env/param[@name='agent_definition_blob']"/>';
  323. holder['m'] = "/ags/summaryBarUpdate.xts";
  324. holder['forceSOAPFault'] = "false";
  325. var dispatcher = new parent.cf.XHTTPDispatcher(updateReportOptionSummaryHTML, holder);
  326. parent.cf.applicationActionManager.httpStart();
  327. try{
  328. dispatcher.dispatch();
  329. }catch(ex){
  330. parent.cf.applicationActionManager.httpStop();
  331. }
  332. }
  333. function updateReportOptionSummaryHTML(responseArray)
  334. {
  335. var responseXML = responseArray[0];
  336. var responseText = responseArray[1];
  337. parent.cf.applicationActionManager.httpStop();
  338. var summaryNode = responseXML.getElementsByTagName("reportOptionSummary");
  339. var summaryText = parent.getTextNodeValue(summaryNode[0]);
  340. var parsedResponse = parent.cf.parseResponse(responseXML);
  341. // decide what we're going to do
  342. if (parsedResponse.isLogonFault()) {
  343. parent.cf.doPassportExpire(responseXML.childNodes[1],null,parsedResponse);
  344. } else if (parsedResponse.isSoapFault()) {
  345. // we have a fault which is a genuine fault fault
  346. parent.cf.doSOAPFault(responseXML.childNodes[1],null,parsedResponse);
  347. } else if (summaryText &amp;&amp; summaryText != '') {
  348. // do the HTML injection - should be interesting
  349. var messageIFrame = getMessageIFrame();
  350. var messageIFrame_doc = getFrameDocument(messageIFrame);
  351. var summaryCell = messageIFrame_doc.getElementById("reportOptionSummaryContents");
  352. if (summaryCell) {
  353. var textNode = summaryCell.firstChild;
  354. textNode.nodeValue=summaryText;
  355. }
  356. }
  357. }
  358. </script>
  359. </dp:script>
  360. </dp:page>
  361. </xsl:template>
  362. </xsl:stylesheet>
  363. </xts:block>
  364. <!--
  365. ===============================================================================================
  366. debug - display debug information
  367. ===============================================================================================
  368. -->
  369. <xts:block id="debug" dependency="renderPage" condition=".[/root/session/param[@name='debug']='1']" type="exec" mode="output" processor="XSLT" mandatory="false" mimeType="text/html">
  370. <xts:logicsheet path="logicsheets/debuglogic.xslt"/>
  371. <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">
  372. <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no"/>
  373. <xsl:template match="/">
  374. <dbg:dumpxml select="/root"/>
  375. </xsl:template>
  376. </xsl:stylesheet>
  377. </xts:block>
  378. </xts:morphlet>