123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- Licensed Materials - Property of IBM
- BI and PM: qs
- (C) Copyright IBM Corp. 2001, 2017
- US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- -->
- <!--
- Copyright (C) 2008 Cognos ULC, an IBM Company. All rights reserved.
- Cognos (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated).
- -->
- <xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:xts="http://developer.cognos.com/schemas/xts/"
- xmlns:clcdlg="test_calculationDlg"
- xmlns:df="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/framework/"
- xmlns:dp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/presentation/"
- xmlns:out="dummy-uri"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt">
- <xsl:output method="xml" encoding="UTF-8" indent="no"/>
- <xsl:namespace-alias stylesheet-prefix="out" result-prefix="xsl"/>
- <xsl:template match="clcdlg:jvs">
- var calcList;
- var sizeofCalcListItem = 2;
- function populateCalculationList (calcType, validCalcs, calcNumberType) {
- <out:choose>
- <out:when test="/root/system/param[@name='enablePercentageOfFooter']='true'">
- var calcNumberBreaks = new Array(0, 9, 13, 21, 22);
- </out:when>
- <out:otherwise>
- var calcNumberBreaks = new Array(0, 9, 12, 20, 21);
- </out:otherwise>
- </out:choose>
- var calcNumberList = false;
- switch (calcType)
- {
- case "number":
- calcNumberList = new Array(
- "<xts:string id="CALCULATION_NUMERIC_ARITHMETIC" encode="javascript"/>",
- "<xts:string id="CALCULATION_NUMERIC_PERCENTAGE" encode="javascript"/>",
- "<xts:string id="CALCULATION_NUMERIC_ANALYTIC" encode="javascript"/>"
- /***** TEMPORARY *****/
- //,
- //"<xts:string id="CALCULATION_NUMERIC_TEXT" encode="javascript"/>"
- /***** TEMPORARY *****/
- );
- calcList = new Array(
- //Arithmetic
- "<xts:string id="CALCULATION_SUM" encode="javascript"/>", "+",
- "<xts:string id="CALCULATION_DIFFERENCE" encode="javascript"/>", "-",
- "<xts:string id="CALCULATION_PRODUCT" encode="javascript"/>", "*",
- "<xts:string id="CALCULATION_DIVISION" encode="javascript"/>", "/",
- "<xts:string id="CALCULATION_POWER" encode="javascript"/>", "power",
- "<xts:string id="CALCULATION_ABSOLUTE" encode="javascript"/>", "absolute",
- "<xts:string id="CALCULATION_ROUND" encode="javascript"/>", "round",
- "<xts:string id="CALCULATION_ROUND_DOWN" encode="javascript"/>", "round down",
- "<xts:string id="CALCULATION_SQUARE_ROOT" encode="javascript"/>", "sqrt",
- //Percentage
- "<xts:string id="CALCULATION_PERCENTAGE" encode="javascript"/>", "%",
- "<xts:string id="CALCULATION_PERCENT_TOTAL" encode="javascript"/>", "% total Percentage",
- <out:if test="/root/system/param[@name='enablePercentageOfFooter']='true'">
- "<xts:string id="CALCULATION_PERCENT_FOOTER" encode="javascript"/>", "% footer Percentage",
- </out:if>
- "<xts:string id="CALCULATION_PERCENT_DIFFERENCE" encode="javascript"/>", "% difference",
- //Analytic
- "<xts:string id="CALCULATION_AVERAGE" encode="javascript"/>", "average",
- "<xts:string id="CALCULATION_MAXIMUM" encode="javascript"/>", "maximum",
- "<xts:string id="CALCULATION_MINIMUM" encode="javascript"/>", "minimum",
- "<xts:string id="CALCULATION_RANK" encode="javascript"/>", "rank",
- "<xts:string id="CALCULATION_PERCENT_TOTAL" encode="javascript"/>", "% total Analytic",
- "<xts:string id="CALCULATION_PERCENTILE" encode="javascript"/>", "percentile",
- "<xts:string id="CALCULATION_QUARTILE" encode="javascript"/>", "quartile",
- "<xts:string id="CALCULATION_QUANTILE" encode="javascript"/>", "quantile"
- /***** TEMPORARY *****/
- //,
- //"<xts:string id="CALCULATION_CONCATENATION" encode="javascript"/>", "concat"
- /***** TEMPORARY *****/
- );
- break;
- case "string":
- calcList = new Array(
- "<xts:string id="CALCULATION_LEFT" encode="javascript"/>", "left",
- "<xts:string id="CALCULATION_RIGHT" encode="javascript"/>", "right",
- "<xts:string id="CALCULATION_CONCATENATION" encode="javascript"/>", "concat",
- "<xts:string id="CALCULATION_TRIM" encode="javascript"/>", "trim"
- );
- break;
- case "date":
- calcList = new Array(
- "<xts:string id="CALCULATION_DIFFERENCE" encode="javascript"/>", "-",
- "<xts:string id="CALCULATION_DAYS_BETWEEN" encode="javascript"/>", "daysBetween",
- "<xts:string id="CALCULATION_MONTHS_BETWEEN" encode="javascript"/>", "monthsBetween",
- "<xts:string id="CALCULATION_YEARS_BETWEEN" encode="javascript"/>", "yearsBetween",
- "<xts:string id="CALCULATION_ADD_DAYS" encode="javascript"/>", "addDays",
- "<xts:string id="CALCULATION_ADD_MONTHS" encode="javascript"/>", "addMonths",
- "<xts:string id="CALCULATION_ADD_YEARS" encode="javascript"/>", "addYears",
- "<xts:string id="CALCULATION_EARLIEST" encode="javascript"/>", "min",
- "<xts:string id="CALCULATION_LATEST" encode="javascript"/>", "max",
- "<xts:string id="CALCULATION_YEAR" encode="javascript"/>", "year",
- "<xts:string id="CALCULATION_MONTH" encode="javascript"/>", "month",
- "<xts:string id="CALCULATION_WEEK" encode="javascript"/>", "week",
- "<xts:string id="CALCULATION_DAY" encode="javascript"/>", "day"
- /***** TEMPORARY *****/
- //,
- //"<xts:string id="CALCULATION_CONCATENATION" encode="javascript"/>", "concat"
- /***** TEMPORARY *****/
- );
- break;
- case "time":
- calcList = new Array(
- "<xts:string id="CALCULATION_DIFFERENCE" encode="javascript"/>", "-",
- "<xts:string id="CALCULATION_EARLIEST" encode="javascript"/>", "min",
- "<xts:string id="CALCULATION_LATEST" encode="javascript"/>", "max",
- "<xts:string id="CALCULATION_HOUR" encode="javascript"/>", "hour",
- "<xts:string id="CALCULATION_MINUTE" encode="javascript"/>", "minute",
- "<xts:string id="CALCULATION_SECOND" encode="javascript"/>", "second"
- /***** TEMPORARY *****/
- //,
- //"<xts:string id="CALCULATION_CONCATENATION" encode="javascript"/>", "concat"
- /***** TEMPORARY *****/
- );
- break;
- case "datetime":
- calcList = new Array(
- "<xts:string id="CALCULATION_DIFFERENCE" encode="javascript"/>", "-",
- "<xts:string id="CALCULATION_DAYS_BETWEEN" encode="javascript"/>", "daysBetween",
- "<xts:string id="CALCULATION_MONTHS_BETWEEN" encode="javascript"/>", "monthsBetween",
- "<xts:string id="CALCULATION_YEARS_BETWEEN" encode="javascript"/>", "yearsBetween",
- "<xts:string id="CALCULATION_ADD_DAYS" encode="javascript"/>", "addDays",
- "<xts:string id="CALCULATION_ADD_MONTHS" encode="javascript"/>", "addMonths",
- "<xts:string id="CALCULATION_ADD_YEARS" encode="javascript"/>", "addYears",
- "<xts:string id="CALCULATION_EARLIEST" encode="javascript"/>", "min",
- "<xts:string id="CALCULATION_LATEST" encode="javascript"/>", "max",
- "<xts:string id="CALCULATION_YEAR" encode="javascript"/>", "year",
- "<xts:string id="CALCULATION_MONTH" encode="javascript"/>", "month",
- "<xts:string id="CALCULATION_WEEK" encode="javascript"/>", "week",
- "<xts:string id="CALCULATION_DAY" encode="javascript"/>", "day",
- "<xts:string id="CALCULATION_HOUR" encode="javascript"/>", "hour",
- "<xts:string id="CALCULATION_MINUTE" encode="javascript"/>", "minute",
- "<xts:string id="CALCULATION_SECOND" encode="javascript"/>", "second"
- /***** TEMPORARY *****/
- //,
- //"<xts:string id="CALCULATION_CONCATENATION" encode="javascript"/>", "concat"
- /***** TEMPORARY *****/
- );
- break;
- case "interval":
- calcList = new Array(
- "<xts:string id="CALCULATION_SUM" encode="javascript"/>", "+",
- "<xts:string id="CALCULATION_DIFFERENCE" encode="javascript"/>", "-",
- "<xts:string id="CALCULATION_DAYS" encode="javascript"/>", "days",
- "<xts:string id="CALCULATION_MAXIMUM" encode="javascript"/>", "max",
- "<xts:string id="CALCULATION_MINIMUM" encode="javascript"/>", "min",
- "<xts:string id="CALCULATION_RANK" encode="javascript"/>", "rank"
- /***** TEMPORARY *****/
- //,
- //"<xts:string id="CALCULATION_CONCATENATION" encode="javascript"/>", "concat"
- /***** TEMPORARY *****/
- );
- break;
- default:
- calcList = new Array(
- "<xts:string id="CALCULATION_CONCATENATION" encode="javascript"/>", "concat"
- );
- break;
- }
- if (calcNumberList)
- {
- var ii, iiEnd;
- // populate calculation list
- switch (calcNumberType)
- {
- case "arithmetic":
- ii = 0;
- iiEnd = calcNumberBreaks[1];
- break;
- case "percentage":
- ii = calcNumberBreaks[1];
- iiEnd = calcNumberBreaks[2];
- break;
- case "analytic":
- ii = calcNumberBreaks[2];
- iiEnd = calcNumberBreaks[3];
- break;
- default:
- ii = calcNumberBreaks[3];
- iiEnd = calcNumberBreaks[4];
- break;
- }
- for (var i = 0; i < validCalcs.length; i++)
- {
- if ((validCalcs[i] >= ii) && (validCalcs[i] < iiEnd))
- {
- // calcList load
- var o = new Option();
- o.name = calcList[validCalcs[i] * sizeofCalcListItem];
- o.text = calcList[validCalcs[i] * sizeofCalcListItem];
- o.value = calcList[validCalcs[i] * sizeofCalcListItem + 1];
- document.f.calcList.options[document.f.calcList.options.length] = o;
- }
- }
- for (ii = 0; ii < calcNumberList.length; ii++)
- {
- // calcNumberList load
- var o = new Option();
- o.name = calcNumberList[ii];
- o.text = calcNumberList[ii];
- o.value = calcNumberBreaks[ii];
- document.f.calcNumberList.options[document.f.calcNumberList.options.length] = o;
- }
- }
- else
- {
- // populate calculation list
- for (var i = 0; i < validCalcs.length; i++)
- {
- // calcList load
- var o = new Option();
- o.name = calcList[validCalcs[i] * sizeofCalcListItem];
- o.text = calcList[validCalcs[i] * sizeofCalcListItem];
- o.value = calcList[validCalcs[i] * sizeofCalcListItem + 1];
- document.f.calcList.options[document.f.calcList.options.length] = o;
- }
- }
- getConfigFrame().cfgRemove("CALCULATION_REFRESH");
- }
- function loadHint() {
- if (document.f.calc_hint != null)
- document.f.calc_hint.value = generateName(true);
- else
- setTimeout("loadHint()", 10);
- }
- function onSelOperation() {
- if (typeof load == "function")
- load ();
- setGlobals(calcType, false);
- if (!getConfigFrame().refreshNewCalculation(calcType, getConfigFrame().cfgGet("CALCULATION_REFRESH")))
- loadHint ();
- }
- function setGlobals(calcType, bClear) {
- var cf = getConfigFrame();
- // keep previous selection
- var _calcIndex = cf.cfgGet("CALCULATION_INDEX_" + calcType.toUpperCase());
- if (_calcIndex != null)
- cf.cfgSet("CALCULATION_PREVIOUS_INDEX_" + calcType.toUpperCase(), _calcIndex);
- if (bClear)
- {
- cf.cfgRemove("CALCULATION_INDEX_" + calcType.toUpperCase());
- cf.cfgRemove("CALCULATION_INDEX_" + calcType.toUpperCase() + "_BUMPER");
- }
- else
- {
- if (document.f.calcNumberList)
- {
- cf.cfgSet("CALCULATION_INDEX_NUMERIC_TYPE", document.f.calcNumberList.selectedIndex);
- cf.cfgSet("CALCULATION_INDEX_NUMERIC_TYPE_VALUE", document.f.calcNumberList[document.f.calcNumberList.selectedIndex].value);
- var indexToUse = -1;
- for (var i = 0; i < calcList.length; i++)
- {
- if (document.f.calcList.value == calcList[i])
- {
- indexToUse = (i - 1) / sizeofCalcListItem;
- indexToUse -= document.f.calcNumberList[document.f.calcNumberList.selectedIndex].value;
- break;
- }
- }
- if (indexToUse >= 0)
- cf.cfgSet("CALCULATION_INDEX_" + calcType.toUpperCase() + "_BUMPER", indexToUse);
- else
- cf.cfgRemove("CALCULATION_INDEX_" + calcType.toUpperCase() + "_BUMPER");
- }
- else
- cf.cfgRemove("CALCULATION_INDEX_" + calcType.toUpperCase() + "_BUMPER");
- cf.cfgSet("CALCULATION_INDEX_" + calcType.toUpperCase(), document.f.calcList.selectedIndex);
- }
- if (cf && cf.showDialogFrame)
- <out:choose>
- <out:when test="/root/env/param[@name='xxSubstVar']='true'">
- cf.showDialogFrame(475);
- </out:when>
- <out:otherwise>
- cf.showDialogFrame(410);
- </out:otherwise>
- </out:choose>
- }
- function removeInsert() {
- document.getElementById("calcInsert").removeAttribute("href");
- }
- function addInsert() {
- document.getElementById("calcInsert").setAttribute("href", "javascript:doInsert(null)");
- }
- function doInsert(evt) {
- if(goDialogManager.isSpaceOrEnterKeyEvent(evt))
- {
- setGlobals(calcType, true);
- execute();
- }
- }
- function cancelDialog(evt) {
- if(goDialogManager.isSpaceOrEnterKeyEvent(evt))
- {
- setGlobals(calcType, true);
- getConfigFrame().hideDialogFrame();
- }
- }
- function stringReplace(origString, valToReplace, newString) {
- var strRegExp = new RegExp();
- strRegExp.compile(valToReplace, "g");
- //if we have $ in string then replace $ lteral with $$ literal as $ carries special meaning of "End of String"
- var repNewString = new String(newString);
- repNewString = repNewString.replace(/\$/g,"$$$$");
- return origString.replace(strRegExp, repNewString);
- }
- function catchSubmit(iKeyCode) {
- //catch the Enter key code
- <out:if test="/root/system/param[@name='disableEnterKeyAutoSubmit'] = 'false'">
- if (iKeyCode == 13)
- {
- execute();
- }
- </out:if>
- }
- function updateValueField(substString, substValue)
- {
- //the case where text boxes need to be seamlessley hidden and shown depending on the type of data
- if (document.getElementById("textBoxNumeric"))
- {
- if (substString == null)
- {
- if (getDisplayStyle("textBoxNumeric") != "none" && textBoxnumberValue && textBoxnumberValue.isValid())
- {
- textBoxnumberValue.m_oForm.select();
- }
- else
- {
- if (textBoxstringValue) {
- textBoxstringValue.clear();
- }
- setDisplayStyle("textBoxString", "none");
- if (document.all)
- setDisplayStyle("textBoxNumeric", "inline");
- else
- setDisplayStyle("textBoxNumeric", "table-cell");
- if (textBoxnumberValue && textBoxnumberValue.m_oForm) {
- textBoxnumberValue.m_oForm.select();
- }
- redrawHint();
- }
- }
- else
- {
- if (textBoxnumberValue) {
- textBoxnumberValue.clear();
- }
- setDisplayStyle("textBoxNumeric", "none");
- if (document.all)
- setDisplayStyle("textBoxString", "inline");
- else
- setDisplayStyle("textBoxString", "table-cell");
- if (textBoxstringValue && textBoxstringValue.m_oForm) {
- textBoxstringValue.m_oForm.value=substString;
- }
- substVarValue = substValue;
- redrawHint();
- }
- }
- //the case where the textbox does not need to be hidden since a radio button is provided
- else
- {
- document.f.inputValueRadio[1].checked = true;
- if (textBoxstringValue && textBoxstringValue.m_oForm) {
- textBoxstringValue.m_oForm.value = substString;
- }
- substVarValue = substValue;
- redrawHint();
- }
- }
- function setDisplayStyle(id, styleValue)
- {
- var obj = document.getElementById(id);
- if (obj && obj.style && obj.style) {
- obj.style.display = styleValue;
- }
- }
- function getDisplayStyle(id)
- {
- var obj = document.getElementById(id);
- if (obj && obj.style && obj.style.display) {
- return obj.style.display;
- }
- return null;
- }
- function checkOverflowOnSelect(selectObj)
- {
- var minimumWidth = 260;
- selectObj.style.width = "auto";
- if (selectObj.offsetWidth <= minimumWidth)
- selectObj.style.width = minimumWidth + "px";
- }
- function getCalcName()
- {
- var calcName = "";
- if (document.f.calc_label[1].checked == true)
- {
- calcName = document.f.calc_label_text.value;
- if (calcName == "")
- {
- calcName = generateName();
- }
- }
- else
- {
- calcName = generateName();
- }
- return calcName;
- }
- </xsl:template>
- <xsl:template match="clcdlg:basic_header">
- <!-- dialog header -->
- <dp:header help="false">
- <!-- header titles -->
- <dp:title>
- <xts:string id="CALCULATE_CREATE_BASIC_TITLE"/>
- </dp:title>
- <!-- close link for the header -->
- <dp:close>
- <a href="javascript:setGlobals(calcType, true);getConfigFrame().hideDialogFrame()">
- <dp:closeMarker/>
- </a>
- </dp:close>
- <!-- description (hint text) -->
- <dp:description>
- <xts:string id="CALCULATE_CREATE_BASIC_DESCRIPTION"/>
- </dp:description>
- </dp:header>
- </xsl:template>
- <xsl:template match="clcdlg:calculationsType">
- <dp:input>
- <dp:section1><xts:string id="CALCULATION_OPERATION_TYPE"/></dp:section1>
- <dp:section2>
- <select name="calcNumberList" size="0" onChange="javascript:removeInsert();onSelOperation();">
- <out:attribute name="style">width:260px;</out:attribute>
- </select>
- </dp:section2>
- </dp:input>
- </xsl:template>
- <xsl:template match="clcdlg:calculations">
- <dp:input>
- <dp:section1><xts:string id="CALCULATION_OPERATION"/></dp:section1>
- <dp:section2>
- <select name="calcList" size="0" onChange="javascript:removeInsert();onSelOperation();if (typeof setTextBoxFocus == 'function') setTextBoxFocus();">
- <out:attribute name="style">width:260px;</out:attribute>
- </select>
- </dp:section2>
- </dp:input>
- </xsl:template>
- <xsl:template match="clcdlg:calc_hint">
- <dp:input>
- <dp:section1><xts:string id="CALCULATION_EXPRESSION"/></dp:section1>
- <dp:section2>
- <textarea name="calc_hint" readOnly="true" rows="5" cols="30">
- <out:attribute name="style">border: gray 1px solid; overflow: auto; font-family: Tahoma, arial, geneva, helvetica, sans-serif;</out:attribute>
- </textarea>
- </dp:section2>
- </dp:input>
- <dp:section1>
- <div class="formLabel"><xts:string id="CALCULATION_LABEL_NAME"/></div>
- </dp:section1>
- <dp:section2>
- <dp:choice>
- <dp:section1><input type="radio" name="calc_label" checked="true"/></dp:section1>
- <dp:section2><xts:string id="CALCULATION_DEFAULT_NAME"/></dp:section2>
- <dp:section1><input type="radio" name="calc_label"/></dp:section1>
- <dp:section2>
- <input type="text" name="calc_label_text" onClick="javascript:document.f.calc_label[1].checked = true;" onKeyDown="javascript:setTimeout('document.f.calc_label[1].checked = true;', 10);" style="width:300px;">
- <out:if test="/root/system/param[@name='disableEnterKeyAutoSubmit'] != 'true'">
- <out:attribute name="onKeyUp">javascript:if (event.keyCode == 13) execute();</out:attribute>
- </out:if>
- </input>
- </dp:section2>
- </dp:choice>
- </dp:section2>
- </xsl:template>
- <xsl:template match="clcdlg:buttons">
- <dp:footer>
- <span id="calcInsert">
- <df:button df:id="DIALOG_INSERT_BUTTON" df:style="href" onkeypress="javascript:doInsert(event);" df:href="javascript:doInsert(null);" df:defaultKey="active"/>
- </span>
- <df:button df:id="DIALOG_CANCEL_BUTTON" df:style="href" onkeypress="javascript:cancelDialog(event);" df:href="javascript:cancelDialog(null);"/>
- </dp:footer>
- </xsl:template>
- <xsl:template match="clcdlg:subst_var">
- var buttonContainerStyle = new CUIStyle('mainHeader3', '', '', '', '');
- var buttonStyle = new CUIStyle('dialogButton', 'dialogButtonOver', '', '', '');
- var menuItemStyle = new CUIStyle('menuItem_normal', 'menuItem_hover', '', '', 'menuItem_disabled');
- var menuStyle = new CUIStyle('clsMenu', '', '', '', '');
- var substButtonContainer = new CBar('buttonContainer', buttonContainerStyle, null, '<out:value-of select="$webRoot"/>/common/images/toolbar/');
- var bHideMenuButton = true;
- var substButton = new CToolbarButton(substButtonContainer, '', '<out:value-of select="$webRoot"/>/qs/images/substitution_variables.gif', '', buttonStyle, true, null, null, '<out:value-of select="$webRoot"/>');
- var substButtonDropDown = substButton.createDropDownMenu(menuStyle);
- <xsl:if test="@numeric='true'">
- new CMenuItem(substButtonDropDown, '<xts:string id="CALCULATION_NUMBER_SUBST_VAR" encode="javascript"/>', 'javascript:updateValueField(null, null);', '', menuItemStyle, '<out:value-of select="$webRoot"/>', '<out:value-of select="$skin_root"/>');
- </xsl:if>
- var numConstants = cf.dlgGlobalSize("xxSubstVarPair");
- for (var i = 0; i < numConstants; i++)
- {
- var substVarPair = cf.dlgGlobalGetParmAt('xxSubstVarPair', i)
- new CMenuItem(substButtonDropDown, substVarPair[0], 'javascript:updateValueField("' + substVarPair[0] + '", "' + substVarPair[1] + '");', '', menuItemStyle, '<out:value-of select="$webRoot"/>', '<out:value-of select="$skin_root"/>');
- }
- substButtonContainer.setMenuType(cHorizonalBar);
- substButtonContainer.setAlign('left');
- substButtonContainer.draw();
- </xsl:template>
- <!-- the main engine -->
- <xsl:template match="*">
- <xsl:copy>
- <xsl:copy-of select="@*"/>
- <xsl:apply-templates/>
- </xsl:copy>
- </xsl:template>
- </xsl:stylesheet>
|