subscriptions.xts 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407
  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, 2014
  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/" messageBase="messages/portal.xml, messages/portalRL.xml">
  13. <!--
  14. ===============================================================================================
  15. Saves cut/copied entries in a user session - Only executes after a cut or a copy operation.
  16. ===============================================================================================
  17. -->
  18. <xts:block id="groupEdit" path="portal/set_clipboard.xml" processor="XSLT" type="exec" mandatory="false" condition=".[/root/env/param[@name='editentries']]">
  19. <xts:logicsheet path="logicsheets/portal.xsl"/>
  20. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  21. </xts:block>
  22. <!-- ======================================================== -->
  23. <!-- Session Management -->
  24. <!-- ======================================================== -->
  25. <!-- Reads session-sensitive info from CM -->
  26. <xts:block processor="XSLT" type="exec" mandatory="false"
  27. id="refreshSession"
  28. path="portal/cc/read_session.xml"
  29. condition=".[
  30. string(/root/cookies/cookie[@name = 'cc_session']) = ''
  31. or /root/env/param[@name='m_reload']
  32. or /root/env/param[@name='m_root'] ]">
  33. <xts:logicsheet path="logicsheets/cm-logic.xsl"/>
  34. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  35. </xts:block>
  36. <xts:block id="impersonateTenant" path="/portal/tenants/impersonateTenant.xsl" processor="XSLT" type="exec" mode="interpret" condition=".[/root/env/param[@name='impersonateTenantId']!='']" mandatory="false">
  37. <xts:logicsheet path="logicsheets/portal.xsl"/>
  38. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  39. </xts:block>
  40. <!-- Update the <session> element for this request. -->
  41. <xts:block id="buildSession" path="portal/session.xml" dependency="refreshSession impersonateTenant" processor="XSLT" type="exec"
  42. condition=".[
  43. /root/newSession
  44. or /root/env/param[@name='ui']
  45. or /root/env/param[@name='d']
  46. or /root/env/param[starts-with(@name,'m_s_')]
  47. or /root/env/param[@name = 'resetSort'] ]"
  48. mandatory="false"/>
  49. <!-- Save changes to the state info in a cookie -->
  50. <xts:block mode="interpret" processor="XSLT" type="exec"
  51. id="setSession"
  52. path="portal/set_session.xml"
  53. dependency="groupEdit buildSession getContent"
  54. condition=".[/root/updateSession]"
  55. mandatory="false"/>
  56. <!--
  57. ======================================
  58. Generate the search expression TO BE Implemented ib35
  59. ======================================
  60. -->
  61. <xts:block id="generateSearchExp" processor="XSLT" type="exec" dependency="buildSession" condition=".[/root/env/param[@name='search']]" mandatory="false">
  62. <xts:logicsheet path="logicsheets/cm-logic.xsl"/>
  63. <xts:logicsheet path="logicsheets/searchlogic.xslt"/>
  64. <xsl:stylesheet version="1.0"
  65. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  66. xmlns:search="http://developer.cognos.com/schemas/xts/logicsheets/xslt/searchlogic/"
  67. xmlns:xts="http://developer.cognos.com/schemas/xts/"
  68. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  69. xmlns:cml="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/cml/1/"
  70. xmlns:out="dummy-uri">
  71. <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="no"/>
  72. <xsl:key name="session-param" match="/root/session/param" use="@name"/>
  73. <cml:object-predicates/>
  74. <xsl:template match="/root">
  75. <xsl:variable name="path">
  76. <xsl:choose>
  77. <xsl:when test=" /root/env/param[@name='m_subfldr'] != '' ">
  78. <xsl:text/>storeID("<xsl:value-of select="/root/env/param[@name='m_subfldr']"/>")<xsl:text/>
  79. </xsl:when>
  80. <xsl:otherwise>
  81. <xsl:value-of select="concat(key('session-param', 'e_hp'), '/subscriptionFolder')"/>
  82. </xsl:otherwise>
  83. </xsl:choose>
  84. </xsl:variable>
  85. <xts:sequence>
  86. <search:gen-search-exp>
  87. <search:defaultTypes>
  88. <search:defaultType>subscriptionFolder</search:defaultType>
  89. <search:defaultType>reportDataServiceAgentDefinition</search:defaultType>
  90. </search:defaultTypes>
  91. </search:gen-search-exp>
  92. </xts:sequence>
  93. </xsl:template>
  94. </xsl:stylesheet>
  95. </xts:block>
  96. <!--
  97. =============================================
  98. Request properties of the subscription folder
  99. =============================================
  100. -->
  101. <xts:block id="getContent" processor="XSLT" type="exec" dependency="generateSearchExp">
  102. <xts:logicsheet path="logicsheets/cm-logic.xsl"/>
  103. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  104. <xsl:stylesheet version="1.0"
  105. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  106. xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
  107. xmlns:cml="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/cml/1/"
  108. xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/"
  109. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt">
  110. <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="no"/>
  111. <xsl:key name="env-param" match="/root/env/param" use="@name"/>
  112. <xsl:key name="session-param" match="/root/session/param" use="@name"/>
  113. <cml:object-predicates/>
  114. <xsl:template match="root">
  115. <xsl:variable name="userPrefs" select="/root/session/param"/>
  116. <xsl:variable name="userPrefsDefault" select="/root/system/param[@name='defaultPortalPreferences']"/>
  117. <xsl:variable name="maxObjects">
  118. <xsl:choose>
  119. <xsl:when test="string(/root/env/param[@name = 'm_pagerto']) !='' and string(/root/env/param[@name = 'm_pagerfrom']) !=''">
  120. <xsl:value-of select="(/root/env/param[@name = 'm_pagerto'] - /root/env/param[@name = 'm_pagerfrom']) + 1"/>
  121. </xsl:when>
  122. <xsl:when test="$userPrefs[@name='linesPerPage']!=''">
  123. <xsl:value-of select="$userPrefs[@name='linesPerPage']"/>
  124. </xsl:when>
  125. <xsl:otherwise>
  126. <xsl:value-of select="$userPrefsDefault/pref[@name='lines']"/>
  127. </xsl:otherwise>
  128. </xsl:choose>
  129. </xsl:variable>
  130. <xsl:variable name="skipObjects">
  131. <xsl:choose>
  132. <xsl:when test="/root/env/param[@name = 'm_pagerfrom'] and /root/env/param[@name = 'm_pagerfrom']!=''">
  133. <xsl:value-of select="(/root/env/param[@name = 'm_pagerfrom'])-1"/>
  134. </xsl:when>
  135. <xsl:when test="key('env-param', 'm_section') != ''">
  136. <xsl:choose>
  137. <xsl:when test="key('env-param', 'm_section') != '-1'">
  138. <xsl:value-of select="((key('env-param', 'm_section')) -1)"/>
  139. </xsl:when>
  140. <xsl:otherwise>
  141. <xsl:value-of select="($maxObjects) * -1"/>
  142. </xsl:otherwise>
  143. </xsl:choose>
  144. </xsl:when>
  145. <xsl:otherwise>0</xsl:otherwise>
  146. </xsl:choose>
  147. </xsl:variable>
  148. <xsl:variable name="path">
  149. <xsl:choose>
  150. <xsl:when test=" /root/env/param[@name='m_subfldr'] != '' ">
  151. <xsl:text/>storeID("<xsl:value-of select="/root/env/param[@name='m_subfldr']"/>")<xsl:text/>
  152. </xsl:when>
  153. <xsl:otherwise>
  154. <xsl:value-of select="concat(key('session-param', 'e_hp'), '/subscriptionFolder')"/>
  155. </xsl:otherwise>
  156. </xsl:choose>
  157. </xsl:variable>
  158. <xsl:if test="string(/root/env/param[@name='m_path']) = ''">
  159. <xts:sequence>
  160. <xts:append select="/root/env">
  161. <param name="m_path">
  162. <xsl:value-of select="$path"/>
  163. </param>
  164. </xts:append>
  165. </xts:sequence>
  166. </xsl:if>
  167. <xts:sequence>
  168. <xts:append>
  169. <cmContent>
  170. <xsl:choose>
  171. <xsl:when test="key('env-param', 'search')"> <!-- only from rule tab -->
  172. <xsl:if test="/root/search">
  173. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  174. <send:request provider="cm">
  175. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  176. <!-- always get root subFldr for home to use cf:do-the-path-link -->
  177. <cm:query xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
  178. <cm:requests>
  179. <cm:query>
  180. <cm:search>~/subscriptionFolder</cm:search>
  181. <cm:properties>
  182. <cm:property name="defaultName"/>
  183. <cm:property name="searchPath"/>
  184. <cm:property name="storeID"/>
  185. </cm:properties>
  186. </cm:query>
  187. <cm:query>
  188. <cm:search>
  189. <xsl:value-of select="$path"/><xsl:value-of select="$visibility-predicate"/>
  190. </cm:search>
  191. <cm:properties>
  192. <cm:property name="defaultName"/>
  193. <cm:property name="searchPath"/>
  194. <cm:property name="ancestors"/>
  195. <cm:property name="hidden"/>
  196. </cm:properties>
  197. </cm:query>
  198. <xsl:if test="/root/search/expression">
  199. <cm:query>
  200. <cm:search>
  201. <xsl:value-of select="/root/search/expression"/><xsl:value-of select="$visibility-predicate"/>
  202. </cm:search>
  203. <cm:properties>
  204. <cm:property name="defaultName"/>
  205. <cm:property name="ancestors"/>
  206. <cm:property name="searchPath"/>
  207. <cm:property name="permissions"/>
  208. <cm:property name="storeID"/>
  209. <cm:property name="modificationTime"/>
  210. <cm:property name="position"/>
  211. <cm:property name="hidden"/>
  212. </cm:properties>
  213. </cm:query>
  214. </xsl:if>
  215. </cm:requests>
  216. </cm:query>
  217. </xts:transform>
  218. </send:request>
  219. </xts:transform>
  220. </xsl:if>
  221. </xsl:when>
  222. <!-- rule (subscription) tab -->
  223. <xsl:when test="key('env-param', 'm_isRule')">
  224. <xts:transform src="portal/subscriptions/transforms/build-subscription.xslt" processor="XSLT">
  225. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  226. <send:request provider="cm">
  227. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  228. <!-- always get root subFldr for home to use cf:do-the-path-link -->
  229. <cm:query xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
  230. <cm:requests>
  231. <cm:query>
  232. <cm:search>~/subscriptionFolder</cm:search>
  233. <cm:properties>
  234. <cm:property name="defaultName"/>
  235. <cm:property name="searchPath"/>
  236. </cm:properties>
  237. </cm:query>
  238. <cm:query>
  239. <cm:search>
  240. <xsl:value-of select="$path"/><xsl:value-of select="$visibility-predicate"/>
  241. </cm:search>
  242. <cm:properties>
  243. <cm:property name="defaultName"/>
  244. <cm:property name="ancestors"/>
  245. <cm:property name="searchPath"/>
  246. <cm:property name="permissions"/>
  247. <cm:property name="storeID"/>
  248. <cm:property name="hidden"/>
  249. </cm:properties>
  250. </cm:query>
  251. <cm:query>
  252. <cm:search>
  253. <xsl:choose>
  254. <xsl:when test="/root/search/expression">
  255. <xsl:value-of select="/root/search/expression"/><xsl:value-of select="$visibility-predicate"/>
  256. </xsl:when>
  257. <xsl:otherwise>
  258. <xsl:text/><xsl:value-of select="concat($path, '/reportDataServiceAgentDefinition', $visibility-predicate, '/schedule')"/> | <xsl:value-of select="concat($path,'/subscriptionFolder')"/><xsl:text/>
  259. </xsl:otherwise>
  260. </xsl:choose>
  261. </cm:search>
  262. <cm:properties>
  263. <cm:property name="defaultName"/>
  264. <cm:property name="periodicalProducer"/>
  265. <cm:property name="storeID"/>
  266. <cm:property name="searchPath"/>
  267. <cm:property name="permissions"/>
  268. <cm:property name="parent"/>
  269. <cm:property name="position"/>
  270. <cm:property name="active"/>
  271. <cm:property name="hidden"/>
  272. </cm:properties>
  273. <cm:options schemaInfo="false">
  274. <cm:maxObjects><xsl:value-of select="$maxObjects + 1"/></cm:maxObjects>
  275. <cm:skipObjects><xsl:value-of select="$skipObjects"/></cm:skipObjects>
  276. <cm:refProps>
  277. <cm:refProp refPropName="periodicalProducer">
  278. <cm:properties>
  279. <cm:property name="defaultName"/>
  280. <cm:property name="ancestors"/>
  281. </cm:properties>
  282. </cm:refProp>
  283. <cm:refProp refPropName="parent">
  284. <cm:properties>
  285. <cm:property name="defaultName"/>
  286. <cm:property name="searchPath"/>
  287. <cm:property name="permissions"/>
  288. <cm:property name="storeID"/>
  289. <cm:property name="defaultScreenTip"/>
  290. <cm:property name="hidden"/>
  291. </cm:properties>
  292. </cm:refProp>
  293. </cm:refProps>
  294. </cm:options>
  295. </cm:query>
  296. <xsl:if test="not(/root/search/expression)">
  297. <cm:query>
  298. <cm:search><xsl:text/><xsl:value-of select="concat($path, '/reportDataServiceAgentDefinition/*')"/></cm:search>
  299. <cm:properties>
  300. <cm:property/>
  301. </cm:properties>
  302. </cm:query>
  303. </xsl:if>
  304. </cm:requests>
  305. </cm:query>
  306. </xts:transform>
  307. </send:request>
  308. </xts:transform>
  309. </xts:transform>
  310. </xsl:when>
  311. <!-- alert tab -->
  312. <xsl:otherwise>
  313. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  314. <send:request provider="cm">
  315. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  316. <cm:query xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
  317. <cm:requests>
  318. <cm:query>
  319. <cm:search>//*[containsReferences(@notificationList,~)]</cm:search>
  320. <cm:properties>
  321. <cm:property name="defaultName"/>
  322. <cm:property name="searchPath"/>
  323. <cm:property name="storeID"/>
  324. <cm:property name="ancestors"/>
  325. <cm:property name="position"/>
  326. <cm:property name="hidden"/>
  327. <cm:property name="base"/>
  328. </cm:properties>
  329. <cm:options schemaInfo="false">
  330. <cm:refProps>
  331. <cm:refProp refPropName="base">
  332. <cm:properties>
  333. <cm:property name="defaultName"/>
  334. <cm:property name="searchPath"/>
  335. <cm:property name="permissions"/>
  336. </cm:properties>
  337. </cm:refProp>
  338. </cm:refProps>
  339. <cm:maxObjects><xsl:value-of select="$maxObjects + 1"/></cm:maxObjects>
  340. <cm:skipObjects><xsl:value-of select="$skipObjects"/></cm:skipObjects>
  341. </cm:options>
  342. </cm:query>
  343. </cm:requests>
  344. </cm:query>
  345. </xts:transform>
  346. </send:request>
  347. </xts:transform>
  348. </xsl:otherwise>
  349. </xsl:choose>
  350. </cmContent>
  351. </xts:append>
  352. <xts:delete select="/root/env/param[@name='pagerfrom' or @name='pagerto' or @name='pagerfrom_d' or @name='pagerto_d']"/>
  353. </xts:sequence>
  354. </xsl:template>
  355. </xsl:stylesheet>
  356. </xts:block>
  357. <xts:block id="classNames" type="exec" mode="input" processor="XML" path="/portal/uiExtensions.xml" >
  358. <xts:logicsheet path="/logicsheets/uiobjects/uiobjects_names.xslt"/>
  359. </xts:block>
  360. <!-- ============================================================================= -->
  361. <xts:block id="render-page" path="portal/subscriptions/subscriptions.xslt" dependency="getContent classNames" mode="output" processor="XSLT" type="exec" mimeType="text/html" mandatory="false">
  362. <xts:logicsheet path="logicsheets/portal.xsl"/>
  363. <xts:logicsheet path="logicsheets/permissions.xsl"/>
  364. <xts:logicsheet path="logicsheets/presentation/main/framework.xsl"/>
  365. <xts:logicsheet path="logicsheets/presentation/main/presentation.xsl"/>
  366. <xts:logicsheet path="logicsheets/presentation/main/search.xsl"/>
  367. <xts:logicsheet path="logicsheets/presentation/layout.xsl"/>
  368. <xts:logicsheet path="logicsheets/presentation/controls/framework.xsl"/>
  369. <xts:logicsheet path="logicsheets/presentation/controls/presentation.xsl"/>
  370. <xts:logicsheet path="logicsheets/presentation/dialog/presentation.xsl"/>
  371. <xts:logicsheet path="logicsheets/presentation/touch_up.xslt"/>
  372. </xts:block>
  373. <!--
  374. =============================================
  375. Output debug dump
  376. =============================================
  377. -->
  378. <xts:block id="debug" type="exec" mode="output" processor="XSLT" condition=".[/root/env/param[@name='d'] = '1' or /root/session/param[@name='debug'] = '1']" mandatory="false" mimeType="text/html" dependency="render-page">
  379. <!-- get the debug logic sheet -->
  380. <xts:logicsheet path="logicsheets/debuglogic.xslt"/>
  381. <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">
  382. <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no" omit-xml-declaration="yes"/>
  383. <xsl:template match="/">
  384. <dbg:dumpxml select="/root"/>
  385. </xsl:template>
  386. </xsl:stylesheet>
  387. </xts:block>
  388. </xts:morphlet>