123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- Licensed Materials - Property of IBM
- IBM Cognos Products: AGS
- (C) Copyright IBM Corp. 2005, 2017
- US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- -->
- <xts:morphlet xmlns:xts="http://developer.cognos.com/schemas/xts/" messageBase="messages/portal.xml,messages/AGS.xml,messages/portalRL.xml" requiredCapability="canUseEventStudio">
- <!--
- ================================================================================
- decode the agent items
- ===============================================================================================
- -->
- <xts:block id="decode_agent_definition" processor="XSLT" type="exec" nodelist="env">
- <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/" exclude-result-prefixes="xts xtsext">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/">
- <xts:sequence>
- <xsl:if test="/root/env/param[@name = 'agent_definition_blob']">
- <xts:append select="/root">
- <xsl:value-of select="xtsext:web64decode( xtsext:cafaction('sign_unwrap_settemplatename_decodeagentdefinition_settemplateid_seqagenttasks001',string( /root/env/param[@name = 'agent_definition_blob'])), true() )" disable-output-escaping="yes"/>
- </xts:append>
- </xsl:if>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--
- =================================================================================================
- createDefaultSequencingValue - If the SeqTasks parameter does not exist then create it with the default value from the agent definition
- =================================================================================================
- -->
- <xts:block id="createDefaultSequencingValue" dependency="decode_agent_definition" processor="XSLT" type="exec" nodelist="env,agent_definition" condition=".[not (/root/env/param[@name='SeqTasks']) or /root/env/param[@name='SeqTasks']='']" mandatory="false">
- <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/" exclude-result-prefixes="xts xtsext">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/">
- <xts:sequence>
- <xts:append select="/root/env">
- <param name="SeqTasks">
- <xsl:value-of select="/root/agent_definition/sequencing"/>
- </param>
- </xts:append>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ==============================================================================================
- render_page
- Render the HTML page
- ===============================================================================================
- -->
- <xts:block id="render_page" dependency="createDefaultSequencingValue" mode="output" processor="XSLT" type="exec" mimeType="text/html" nodelist="system,env,session,user,actions,tabs,configProps,http,credential,cookies,setCookies,agent_definition">
- <!-- portal specific information -->
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <!-- Get the new theme framework. -->
- <xts:logicsheet path="logicsheets/presentation/dialog/ui-templates.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/framework.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/layout.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/presentation.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/templates.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/confirm.xslt"/>
- <xts:logicsheet path="logicsheets/presentation/controls/framework.xsl"/>
- <!-- apply the form logic -->
- <xts:logicsheet path="logicsheets/formlogic.xslt"/>
- <!-- Prevent the href from appearing in the status bar. -->
- <xts:logicsheet path="logicsheets/presentation/touch_up.xslt"/>
- <xsl:stylesheet version="1.0"
- xmlns:cf="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/framework/"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:ut="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/ui-templates/"
- xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
- xmlns:lyt="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/layout/"
- xmlns:dp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/presentation/"
- xmlns:df="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/framework/"
- xmlns:utml="http://developer.cognos.com/schemas/xts/logicsheet/xslt/formlogic/"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
- xmlns:xts="http://developer.cognos.com/schemas/xts/"
- exclude-result-prefixes="ut pf lyt dp df utml xtsext xts">
- <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no"/>
- <!-- add any theme variables -->
- <pf:variables/>
- <!-- start the output -->
- <xsl:template match="root">
- <xsl:variable name="script_name">
- <xsl:value-of select="/root/http/param[@name='SCRIPT_NAME']"/>
- </xsl:variable>
- <!-- Page and title -->
- <xsl:text disable-output-escaping='yes'><!DOCTYPE html></xsl:text><dp:page>
- <!-- specify the style sheet(used to render the active/inactive hint text)
- todo move this into its own xslt file. Do not put it into the dp stuff because that is relevant to the whole portal
- -->
- <link href="{$skin_root}/ags/ags.css" type="text/css" rel="stylesheet"/>
- <dp:meta/>
- <utml:form name="pform" method="post" action="{$gateway}">
- <utml:input type="hidden" name="hid" id="hid" utml:update="false" value="ug_cr_as_ag_spfy_ordr"/>
- <utml:input type="hidden" name="item2move" utml:update="true" id="item2move"/>
- <dp:header>
- <dp:title>
- <!--xsl:value-of select="$dialogTitle"/-->
- <xts:string id="DIALOG_TASK_SEQ_TITLE"/>
- </dp:title>
- <dp:description>
- <xts:string id="DIALOG_TASK_SEQ_DESC"/>
- </dp:description>
- <dp:close>
- <a href="#" onclick="doCancel(event);"><dp:closeMarker/></a>
- </dp:close>
- </dp:header>
- <lyt:layout style="1">
- <lyt:section>
- <dp:list>
- <dp:section>
- <dp:label>
- <xts:string id="DIALOG_SEQ_TASK_LABEL"/>
- </dp:label>
- </dp:section>
- <dp:section>
- <dp:description>
- <xts:string id="DIALOG_SEQ_TASK_DESC"/>
- </dp:description>
- </dp:section>
- <dp:section>
- <utml:radio-group name="SeqTasks">
- <utml:default-value>
- <xsl:text>AllAtOnce</xsl:text>
- </utml:default-value>
- <dp:list>
- <!-- values for the radio boxes are the values in CM - for sequencing tasks. Can put them
- in directly -->
- <dp:section>
- <utml:input type="radio" name="SeqTasks" value="parallel" onClick="onSequenceChange()"/>
- <xts:string id="ALL_AT_ONCE_LABEL"/>
- </dp:section>
- <dp:section>
- <utml:input type="radio" name="SeqTasks" value="sequential" onClick="onSequenceChange()"/>
- <xts:string id="IN_SEQUENCE_LABEL"/>
- </dp:section>
- </dp:list>
- </utml:radio-group>
- </dp:section>
- </dp:list>
- </lyt:section>
- </lyt:layout>
- <lyt:layout style="1">
- <lyt:section>
- <dp:textarea>
- <dp:section1>
- <xts:string id="DIALOG_TASK_LABEL"/>
- </dp:section1>
- <dp:section2>
- <div id="item2moveDiv" style="width:550px;height:120px;border:2;border-style: inset; overflow:auto; "/>
- <!--
- <utml:select size="8" style="width:350" name="item2move">
- <utml:default-value>
- <xsl:text>none</xsl:text>
- </utml:default-value>
- <xsl:for-each select="/root/agent_definition/items/item">
- <utml:option>
- <xsl:call-template name="setText">
- <xsl:with-param name="theText">
- <xsl:value-of select="./name"/>
- </xsl:with-param>
- </xsl:call-template>
- <utml:value>
- <xsl:value-of select="./id"/>
- </utml:value>
- </utml:option>
- </xsl:for-each>
- </utml:select>
- -->
- </dp:section2>
- <dp:section3>
- <dp:actions>
- <dp:action>
- <a href="#" onclick="onReorder('move_up');"><xts:string id="MOVE_UP_LABEL"/></a>
- </dp:action>
- <dp:action>
- <a href="#" onclick="onReorder('move_down');"><xts:string id="MOVE_DOWN_LABEL"/></a>
- </dp:action>
- <dp:action>
- <a href="#" onclick="onReorder('move_way_up');"><xts:string id="TO_TOP_LABEL"/></a>
- </dp:action>
- <dp:action>
- <a href="#" onclick="onReorder('move_way_down');"><xts:string id="TO_BOT_LABEL"/></a>
- </dp:action>
- </dp:actions>
- </dp:section3>
- </dp:textarea>
- </lyt:section>
- </lyt:layout>
- <cf:dynamicDiv name="enabledApply" visible="true" initialize="false">
- <dp:footer>
- <df:button df:id="IDS_OK" utml:validate="true" df:style="href" df:href="#" onclick="doOk();"/>
- <df:button df:id="IDS_CANCEL" df:style="href" df:href="#" onclick="doCancel(event);"/>
- <df:button df:id="IDS_APPLY" df:style="href" df:href="#" onclick="doApply();"/>
- </dp:footer>
- </cf:dynamicDiv>
- <cf:dynamicDiv name="disabledApply" visible="false" initialize="false">
- <dp:footer>
- <df:button df:id="IDS_OK" utml:validate="true" df:style="href" df:href="#" onclick="doOk();"/>
- <df:button df:id="IDS_CANCEL" df:style="href" df:href="#" onclick="doCancel(event);"/>
- <dp:button state="inactive"><dp:buttonText><xts:string id="IDS_APPLY"/></dp:buttonText></dp:button>
- </dp:footer>
- </cf:dynamicDiv>
- <cf:dynamicDiv name="disableAll" visible="false" initialize="false">
- <dp:footer>
- <dp:button state="inactive"><dp:buttonText><xts:string id="IDS_OK"/></dp:buttonText></dp:button>
- <dp:button state="inactive"><dp:buttonText><xts:string id="IDS_CANCEL"/></dp:buttonText></dp:button>
- <dp:button state="inactive"><dp:buttonText><xts:string id="IDS_APPLY"/></dp:buttonText></dp:button>
- </dp:footer>
- </cf:dynamicDiv>
- </utml:form>
- <script type="text/javascript" src="../common/framework/ui/CUIStyle.js">//</script>
- <script type="text/javascript" src="../ags/CList.js"/>
- <dp:script>
- <pf:help context="ug_cr_as_ag_spfy_ordr" eventStudio="true"/>
- <script type="text/javascript" src="../ags/help.js"/>
- <script type="text/javascript">
- var cf = parent.cf;
- var m_sAction = null;
- var clistTask;
- function init() {
- disableApplyButton();
- cf.showDialogFrame('100%');
- var uiStyle = new CUIStyle("SelValCList_li", "SelValCList_over", "SelValCList_selected", "", null);
- clistTask = new CList("myCListLeft",false, "CList_ul",uiStyle);
-
- var divTask = document.getElementById('item2moveDiv');
- divTask.className = "CList_hintText_inactive";
- // add the clistLeft on the page
-
- divTask.appendChild(clistTask.getListElement());
- // get rid of the previous contents of the select
- clistTask.removeAllNodes();
- var use_list = new Array(<xsl:value-of select="count(/root/agent_definition/items/item)"/>) ;
- var disp_list = new Array(<xsl:value-of select="count(/root/agent_definition/items/item)"/>) ;
-
- <xsl:for-each select="/root/agent_definition/items/item">
- use_list[<xsl:value-of select = "position()"/>-1] = '<xsl:value-of select="./id"/>' ;
- <xsl:variable name="taskDispName">
- <xsl:call-template name="setText">
- <xsl:with-param name="theText">
- <xsl:value-of select="./name"/>
- </xsl:with-param>
- </xsl:call-template>
- </xsl:variable>
- disp_list[<xsl:value-of select = "position()"/>-1] = '<xsl:value-of select="xtsext:javascriptencode(string($taskDispName))"/>' ;
- </xsl:for-each>
- for(var k = use_list.length-1; k>=0; k-- ) {
- var node1 = document.createElement("div");
-
- // set some stuff into it - the value that we're going to see
- node1.setAttribute('useValue', use_list[k] );
-
- var dispVal = document.createTextNode( disp_list[k] );
- node1.appendChild( dispVal );
- // add it to the selection
- clistTask.add(node1);
- }
- }
- function someThingGood() {
- var msgFrame = cf.getMessageIFrame();
- var doc = cf.getFrameDocument(msgFrame);
-
- var dialogFrame = cf.getDialogFrame();
- var dialogFrameDoc = cf.getFrameDocument(dialogFrame);
-
- var holder = new Object();
- //set the task sequence value, which will be parallel or sequence, this value is taken from the
- //dialog frame
- for (i=0;i < dialogFrameDoc.pform.SeqTasks.length;i++) {
- if (dialogFrameDoc.pform.SeqTasks[i].checked) {
- holder['SeqTasks'] = dialogFrameDoc.pform.SeqTasks[i].value;
- }
- }
-
- holder['item2move'] = buildItemXML();
- holder['tabSelectedID'] = doc.getElementById('tabSelectedID').value;
- holder['prevTabID'] = doc.getElementById('prevTabID').value;
- holder['itemSelected'] = doc.getElementById('itemSelected').value;
- holder['itemNewLocation'] = doc.getElementById("itemNewLocation").value;
- holder['agent_definition_blob'] = '<xsl:value-of select="xtsext:javascriptencode(string(/root/env/param[@name='agent_definition_blob']))"/>';
- holder['m'] = "/ags/summaryBarUpdate.xts";
- // force a SOAP fault for a passport expire - rather than a logon page.
- holder['forceSOAPFault']='false';
- var dispatcher = new cf.XHTTPDispatcher(updateSummaryBar, holder);
- cf.applicationActionManager.httpStart();
- try {
- setDialogFrameCursor('wait');
- dispatcher.dispatch();
- }catch(ex){
- cf.applicationActionManager.httpStop();
- setDialogFrameCursor('default');
- }
- }
- function updateSummaryBar(responseArray)
- {
- try {
- var responseXML = responseArray[0];
- var responseText = responseArray[1];
- cf.applicationActionManager.httpStop();
- var markupNode = responseXML.getElementsByTagName("markup");
- var markup = parent.getTextNodeValue(markupNode[0]);
- //IE needs responseText, so it needs to be passed in
- var parsedResponse = cf.parseResponse(responseXML, responseText);
- // decide what we're going to do
- if (parsedResponse.isLogonFault()) {
- cf.doPassportExpire(responseXML.childNodes[1],resendUpdateRequest,parsedResponse);
- //probably should not proceed to hideDialogFrame
- return;
- } else if (parsedResponse.isSoapFault()) {
- // we have a fault which is a genuine fault fault
- cf.doSOAPFault(responseXML.childNodes[1],null,parsedResponse);
- //probably should not proceed to hideDialogFrame
- return;
- } else if (markup && markup != '') {
- // do the HTML injection - should be interesting
- updateSummaryBarHTML(markup);
- var blobbyNode = responseXML.getElementsByTagName("blobby");
- updateAgentDefinition(blobbyNode);
- } else {
- // send the alert
- //maybe should do something here...
- //do not hide. This will at least stop you from navigating
- //back to dialogAdapter rather than slipping undetected.
- return;
- }
- if (m_sAction == 'ok') {
- cf.getConfigFrame().hideDialogFrame();
- }
- //update the agent changed state
- if (m_sAction == 'ok' || m_sAction == 'apply') {
- cf.agentHasChanged(true);
- }
- }
- finally {
- setDialogFrameCursor('default');
- }
- }
-
- function resendUpdateRequest() {
- cf.getCommandStackManager().getCommandStack().push("getDialogFrame().someThingGood()");
- }
-
- function updateSummaryBarHTML(markup)
- {
- // do the HTML injection - should be interesting
- var messageIFrame = cf.getMessageIFrame();
- var messageIFrame_doc = cf.getFrameDocument(messageIFrame);
- // get the insertion location - and inject the HTML
- var summaryBarDiv = messageIFrame_doc.getElementById("d1");
- // markup is html from agent structure
- summaryBarDiv.innerHTML= markup ;
- messageIFrame.initSummaryMenu();
- }
- function doSubmit()
- {
- document.pform.submit();
- }
-
- function buildItemXML() {
- var xml="<items>";
- var itemsList = clistTask.getAllItems();
- for (var i=0;i<itemsList.length;i++) {
-
- var item = itemsList[i];
- var taskId = item.getAttribute('useValue') ;
- xml+="<item id='"+taskId+"'/>";
- }
- xml +="</items>";
- return xml;
- }
- function addItems(selectElemRef){
- // loop over all the selected items
- for (var i=selectElemRef.length-1; i >-1 ; i--) {
- // move item i from select to selected
- if(!clistRight.containsItem(selectElemRef[i])) {
- var node1 = document.createElement("div");
- node1.setAttribute('useValue', selectElemRef[i].getAttribute('useValue') );
- var dispVal = document.createTextNode(selectElemRef[i].firstChild.nodeValue);
- node1.appendChild(dispVal);
- clistRight.add(node1);
- }
- }
- }
- function process(sAction) {
- someThingGood();
- //Save the action we are performing
- m_sAction = sAction;
- }
- function doOk()
- {
- if (document.getElementById('disabledApply').style.display=='none') {
- process('ok');
- }
- //hide the frame if the current settings have already been applied
- else {
- cf.getConfigFrame().hideDialogFrame();
- }
- }
- function doApply()
- {
- disableAllButton();
- process('apply');
- }
- function doCancel(evt)
- {
- cf.hideDialogFrame();
- }
- function disableAllButton()
- {
- showDynamicDiv('disableAll');
- hideDynamicDiv('disabledApply');
- hideDynamicDiv('enabledApply');
- }
- function enableAllButton()
- {
- hideDynamicDiv('disableAll');
- //The enableAll would be called after Apply or ok.
- //in either case we would need to reset to a disabled
- //apply button.
- disableApplyButton();
- }
- function enableApplyButton()
- {
- showDynamicDiv('enabledApply');
- hideDynamicDiv('disabledApply');
- hideDynamicDiv('disableAll');
- }
- function disableApplyButton()
- {
- showDynamicDiv('disabledApply');
- hideDynamicDiv('enabledApply');
- }
- function updateBlobValue(blobValue)
- {
- var msgFrame = cf.getMessageIFrame();
- if (msgFrame != null) {
- var msgFrameDoc = cf.getFrameDocument(msgFrame);
- var elmnt = cf.agsFormUtils.getElementFromFrame(msgFrame, "agent_definition_blob");
- if (elmnt == null || elmnt == undefined) {
- elmnt = cf.createHiddenInput(msgFrameDoc, "agent_definition_blob", "");
- msgFrameDoc.pform.appendChild(elmnt);
- }
- elmnt.value = blobValue;
- }
- }
- function updateAgentDefinition(blobby) {
- //no blobby found
- if (blobby != undefined && blobby != null) {
- //var msgFrame = cf.getMessageIFrame();
- var blob = parent.getTextNodeValue(blobby[0]);
- //blobby does not contain anything
- if (blob && blob != '') {
- updateBlobValue(blob);
- }
- }
- }
- function setDialogFrameCursor(cursorStyle) {
- var dialogFrame = cf.getDialogFrame();
- var dialogFrameDoc = cf.getFrameDocument(dialogFrame);
- if (dialogFrameDoc && dialogFrameDoc != null && dialogFrameDoc != undefined) {
- dialogFrameDoc.body.style.cursor = cursorStyle;
- }
-
- //disable the links
- var objLinks = dialogFrameDoc.links;
-
- if (cursorStyle=='wait') {
- disableAllButton();
- } else {
- enableAllButton();
- }
- //do not modify the Ok, cancel and apply, this is because
- //in FF at least if you modify the anchor you clicked on
- //It seems to redirect the page to cognoe connection.
- //I did not investigate further though, but eliminated the
- //need to modify the anchor contents.
- var regEx = new RegExp("[IDS_APPLY|IDS_CANCEL|IDS_OK]","gim");
- var objLinks = dialogFrameDoc.links;
- for(i=0;i<objLinks.length;i++) {
- var id = objLinks[i].id;
- if (!regEx.test(new String(id))) {
- disableLink(objLinks[i],cursorStyle=='wait');
- }
- }
- //disable the form inputs
- var ele = dialogFrameDoc.pform.elements
- for(j=0;j<ele.length;j++){
- ele[j].disabled = cursorStyle=='wait';
- }
- }
- function disableLink(anchor, flag){
- if(flag){
- var href = anchor.getAttribute('href');
- if(href && href != "") {
- anchor.setAttribute('ohref', href);
- anchor.setAttribute('href',"javascript:void(0);");
- if (href.indexOf("help") == -1) {
- anchor.style.color='#ACA899';
- }
- }
- var click = anchor.getAttribute('onclick');
- if(click && click != "") {
- anchor.setAttribute('oonclick', click);
- anchor.setAttribute('onclick',"return false");
- }
- } else {
- var href = anchor.getAttribute('ohref');
- if(href && href != "") {
- anchor.setAttribute('href', href);
- anchor.removeAttribute('ohref');
- if (href.indexOf("help") == -1) {
- anchor.style.color='blue';
- }
- }
- var click = anchor.getAttribute('oonclick');
- if(click && click != "") {
- anchor.setAttribute('onclick', click);
- anchor.removeAttribute('oonclick');
- }
- }
- }
- function onSequenceChange() {
- enableApplyButton();
- }
-
- function onReorder(operation) {
- var msgFrame = cf.getMessageIFrame();
- var selItemsList = clistTask.getSelectedNodes();
- if (selItemsList.length>0) {
- var selItem = selItemsList[selItemsList.length-1];
- var selItemId = selItem.getAttribute('id') ;
- var index = clistTask.indexById(selItemId);
- var lastIndex = clistTask.size()-1;
- //is the node already at the top of the list?
- if (operation=='move_up' && index > 0) {
- clistTask.up(selItemId);
- enableApplyButton();
- }
- //is the node already at the bottom of the list?
- else if (operation=='move_down' && index < lastIndex) {
- clistTask.down(selItemId);
- enableApplyButton();
- }
- //is the node already at the top of the list?
- else if (operation=='move_way_up' && index > 0) {
- clistTask.toTop(selItemId);
- enableApplyButton();
- }
- //is the node already at the bottom of the list?
- else if (operation=='move_way_down' && index < lastIndex) {
- clistTask.toBottom(selItemId);
- enableApplyButton();
- }
- }
- }
- </script>
- </dp:script>
- </dp:page>
- </xsl:template>
- <!-- taken from summarybar xslt -->
- <xsl:template name="setText">
- <xsl:param name="theText"/>
- <xsl:choose>
- <xsl:when test="$theText=''"><xts:string id="AGENT_SUMMARY_NONE"/></xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$theText"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ================================================================================
- debug
- ================================================================================
- -->
- <xts:block id="debug" type="exec" mode="output" processor="XSLT" condition=".[/root/session/param[@name = 'debug'] = '1']" mandatory="false" mimeType="text/html" dependency="render_page">
- <!-- Get the debug logic sheet -->
- <xts:logicsheet path="logicsheets/debuglogic.xslt"/>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dbg="http://developer.cognos.com/schemas/xts/logicsheets/xslt/debug/" exclude-result-prefixes="dbg">
- <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/">
- <dbg:dumpxml select="/root"/>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- </xts:morphlet>
|