generateDefaults.xslt 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  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, 2011
  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. <xsl:stylesheet version="1.0"
  13. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  14. xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
  15. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  16. xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
  17. xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  18. xmlns:xts="http://developer.cognos.com/schemas/xts/"
  19. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  20. exclude-result-prefixes="xsd xsi xts">
  21. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  22. <xsl:key name="env-param" match="/root/env/param" use="@name"/>
  23. <pf:variables/>
  24. <xsl:template match="params" priority="1">
  25. <xsl:variable name="timeZone" select="timeZone"/>
  26. <xsl:variable name="hasSchedCapabilityByDay" select="hasSchedCapabilityByDay"/>
  27. <xsl:variable name="hasSchedCapabilityByWeek" select="hasSchedCapabilityByWeek"/>
  28. <xsl:variable name="hasSchedCapabilityByMonth" select="hasSchedCapabilityByMonth"/>
  29. <xsl:variable name="hasSchedCapabilityByYear" select="hasSchedCapabilityByYear"/>
  30. <xsl:variable name="hasSchedCapabilityByTrigger" select="hasSchedCapabilityByTrigger"/>
  31. <!-- choose the default tab to display on a new scheduled based on the user's capabilities -->
  32. <xsl:variable name="defaultTab">
  33. <xsl:choose>
  34. <xsl:when test="$hasSchedCapabilityByWeek='true'">weekly</xsl:when>
  35. <xsl:when test="$hasSchedCapabilityByMonth='true'">monthly</xsl:when>
  36. <xsl:when test="$hasSchedCapabilityByYear='true'">yearly</xsl:when>
  37. <xsl:when test="$hasSchedCapabilityByDay='true'">daily</xsl:when>
  38. <xsl:when test="$hasSchedCapabilityByTrigger='true'">trigger</xsl:when>
  39. </xsl:choose>
  40. </xsl:variable>
  41. <xsl:if test="not(env/param[@name='m_sp_endType'])">
  42. <param name="m_sp_endType">indefinite</param>
  43. </xsl:if>
  44. <xsl:choose>
  45. <!-- Defaults for By Day Tab -->
  46. <xsl:when test="starts-with(env/param[@name='m_sp_type'],'daily') or $defaultTab='daily'">
  47. <xsl:if test="not(env/param[@name='m_sp_dailyPeriod'])">
  48. <param name="m_sp_dailyPeriod">day</param>
  49. </xsl:if>
  50. <xsl:if test="not(env/param[@name='m_sp_everyNminutes'])">
  51. <param name="m_sp_everyNminutes">1</param>
  52. </xsl:if>
  53. <xsl:if test="not(env/param[@name='m_sp_everyNhours'])">
  54. <param name="m_sp_everyNhours">1</param>
  55. </xsl:if>
  56. <xsl:if test="not(env/param[@name='m_sp_everyNdays'])">
  57. <param name="m_sp_everyNdays">1</param>
  58. </xsl:if>
  59. <xsl:if test="not(key('env-param', 'm_sp_type'))">
  60. <param name="m_sp_type">daily</param>
  61. </xsl:if>
  62. </xsl:when>
  63. <!-- Defaults for By Month Tab -->
  64. <xsl:when test="env/param[@name='m_sp_type']='monthly' or $defaultTab='monthly'">
  65. <xsl:if test="not(env/param[@name='sub_type'])">
  66. <param name="sub_type">relative</param>
  67. </xsl:if>
  68. <xsl:if test="not(env/param[@name='m_sp_everyNmonthsAbs'])">
  69. <param name="m_sp_everyNmonthsAbs">1</param>
  70. </xsl:if>
  71. <xsl:if test="not(env/param[@name='m_sp_everyNmonthsRel'])">
  72. <param name="m_sp_everyNmonthsRel">1</param>
  73. </xsl:if>
  74. <xsl:if test="not(env/param[@name='m_sp_monthlyAbsoluteDay'])">
  75. <param name="m_sp_monthlyAbsoluteDay"><xsl:value-of select="env/param[@name='current_day']"/></param>
  76. </xsl:if>
  77. <xsl:if test="not(env/param[@name='m_sp_monthlyRelativeDay'])">
  78. <param name="m_sp_monthlyRelativeDay"><xsl:value-of select="xtsext:getDateInformation(string($timeZone), string('DAY_OF_WEEK'))"/></param>
  79. </xsl:if>
  80. <xsl:if test="not(env/param[@name='m_sp_monthlyRelativeWeek'])">
  81. <param name="m_sp_monthlyRelativeWeek"><xsl:value-of select="translate(xtsext:getDateInformation(string($timeZone), string('DAY_OF_WEEK_IN_MONTH')), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz' )"/></param>
  82. </xsl:if>
  83. <xsl:if test="not(key('env-param', 'm_sp_type'))">
  84. <param name="m_sp_type">monthly</param>
  85. </xsl:if>
  86. </xsl:when>
  87. <!-- Defaults for By Year Tab -->
  88. <xsl:when test="env/param[@name='m_sp_type']='yearly' or $defaultTab='yearly'">
  89. <xsl:if test="not(env/param[@name='sub_type'])">
  90. <param name="sub_type">relative</param>
  91. </xsl:if>
  92. <xsl:if test="not(env/param[@name='m_sp_yearlyAbsoluteDay'])">
  93. <param name="m_sp_yearlyAbsoluteDay"><xsl:value-of select="env/param[@name='current_day']"/></param>
  94. </xsl:if>
  95. <xsl:if test="not(env/param[@name='m_sp_yearlyAbsoluteMonth'])">
  96. <param name="m_sp_yearlyAbsoluteMonth"><xsl:value-of select="env/param[@name='current_month']"/></param>
  97. </xsl:if>
  98. <xsl:if test="not(env/param[@name='m_sp_yearlyRelativeDay'])">
  99. <param name="m_sp_yearlyRelativeDay"><xsl:value-of select="xtsext:getDateInformation(string($timeZone), string('DAY_OF_WEEK'))"/></param>
  100. </xsl:if>
  101. <xsl:if test="not(env/param[@name='m_sp_yearlyRelativeWeek'])">
  102. <param name="m_sp_yearlyRelativeWeek"><xsl:value-of select="translate(xtsext:getDateInformation(string($timeZone), string('DAY_OF_WEEK_IN_MONTH')), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz' )"/></param>
  103. </xsl:if>
  104. <xsl:if test="not(env/param[@name='m_sp_yearlyRelativeMonth'])">
  105. <param name="m_sp_yearlyRelativeMonth"><xsl:value-of select="env/param[@name='current_month']"/></param>
  106. </xsl:if>
  107. <xsl:if test="not(key('env-param', 'm_sp_type'))">
  108. <param name="m_sp_type">yearly</param>
  109. </xsl:if>
  110. </xsl:when>
  111. <!-- Defaults for By Week Tab -->
  112. <xsl:when test="$defaultTab='weekly'">
  113. <xsl:if test="not(env/param[@name='m_sp_type'])">
  114. <param name="m_sp_type">weekly</param>
  115. </xsl:if>
  116. <xsl:if test="not(env/param[@name='m_sp_everyNweeks'])">
  117. <param name="m_sp_everyNweeks">1</param>
  118. </xsl:if>
  119. <xsl:if test="not(env/param[starts-with(@name,'m_sp_weekly')])">
  120. <xsl:variable name="day_of_week">
  121. <xsl:value-of select="xtsext:getDateInformation(string($timeZone),string('DAY_OF_WEEK'))"/>
  122. </xsl:variable>
  123. <param>
  124. <xsl:choose>
  125. <xsl:when test="$day_of_week='monday'">
  126. <xsl:attribute name="name">m_sp_weeklyMonday</xsl:attribute>
  127. </xsl:when>
  128. <xsl:when test="$day_of_week='tuesday'">
  129. <xsl:attribute name="name">m_sp_weeklyTuesday</xsl:attribute>
  130. </xsl:when>
  131. <xsl:when test="$day_of_week='wednesday'">
  132. <xsl:attribute name="name">m_sp_weeklyWednesday</xsl:attribute>
  133. </xsl:when>
  134. <xsl:when test="$day_of_week='thursday'">
  135. <xsl:attribute name="name">m_sp_weeklyThursday</xsl:attribute>
  136. </xsl:when>
  137. <xsl:when test="$day_of_week='friday'">
  138. <xsl:attribute name="name">m_sp_weeklyFriday</xsl:attribute>
  139. </xsl:when>
  140. <xsl:when test="$day_of_week='saturday'">
  141. <xsl:attribute name="name">m_sp_weeklySaturday</xsl:attribute>
  142. </xsl:when>
  143. <xsl:when test="$day_of_week='sunday'">
  144. <xsl:attribute name="name">m_sp_weeklySunday</xsl:attribute>
  145. </xsl:when>
  146. </xsl:choose>
  147. <xsl:text>true</xsl:text>
  148. </param>
  149. </xsl:if>
  150. </xsl:when>
  151. <xsl:when test="$defaultTab='trigger'">
  152. <xsl:if test="not(key('env-param', 'm_sp_type'))">
  153. <param name="m_sp_type">trigger</param>
  154. </xsl:if>
  155. </xsl:when>
  156. </xsl:choose>
  157. <xsl:if test="not($defaultTab='trigger')">
  158. <xsl:if test="not(key('env-param', 'm_sp_intradayRecurrenceIntervalNum'))">
  159. <param name="m_sp_intradayRecurrenceIntervalNum">1</param>
  160. </xsl:if>
  161. <xsl:if test="not(key('env-param', 'p_intradayRecurrenceStart'))">
  162. <param name="p_intradayRecurrenceStart">09:00:00</param>
  163. </xsl:if>
  164. <xsl:if test="not(key('env-param', 'p_intradayRecurrenceEnd'))">
  165. <param name="p_intradayRecurrenceEnd">17:00:00</param>
  166. </xsl:if>
  167. </xsl:if>
  168. </xsl:template>
  169. </xsl:stylesheet>