executeCommand.xslt 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435
  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. 2014, 2016
  6. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  7. -->
  8. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  9. version="1.0"
  10. xmlns:xts="http://developer.cognos.com/schemas/xts/"
  11. xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/"
  12. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  13. xmlns:bus="http://developer.cognos.com/schemas/bibus/1/"
  14. xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
  15. xmlns:dpl="http://developer.cognos.com/schemas/xts/logicsheets/deployment/"
  16. xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
  17. xmlns:x="x"
  18. exclude-result-prefixes="xsl xts send xtsext bus pf dpl cm x">
  19. <xsl:output method="xml" version="1.0" encoding="UTF-8"
  20. indent="no" />
  21. <!-- add any theme variables -->
  22. <pf:variables />
  23. <dpl:variables />
  24. <dpl:getDefaultPackageName />
  25. <xsl:variable name="packagesInContent" select="/root/packagesInContent/cm:queryResponse" />
  26. <xsl:variable name="isTenantExport" select="key('env-param', 'm_exportMethod') = 'selectTenants'"/>
  27. <xsl:variable name="isTenantImport" select="key('env-param', 'm_class') = 'importDeployment' and key('env-param', 'selectedTenants')"/>
  28. <xsl:variable name="isECSExport" select="key('env-param', 'm_exportMethod') = 'entireContentStore'"/>
  29. <xsl:template match="/root">
  30. <xts:sequence>
  31. <!--<xsl:choose> -->
  32. <xsl:if test="key('env-param','m_deploymentWizardPage') = 'select-archive'">
  33. <xsl:if test="key('env-param','m_namesSet')">
  34. <xts:delete select="/root/env/param[@name='m_namesSet']" />
  35. </xsl:if>
  36. <xts:append select="/root/env">
  37. <param name="m_namesSet">false</param>
  38. </xts:append>
  39. </xsl:if>
  40. <xsl:if test="key('env-param','m_packagesOp') = 'update-packages' or key('env-param','m_packagesOp') = 'updateProperties'">
  41. <xsl:if test="key('env-param','target_guid') != '' and key('env-param','m_package_target_renamed') = 'true'">
  42. <xsl:variable name="targetName">
  43. <xsl:for-each select="/root/env/param[starts-with( @name, 'm_d_default_name_' )]">
  44. <xsl:variable name="cL">
  45. <xsl:value-of select="substring-after((./@name),'m_d_default_name_')" />
  46. </xsl:variable>
  47. <xsl:variable name="cDTN">
  48. <xsl:value-of select="." />
  49. </xsl:variable>
  50. <multilingualToken xml:lang="{$cL}" type="cm:multilingualToken">
  51. <xsl:value-of select="$cDTN" />
  52. </multilingualToken>
  53. </xsl:for-each>
  54. </xsl:variable>
  55. <xsl:variable name="targetLocation">
  56. <cm:targetLocation>
  57. <xsl:choose>
  58. <xsl:when test="key('env-param', 'target_location')">
  59. <xsl:value-of select="key('env-param', 'target_location')" />
  60. </xsl:when>
  61. <xsl:otherwise>
  62. <xsl:value-of select="key('env-param', 'so.defaultLocation')" />
  63. </xsl:otherwise>
  64. </xsl:choose>
  65. </cm:targetLocation>
  66. </xsl:variable>
  67. <xsl:variable name="targetSearchPath">
  68. <!--cm:searchPath -->
  69. <xsl:choose>
  70. <xsl:when test="key('env-param', 'so.searchPath')">
  71. <xsl:value-of select="key('env-param', 'so.searchPath')" />
  72. </xsl:when>
  73. <xsl:otherwise>
  74. <xsl:value-of select="key('env-param', 'so.defaultLocation')" />
  75. </xsl:otherwise>
  76. </xsl:choose>
  77. <!--/cm:searchPath -->
  78. </xsl:variable>
  79. <xsl:variable name="guid" select="key('env-param','target_guid')" />
  80. <xsl:variable name="ancestorSearchPath" select="key('env-param','so.defaultLocation')" />
  81. <xts:replace>
  82. <xsl:attribute name="select">
  83. <xsl:text>/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='package']/*/*[local-name()='guid' and string(.) = '</xsl:text>
  84. <xsl:value-of select="$guid" />
  85. <xsl:text>']/../*[local-name() = 'targetName']</xsl:text>
  86. </xsl:attribute>
  87. <cm:targetName>
  88. <xsl:copy-of select="$targetName" />
  89. </cm:targetName>
  90. </xts:replace>
  91. <xts:replace>
  92. <xsl:attribute name="select">
  93. <xsl:text>/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='package']/*/*[local-name()='guid' and string(.) = '</xsl:text>
  94. <xsl:value-of select="$guid" />
  95. <xsl:text>']/../*[local-name()='targetLocation']</xsl:text>
  96. </xsl:attribute>
  97. <xsl:copy-of select="$targetLocation" />
  98. </xts:replace>
  99. <xsl:if test="key('env-param', 'new_ancestors')">
  100. <xts:replace>
  101. <xsl:attribute name="select">
  102. <xsl:text>/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='package']/*/*[local-name()='guid' and string(.) = '</xsl:text>
  103. <xsl:value-of select="$guid" />
  104. <xsl:text>']/../*[local-name()='ancestors']</xsl:text>
  105. </xsl:attribute>
  106. <xts:transform name="XMLDecode">
  107. <xsl:value-of select="xtsext:web64decode( xtsext:cafaction('sign_unwrap', string( key('env-param', 'new_ancestors'))), true() )" />
  108. </xts:transform>
  109. </xts:replace>
  110. </xsl:if>
  111. <xsl:if test="key('env-param','m_class') = 'importDeployment' ">
  112. <!-- Get new target names as a node-set -->
  113. <xsl:variable name="newTargetName" select="/root/env/param[starts-with( @name, 'm_d_default_name_' )]" />
  114. <!-- update import specific target related nodes -->
  115. <xts:replace>
  116. <xsl:attribute name="select">
  117. <xsl:text>/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='package']/*/*[local-name()='guid' and string(.) = '</xsl:text>
  118. <xsl:value-of select="$guid" />
  119. <xsl:text>']/../*[local-name() = 'inTargetContent']</xsl:text>
  120. </xsl:attribute>
  121. <xsl:choose>
  122. <xsl:when test="$packagesInContent/*[cm:name/cm:multilingualToken=$newTargetName]">
  123. <cm:inTargetContent>true</cm:inTargetContent>
  124. </xsl:when>
  125. <xsl:otherwise>
  126. <cm:inTargetContent>false</cm:inTargetContent>
  127. </xsl:otherwise>
  128. </xsl:choose>
  129. </xts:replace>
  130. <xts:replace>
  131. <xsl:attribute name="select">
  132. <xsl:text>/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='package']/*/*[local-name()='guid' and string(.) = '</xsl:text>
  133. <xsl:value-of select="$guid" />
  134. <xsl:text>']/../*[local-name() = 'modificationTime']</xsl:text>
  135. </xsl:attribute>
  136. <cm:modificationTime>
  137. <xsl:value-of select="$packagesInContent/*[cm:name/cm:multilingualToken=$newTargetName]/cm:modificationTime" />
  138. </cm:modificationTime>
  139. </xts:replace>
  140. </xsl:if>
  141. <xts:delete select="/root/env/param[starts-with( @name, 'm_d_default_name_' )]" />
  142. <xts:delete select="/root/env/param[@name = 'target_guid']" />
  143. <xts:delete select="/root/env/param[@name = 'm_target_name']" />
  144. <xts:delete select="/root/env/param[@name = 'target_rename']" />
  145. <xts:delete select="/root/env/param[@name = 'target_source_name']" />
  146. <xts:delete select="/root/env/param[@name = 'target_location']" />
  147. <xts:delete select="/root/env/param[@name = 'so.searchPath']" />
  148. <xts:delete select="/root/env/param[@name = 'so.storeID']" />
  149. <xts:delete select="/root/env/param[@name = 'so.defaultLocation']" />
  150. <xts:delete select="/root/env/param[@name = 'm_package_target_renamed']" />
  151. </xsl:if>
  152. <!-- set enabled -->
  153. <xsl:for-each select="/root/cm:deploymentOptionsUI/cm:deploymentOption[@name='package']/*">
  154. <xsl:variable name="guid" select="x:guid" />
  155. <xts:replace>
  156. <xsl:attribute name="select">
  157. <xsl:text>/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='package']/*/*[local-name()='guid' and string(.) = '</xsl:text>
  158. <xsl:value-of select="$guid" />
  159. <xsl:text>']/../*[local-name() = 'enabled' ]</xsl:text>
  160. </xsl:attribute>
  161. <xsl:choose>
  162. <xsl:when test="/root/env/param[contains(@name, 'packageDisabledPrefix')] = $guid ">
  163. <cm:enabled>false</cm:enabled>
  164. </xsl:when>
  165. <xsl:otherwise>
  166. <cm:enabled>true</cm:enabled>
  167. </xsl:otherwise>
  168. </xsl:choose>
  169. </xts:replace>
  170. </xsl:for-each>
  171. <xsl:if test="key('env-param','m_class') = 'importDeployment'">
  172. <!-- selected packages -->
  173. <xsl:for-each select="/root/env/param[contains(@name, 'availablePackagesCheckboxPrefix')]">
  174. <xsl:variable name="guid" select="." />
  175. <xts:replace>
  176. <xsl:attribute name="select">
  177. <xsl:text>/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='package']/*/*[local-name()='guid' and string(.) = '</xsl:text>
  178. <xsl:value-of select="$guid" />
  179. <xsl:text>']/../*[local-name() = 'inPackagesToInclude']</xsl:text>
  180. </xsl:attribute>
  181. <cm:inPackagesToInclude>true
  182. </cm:inPackagesToInclude>
  183. </xts:replace>
  184. </xsl:for-each>
  185. <!-- remove unselected packages -->
  186. <xsl:for-each select="/root/cm:deploymentOptionsUI/cm:deploymentOption[@name='package']/*">
  187. <xsl:variable name="guid" select="x:guid" />
  188. <xts:replace>
  189. <xsl:attribute name="select">
  190. <xsl:text>/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='package']/*/*[local-name()='guid' and string(.) = '</xsl:text>
  191. <xsl:value-of select="$guid" />
  192. <xsl:text>']/../*[local-name() = 'inPackagesToInclude' ]</xsl:text>
  193. </xsl:attribute>
  194. <xsl:choose>
  195. <xsl:when test="/root/env/param[contains(@name, 'availablePackagesCheckboxPrefix')] = $guid ">
  196. <cm:inPackagesToInclude>true</cm:inPackagesToInclude>
  197. </xsl:when>
  198. <xsl:otherwise>
  199. <cm:inPackagesToInclude>false</cm:inPackagesToInclude>
  200. </xsl:otherwise>
  201. </xsl:choose>
  202. </xts:replace>
  203. </xsl:for-each>
  204. <xsl:for-each select="/root/env/param[contains(@name, 'availablePackagesCheckboxPrefix')]">
  205. <xsl:variable name="param-name" select="@name" />
  206. <xts:delete>
  207. <xsl:attribute name="select">
  208. <xsl:text>/root/env/param[@name='</xsl:text>
  209. <xsl:value-of select="$param-name" />
  210. <xsl:text>']</xsl:text>
  211. </xsl:attribute>
  212. </xts:delete>
  213. </xsl:for-each>
  214. </xsl:if>
  215. <!-- other options -->
  216. <xts:replace select="/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='packageOutputs'] ">
  217. <xsl:apply-templates mode="boolean-option" select="/root/cm:deploymentOptionsUI/cm:deploymentOption[@name='packageOutputs']" />
  218. </xts:replace>
  219. <xts:replace select="/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='packageOutputsConflictResolution'] ">
  220. <xsl:apply-templates mode="conflict-resolution-option" select="/root/cm:deploymentOptionsUI/cm:deploymentOption[@name='packageOutputsConflictResolution']" />
  221. </xts:replace>
  222. <xts:replace select="/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='packageDatasetOutputs'] ">
  223. <xsl:apply-templates mode="boolean-option" select="/root/cm:deploymentOptionsUI/cm:deploymentOption[@name='packageDatasetOutputs']" />
  224. </xts:replace>
  225. <xts:replace select="/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='packageDatasetOutputsConflictResolution'] ">
  226. <xsl:apply-templates mode="conflict-resolution-option" select="/root/cm:deploymentOptionsUI/cm:deploymentOption[@name='packageDatasetOutputsConflictResolution']" />
  227. </xts:replace>
  228. <xts:replace select="/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='packageHistories'] ">
  229. <xsl:apply-templates mode="boolean-option" select="/root/cm:deploymentOptionsUI/cm:deploymentOption[@name='packageHistories']" />
  230. </xts:replace>
  231. <xts:replace select="/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='packageHistoriesConflictResolution'] ">
  232. <xsl:apply-templates mode="conflict-resolution-option" select="/root/cm:deploymentOptionsUI/cm:deploymentOption[@name='packageHistoriesConflictResolution']" />
  233. </xts:replace>
  234. <xts:replace select="/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='packageSchedules'] ">
  235. <xsl:apply-templates mode="boolean-option" select="/root/cm:deploymentOptionsUI/cm:deploymentOption[@name='packageSchedules']" />
  236. </xts:replace>
  237. <xts:replace select="/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='packageSchedulesConflictResolution'] ">
  238. <xsl:apply-templates mode="conflict-resolution-option" select="/root/cm:deploymentOptionsUI/cm:deploymentOption[@name='packageSchedulesConflictResolution']" />
  239. </xts:replace>
  240. </xsl:if>
  241. <xsl:if test="/root/env/param[@name='m_packagesOp'] = 'updateDirectory' or /root/env/param[@name='m_packagesOp'] = 'updateProperties'">
  242. <xts:replace select="/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='namespaceSelect'] ">
  243. <xsl:apply-templates mode="boolean-option" select="/root/cm:deploymentOptionsUI/cm:deploymentOption[@name='namespaceSelect']" />
  244. </xts:replace>
  245. <xts:replace select="/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='namespaceConflictResolution'] ">
  246. <xsl:apply-templates mode="conflict-resolution-option" select="/root/cm:deploymentOptionsUI/cm:deploymentOption[@name='namespaceConflictResolution']" />
  247. </xts:replace>
  248. <xts:replace select="/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='dataSourceSelect'] ">
  249. <xsl:apply-templates mode="boolean-option" select="/root/cm:deploymentOptionsUI/cm:deploymentOption[@name='dataSourceSelect']" />
  250. </xts:replace>
  251. <xts:replace select="/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='dataSourceSignonSelect'] ">
  252. <xsl:apply-templates mode="boolean-option" select="/root/cm:deploymentOptionsUI/cm:deploymentOption[@name='dataSourceSignonSelect']" />
  253. </xts:replace>
  254. <xts:replace select="/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='dataSourceConflictResolution'] ">
  255. <xsl:apply-templates mode="conflict-resolution-option" select="/root/cm:deploymentOptionsUI/cm:deploymentOption[@name='dataSourceConflictResolution']" />
  256. </xts:replace>
  257. <xts:replace select="/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='recipientsSelect'] ">
  258. <xsl:apply-templates mode="boolean-option" select="/root/cm:deploymentOptionsUI/cm:deploymentOption[@name='recipientsSelect']" />
  259. </xts:replace>
  260. <xts:replace select="/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='recipientsConflictResolution'] ">
  261. <xsl:apply-templates mode="conflict-resolution-option" select="/root/cm:deploymentOptionsUI/cm:deploymentOption[@name='recipientsConflictResolution']" />
  262. </xts:replace>
  263. </xsl:if>
  264. <xsl:if test="key('env-param', 'm_packagesOp') = 'updateOwnership' or key('env-param', 'm_wizardOp') = 'updateOwnership' or key('env-param', 'm_packagesOp') = 'updateProperties'">
  265. <xts:replace select="/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='objectPolicies'] ">
  266. <xsl:apply-templates mode="boolean-option" select="/root/cm:deploymentOptionsUI/cm:deploymentOption[@name='objectPolicies']" />
  267. </xts:replace>
  268. <xts:replace select="/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='objectPoliciesConflictResolution'] ">
  269. <xsl:apply-templates mode="conflict-resolution-option" select="/root/cm:deploymentOptionsUI/cm:deploymentOption[@name='objectPoliciesConflictResolution']" />
  270. </xts:replace>
  271. <xts:replace select="/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='namespaceThirdParty'] ">
  272. <xsl:apply-templates mode="boolean-option" select="/root/cm:deploymentOptionsUI/cm:deploymentOption[@name='namespaceThirdParty']" />
  273. </xts:replace>
  274. <xts:replace select="/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='takeOwnership'] ">
  275. <xsl:apply-templates mode="take-ownership" select="/root/cm:deploymentOptionsUI/cm:deploymentOption[@name='takeOwnership']" />
  276. </xts:replace>
  277. <xts:replace select="/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='ownershipConflictResolution'] ">
  278. <xsl:apply-templates mode="conflict-resolution-option" select="/root/cm:deploymentOptionsUI/cm:deploymentOption[@name='ownershipConflictResolution']" />
  279. </xts:replace>
  280. </xsl:if>
  281. <xsl:variable name="mustUpdateExportOptions"
  282. select="contains(' update-method updateArchive updateProperties ', concat(' ', key('env-param', 'm_packagesOp'), ' ')) or key('env-param', 'm_wizardOp') = 'update-method'"/>
  283. <xsl:if test="$mustUpdateExportOptions">
  284. <!-- if packagesInContent has never been created and deployment
  285. method has been changed to 'selectedContent' then remove deploymentOptionsUI
  286. if it exists -->
  287. <xsl:if test="$deployment-method='export' and key('env-param','m_entireContentStoreSelect')">
  288. <xts:replace select="/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='entireContentStoreSelect'] ">
  289. <xsl:apply-templates mode="method-option" select="/root/cm:deploymentOptionsUI/cm:deploymentOption[@name='entireContentStoreSelect']" />
  290. </xts:replace>
  291. </xsl:if>
  292. <xts:replace select="/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='entireContentStoreReplace'] ">
  293. <xsl:choose>
  294. <xsl:when test="$isTenantExport">
  295. <xsl:apply-templates mode="force-off-boolean-option" select="/root/cm:deploymentOptionsUI/cm:deploymentOption[@name='entireContentStoreReplace']" />
  296. </xsl:when>
  297. <xsl:when test="$isECSExport">
  298. <xsl:apply-templates mode="force-on-boolean-option" select="/root/cm:deploymentOptionsUI/cm:deploymentOption[@name='entireContentStoreReplace']" />
  299. </xsl:when>
  300. <xsl:otherwise>
  301. <xsl:apply-templates mode="boolean-option" select="/root/cm:deploymentOptionsUI/cm:deploymentOption[@name='entireContentStoreReplace']" />
  302. </xsl:otherwise>
  303. </xsl:choose>
  304. </xts:replace>
  305. <xts:replace select="/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='personalDataSelect']">
  306. <xsl:apply-templates mode="boolean-option" select="/root/cm:deploymentOptionsUI/cm:deploymentOption[@name='personalDataSelect']" />
  307. </xts:replace>
  308. <xsl:if test="$isTenantExport">
  309. <xsl:if test="key('env-param', 'm_exportMethod') = 'selectTenants'">
  310. <xts:replace select="/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='tenants']">
  311. <cm:deploymentOption name="tenants" class="cm:deploymentOptionStringArray">
  312. <xsl:for-each select="key('env-param', 'selectedTenants')[. != '']">
  313. <cm:value><xsl:value-of select="."/></cm:value>
  314. </xsl:for-each>
  315. <xsl:if test="key('env-param', 'selectPublicTenant') = 'true'">
  316. <cm:value></cm:value>
  317. </xsl:if>
  318. </cm:deploymentOption>
  319. </xts:replace>
  320. </xsl:if>
  321. </xsl:if>
  322. <xsl:if test="key('env-param', 'm_tenantsContentConflictResolution')">
  323. <xts:replace select="/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='tenantsContentConflictResolution']">
  324. <cm:deploymentOption name="tenantsContentConflictResolution" class="cm:deploymentOptionStringArray">
  325. <cm:value><xsl:value-of select="key('env-param', 'm_tenantsContentConflictResolution')"/></cm:value>
  326. </cm:deploymentOption>
  327. </xts:replace>
  328. </xsl:if>
  329. </xsl:if>
  330. <xsl:if test="/root/env/param[@name='m_packagesOp'] = 'updateArchive' or key('env-param', 'm_packagesOp') = 'updateProperties'">
  331. <xts:replace select="/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='archive'] ">
  332. <xsl:apply-templates mode="archive" select="/root/cm:deploymentOptionsUI/cm:deploymentOption[@name='archive']" />
  333. </xts:replace>
  334. <xts:replace select="/root/*[local-name()='deploymentOptionsUI']/*[local-name()='deploymentOption' and @name='archiveOverwrite'] ">
  335. <xsl:apply-templates mode="archive-overwrite" select="/root/cm:deploymentOptionsUI/cm:deploymentOption[@name='archiveOverwrite']" />
  336. </xts:replace>
  337. </xsl:if>
  338. <!--</xsl:choose> -->
  339. <xts:delete select="/root/env/param[@name = 'so.return.m']" />
  340. </xts:sequence>
  341. </xsl:template>
  342. <xsl:template mode="boolean-option" match="*">
  343. <xsl:variable name="optionName" select="@name" />
  344. <xsl:variable name="variableName" select="concat('m_',$optionName)" />
  345. <xsl:variable name="sensitiveDataExists">
  346. <xsl:value-of select="count(/root/cm:deploymentOptionsUI/cm:deploymentOption/*[cm:objectClass='account' or cm:objectClass='namespace' or cm:objectClass='namespaceFolder'])>0"/>
  347. </xsl:variable>
  348. <xsl:copy>
  349. <xsl:copy-of select="@*" />
  350. <xsl:choose>
  351. <xsl:when test="(key('env-param',$variableName) and key('env-param',$variableName) != 'false') or ($variableName = 'm_namespaceThirdParty' and $sensitiveDataExists = 'true') or ($variableName = 'm_personalDataSelect' and $sensitiveDataExists = 'true')">
  352. <xsl:text>true</xsl:text>
  353. </xsl:when>
  354. <xsl:otherwise>
  355. <xsl:text>false</xsl:text>
  356. </xsl:otherwise>
  357. </xsl:choose>
  358. </xsl:copy>
  359. </xsl:template>
  360. <xsl:template mode="force-on-boolean-option" match="*">
  361. <xsl:copy>
  362. <xsl:copy-of select="@*" />
  363. <xsl:text>true</xsl:text>
  364. </xsl:copy>
  365. </xsl:template>
  366. <xsl:template mode="force-off-boolean-option" match="*">
  367. <xsl:copy>
  368. <xsl:copy-of select="@*" />
  369. <xsl:text>false</xsl:text>
  370. </xsl:copy>
  371. </xsl:template>
  372. <xsl:template mode="conflict-resolution-option" match="*">
  373. <xsl:variable name="optionName" select="@name" />
  374. <xsl:variable name="variableName" select="concat('m_',$optionName)" />
  375. <xsl:copy>
  376. <xsl:copy-of select="@*" />
  377. <xsl:choose>
  378. <xsl:when test="key('env-param',$variableName) and key('env-param',$variableName) = 'keep'">
  379. <xsl:text>keep</xsl:text>
  380. </xsl:when>
  381. <xsl:otherwise>
  382. <xsl:text>replace</xsl:text>
  383. </xsl:otherwise>
  384. </xsl:choose>
  385. </xsl:copy>
  386. </xsl:template>
  387. <xsl:template mode="take-ownership" match="*">
  388. <xsl:copy>
  389. <xsl:copy-of select="@*" />
  390. <xsl:choose>
  391. <xsl:when test="key('env-param','m_deployment_ownership')='user'">
  392. <xsl:text>true</xsl:text>
  393. </xsl:when>
  394. <xsl:otherwise>
  395. <xsl:text>false</xsl:text>
  396. </xsl:otherwise>
  397. </xsl:choose>
  398. </xsl:copy>
  399. </xsl:template>
  400. <xsl:template mode="method-option" match="*">
  401. <xsl:variable name="optionName" select="@name" />
  402. <xsl:variable name="variableName" select="concat('m_',$optionName)" />
  403. <xsl:copy>
  404. <xsl:copy-of select="@*" />
  405. <xsl:choose>
  406. <xsl:when test="key('env-param',$variableName)='true'">
  407. <xsl:text>true</xsl:text>
  408. </xsl:when>
  409. <xsl:otherwise>
  410. <xsl:text>false</xsl:text>
  411. </xsl:otherwise>
  412. </xsl:choose>
  413. </xsl:copy>
  414. </xsl:template>
  415. <xsl:template mode="archive-overwrite" match="*">
  416. <xsl:copy>
  417. <xsl:copy-of select="@*" />
  418. <xsl:text>true</xsl:text>
  419. </xsl:copy>
  420. </xsl:template>
  421. <xsl:template mode="archive" match="*">
  422. <xsl:copy>
  423. <xsl:copy-of select="@*" />
  424. <xsl:value-of select="key('env-param','m_archive')" />
  425. </xsl:copy>
  426. </xsl:template>
  427. </xsl:stylesheet>