threshold.xslt 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. Licensed Materials - Property of IBM
  4. IBM Cognos Products: cogadmin
  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. <xsl:stylesheet version="1.0"
  13. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  14. xmlns:ui="http://developer.cognos.com/schemas/ui/presentation/markup/"
  15. xmlns:uic="http://developer.cognos.com/schemas/uic/presentation/markup/"
  16. xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  17. xmlns:muws2="http://docs.oasis-open.org/wsdm/muws2-2.xsd"
  18. xmlns:xts="http://developer.cognos.com/schemas/xts/"
  19. xmlns:resource-prop="http://developer.cognos.com/admin/properties"
  20. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  21. xmlns:ns1="http://docs.oasis-open.org/wsdm/muws1-2.xsd"
  22. xmlns:admui="http://developer.cognos.com/schemas/xts/admui"
  23. xmlns:wsrf-rp="http://docs.oasis-open.org/wsrf/rp-2"
  24. exclude-result-prefixes="wsrf-rp resource-prop admui xtsext xsl ns1 uic SOAP-ENV muws2 xts">
  25. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
  26. <xsl:key name="env-param" match="/root/env/param" use="@name"/>
  27. <!-- display variables -->
  28. <admui:variables/>
  29. <ui:commonTemplates/>
  30. <xsl:template match="/root" priority="2">
  31. <uic:fragment>
  32. <xsl:variable name="style" select="key('env-param', 'style')"/>
  33. <xsl:variable name="UpperSidePoor" select="/root/*[local-name() = 'thresholds']/*[local-name() = 'ReadThresholdsResponse']/*[local-name() = 'UpperSidePoor']"/>
  34. <xsl:variable name="UpperSideAverage" select="/root/*[local-name() = 'thresholds']/*[local-name() = 'ReadThresholdsResponse']/*[local-name() = 'UpperSideAverage']"/>
  35. <xsl:variable name="LowerSidePoor" select="/root/*[local-name() = 'thresholds']/*[local-name() = 'ReadThresholdsResponse']/*[local-name() = 'LowerSidePoor']"/>
  36. <xsl:variable name="LowerSideAverage" select="/root/*[local-name() = 'thresholds']/*[local-name() = 'ReadThresholdsResponse']/*[local-name() = 'LowerSideAverage']"/>
  37. <xsl:variable name="thresholdPropertyName" select="key('env-param', 'thresholdPropertyName')"/>
  38. <xsl:variable name="thresholdResourceID" select="xtsext:javascriptencode(xtsext:urlencode(key('env-param', 'thresholdResourceID')))"/>
  39. <xsl:variable name="groupName" select="key('env-param', 'thresholdGroupName')"/>
  40. <xsl:variable name="thresholdPropertyCaption" select="key('env-param', 'thresholdPropertyCaption')"/>
  41. <xsl:variable name="exclusive_UpperPoor" select="$UpperSidePoor/@exclusive = 'true'"/>
  42. <xsl:variable name="exclusive_UpperAverage" select="$UpperSideAverage/@exclusive = 'true'"/>
  43. <xsl:variable name="exclusive_LowerAverage" select="$LowerSideAverage/@exclusive = 'true'"/>
  44. <xsl:variable name="exclusive_LowerPoor" select="$LowerSidePoor/@exclusive = 'true'"/>
  45. <xsl:variable name="propertyType" select="xtsext:javascriptencode(string(key('env-param', 'propertyType')))"/>
  46. <!-- variable indicating which table type we will display -->
  47. <xsl:variable name="tableType">
  48. <xsl:choose>
  49. <xsl:when test="$UpperSidePoor != '' and $UpperSideAverage != '' and $LowerSidePoor != '' and $LowerSideAverage != ''">
  50. <xsl:value-of select="'middle'"/>
  51. </xsl:when>
  52. <xsl:when test="$LowerSidePoor != '' and $LowerSideAverage != ''">
  53. <xsl:value-of select="'high'"/>
  54. </xsl:when>
  55. <xsl:when test="$UpperSidePoor != '' and $UpperSideAverage != ''">
  56. <xsl:value-of select="'low'"/>
  57. </xsl:when>
  58. <xsl:otherwise>
  59. <xsl:value-of select="'none'"/>
  60. </xsl:otherwise>
  61. </xsl:choose>
  62. </xsl:variable>
  63. <script type="text/javascript">
  64. <!-- stop unexpected propagations -->
  65. //stopDefaultPropagation(_THIS_);
  66. var _THIS_eType = '';
  67. var _THIS_eClass = {};
  68. var _THIS_mValue = 99999999999999;
  69. var _THIS_valueBase = 1;
  70. var _THIS_propertyType = '<xsl:value-of select="$propertyType"/>';
  71. switch (_THIS_propertyType) {
  72. case 'xs:duration':
  73. _THIS_eType = 'DurationEditor';
  74. _THIS_eClass = DurationEditor;
  75. break;
  76. case 'cdm:percentage':
  77. _THIS_eType = 'PercentageEditor';
  78. _THIS_eClass = PercentageEditor;
  79. _THIS_mValue = 99.99;
  80. _THIS_valueBase = 1/10000;
  81. break;
  82. default:
  83. _THIS_eType = 'DefaultEditor';
  84. _THIS_eClass = DefaultEditor;
  85. }
  86. </script>
  87. <xsl:choose>
  88. <xsl:when test="$style='tooltip'">
  89. <script type="javascript">
  90. _THIS_tooltip = new ThresholdsTooltip({
  91. container: _THIS_.div,
  92. type: '<xsl:value-of select="$tableType"/>',
  93. propertyType: _THIS_propertyType,
  94. valueBase: _THIS_valueBase,
  95. thresholdPropertyName: '<xsl:value-of select="xtsext:javascriptencode(string($thresholdPropertyName))"/>',
  96. thresholdResourceID: '<xsl:value-of select="$thresholdResourceID"/>',
  97. upperSidePoorValue: '<xsl:value-of select="xtsext:javascriptencode(string($UpperSidePoor))"/>',
  98. upperSideAvgValue: '<xsl:value-of select="xtsext:javascriptencode(string($UpperSideAverage))"/>',
  99. lowerSideAvgValue: '<xsl:value-of select="xtsext:javascriptencode(string($LowerSideAverage))"/>',
  100. lowerSidePoorValue: '<xsl:value-of select="xtsext:javascriptencode(string($LowerSidePoor))"/>',
  101. upperSidePoorEx: <xsl:value-of select="xtsext:javascriptencode(string($exclusive_UpperPoor))"/>,
  102. upperSideAvgEx: <xsl:value-of select="xtsext:javascriptencode(string($exclusive_UpperAverage))"/>,
  103. lowerSideAvgEx: <xsl:value-of select="xtsext:javascriptencode(string($exclusive_LowerAverage))"/>,
  104. lowerSidePoorEx: <xsl:value-of select="xtsext:javascriptencode(string($exclusive_LowerPoor))"/>,
  105. imagesURL: '<admui:imageURL type="cogadmin"/>',
  106. i18n: {
  107. poorLabel: '<xts:string encode="javascript" id="IDS_ADM_TOP_HEALTH_POOR"/>',
  108. avgLabel: '<xts:string encode="javascript" id="IDS_ADM_TOP_HEALTH_AVERAGE"/>',
  109. goodLabel: '<xts:string encode="javascript" id="IDS_ADM_TOP_HEALTH_GOOD"/>',
  110. hoursLabel: '<xts:string encode="javascript" id="IDS_FMT_HRS"/>',
  111. minutesLabel: '<xts:string encode="javascript" id="IDS_FMT_MINS"/>',
  112. secondsLabel: '<xts:string encode="javascript" id="IDS_FMT_SECS"/>'
  113. }
  114. });
  115. //ensure the tooltip is positioned properly after the response.
  116. _THIS_.onupdate = function() {
  117. if (ui_current_tooltip) {
  118. ui_current_tooltip.position();
  119. }
  120. }
  121. </script>
  122. </xsl:when>
  123. <xsl:otherwise>
  124. <script type="text/javascript">
  125. var _THIS_isSubmit = false;
  126. var _THIS_threshMgr = null;
  127. _THIS_.addEventListener("fragment.retrieve.after", "_THIS_afterRetrieve");
  128. _THIS_afterRetrieve = function(evt) {
  129. if (_THIS_isSubmit) {
  130. raiseReloadEvent(_THIS_);
  131. } else {
  132. _THIS_init('<xsl:value-of select="$tableType"/>')
  133. }
  134. }
  135. function _THIS_init(type) {
  136. var dialogId = "_THIS_threshDialog";
  137. var dialogTitle = '<xts:string encode="javascript" id="IDS_ADM_THR_DIALOG_TITLE"><xts:param name="grpName"><xsl:value-of select="xtsext:javascriptencode($groupName)"/></xts:param><xts:param name="objName"><xsl:value-of select="xtsext:javascriptencode(string($thresholdPropertyCaption))"/></xts:param></xts:string>';
  138. var paramUIStyles = 1;
  139. var paramUIX = 168;
  140. var paramUIY = 10;
  141. var paramUIDx = 550;
  142. var paramUIDy = 385;
  143. //fixed a IE issue of reopening a threshold editor.
  144. if ($(dialogId))
  145. document.body.removeChild($(dialogId));
  146. var uiDialog = new ui_dialog(dialogId,dialogTitle,paramUIStyles,paramUIX,paramUIY,paramUIDx,paramUIDy);
  147. uiDialog.show();
  148. _THIS_threshMgr = new CogAdminThresholdManager({
  149. type: type,
  150. editorType: _THIS_eType,
  151. editorClass: _THIS_eClass,
  152. thresholdPropertyName: '<xsl:value-of select="xtsext:javascriptencode(string($thresholdPropertyName))"/>',
  153. thresholdResourceID: '<xsl:value-of select="$thresholdResourceID"/>',
  154. upperSidePoorValue: '<xsl:value-of select="xtsext:javascriptencode(string($UpperSidePoor))"/>',
  155. upperSideAvgValue: '<xsl:value-of select="xtsext:javascriptencode(string($UpperSideAverage))"/>',
  156. lowerSideAvgValue: '<xsl:value-of select="xtsext:javascriptencode(string($LowerSideAverage))"/>',
  157. lowerSidePoorValue: '<xsl:value-of select="xtsext:javascriptencode(string($LowerSidePoor))"/>',
  158. upperSidePoorEx: <xsl:value-of select="xtsext:javascriptencode(string($exclusive_UpperPoor))"/>,
  159. upperSideAvgEx: <xsl:value-of select="xtsext:javascriptencode(string($exclusive_UpperAverage))"/>,
  160. lowerSideAvgEx: <xsl:value-of select="xtsext:javascriptencode(string($exclusive_LowerAverage))"/>,
  161. lowerSidePoorEx: <xsl:value-of select="xtsext:javascriptencode(string($exclusive_LowerPoor))"/>,
  162. imagesURL: '<admui:imageURL type="cogadmin"/>',
  163. maxValue: _THIS_mValue,
  164. i18n: {
  165. poorLabel: '<xts:string encode="javascript" id="IDS_ADM_TOP_HEALTH_POOR"/>',
  166. avgLabel: '<xts:string encode="javascript" id="IDS_ADM_TOP_HEALTH_AVERAGE"/>',
  167. goodLabel: '<xts:string encode="javascript" id="IDS_ADM_TOP_HEALTH_GOOD"/>',
  168. valuesHeaderLabel: '<xts:string encode="javascript" id="IDS_ADM_THR_HEADER_VALUES"/>',
  169. scoreHeaderLabel: '<xts:string encode="javascript" id="IDS_ADM_TOP_HEALTH_TOOLTIP"/>',
  170. maxLabel: '<xts:string encode="javascript" id="IDS_ADM_THR_MAXIMUM_VALUE"/>',
  171. minLabel: '<xts:string encode="javascript" id="IDS_ADM_THR_MINIMUM_VALUE"/>',
  172. validateMsgNotInteger: '<xts:string encode="javascript" id="IDS_ADM_THR_DIALOG_INVALID_NOT_INTEGER"/>',
  173. validateMsgInvalidRange:'<xts:string encode="javascript" id="IDS_ADM_THR_DIALOG_INVALID_RANGE"/>',
  174. validateMsgOutOfBounds: '<xts:string encode="javascript" id="IDS_ADM_THR_DIALOG_INVALID_OUT_OF_BOUNDS"><xts:param name="maxValue">' + _THIS_mValue + '</xts:param></xts:string>',
  175. validateMsgNotNumeric: '<xts:string encode="javascript" id="IDS_ADM_THR_DIALOG_INVALID_NOT_NUMERIC"/>',
  176. validateMsgBadFormat: '<xts:string encode="javascript" id="IDS_ADM_THR_DIALOG_INVALID_BAD_FORMAT"/>',
  177. validateMsgBadFormatP: '<xts:string encode="javascript" id="IDS_ADM_THR_DIALOG_INVALID_BAD_FORMAT_P"/>',
  178. validateMsgExceedMax: '<xts:string encode="javascript" id="IDS_ADM_THR_DIALOG_INVALID_EXCEED_MAX"/>',
  179. hoursLabel: '<xts:string encode="javascript" id="IDS_FMT_HRS"/>',
  180. minutesLabel: '<xts:string encode="javascript" id="IDS_FMT_MINS"/>',
  181. secondsLabel: '<xts:string encode="javascript" id="IDS_FMT_SECS"/>',
  182. hoursLabelAbbr: '<xts:string encode="javascript" id="IDS_FMT_HRS_ABBR"/>',
  183. minutesLabelAbbr: '<xts:string encode="javascript" id="IDS_FMT_MINS_ABBR"/>',
  184. secondsLabelAbbr: '<xts:string encode="javascript" id="IDS_FMT_SECS_ABBR"/>',
  185. UpperGoodLabel: '<xts:string encode="javascript" id="IDS_ADM_THR_EDITOR_LABEL_UPPER_GOOD"/>',
  186. LowerGoodLabel: '<xts:string encode="javascript" id="IDS_ADM_THR_EDITOR_LABEL_LOWER_GOOD"/>',
  187. UpperAverageLabel: '<xts:string encode="javascript" id="IDS_ADM_THR_EDITOR_LABEL_UPPER_AVERAGE"/>',
  188. LowerAverageLabel: '<xts:string encode="javascript" id="IDS_ADM_THR_EDITOR_LABEL_LOWER_AVERAGE"/>',
  189. UpperPoorLabel: '<xts:string encode="javascript" id="IDS_ADM_THR_EDITOR_LABEL_UPPER_POOR"/>',
  190. LowerPoorLabel: '<xts:string encode="javascript" id="IDS_ADM_THR_EDITOR_LABEL_LOWER_POOR"/>',
  191. labelTemplate: '<xts:string encode="javascript" id="IDS_ADM_THR_EDITOR_LABEL_TEMPLATE"><xts:param name="label">#LABEL#</xts:param><xts:param name="units">#UNITS#</xts:param><xts:param name="range">#RANGE#</xts:param></xts:string>',
  192. toggleLabel: '<xts:string encode="javascript" id="IDS_ADM_THR_TOGGLE"><xts:param name="target">#TARGET#</xts:param></xts:string>'
  193. }
  194. },dialogId+"content",uiDialog);
  195. //TODO: get rid of these two lines as soon as ui_common.js is updated. trakker #577249.
  196. if (backing = $(dialogId+"iframe"))
  197. backing.style.position = "";
  198. uiDialog.initTabStops();
  199. uiDialog.processCommand = function (btnType){
  200. if (btnType == "ok"){
  201. if (_THIS_threshMgr.validate()) {
  202. if (_THIS_threshMgr.hasChanged()) {
  203. _THIS_isSubmit = true;
  204. _THIS_.retrieve(_THIS_threshMgr.getSubmitString());
  205. }
  206. } else {
  207. return false;
  208. }
  209. }
  210. uiDialog.destroy();
  211. return true;
  212. };
  213. }
  214. </script>
  215. </xsl:otherwise>
  216. </xsl:choose>
  217. </uic:fragment>
  218. </xsl:template>
  219. </xsl:stylesheet>