scripts.xslt 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. Licensed Materials - Property of IBM
  4. BI and PM: qs
  5. (C) Copyright IBM Corp. 2001, 2017
  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" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt" xmlns:xts="http://developer.cognos.com/schemas/xts/" xmlns:pf="http://developer.cognos.com/schemas/xts/pf">
  13. <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no"/>
  14. <pf:variables/>
  15. <xsl:key name="env-param" match="/root/env/param" use="@name"/>
  16. <xsl:variable name="skin" select="concat($webRoot, '/skins/', /root/user/param[@name='skin'])"/>
  17. <xsl:template match="/">
  18. <script type="text/javascript">
  19. <xsl:attribute name="src"><xsl:value-of select="$webRoot"/>/rv/cvConstants.js</xsl:attribute>
  20. <xsl:text/>//<xsl:text/>
  21. </script>
  22. <script type="text/javascript">
  23. <xsl:attribute name="src"><xsl:value-of select="$webRoot"/>/rv/cvui.js</xsl:attribute>
  24. <xsl:text/>//<xsl:text/>
  25. </script>
  26. <script type="text/javascript">
  27. <xsl:attribute name="src"><xsl:value-of select="$webRoot"/>/rv/selectionContext.js</xsl:attribute>
  28. <xsl:text/>//<xsl:text/>
  29. </script>
  30. <script type="text/javascript">
  31. <xsl:attribute name="src"><xsl:value-of select="$webRoot"/>/rv/CCognosViewer.js</xsl:attribute>
  32. <xsl:text/>//<xsl:text/>
  33. </script>
  34. <script type="text/javascript">
  35. <xsl:attribute name="src"><xsl:value-of select="$webRoot"/>/rv/CCognosViewerUtilities.js</xsl:attribute>
  36. <xsl:text/>//<xsl:text/>
  37. </script>
  38. <script type="text/javascript">
  39. <xsl:attribute name="src"><xsl:value-of select="$webRoot"/>/rv/cvServerRequest.js</xsl:attribute>
  40. <xsl:text/>//<xsl:text/>
  41. </script>
  42. <script type="text/javascript">
  43. <xsl:attribute name="src"><xsl:value-of select="$webRoot"/>/rv/cvactions.js</xsl:attribute>
  44. <xsl:text/>//<xsl:text/>
  45. </script>
  46. <script type="text/javascript">
  47. <xsl:attribute name="src"><xsl:value-of select="$webRoot"/>/rv/GUtil.js</xsl:attribute>
  48. <xsl:text/>//<xsl:text/>
  49. </script>
  50. <script type="text/javascript">
  51. <xsl:attribute name="src"><xsl:value-of select="$webRoot"/>/rv/viewer.qs.core.js</xsl:attribute>
  52. <xsl:text/>//<xsl:text/>
  53. </script>
  54. <script type="text/javascript">
  55. <xsl:attribute name="src"><xsl:value-of select="$webRoot"/>/drill/CSelectionContextBuilder.js</xsl:attribute>
  56. <xsl:text/>//<xsl:text/>
  57. </script>
  58. <script type="text/javascript">
  59. <xsl:attribute name="src"><xsl:value-of select="$webRoot"/>/common/framework/notification/CObserver.js</xsl:attribute>
  60. <xsl:text/>//<xsl:text/>
  61. </script>
  62. <!-- Need to load CSuppressMenu.js here so cvui.js is loaded before. -->
  63. <script type="text/javascript">
  64. <xsl:attribute name="src"><xsl:value-of select="$webRoot"/>/qs/classes/CSuppressMenu.js</xsl:attribute>
  65. <xsl:text/>//<xsl:text/>
  66. </script>
  67. <script type="text/javascript">
  68. <xsl:attribute name="src"><xsl:value-of select="$webRoot"/>/mdsrv/lineage.js</xsl:attribute>
  69. <xsl:text/>//<xsl:text/>
  70. </script>
  71. <script type="text/javascript">
  72. <xsl:attribute name="src"><xsl:value-of select="$webRoot"/>/qs/classes/CUserPreferenceManager.js</xsl:attribute>
  73. <xsl:text/>//<xsl:text/>
  74. </script>
  75. <script type="text/javascript">
  76. <xsl:attribute name="src"><xsl:value-of select="$webRoot"/>/qs/classes/CUserPreference.js</xsl:attribute>
  77. <xsl:text/>//<xsl:text/>
  78. </script>
  79. <script type="text/javascript">
  80. <xsl:attribute name="src"><xsl:value-of select="$webRoot"/>/qs/classes/CQSMenuItem.js</xsl:attribute>
  81. <xsl:text/>//<xsl:text/>
  82. </script>
  83. <script type="text/javascript">
  84. <xsl:attribute name="src"><xsl:value-of select="$webRoot"/>/qs/classes/CBusinessGlossaryMenuItem.js</xsl:attribute>
  85. <xsl:text/>//<xsl:text/>
  86. </script>
  87. <script type="text/javascript">
  88. <xsl:attribute name="src"><xsl:value-of select="$webRoot"/>/qs/cmd.js</xsl:attribute>
  89. <xsl:text/>//<xsl:text/>
  90. </script>
  91. <script type="text/javascript">
  92. <xsl:attribute name="src"><xsl:value-of select="$webRoot"/>/qs/config.js</xsl:attribute>
  93. <xsl:text/>//<xsl:text/>
  94. </script>
  95. <script type="text/javascript">
  96. <xsl:text/>
  97. <xsl:value-of select="xtsext:cafaction('get_jsconfig', '')"/>
  98. cfgSet("FirstRunQS", true);
  99. var screentip_separator = "<xts:string id="METADATA_SCREEN_TIP_SEPARATOR" encode="javascript"/>";
  100. var truncate_string = "<xts:string id="TRUNCATE_STRING" encode="javascript"/>";
  101. var gSkin_dir = "<xsl:value-of select="xtsext:javascriptencode(string($skin))"/>";
  102. // Toolbar Styles
  103. gToolbarStyle = new CUIStyle('mainHeader3', '', '', '', '');
  104. gToolbarButtonbStyle = new CUIStyle('toolbarButton', 'toolbarButtonOver', '', '', '');
  105. // Menu Styles
  106. gMenuItemStyle = new CUIStyle('menuItem_normal', 'menuItem_hover', '', '', 'menuItem_disabled');
  107. gMenuStyle = new CUIStyle('clsMenu', '', '', '', '');
  108. var gDimbarStyle = new CUIStyle('clsDimBar', '', '', '', '');
  109. gMenuSeperatorStyle = new CUIStyle('menuHorizontalSeperator','','','','');
  110. var gUIFrameWorkMenuLoadingMessage = "Loading...";
  111. // Toolbar Seperator
  112. gToolbarSeperator = new CSeperator("horizonal_blank", "7", null, '<xsl:value-of select="$webRoot"/>');
  113. // Context Menu Seperator
  114. gMenuSeperator = new CSeperator('horizontal_line', '1',gMenuSeperatorStyle, '<xsl:value-of select="$webRoot"/>');
  115. gQsToolbar = new CBar('toolbarContainer', gToolbarStyle, 'gQsToolbar', '<xsl:value-of select="$webRoot"/>/common/images/toolbar/', '<xts:string id="TOOLBAR_SHOW_TOOLBAR_ALT" encode="javascript"/>', '<xts:string id="TOOLBAR_HIDE_TOOLBAR_ALT" encode="javascript"/>', 'qs', 'tb');
  116. gQsToolbar.setMenuType(cHorizonalBar);
  117. gQsToolbar.setAlign('left');
  118. var gQsDimbar = new CBar('dimBarContainer', gDimbarStyle, 'gQsDimbar', '<xsl:value-of select="$webRoot"/>/common/images/toolbar/', '<xts:string id="TOOLBAR_SHOW_TOOLBAR_ALT" encode="javascript"/>', '<xts:string id="TOOLBAR_HIDE_TOOLBAR_ALT" encode="javascript"/>', 'qs', 'db');
  119. gQsDimbar.setMenuType(cHorizonalBar);
  120. gQsDimbar.setAlign('left');
  121. var gQsContextMenu = new CMenu('contextMenu',gMenuStyle, '<xsl:value-of select="$webRoot"/>');
  122. var gQsChartContextMenu = new CMenu('chartContextMenu',gMenuStyle, '<xsl:value-of select="$webRoot"/>');
  123. var gQsFiltersContextMenu = new CMenu('filterContextMenu',gMenuStyle, '<xsl:value-of select="$webRoot"/>');
  124. var gQsFilterIconContextMenu = new CMenu('filterIconContextMenu',gMenuStyle, '<xsl:value-of select="$webRoot"/>');
  125. var gQsMetadataTreeContextMenu = new CMenu('metadataTreeContextMenu',gMenuStyle, '<xsl:value-of select="$webRoot"/>');
  126. var gQsSortsContextMenu = new CMenu('sortContextMenu',gMenuStyle, '<xsl:value-of select="$webRoot"/>');
  127. var gQsSortIconContextMenu = new CMenu('sortIconContextMenu',gMenuStyle, '<xsl:value-of select="$webRoot"/>');
  128. var gQsSuppressContextMenu = new CMenu('suppressContextMenu',gMenuStyle, '<xsl:value-of select="$webRoot"/>');
  129. var gQsSuppressIconContextMenu = new CMenu('suppressIconContextMenu',gMenuStyle, '<xsl:value-of select="$webRoot"/>');
  130. // Combined Filter Context Menu Strings
  131. gsFilterOperatorAND = "<xts:string id="FILTER_COMBINE_OP_AND" encode="javascript"/>";
  132. gsFilterOperatorANDdesc = "<xts:string id="FILTER_COMBINE_OP_AND_DESC" encode="javascript"/>";
  133. gsFilterOperatorOR = "<xts:string id="FILTER_COMBINE_OP_OR" encode="javascript"/>";
  134. gsFilterOperatorORdesc = "<xts:string id="FILTER_COMBINE_OP_OR_DESC" encode="javascript"/>";
  135. var windowTitle_string = "<xts:string id="QUERY_STUDIO_WINDOW_TITLE" encode="javascript"/>";
  136. var newFilename_string = "<xts:string id="NEW_FILE" encode="javascript"/>";
  137. var cancelIndicatorString = "<xts:string id="CANCELING_INDICATOR" encode="javascript"/>";
  138. <xsl:text/>
  139. var cf = this;
  140. var _reportIFrame = null;
  141. var _reportDiv = null;
  142. window.id = "CR1_TopFrame";
  143. window.name = "CR1_TopFrame";
  144. var historyLength = this.history.length;
  145. var gsUiAction = "<xsl:value-of select="xtsext:javascriptencode( string(key('env-param','ui.action')))"/>";
  146. <!-- If we are supposed to ensure that any passed back url is in the same domain as CRN then make that check and replace it if necessary -->
  147. <xsl:choose>
  148. <xsl:when test="/root/system/param[@name = 'allowExternalURLs']='false' and /root/env/param[@name='ui.backURL'] and not(starts-with(/root/env/param[@name='ui.backURL'], /root/http/param[@name='SCRIPT_NAME']))">
  149. var gsUiBackURL = "<xsl:value-of select="xtsext:javascriptencode(string(/root/http/param[@name='SCRIPT_NAME']))"/>?<xsl:value-of select="xtsext:javascriptencode(string(/root/system/param[@name = 'COGNOSHome']))"/>";
  150. </xsl:when>
  151. <xsl:otherwise>
  152. var gsUiBackURL = "<xsl:value-of select="xtsext:javascriptencode( string(key('env-param','ui.backURL')))"/>";
  153. </xsl:otherwise>
  154. </xsl:choose>
  155. var gsUiObject = "<xsl:value-of select="xtsext:javascriptencode(string(xtsext:urlencode(string(key('env-param','ui.object')))))"/>";
  156. var gsPackageBase = "<xsl:value-of select="xtsext:javascriptencode(string(/root/packageBase/value))"/>";
  157. <xsl:variable name="passport">
  158. <!-- pull the passport out of the bus header -->
  159. <xsl:value-of select="/root/credential/param[@name='CAM']/*[local-name() ='CAM']/*[local-name() = 'CAMPassport']/*[local-name() = 'id']"/>
  160. </xsl:variable>
  161. var gsUiSpec = "<xsl:value-of select="xtsext:javascriptencode(string(key('env-param','ui.spec')))"/>";
  162. <xsl:choose>
  163. <xsl:when test="key('env-param','ui.conversation')!=''">
  164. var gsUiConversation = "<xsl:value-of select="xtsext:javascriptencode(string(xtsext:cafaction(concat('sign_wrap_settemplatename_scripts_settemplateid_02_setpassportid_', $passport), string(key('env-param','ui.conversation')))))"/>";
  165. </xsl:when>
  166. <xsl:otherwise>
  167. var gsUiConversation = "";
  168. </xsl:otherwise>
  169. </xsl:choose>
  170. var DEBUG = "<xsl:value-of select="xtsext:javascriptencode( string(key('env-param','debug')))"/>";
  171. var newfile = "<xsl:value-of select="xtsext:javascriptencode( string(key('env-param','newfile')))"/>";
  172. <!--
  173. outputFormat IS THE VALID ONE. I STILL CHECK output TO AVOID BUGS FOR NOT SHOWING UP PDF
  174. ReportStudio send us "output". The valid runOption is "outputFormat". So here, I check for if outputFormat is given, if not, I check
  175. for output as a fallback...
  176. THIS CHECK FOR output SHOULD BE REMOVED ONCE EVERYONE (REPORT STUDIO, PORTAL) COMPLIES TO THE NEW PARAMETERS!
  177. -->
  178. var outputFormat = "<xsl:text/>
  179. <xsl:choose>
  180. <xsl:when test="key('env-param','run.outputFormat')!=''">
  181. <xsl:value-of select="xtsext:javascriptencode( string(key('env-param','run.outputFormat')))"/>
  182. </xsl:when>
  183. <xsl:when test="key('env-param','output')!=''">
  184. <xsl:value-of select="xtsext:javascriptencode( string(key('env-param','output')))"/>
  185. </xsl:when>
  186. <xsl:otherwise>
  187. <xsl:value-of select="xtsext:javascriptencode( string(key('env-param','run.outputFormat')))"/>
  188. </xsl:otherwise>
  189. </xsl:choose>
  190. <xsl:text/>";
  191. var gsReportURL = "?" + constructGETRequestParamsString("SM=query&amp;search=" + gsUiObject + "&amp;SA=propEnum,properties&amp;ITEM=data&amp;EA=&amp;SS=queryOptions,options&amp;dataEncoding=MIME&amp;ES=&amp;EM=");
  192. var menuItem = null;
  193. var subMenuItem = null;
  194. var currentContextMenu = null;
  195. <xsl:for-each select="/root/ui/contextMenu/menu">
  196. <xsl:choose>
  197. <xsl:when test=".[@alias='report']">
  198. currentContextMenu = gQsContextMenu;
  199. </xsl:when>
  200. <xsl:when test=".[@alias='chart']">
  201. currentContextMenu = gQsChartContextMenu;
  202. </xsl:when>
  203. <xsl:when test=".[@alias='filter']">
  204. currentContextMenu = gQsFiltersContextMenu;
  205. </xsl:when>
  206. <xsl:when test=".[@alias='filterIcon']">
  207. currentContextMenu = gQsFilterIconContextMenu;
  208. </xsl:when>
  209. <xsl:when test=".[@alias='metadataTree']">
  210. currentContextMenu = gQsMetadataTreeContextMenu;
  211. </xsl:when>
  212. <xsl:when test=".[@alias='sort']">
  213. currentContextMenu = gQsSortsContextMenu;
  214. </xsl:when>
  215. <xsl:when test=".[@alias='sortIcon']">
  216. currentContextMenu = gQsSortIconContextMenu;
  217. </xsl:when>
  218. <xsl:when test=".[@alias='suppress']">
  219. currentContextMenu = gQsSuppressContextMenu;
  220. </xsl:when>
  221. <xsl:when test=".[@alias='suppressIcon']">
  222. currentContextMenu = gQsSuppressIconContextMenu;
  223. </xsl:when>
  224. </xsl:choose>
  225. <xsl:apply-templates select="."/>
  226. </xsl:for-each>
  227. var pv = [];
  228. <xsl:for-each select="/root/env/param">
  229. pv[pv.length] = ["<xsl:value-of select="xtsext:javascriptencode(string(@name))"/>", "<xsl:value-of select="xtsext:javascriptencode(string(.))"/>"];
  230. </xsl:for-each>
  231. var supportedFonts = new Array();
  232. <xsl:for-each select="/root/configurationVars/configuration/property[@name='fonts']/font/id">
  233. supportedFonts[supportedFonts.length] = "<xsl:value-of select="xtsext:javascriptencode(string(.))"/>";
  234. </xsl:for-each>
  235. var supportedFontSizes = new Array(8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72);
  236. var supportedFontSizesUnit = "pt";
  237. var supportedFontSizesUnitLabel = "<xts:string id="FONT_SIZE_PT" encode="javascript"/>";
  238. <!-- For WO2736 - Lineage
  239. The value coming out of /root/configurationURIs is XML encoded in qs.xts.
  240. This is to workaround a problem with XTS where it blindly assumes that any values
  241. coming from xts:function "getConfiguration" are already encoded.
  242. These URLs are not encoded when the user puts them into cog admin, so XTS is returning invalid XML when the URLs
  243. contain an ampersand or other XML reserved characters.
  244. Use regexes to hack around this issue.
  245. -->
  246. var URIInfo = "<xsl:value-of select="xtsext:javascriptencode(xtsext:xmldecode(string(/root/configurationURIs)))"/>";
  247. var gsMetadataInformationURI = "";
  248. var matches = URIInfo.match(/property[^&gt;]+name=&quot;metadataInformationURI&quot;[^&gt;]*&gt;\s*([^&lt;]+)\s*&lt;\/property/i);
  249. if (matches)
  250. {
  251. gsMetadataInformationURI = matches[1];
  252. }
  253. var gsBusinessGlossaryURI = "";
  254. matches = URIInfo.match(/property[^&gt;]+name=&quot;glossaryURI&quot;[^&gt;]*&gt;\s*([^&lt;]+)\s*&lt;\/property/i);
  255. if (matches)
  256. {
  257. gsBusinessGlossaryURI = matches[1];
  258. }
  259. <!-- Busy Indicator strings -->
  260. var BIline1 = "<xts:string id="BUSY_LINE_1" encode="javascript"/>";
  261. var BIline2 = "<xts:string id="BUSY_LINE_2" encode="javascript"/>";
  262. <!-- Start Page strings -->
  263. var StartPageDropList = "<xts:string id="START_PAGE_DROP_LIST" encode="javascript"/>";
  264. var StartPageDragDropLine1 = "<xts:string id="START_PAGE_DRAG_AND_DROP_LINE1" encode="javascript"/>";
  265. var StartPageDragDropLine2 = "<xts:string id="START_PAGE_DRAG_AND_DROP_LINE2" encode="javascript"/>";
  266. var StartPageTipsLine1 = "<xts:string id="START_PAGE_TIPS_LINE1" encode="javascript"/>";
  267. var StartPageTipsLine2 = "<xts:string id="START_PAGE_TIPS_LINE2" encode="javascript"/>";
  268. <!-- Preview strings -->
  269. var runnodata_string = "<xts:string id="NO_DATA" encode="javascript"/>";
  270. var runlimited_string = "<xts:string id="LIMITED_DATA" encode="javascript"/>";
  271. <!-- Capabilities strings -->
  272. var capabilities_msg = "<xts:string id="NO_CAPABILITY_FOR_QS" encode="javascript"/>" + "\n" + "<xts:string id="CONTACT_ADMIN" encode="javascript"/>";
  273. <!-- Information pane string -->
  274. var metaNoInformation = "<xts:string id="MENU_META_INFORMATION_NO_VALUE" encode="javascript"/>";
  275. var metaInformation = "<xts:string id="MENU_META_INFORMATION" encode="javascript"/>";
  276. <!-- browser directory (webcontent/qs) -->
  277. var qs_dir = "qs";
  278. var qs_images_dir = "qs/images";
  279. var qs_conv_dir = "async";
  280. var common_images_dir = "common/images";
  281. var portal_dir = "ps";
  282. var reportTitleTip = "<xts:string id="REPORT_TITLE_TIP" encode="javascript"/>";
  283. var cafContextId = "<xsl:value-of select="xtsext:javascriptencode(string(xtsext:cafaction(concat('get_contextid_setcomponent_qs_settemplatename_scripts_settemplateid_03_setpassportid_', $passport), '')))"/>";
  284. if (cafContextId != "" &amp;&amp; gsUiBackURL.indexOf("javascript:") == -1 &amp;&amp; gsUiBackURL.length > 0)
  285. {
  286. if (gsUiBackURL.indexOf("?") > -1)
  287. {
  288. gsUiBackURL += "&amp;ui.cafcontextid=" + cafContextId;
  289. }
  290. else
  291. {
  292. gsUiBackURL += "?ui.cafcontextid=" + cafContextId;
  293. }
  294. }
  295. <xsl:if test="key('env-param','ui.routingServerGroup')!=''">
  296. var routingServerGroup = '<xsl:value-of select="xtsext:javascriptencode(string(key('env-param','ui.routingServerGroup')))"/>';
  297. </xsl:if>
  298. <xsl:choose>
  299. <xsl:when test="/root/system/param[@name='enableOnBeforeUnload'] = 'true'">
  300. function leavingQS()
  301. {
  302. var m1 = "<xts:string id="REPORT_MODIFIED" encode="javascript"/><xsl:text> </xsl:text><xts:string id="LEAVING_QS_WARNING" encode="javascript"/>";
  303. return m1;
  304. }
  305. </xsl:when>
  306. <xsl:otherwise>
  307. var leavingQS = null;
  308. </xsl:otherwise>
  309. </xsl:choose>
  310. <!-- Generix (styles) strings -->
  311. var msgQS = new Array();
  312. msgQS["OK"] = "<xts:string id="IDS_OK" encode="javascript"/>";
  313. msgQS["CANCEL"] = "<xts:string id="IDS_CANCEL" encode="javascript"/>";
  314. <!-- Combined Filters strings -->
  315. var filterMsgStrings = new Array();
  316. filterMsgStrings["ARRAY_VALUES"] = "<xts:string id="ARRAY_VALUES" encode="javascript"/>";
  317. filterMsgStrings["FILTER_COMBINE_COLUMN_HEADER"] = "<xts:string id="FILTER_COMBINE_COLUMN_HEADER" encode="javascript"/>";
  318. filterMsgStrings["FILTER_COMBINE_NO_FILTER"] = "<xts:string id="FILTER_COMBINE_NO_FILTER" encode="javascript"/>";
  319. filterMsgStrings["FILTER_COMBINE_NOT"] = "<xts:string id="FILTER_COMBINE_NOT" encode="javascript"/>";
  320. filterMsgStrings["FILTER_COMBINE_GROUP_NOT"] = "<xts:string id="FILTER_COMBINE_GROUP_NOT" encode="javascript"/>";
  321. filterMsgStrings["FILTER_COMBINE_ADD_LINE"] = "<xts:string id="FILTER_COMBINE_ADD_LINE" encode="javascript"/>";
  322. filterMsgStrings["FILTER_SUBTITLE_BASIC"] = "<xts:string id="FILTER_SUBTITLE_BASIC" encode="javascript"/>";
  323. filterMsgStrings["FILTER_SUBTITLE_SUMMARY"] = "<xts:string id="FILTER_SUBTITLE_SUMMARY" encode="javascript"/>";
  324. filterMsgStrings["FILTER_SUBTITLE_DATE_AFTER"] = "<xts:string id="FILTER_SUBTITLE_DATE_AFTER" encode="javascript"/>";
  325. filterMsgStrings["FILTER_SUBTITLE_DATE_BEFORE"] = "<xts:string id="FILTER_SUBTITLE_DATE_BEFORE" encode="javascript"/>";
  326. filterMsgStrings["FILTER_SUBTITLE_BETWEEN"] = "<xts:string id="FILTER_SUBTITLE_BETWEEN" encode="javascript"/>";
  327. filterMsgStrings["FILTER_SUBTITLE_GREATER"] = "<xts:string id="FILTER_SUBTITLE_GREATER" encode="javascript"/>";
  328. filterMsgStrings["FILTER_SUBTITLE_LESS"] = "<xts:string id="FILTER_SUBTITLE_LESS" encode="javascript"/>";
  329. filterMsgStrings["FILTER_SUBTITLE_SUM_BETWEEN"] = "<xts:string id="FILTER_SUBTITLE_SUM_BETWEEN" encode="javascript"/>";
  330. filterMsgStrings["FILTER_SUBTITLE_SUM_GREATER"] = "<xts:string id="FILTER_SUBTITLE_SUM_GREATER" encode="javascript"/>";
  331. filterMsgStrings["FILTER_SUBTITLE_SUM_LESS"] = "<xts:string id="FILTER_SUBTITLE_SUM_LESS" encode="javascript"/>";
  332. filterMsgStrings["FILTER_SUBTITLE_SUM_EQUALS"] = "<xts:string id="FILTER_SUBTITLE_SUM_EQUALS" encode="javascript"/>";
  333. filterMsgStrings["FILTER_SUBTITLE_IS_MISSING"] = "<xts:string id="FILTER_SUBTITLE_IS_MISSING" encode="javascript"/>";
  334. filterMsgStrings["FILTER_SUBTITLE_IS_MISSING_ONLY"] = "<xts:string id="FILTER_SUBTITLE_IS_MISSING_ONLY" encode="javascript"/>";
  335. filterMsgStrings["FILTER_SUBTITLE_OR_IS_MISSING"] = "<xts:string id="FILTER_SUBTITLE_OR_IS_MISSING" encode="javascript"/>";
  336. filterMsgStrings["FILTER_SUBTITLE_IS_NOT_MISSING"] = "<xts:string id="FILTER_SUBTITLE_IS_NOT_MISSING" encode="javascript"/>";
  337. filterMsgStrings["FILTER_SUBTITLE_AND_IS_NOT_MISSING"] = "<xts:string id="FILTER_SUBTITLE_AND_IS_NOT_MISSING" encode="javascript"/>";
  338. filterMsgStrings["SELECT_LINE_TIP"] = "<xts:string id="COND_STYLE_SELECT_LINE_TIP" encode="javascript"/>";
  339. <!-- string range -->
  340. filterMsgStrings["FILTER_BETWEEN_STRING"] = "<xts:string id="FILTER_BETWEEN_STRING" encode="javascript"/>";
  341. filterMsgStrings["FILTER_GREATER_THAN_EQUAL_TO_AND_LESS_THAN_STRING"] = "<xts:string id="FILTER_GREATER_THAN_EQUAL_TO_AND_LESS_THAN_STRING" encode="javascript"/>";
  342. filterMsgStrings["FILTER_GREATER_THAN_AND_LESS_THAN_EQUAL_TO_STRING"] = "<xts:string id="FILTER_GREATER_THAN_AND_LESS_THAN_EQUAL_TO_STRING" encode="javascript"/>";
  343. filterMsgStrings["FILTER_GREATER_THAN_AND_LESS_THAN_STRING"] = "<xts:string id="FILTER_GREATER_THAN_AND_LESS_THAN_STRING" encode="javascript"/>";
  344. filterMsgStrings["FILTER_GREATER_THAN_STRING"] = "<xts:string id="FILTER_GREATER_THAN_STRING" encode="javascript"/>";
  345. filterMsgStrings["FILTER_LESS_THAN_STRING"] = "<xts:string id="FILTER_LESS_THAN_STRING" encode="javascript"/>";
  346. filterMsgStrings["FILTER_GREATER_THAN_EQUAL_TO_STRING"] = "<xts:string id="FILTER_GREATER_THAN_EQUAL_TO_STRING" encode="javascript"/>";
  347. filterMsgStrings["FILTER_LESS_THAN_EQUAL_TO_STRING"] = "<xts:string id="FILTER_LESS_THAN_EQUAL_TO_STRING" encode="javascript"/>";
  348. filterMsgStrings["FILTER_EQUAL_STRING"] = "<xts:string id="FILTER_EQUAL_STRING" encode="javascript"/>";
  349. <!-- date range -->
  350. filterMsgStrings["FILTER_BETWEEN_DATE"] = "<xts:string id="FILTER_BETWEEN_DATE" encode="javascript"/>";
  351. filterMsgStrings["FILTER_GREATER_THAN_EQUAL_TO_DATE"] = "<xts:string id="FILTER_GREATER_THAN_EQUAL_TO_DATE" encode="javascript"/>";
  352. filterMsgStrings["FILTER_LESS_THAN_EQUAL_TO_DATE"] = "<xts:string id="FILTER_LESS_THAN_EQUAL_TO_DATE" encode="javascript"/>";
  353. filterMsgStrings["FILTER_EQUAL_DATE"] = "<xts:string id="FILTER_EQUAL_DATE" encode="javascript"/>";
  354. <!-- time range -->
  355. filterMsgStrings["FILTER_BETWEEN_TIME"] = "<xts:string id="FILTER_BETWEEN_TIME" encode="javascript"/>";
  356. filterMsgStrings["FILTER_GREATER_THAN_EQUAL_TO_TIME"] = "<xts:string id="FILTER_GREATER_THAN_EQUAL_TO_TIME" encode="javascript"/>";
  357. filterMsgStrings["FILTER_LESS_THAN_EQUAL_TO_TIME"] = "<xts:string id="FILTER_LESS_THAN_EQUAL_TO_TIME" encode="javascript"/>";
  358. filterMsgStrings["FILTER_EQUAL_TIME"] = "<xts:string id="FILTER_EQUAL_TIME" encode="javascript"/>";
  359. <!-- date time range -->
  360. filterMsgStrings["FILTER_BETWEEN_DATETIME"] = "<xts:string id="FILTER_BETWEEN_DATETIME" encode="javascript"/>";
  361. filterMsgStrings["FILTER_GREATER_THAN_EQUAL_TO_DATETIME"] = "<xts:string id="FILTER_GREATER_THAN_EQUAL_TO_DATETIME" encode="javascript"/>";
  362. filterMsgStrings["FILTER_LESS_THAN_EQUAL_TO_DATETIME"] = "<xts:string id="FILTER_LESS_THAN_EQUAL_TO_DATETIME" encode="javascript"/>";
  363. filterMsgStrings["FILTER_EQUAL_DATETIME"] = "<xts:string id="FILTER_EQUAL_DATETIME" encode="javascript"/>";
  364. <!--interval range -->
  365. filterMsgStrings["FILTER_BETWEEN_INTERVAL"] = "<xts:string id="FILTER_BETWEEN_INTERVAL" encode="javascript"/>";
  366. filterMsgStrings["FILTER_GREATER_THAN_EQUAL_TO_INTERVAL"] = "<xts:string id="FILTER_GREATER_THAN_EQUAL_TO_INTERVAL" encode="javascript"/>";
  367. filterMsgStrings["FILTER_LESS_THAN_EQUAL_TO_INTERVAL"] = "<xts:string id="FILTER_LESS_THAN_EQUAL_TO_INTERVAL" encode="javascript"/>";
  368. filterMsgStrings["FILTER_EQUAL_INTERVAL"] = "<xts:string id="FILTER_EQUAL_INTERVAL" encode="javascript"/>";
  369. <!-- type in -->
  370. filterMsgStrings["FILTER_STARTS_WITH"] = "<xts:string id="FILTER_STARTS_WITH" encode="javascript"/>";
  371. filterMsgStrings["FILTER_ENDS_WITH"] = "<xts:string id="FILTER_ENDS_WITH" encode="javascript"/>";
  372. filterMsgStrings["FILTER_CONTAINS"] = "<xts:string id="FILTER_CONTAINS" encode="javascript"/>";
  373. filterMsgStrings["FILTER_IS_LIKE"] = "<xts:string id="FILTER_IS_LIKE" encode="javascript"/>";
  374. filterMsgStrings["FILTER_DAYS_BEFORE_TODAY"] = "<xts:string id="FILTER_DAYS_BEFORE_TODAY" encode="javascript"/>";
  375. <!-- Summary Message Strings -->
  376. var summaryMsgStrings = new Array();
  377. summaryMsgStrings["SUMMARY_TOTAL"] = "<xts:string id="SUMMARY_TOTAL" encode="javascript"/>";
  378. summaryMsgStrings["SUMMARY_COUNT"] = "<xts:string id="SUMMARY_COUNT" encode="javascript"/>";
  379. summaryMsgStrings["SUMMARY_AVERAGE"] = "<xts:string id="SUMMARY_AVERAGE" encode="javascript"/>";
  380. summaryMsgStrings["SUMMARY_MINIMUM"] = "<xts:string id="SUMMARY_MINIMUM" encode="javascript"/>";
  381. summaryMsgStrings["SUMMARY_MAXIMUM"] = "<xts:string id="SUMMARY_MAXIMUM" encode="javascript"/>";
  382. summaryMsgStrings["SUMMARY_CALCULATED"] = "<xts:string id="SUMMARY_CALCULATED" encode="javascript"/>";
  383. summaryMsgStrings["SUMMARY_AUTOMATIC"] = "<xts:string id="SUMMARY_AUTOMATIC" encode="javascript"/>";
  384. summaryMsgStrings["SUMMARY_COUNT_DISTINCT"] = "<xts:string id="SUMMARY_COUNT_DISTINCT" encode="javascript"/>";
  385. summaryMsgStrings["SUMMARY_MEDIAN"] = "<xts:string id="SUMMARY_MEDIAN" encode="javascript"/>";
  386. summaryMsgStrings["SUMMARY_STANDARD_DEVIATION"] = "<xts:string id="SUMMARY_STANDARD_DEVIATION" encode="javascript"/>";
  387. summaryMsgStrings["SUMMARY_VARIANCE"] = "<xts:string id="SUMMARY_VARIANCE" encode="javascript"/>";
  388. summaryMsgStrings["SUMMARY_NOSUMMARY"] = "<xts:string id="SUMMARY_NOSUMMARY" encode="javascript"/>";
  389. summaryMsgStrings["SUMMARY_EARLIEST"] = "<xts:string id="SUMMARY_EARLIEST" encode="javascript"/>";
  390. summaryMsgStrings["SUMMARY_LATEST"] = "<xts:string id="SUMMARY_LATEST" encode="javascript"/>";
  391. <!-- Data Type Message Strings -->
  392. var dataTypeMsgStrings = new Array();
  393. dataTypeMsgStrings["unknown"] = "<xts:string id="DATATYPE_UNKNOWN" encode="javascript"/>";
  394. dataTypeMsgStrings["unsupported"] = "<xts:string id="DATATYPE_UNSUPPORTED" encode="javascript"/>";
  395. dataTypeMsgStrings["null"] = "<xts:string id="DATATYPE_NULL" encode="javascript"/>";
  396. dataTypeMsgStrings["boolean"] = "<xts:string id="DATATYPE_BOOLEAN" encode="javascript"/>";
  397. dataTypeMsgStrings["int16"] = "<xts:string id="DATATYPE_INT16" encode="javascript"/>";
  398. dataTypeMsgStrings["int32"] = "<xts:string id="DATATYPE_INT32" encode="javascript"/>";
  399. dataTypeMsgStrings["int64"] = "<xts:string id="DATATYPE_INT64" encode="javascript"/>";
  400. dataTypeMsgStrings["decimal"] = "<xts:string id="DATATYPE_DECIMAL" encode="javascript"/>";
  401. dataTypeMsgStrings["numeric"] = "<xts:string id="DATATYPE_NUMERIC" encode="javascript"/>";
  402. dataTypeMsgStrings["float"] = "<xts:string id="DATATYPE_FLOAT" encode="javascript"/>";
  403. dataTypeMsgStrings["float32"] = "<xts:string id="DATATYPE_FLOAT32" encode="javascript"/>";
  404. dataTypeMsgStrings["float64"] = "<xts:string id="DATATYPE_FLOAT64" encode="javascript"/>";
  405. dataTypeMsgStrings["binary"] = "<xts:string id="DATATYPE_BINARY" encode="javascript"/>";
  406. dataTypeMsgStrings["binarylength"] = "<xts:string id="DATATYPE_BINARYLENGTH" encode="javascript"/>";
  407. dataTypeMsgStrings["date"] = "<xts:string id="DATATYPE_DATE" encode="javascript"/>";
  408. dataTypeMsgStrings["time"] = "<xts:string id="DATATYPE_TIME" encode="javascript"/>";
  409. dataTypeMsgStrings["datetime"] = "<xts:string id="DATATYPE_DATETIME" encode="javascript"/>";
  410. dataTypeMsgStrings["interval"] = "<xts:string id="DATATYPE_INTERVAL" encode="javascript"/>";
  411. dataTypeMsgStrings["character"] = "<xts:string id="DATATYPE_CHARACTER" encode="javascript"/>";
  412. dataTypeMsgStrings["characterlength16"] = "<xts:string id="DATATYPE_CHARACTERLENGTH16" encode="javascript"/>";
  413. dataTypeMsgStrings["characterlength32"] = "<xts:string id="DATATYPE_CHARACTERLENGTH32" encode="javascript"/>";
  414. dataTypeMsgStrings["blob"] = "<xts:string id="DATATYPE_BLOB" encode="javascript"/>";
  415. dataTypeMsgStrings["textblob"] = "<xts:string id="DATATYPE_TEXTBLOB" encode="javascript"/>";
  416. dataTypeMsgStrings["array"] = "<xts:string id="DATATYPE_ARRAY" encode="javascript"/>";
  417. dataTypeMsgStrings["key"] = "<xts:string id="DATATYPE_KEY" encode="javascript"/>";
  418. dataTypeMsgStrings["bit"] = "<xts:string id="DATATYPE_BIT" encode="javascript"/>";
  419. dataTypeMsgStrings["varbit"] = "<xts:string id="DATATYPE_VARBIT" encode="javascript"/>";
  420. dataTypeMsgStrings["intervalYM"] = "<xts:string id="DATATYPE_INTERVALYM" encode="javascript"/>";
  421. dataTypeMsgStrings["timeTZ"] = "<xts:string id="DATATYPE_TIMETZ" encode="javascript"/>";
  422. dataTypeMsgStrings["timeStampTZ"] = "<xts:string id="DATATYPE_TIMESTAMPTZ" encode="javascript"/>";
  423. dataTypeMsgStrings["nationalchar"] = "<xts:string id="DATATYPE_NATIONALCHAR" encode="javascript"/>";
  424. dataTypeMsgStrings["nationalcharvarying"] = "<xts:string id="DATATYPE_NATIONALCHARVARYING" encode="javascript"/>";
  425. dataTypeMsgStrings["munliteral"] = "<xts:string id="DATATYPE_MUNLITERAL" encode="javascript"/>";
  426. <xsl:choose>
  427. <xsl:when test="/root/userCapabilities/value/item='canUseQueryStudioAdvancedMode'">
  428. var canUseQueryStudioAdvancedMode = true;
  429. </xsl:when>
  430. <xsl:otherwise>
  431. var canUseQueryStudioAdvancedMode = false;
  432. </xsl:otherwise>
  433. </xsl:choose>
  434. function hidePickers()
  435. {
  436. if (typeof colorColor != 'undefined')
  437. {
  438. colorColor.hide();
  439. }
  440. if (typeof backgroundColorPicker != 'undefined')
  441. {
  442. backgroundColorPicker.hide();
  443. }
  444. if (typeof alignmentPicker != 'undefined')
  445. {
  446. alignmentPicker.hide();
  447. }
  448. }
  449. // Create a global variable for drillThroughParameters
  450. // Used in qs.xts and submit.xts
  451. cfgSet("drillThroughParameterValues", "<xsl:value-of select="xtsext:javascriptencode(xtsext:web64decode(string(/root/env/param[@name='ui.drillThroughTargetParameterValues']), true()))"/>");
  452. // Create a global variable for specification.editSpecification
  453. // Used in CView.js and cmd.js
  454. cfgSet("specification.editSpecification", "<xsl:value-of select="xtsext:javascriptencode(/root/env/param[@name='specification.editSpecification'])"/>");
  455. </script>
  456. </xsl:template>
  457. <xsl:template match="menuItem">
  458. <!-- Variable to set the javascript class to call to handle the menu item. Uses jsMenuClass attribute.
  459. Defaults to CQSMenuItem.
  460. -->
  461. <xsl:variable name="jsMenuClass">
  462. <xsl:choose>
  463. <xsl:when test=".[@jsMenuClass!='']">
  464. <xsl:value-of select="@jsMenuClass"/>
  465. </xsl:when>
  466. <xsl:otherwise>CQSMenuItem</xsl:otherwise>
  467. </xsl:choose>
  468. </xsl:variable>
  469. <xsl:if test="not(./userCapability) or /root/userCapabilities/value/item=./userCapability">
  470. <xsl:choose>
  471. <xsl:when test="./icon[@useWebRoot='true']">
  472. menuItem = new <xsl:value-of select="$jsMenuClass"/>(currentContextMenu, '<xsl:value-of select="xtsext:javascriptencode(string(./label))"/>', '<xsl:value-of select="xtsext:javascriptencode(string(./link))"/>', '<xsl:value-of select="$webRoot"/>/<xsl:value-of select="./icon"/>', gMenuItemStyle, '<xsl:value-of select="$webRoot"/>', '<xsl:value-of select="$skin_root"/>');
  473. </xsl:when>
  474. <xsl:otherwise>
  475. menuItem = new <xsl:value-of select="$jsMenuClass"/>(currentContextMenu, '<xsl:value-of select="xtsext:javascriptencode(string(./label))"/>', '<xsl:value-of select="xtsext:javascriptencode(string(./link))"/>', '<xsl:value-of select="./icon"/>', gMenuItemStyle, '<xsl:value-of select="$webRoot"/>', '<xsl:value-of select="$skin_root"/>');
  476. </xsl:otherwise>
  477. </xsl:choose>
  478. <!-- If we've specified a qualityOfService indicator, assign it here -->
  479. <xsl:if test="./qualityOfService">
  480. menuItem.setQualityOfService("<xsl:value-of select="string(./qualityOfService)"/>");
  481. </xsl:if>
  482. <!-- disabledNodeTypes are used to hide menu items based on certain conditions.
  483. in the case of metadata trees, menuItems are excluded based on nodeTypes. -->
  484. <xsl:for-each select="./disabledNodeType">
  485. menuItem.setDisabledNodeType("<xsl:value-of select="xtsext:javascriptencode(string(.))"/>", true);
  486. </xsl:for-each>
  487. <!-- Don't show this menu item if there are multiple selections -->
  488. <xsl:if test="./disabledOnMultipleSelect">
  489. menuItem.setDisabledOnMultipleSelect(true);
  490. </xsl:if>
  491. <xsl:if test="./cascadedMenu">
  492. subMenuItem = menuItem.createCascadedMenu(gMenuStyle);
  493. <xsl:for-each select="./cascadedMenu/menuItem">
  494. <xsl:if test="not(./userCapability) or /root/userCapabilities/value/item=./userCapability">
  495. menuItem = new CMenuItem(subMenuItem, '<xsl:value-of select="xtsext:javascriptencode(string(./label))"/>', '<xsl:value-of select="xtsext:javascriptencode(string(./link))"/>', '', gMenuItemStyle, '<xsl:value-of select="$webRoot"/>', '<xsl:value-of select="$skin_root"/>');
  496. </xsl:if>
  497. </xsl:for-each>
  498. </xsl:if>
  499. </xsl:if>
  500. </xsl:template>
  501. <xsl:template match="separator">
  502. <xsl:if test="not(./userCapability) or /root/userCapabilities/value/item=./userCapability">
  503. <!-- If we've specified a qualityOfService indicator, we need to use CQSSeparator.
  504. Create a new object for this separator. Otherwise, use the default global object.
  505. -->
  506. <xsl:choose>
  507. <xsl:when test="./qualityOfService">
  508. var oMenuSeperator = new CQSSeparator('horizontal_line', '1',gMenuSeperatorStyle, '<xsl:value-of select="$webRoot"/>');
  509. oMenuSeperator.setQualityOfService("<xsl:value-of select="string(./qualityOfService)"/>");
  510. currentContextMenu.add(oMenuSeperator);
  511. </xsl:when>
  512. <xsl:otherwise>
  513. currentContextMenu.add(gMenuSeperator);
  514. </xsl:otherwise>
  515. </xsl:choose>
  516. </xsl:if>
  517. </xsl:template>
  518. </xsl:stylesheet>