1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- Licensed Materials - Property of IBM
- IBM Cognos Products: ps
- (C) Copyright IBM Corp. 2005, 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).
- -->
- <xts:morphlet xmlns:xts="http://developer.cognos.com/schemas/xts/" messageBase="messages/portal.xml, messages/portalRL.xml" includeConfig="true" requiredCapability="canUseAdministrationPortal">
- <xts:block id="formlogic_init" type="exec" mode="interpret" processor="XSLT" path="/logicsheets/formlogic_init.xslt" nodelist="env,credential,system,http"/>
- <!--
- ===============================================================================================
- getConfig - Need to get the list of namespace ID's
- ===============================================================================================
- -->
- <xts:block id="getConfig" processor="XSLT" type="exec" dependency="formlogic_init" condition=".[not(/root/env/param[@name='web64EncodedRoutingHints'])]" mandatory="false">
- <xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/">
- <xts:sequence>
- <xts:append>
- <xts:function name="getConfiguration">
- <xts:param name="AAA"/>
- </xts:function>
- </xts:append>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
-
- <!--
- ===============================================================================================
- getContent - get our data from Content Manager
- ===============================================================================================
- -->
- <xts:block id="getContent" processor="XSLT" type="exec" dependency="formlogic_init getConfig">
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/"
- xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
- xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
- exclude-result-prefixes="xsl send cm pf">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:key name="env-param" match="/root/env/param" use="@name"/>
- <pf:variables/>
-
- <xsl:template match="/">
- <xts:sequence>
- <xts:append>
- <!-- only query for the routing hints once since this might be a costly request -->
- <xsl:choose>
- <xsl:when test="key('env-param','web64EncodedRoutingHints')!=''">
- <xsl:value-of select="xtsext:web64decode( xtsext:cafaction('sign_unwrap', string( key('env-param','web64EncodedRoutingHints'))), true() )" disable-output-escaping="yes"/>
- </xsl:when>
- <xsl:otherwise>
- <routingHints>
- <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
- <send:request provider="cm">
- <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
- <cm:query>
- <cm:requests>
- <!-- get all the packages, uploadedFiles, modules and datasets -->
- <cm:query>
- <cm:search>//package[hasProperty('routingHints')] | //uploadedFile[hasProperty('routingHints')] | //module[hasProperty('routingHints')] | //dataSet[hasProperty('routingHints')]</cm:search>
- <cm:properties>
- <cm:property name="searchPath"/>
- <cm:property name="defaultName"/>
- <cm:property name="routingHints"/>
- <cm:property name="storeID"/>
- <cm:property name="iconURI"/>
- <cm:property name="hidden"/>
- </cm:properties>
- </cm:query>
- <!-- Cognos namespace-->
- <cm:query>
- <cm:search>/directory/namespace[@id = ':']//*[@objectClass='group' or @objectClass='role'][hasProperty('routingHints')]</cm:search>
- <cm:properties>
- <cm:property name="searchPath"/>
- <cm:property name="defaultName"/>
- <cm:property name="routingHints"/>
- <cm:property name="storeID"/>
- <cm:property name="iconURI"/>
- <cm:property name="hidden"/>
- </cm:properties>
- </cm:query>
- <!-- third party namespaces -->
- <xsl:for-each select="/root/configuration/property[@name='AAA']/*[local-name()='value']/*[local-name()='instances']/*[local-name()='instance']/*[local-name()='parameter' and @name='id']/*[local-name()='value' and . != '']">
- <cm:query>
- <cm:search>/directory/namespace[@id="<xsl:value-of select="."/>"]//*[@objectClass='role' or @objectClass='group'][hasProperty('routingHints')]</cm:search>
- <cm:properties>
- <cm:property name="searchPath"/>
- <cm:property name="defaultName"/>
- <cm:property name="routingHints"/>
- <cm:property name="storeID"/>
- <cm:property name="iconURI"/>
- </cm:properties>
- </cm:query>
- </xsl:for-each>
- </cm:requests>
- </cm:query>
- </xts:transform>
- </send:request>
- </xts:transform>
- </routingHints>
- </xsl:otherwise>
- </xsl:choose>
- </xts:append>
-
- <xts:append>
- <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
- <send:request provider="cm">
- <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
- <cm:query>
- <cm:requests>
- <cm:query>
- <cm:search>/configuration</cm:search>
- <cm:properties>
- <cm:property name="defaultName"/>
- <cm:property name="searchPath"/>
- <cm:property name="routingTable"/>
- <cm:property name="permissions"/>
- </cm:properties>
- </cm:query>
- <!-- get the list of serverGroups -->
- <cm:query>
- <cm:search>/configuration|/configuration//*[@objectClass='dispatcher' or @objectClass='configurationFolder']</cm:search>
- <cm:properties>
- <cm:property name="serverGroup"/>
- <cm:property name="searchPath"/>
- <cm:property name="defaultName"/>
- <cm:property name="iconURI"/>
- <cm:property name="hidden"/>
- </cm:properties>
- </cm:query>
- </cm:requests>
- </cm:query>
- </xts:transform>
- </send:request>
- </xts:transform>
- </xts:append>
- <!-- if the user selected to clear all the rules that refer to groups that no longer exists,
- then we must recreate the defaults since the server group value has already changed to 'none' by this point -->
- <xsl:if test="key('env-param','action')='removeEmptyServerGroup'">
- <xts:delete select="/root/env/param[starts-with(@name,'rule_')]"/>
- </xsl:if>
-
- <xts:append select="/root/env">
- <xsl:if test="not(key('env-param','visited_routing_rules')) or key('env-param','action')='removeEmptyServerGroup'">
- <xts:transform src="transforms/portal/config/generateDefaults.xslt" processor="XSLT">
- <root>
- <xts:queryNode select="/root/*[local-name()='queryResponse']/*[local-name()='queryReply'][1]/*/*[local-name()='routingTable']"/>
- </root>
- </xts:transform>
- </xsl:if>
-
- <!-- web64 encode the routing hints since it's potentially a very expensive CM query to make -->
- <xsl:if test="not(key('env-param','web64EncodedRoutingHints'))">
- <xts:transform src="portal/controls/create_web64_param.xslt" processor="XSLT">
- <param name="web64EncodedRoutingHints">
- <passport><xsl:value-of select="$passport"/></passport>
- <markup>
- <xts:transform name="XMLEncode">
- <xts:queryNode select="/root/routingHints"/>
- </xts:transform>
- </markup>
- </param>
- </xts:transform>
- </xsl:if>
- </xts:append>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ===============================================================================================
- genRoutingRules - this block takes care of generating an XML structure which will be used
- by the pager.
-
- Will build the following structure
- <routingRules>
- <rule>1</rule>
- <rule>2</rule>
- <rule>new</rule> when the user hit the 'add rule' link
- <rule>link</rule> always present at the end to show the 'add rule' link in the table
- </routingRules>
- ===============================================================================================
- -->
- <xts:block id="genRoutingRules" processor="XSLT" type="exec" dependency="getContent">
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/" exclude-result-prefixes="xsl cm">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:key name="env-param" match="/root/env/param" use="@name"/>
- <xsl:template match="/">
- <xts:sequence>
- <xsl:variable name="rule_count" select="count(/root/env/param[starts-with(@name,'rule_package_')])"/>
- <xsl:variable name="action" select="key('env-param','action')"/>
- <xsl:choose>
- <xsl:when test="$action = 'add'">
- <xts:append>
- <routingRules>
- <xsl:for-each select="/root/env/param[starts-with(@name,'rule_package_')]">
- <xsl:sort select="substring-after(@name,'rule_package_')" data-type="number"/>
- <rule>
- <xsl:value-of select="substring-after(@name,'rule_package_')"/>
- </rule>
- </xsl:for-each>
- <rule>new</rule>
- <rule>link</rule>
- </routingRules>
- </xts:append>
- </xsl:when>
- <xsl:when test="$action = 'delete'">
- <xts:append>
- <routingRules>
- <xsl:for-each select="/root/env/param[starts-with(@name,'rule_package_')]">
- <xsl:sort select="substring-after(@name,'rule_package_')" data-type="number"/>
- <xsl:if test="not(key('env-param','rule_checkbox') = substring-after(@name,'rule_package_'))">
- <rule>
- <xsl:value-of select="substring-after(@name,'rule_package_')"/>
- </rule>
- </xsl:if>
- </xsl:for-each>
- <rule>link</rule>
- </routingRules>
- </xts:append>
- </xsl:when>
- <xsl:when test="$action = 'removeEmptyServerGroup'">
- <xts:append>
- <routingRules>
- <xsl:for-each select="/root/env/param[starts-with(@name,'rule_package_')]">
- <xsl:sort select="substring-after(@name,'rule_package_')" data-type="number"/>
-
- <xsl:variable name="rulePos" select="substring-after(@name,'rule_package_')"/>
- <xsl:if test="/root/cm:queryResponse/cm:queryReply[2]/*/cm:serverGroup[ key('env-param',concat('rule_server_group_',$rulePos)) = string(.)]">
- <rule>
- <xsl:value-of select="substring-after(@name,'rule_package_')"/>
- </rule>
- </xsl:if>
- </xsl:for-each>
- <rule>link</rule>
- </routingRules>
- </xts:append>
- </xsl:when>
- <xsl:when test="key('env-param','visited_modify_sequence')='true'">
- <xts:delete select="/root/env/param[@name='visited_modify_sequence']"/>
- <xts:append>
- <routingRules>
- <xsl:for-each select="/root/env/param[@name='entriesSortOrder']">
- <xsl:sort select="substring-before(.,',')" data-type="number"/>
- <rule>
- <xsl:value-of select="substring-after(.,',')"/>
- </rule>
- </xsl:for-each>
- <rule>link</rule>
- </routingRules>
- </xts:append>
- <xts:delete select="/root/env/param[@name='entriesSortOrder']"/>
- </xsl:when>
- <xsl:when test="$rule_count = '0'">
- <xts:append>
- <routingRules>
- <rule>link</rule>
- </routingRules>
- </xts:append>
- </xsl:when>
- <xsl:otherwise>
- <xts:append>
- <routingRules>
- <xsl:for-each select="/root/env/param[starts-with(@name,'rule_package_')]">
- <xsl:sort select="substring-after(@name,'rule_package_')" data-type="number"/>
- <rule>
- <xsl:value-of select="substring-after(@name,'rule_package_')"/>
- </rule>
- </xsl:for-each>
- <rule>link</rule>
- </routingRules>
- </xts:append>
- </xsl:otherwise>
- </xsl:choose>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ===============================================================================================
- format - render the page
- ===============================================================================================
- -->
- <xts:block id="format" mode="output" processor="XSLT" type="exec" dependency="getContent genRoutingRules" mimeType="text/html">
- <!-- portal specific information -->
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <!-- get the new theme stuff -->
- <xts:logicsheet path="logicsheets/presentation/layout.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/framework.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/presentation.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/controls/framework.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/controls/presentation.xsl"/>
- <xts:logicsheet path="logicsheets/formlogic.xslt"/>
- <xts:logicsheet path="logicsheets/validation.xslt"/>
- <xts:logicsheet path="logicsheets/presentation/touch_up.xslt"/>
-
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 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:cf="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/framework/" xmlns:cp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/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:cm="http://developer.cognos.com/schemas/xts-cm/1/" exclude-result-prefixes="pf lyt dp cf cp df utml xtsext cm">
- <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:key name="server-group" match="*[cm:serverGroup != '']" use="cm:serverGroup"/>
- <xsl:variable name="uniqueServerGroups" select="/root/cm:queryResponse/cm:queryReply[2]/*[generate-id(.)=generate-id(key('server-group',cm:serverGroup))]/cm:serverGroup"/>
-
- <xsl:key name="package-hints" match="/root/routingHints/cm:queryResponse/cm:queryReply[1]/*/cm:routingHints/cm:string[. != '']" use="."/>
- <xsl:variable name="uniquePackageHints" select="/root/routingHints/cm:queryResponse/cm:queryReply[1]/*/cm:routingHints/*[generate-id(.)=generate-id(key('package-hints',.))]"/>
- <xsl:key name="group-hints" match="/root/routingHints/cm:queryResponse/cm:queryReply[position() > 1]/cm:group/cm:routingHints/cm:string[. != '']" use="."/>
- <xsl:variable name="uniqueGroupHints" select="/root/routingHints/cm:queryResponse/cm:queryReply[position() > 1]/cm:group/cm:routingHints/*[generate-id(.)=generate-id(key('group-hints',.))]"/>
- <xsl:key name="role-hints" match="/root/routingHints/cm:queryResponse/cm:queryReply[position() > 1]/cm:role/cm:routingHints/cm:string[. != '']" use="."/>
- <xsl:variable name="uniqueRoleHints" select="/root/routingHints/cm:queryResponse/cm:queryReply[position() > 1]/cm:role/cm:routingHints/*[generate-id(.)=generate-id(key('role-hints',.))]"/>
- <!-- Global template variables -->
- <pf:variables/>
- <pf:gen-icon/>
- <xsl:variable name="mname" select="'specify_routing_rules.xts'"/>
- <xsl:variable name="has_write_permission" select="contains( /root/cm:queryResponse/cm:queryReply[1]/*/cm:permissions, 'write' )"/>
-
-
- <!-- start the output -->
- <xsl:template match="/root">
- <xsl:variable name="browserTitle">
- <xts:string id="IDS_SRR_TITLE"/>
- </xsl:variable>
- <xsl:text disable-output-escaping='yes'><!DOCTYPE html></xsl:text><dp:page longTitle="$browserTitle">
- <dp:meta>
- <pf:meta/>
- <!-- Standard meta tags -->
- </dp:meta>
- <pf:help/>
- <script language="javascript" src="{$webcontent}/{$app}/js/list.js"/>
- <script language="javascript" src="{$webcontent}/{$app}/js/dynDropDown.js"/>
- <script language="javascript" src="{$webcontent}/{$app}/js/utilities.js"/>
- <script language="javascript">
- var duplicateRule;
-
- var g_packageHints = new Array();
- var g_groupHints = new Array();
- var g_roleHints = new Array();
- var g_validCheck = new Array();
-
- function init()
- {
- <!-- need to initialize the hint arrays -->
- <!-- package array -->
- g_packageHints[0] = new Array("<xts:string id="IDS_SRR_ANY_PACKAGE" encode="javascript"/>","");
- var aForm = document.pform;
- <xsl:for-each select="$uniquePackageHints">
- <xsl:sort select="." lang="$productLocale"/>
- g_packageHints[<xsl:value-of select="position()"/>] = new Array("<xsl:value-of select="xtsext:javascriptencode(.)"/>", "<xsl:value-of select="xtsext:javascriptencode(.)"/>");
-
- var node = document.createElement("input");
- node.name = "dataObjectToClass_" + "<xsl:value-of select="xtsext:javascriptencode(.)"/>";
- node.type = "hidden";
- node.value = "<xsl:value-of select="xtsext:javascriptencode(../../cm:objectClass)"/>";
- aForm.appendChild(node);
-
- </xsl:for-each>
- <!-- group array -->
- g_groupHints[0] = new Array("<xts:string id="IDS_SRR_ANY_GROUP" encode="javascript"/>","");
- <xsl:for-each select="$uniqueGroupHints">
- <xsl:sort select="." lang="$productLocale"/>
- g_groupHints[<xsl:value-of select="position()"/>] = new Array("<xsl:value-of select="xtsext:javascriptencode(.)"/>", "<xsl:value-of select="xtsext:javascriptencode(.)"/>");
- </xsl:for-each>
- <!-- role array -->
- g_roleHints[0] = new Array("<xts:string id="IDS_SRR_ANY_ROLE" encode="javascript"/>","");
- <xsl:for-each select="$uniqueRoleHints">
- <xsl:sort select="." lang="$productLocale"/>
- g_roleHints[<xsl:value-of select="position()"/>] = new Array("<xsl:value-of select="xtsext:javascriptencode(.)"/>", "<xsl:value-of select="xtsext:javascriptencode(.)"/>");
- </xsl:for-each>
- <!-- The position are not the same as the rule_package_xx numbers once we delete a rule.-->
- <xsl:for-each select="/root/routingRules/rule[.!='link']">
- <xsl:variable name="packageValue" select="key('env-param',concat('rule_package_', .))"/>
- <xsl:variable name="groupValue" select="key('env-param',concat('rule_group_', .))"/>
- <xsl:variable name="roleValue" select="key('env-param',concat('rule_role_', .))"/>
- g_validCheck[<xsl:value-of select="position()"/>] = new Array(<xsl:value-of select="not($packageValue != '' and not(key('package-hints',$packageValue)))"/>, <xsl:value-of select="not($groupValue != '' and not(key('group-hints',$groupValue)))"/>, <xsl:value-of select="not($roleValue != '' and not(key('role-hints',$roleValue)))"/>);
- updateWarning(<xsl:value-of select="position()"/>);
- </xsl:for-each>
- }
-
- function validate()
- {
- frm = document.pform;
- duplicateRule = 'false';
- <xsl:variable name="ruleCount" select="count(/root/routingRules/rule[. != 'link'])"/>
- <xsl:for-each select="/root/routingRules/rule[. != 'link']">
- if ( !validateRule(frm.rule_server_group_<xsl:value-of select="position()"/>) )
- return false;
- </xsl:for-each>
- <!-- since all the other validation has passed, now make sure there are no duplicate entries -->
- <xsl:for-each select="/root/routingRules/rule[. != 'link']">
- if (duplicateRule == 'false')
- checkDuplicateRule(frm.rule_package_<xsl:value-of select="position()"/>, frm.rule_group_<xsl:value-of select="position()"/>, frm.rule_role_<xsl:value-of select="position()"/>, frm.rule_server_group_<xsl:value-of select="position()"/>);
- </xsl:for-each>
-
- if (duplicateRule == 'true')
- {
- alert("<xts:string id="IDS_SRR_DUPLICATE_RULE" encode="javascript"/>")
- }
-
- return true;
- }
- function checkDuplicateRule(packageRoutingSet, userGroupSet, userRoleSet, serverGroup)
- {
- <xsl:for-each select="/root/routingRules/rule[. != 'link']">
- if ( packageRoutingSet.name != frm.rule_package_<xsl:value-of select="position()"/>.name &&
- serverGroup.value == frm.rule_server_group_<xsl:value-of select="position()"/>.value &&
- packageRoutingSet.value == frm.rule_package_<xsl:value-of select="position()"/>.value &&
- userGroupSet.value == frm.rule_group_<xsl:value-of select="position()"/>.value &&
- userRoleSet.value == frm.rule_role_<xsl:value-of select="position()"/>.value)
- {
- duplicateRule = 'true';
- frm.rule_duplicate_<xsl:value-of select="position()"/>.value = 'true';
- }
- </xsl:for-each>
- }
-
-
- function validateRule(serverGroup)
- {
- <!-- make sure the user select a server group for each rule -->
- for (var i=0; i < serverGroup.length; i++)
- {
- if (serverGroup[i].selected)
- {
- if (serverGroup[i].value == '')
- {
- alert("<xts:string id="IDS_SRR_NO_SERVER_GROUP" encode="javascript"/>");
- serverGroup.focus();
- return false;
- }
- break;
- }
- }
-
- return true;
- }
-
- <!--
- When one of hints change, then update the valid array
- -->
- function verifyChangedValue(obj, valid)
- {
- if (obj)
- {
- <!-- need to get the position from editField_rule_<objectClass>_<position> -->
- var position = obj.name.substring(obj.name.indexOf('_')+1);
- position = position.substring(position.indexOf('_')+1);
- <!-- objectType should be package, group or role -->
- var objectType = position.substring(0, position.indexOf('_'));
- position = position.substring(position.indexOf('_')+1);
-
- var col;
- if (objectType == 'package')
- {
- col = 0;
- }
- else if (objectType == 'group')
- {
- col = 1;
- }
- else if (objectType == 'role')
- {
- col = 2;
- }
-
- g_validCheck[position][col] = valid;
- updateWarning(position);
- }
- }
-
- <!--
- Shows/hides the warning icon with the apropriate tooltip
- -->
- function updateWarning(position)
- {
- warning = document.getElementById('warning_'+position);
-
- var innerHTML = '';
-
- if (!g_validCheck[position][0] || !g_validCheck[position][1] || !g_validCheck[position][2])
- {
- innerHTML = '<img src="<xsl:value-of select="xtsext:javascriptencode(string($image_root))"/>msg_warning_16.gif"';
- var invalidHints = '';
- if (!g_validCheck[position][0])
- {
- invalidHints += document.getElementById('rule_package_'+position).value;
- }
- if (!g_validCheck[position][1])
- {
- if (invalidHints != '')
- {
- invalidHints += ', ';
- }
- invalidHints += document.getElementById('rule_group_'+position).value;
- }
- if (!g_validCheck[position][2])
- {
- if (invalidHints != '')
- {
- invalidHints += ', ';
- }
- invalidHints += document.getElementById('rule_role_'+position).value;
- }
-
- if (invalidHints.indexOf('"')!=-1 && invalidHints.indexOf("'")!=-1)
- {
- <!-- we have both quots and apos in our string. Need to fix it before we put it as the tooltip -->
- invalidHints = invalidHints.replace(/"/g,"'");
- }
-
- if (invalidHints.indexOf('"')!=-1)
- {
- <xsl:variable name="altQuot">
- <xts:string id="IDS_SRR_WARNING_TOOLTIP" encode="javascript"><xts:param name="routingSets">" + invalidHints + "</xts:param></xts:string>
- </xsl:variable>
- innerHTML += " alt='<xsl:value-of select="normalize-space($altQuot)"/>'";
- innerHTML += " title='<xsl:value-of select="normalize-space($altQuot)"/>'";
- innerHTML += " role='alert'";
- }
- else
- {
- <xsl:variable name="altApos">
- <xts:string id="IDS_SRR_WARNING_TOOLTIP" encode="javascript"><xts:param name="routingSets">' + invalidHints + '</xts:param></xts:string>
- </xsl:variable>
- innerHTML += ' alt="<xsl:value-of select="normalize-space($altApos)"/>"';
- innerHTML += ' title="<xsl:value-of select="normalize-space($altApos)"/>"';
- innerHTML += " role='alert'";
- }
-
- innerHTML += '/>';
- warning.style.display = '';
- }
- else
- {
- innerHTML = '<img width="16" src="<xsl:value-of select="xtsext:javascriptencode(string($webcontent))"/>/images/space.gif"/>';
- warning.style.display = 'none';
- }
- warning.innerHTML = innerHTML;
- }
-
- function showViewMemebersDialog(pos)
- {
- if (!document.getElementById('viewMembersPacakge'))
- {
- return;
- }
- document.getElementById('viewMembersPacakge').innerHTML = buildPopupSection('package', pos);
- document.getElementById('viewMembersGroup').innerHTML = buildPopupSection('group', pos);
- document.getElementById('viewMembersRole').innerHTML = buildPopupSection('role', pos);
- document.getElementById('viewMembersServerGroup').innerHTML = buildPopupSection('server_group', pos);
-
- viewMemebers.hide(); //this is to fix a bug with the scroll bar disappearing in firefox on mac
- viewMemebers.show();
- }
-
- function buildPopupSection(objectClass, pos)
- {
- var control = document.getElementById('rule_'+objectClass+'_'+pos);
- if (!control)
- return;
- var hintName = '';
- var hintValue = '';
- <xsl:choose>
- <xsl:when test="$has_write_permission = false()">
- hintName = document.getElementById('rule_'+objectClass+'_'+pos).value;
- hintValue = document.getElementById('rule_'+objectClass+'_'+pos).value;
- </xsl:when>
- <xsl:otherwise>
- if (objectClass == 'server_group')
- {
- hintName = getSelectedText(control);
- hintValue = getSelectedValue(control);
- }
- else
- {
- var editField = document.getElementById('editField_rule_'+objectClass+'_'+pos);
- if (!editField)
- return;
-
- hintName = editField.value;
- hintValue = control.value;
- }
- </xsl:otherwise>
- </xsl:choose>
- var innerHTML = '<table width="100%" cellpadding="0" cellspacing="0" role="presentation">';
- if (hintValue == '')
- {
- innerHTML += '<tr>';
- innerHTML += '<td width="10">&#160;</td>';
- innerHTML += '<td class="formText">';
- if (objectClass == 'package')
- {
- innerHTML += '<xts:string id="IDS_MRS_ANY_PACKAGE" encode="javascript"/>';
- }
- else if (objectClass == 'group')
- {
- innerHTML += '<xts:string id="IDS_MRS_ANY_GROUP" encode="javascript"/>';
- }
- else if (objectClass == 'role')
- {
- innerHTML += '<xts:string id="IDS_MRS_ANY_ROLE" encode="javascript"/>';
- }
- else
- {
- innerHTML += '<xts:string id="IDS_SRR_SERVER_GROUPNONE" encode="javascript"/>';
- }
- innerHTML += '</td>';
- innerHTML += '</tr>';
- }
- else
- {
- innerHTML += '<tr>';
- innerHTML += '<td class="formText" colspan="3" width="100%">';
-
- <!-- get the value of the package, group, role or server control -->
- innerHTML += getInnerHTMLFromText(hintName);
-
- innerHTML += '</td>';
- innerHTML += '</tr>';
-
- innerHTML += '<table width="100%" class="groupingBorder" role="presentation">';
-
- if (objectClass == 'package')
- {
- <xsl:for-each select="/root/routingHints/cm:queryResponse/cm:queryReply[1]/cm:*/cm:routingHints/cm:string">
- if ('<xsl:value-of select="xtsext:javascriptencode(string(.))"/>' == hintValue)
- {
- innerHTML += buildObjectRow('<xsl:value-of select="xtsext:javascriptencode(string(../../cm:objectClass))"/>', '<xsl:value-of select="xtsext:javascriptencode(xtsext:htmlencode(string(../../cm:defaultName)))"/>');
- }
- </xsl:for-each>
- }
- else if (objectClass == 'group')
- {
- <xsl:for-each select="/root/routingHints/cm:queryResponse/cm:queryReply/*[cm:objectClass='group']/cm:routingHints/cm:string">
- if ('<xsl:value-of select="xtsext:javascriptencode(string(.))"/>' == hintValue)
- {
- innerHTML += buildObjectRow(objectClass, '<xsl:value-of select="xtsext:javascriptencode(xtsext:htmlencode(string(../../cm:defaultName)))"/>');
- }
- </xsl:for-each>
- }
- else if (objectClass == 'role')
- {
- <xsl:for-each select="/root/routingHints/cm:queryResponse/cm:queryReply/*[cm:objectClass='role']/cm:routingHints/cm:string">
- if ('<xsl:value-of select="xtsext:javascriptencode(string(.))"/>' == hintValue)
- {
- innerHTML += buildObjectRow(objectClass, '<xsl:value-of select="xtsext:javascriptencode(xtsext:htmlencode(string(../../cm:defaultName)))"/>');
- }
- </xsl:for-each>
- }
- else
- {
- <xsl:for-each select="/root/cm:queryResponse/cm:queryReply[2]/*/cm:serverGroup">
- if ('<xsl:value-of select="xtsext:javascriptencode(string(.))"/>' == hintValue)
- {
- innerHTML += buildObjectRow('<xsl:value-of select="xtsext:javascriptencode(string(../cm:objectClass))"/>', '<xsl:value-of select="xtsext:javascriptencode(xtsext:htmlencode(string(../cm:defaultName)))"/>');
- }
- </xsl:for-each>
- }
- }
- innerHTML += '</table>';
- innerHTML += '</table>';
- return innerHTML;
- }
-
- function buildObjectRow(objectClass, defaultName)
- {
- var innerHTML = '';
- var icon = document.getElementById('icon_'+objectClass).innerHTML;
- innerHTML += '<tr>';
- innerHTML += '<td width="5"></td>';
- innerHTML += '<td style="padding-right:2px;">';
- innerHTML += icon;
- innerHTML += '</td>';
- innerHTML += '<td class="formText" width="100%">';
- innerHTML += defaultName;
- innerHTML += '</td>';
- innerHTML += '</tr>';
-
- return innerHTML;
- }
-
- function getSelectedText(obj)
- {
- for (var i=0; i < obj.length; i++)
- {
- if (obj[i].selected)
- {
- return obj[i].text;
- }
- }
- }
-
- function getSelectedValue(obj)
- {
- for (var i=0; i < obj.length; i++)
- {
- if (obj[i].selected)
- {
- return obj[i].value;
- }
- }
- }
- function getInnerHTMLFromText (str)
- {
- var div = document.createElement('div');
- var text = document.createTextNode(str);
- div.appendChild(text);
- return div.innerHTML;
- }
- </script>
- <utml:form name="pform" method="post" action="{$gateway}">
- <utml:exclude-prefix>
- <xsl:value-of select="'rule_'"/>
- </utml:exclude-prefix>
- <utml:exclusion-list>
- <xsl:for-each select="/root/routingRules/rule">
- <xsl:value-of select="concat(' editField_rule_package_', position(), ' ')"/>
- <xsl:value-of select="concat(' editField_rule_group_', position(), ' ')"/>
- <xsl:value-of select="concat(' editField_rule_role_', position(), ' ')"/>
- </xsl:for-each>
- </utml:exclusion-list>
- <utml:input type="hidden" name="ifrmcmd" value="save" utml:update="false"/>
- <utml:input type="hidden" name="action" value="" utml:update="false"/>
- <utml:input type="hidden" name="ps_nav_op" value=""/>
- <utml:input type="hidden" name="m" value=""/>
- <utml:input type="hidden" name="visited_routing_rules" value="true" utml:update="false"/>
- <utml:input type="hidden" name="m_obj" value="{/root/env/param[@name='m_obj']}"/>
- <utml:input type="hidden" name="m_class" value="{/root/env/param[@name='m_class']}"/>
- <utml:input type="hidden" name="backURL" value="{/root/env/param[@name='backURL']}"/>
- <xsl:if test="string(/root/env/param[@name='ui.cafcontextid']) != ''">
- <utml:input type="hidden" name="ui.cafcontextid" value="{/root/env/param[@name='ui.cafcontextid']}"/>
- </xsl:if>
- <!-- header -->
- <dp:header>
- <dp:title>
- <xsl:value-of select="$browserTitle"/>
- </dp:title>
- <dp:description>
- <xts:string id="IDS_SRR_INTRO"/>
- </dp:description>
- </dp:header>
- <!-- body -->
- <lyt:layout style="1">
- <lyt:section>
- <dp:list width="100%">
- <dp:section>
- <dp:label>
- <xts:string id="IDS_SRR_ROUTING_RULES"/>
- </dp:label>
- </dp:section>
- <dp:section>
- <cp:table name="routingRules" iterate="/root/routingRules/rule" width="100%" align="left">
- <!-- possible actions -->
- <cp:action>
- <xsl:if test="$has_write_permission = true()">
- <utml:a utml:op="maintain">
- <utml:href>document.pform.action.value = 'add';</utml:href>
- <xsl:text/><xts:string id="IDS_SRR_TABLE_NEW_RULE"/><xsl:text/>
- </utml:a>
- </xsl:if>
- </cp:action>
- <cp:action>
- <xsl:if test="$has_write_permission = true()">
- <utml:a utml:op="maintain">
- <utml:href>
- <xsl:text>if(!isSelected('rule_checkbox')){alert("<xts:string id="IDS_REMOVE_WARNING" encode="javascript"/>");return;}</xsl:text>
- <xsl:text>javascript:document.pform.action.value = 'delete';</xsl:text>
- </utml:href>
- <xsl:text/><xts:string id="IDS_REMOVE"/><xsl:text/>
- </utml:a>
- </xsl:if>
- </cp:action>
- <cp:action>
- <xsl:if test="$has_write_permission = true()">
- <utml:a utml:op="stack-up" utml:formName="pform">
- <utml:target>
- <xsl:value-of select="concat($app, '/modify_rules_sequence.xts')"/>
- </utml:target>
- <xsl:text/><xts:string id="IDS_PROP_JOB_MODIFY_SEQUENCE"/><xsl:text/>
- </utml:a>
- </xsl:if>
- </cp:action>
- <cp:action>
- <utml:a utml:op="maintain" utml:formName="pform" utml:hide-when-read-only="true">
- <utml:target>
- <xsl:value-of select="$app"/>/view_expanded_rules.xts<xsl:text/>
- </utml:target>
- <xsl:text/><xts:string id="IDS_SRR_VIEW_EXPANDED"/><xsl:text/>
- </utml:a>
- </cp:action>
- <cp:tableHeader>
- <!-- checkbox -->
- <cp:columnHeader width="16" toggleName="rule_checkbox" utml="utml" noLabel="true"/>
- <cp:columnHeader>
- <xts:string id="IDS_SRR_TABLE_SEQUENCE"/>
- </cp:columnHeader>
- <cp:columnHeader width="16"/>
- <cp:columnHeader id="lbl_packageRoutingSet">
- <xts:string id="IDS_SRR_TABLE_PACKAGE_ROUTING_SET"/>
- </cp:columnHeader>
- <cp:columnHeader id="lbl_groupRoutingSet">
- <xts:string id="IDS_SRR_TABLE_GROUP_ROUTING_SET"/>
- </cp:columnHeader>
- <cp:columnHeader id="lbl_roleRoutingSet">
- <xts:string id="IDS_SRR_TABLE_ROLE_ROUTING_SET"/>
- </cp:columnHeader>
- <cp:columnHeader/>
- <cp:columnHeader id="lbl_serverGroup">
- <xts:string id="IDS_SRR_TABLE_SERVER_GROUP"/>
- </cp:columnHeader>
- <cp:columnHeader>
- <xts:string id="IDS_SRR_TABLE_ACTIONS"/>
- </cp:columnHeader>
- </cp:tableHeader>
- <cp:tableContent>
- <xsl:variable name="currentRule" select="."/>
- <xsl:if test="$currentRule != 'link'">
- <!-- hidden input used to remove duplicate rules -->
- <input type="hidden" name="rule_duplicate_{position()}" value="false"/>
- </xsl:if>
- <!-- checkbox -->
- <cp:columnContent>
- <xsl:if test="$currentRule != 'link' and $has_write_permission">
- <input type="checkbox" name="rule_checkbox" value="{position()}" onclick="if (window.closeDropDown) closeDropDown();">
- <xsl:attribute name="aria-label"><xts:string id="IDS_SELECTION_FOR_PAGER_ITEM" encode="html"><xts:param name="pagerItemName"><xsl:value-of select="position()"/></xts:param></xts:string></xsl:attribute>
- </input>
- </xsl:if>
- </cp:columnContent>
- <!-- sequence -->
- <cp:columnContent scope="row">
- <xsl:choose>
- <xsl:when test="$currentRule = 'link'">
- <xsl:if test="position()='1'">
- <xts:string id="IDS_SRR_TABLE_EMPTY"/>
-   
- </xsl:if>
- <xsl:if test="$has_write_permission">
- <utml:a utml:op="maintain">
- <utml:href>document.pform.action.value = 'add';</utml:href>
- <xsl:text/><xts:string id="IDS_SRR_TABLE_NEW_RULE"/><xsl:text/>
- </utml:a>
- </xsl:if>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="position()"/>
- </xsl:otherwise>
- </xsl:choose>
- </cp:columnContent>
- <!-- warning icon -->
- <cp:columnContent>
- <xsl:if test="$currentRule != 'link'">
- <table cellpadding="0" cellspacing="0" border="0" style="width:16px;">
- <tr>
- <td id="warning_{position()}" style="width:16px;">
- <img height="16" width="16" src="{$webcontent}/images/space.gif"/>
- </td>
- </tr>
- </table>
- </xsl:if>
- </cp:columnContent>
- <!-- package routing set -->
- <cp:columnContent valing="bottom">
- <xsl:if test="$currentRule != 'link'">
- <xsl:choose>
- <xsl:when test="$has_write_permission">
- <xsl:variable name="oldControlName" select="concat('rule_package_', $currentRule)"/>
- <xsl:variable name="packageValue">
- <xsl:choose>
- <xsl:when test="key('env-param',$oldControlName)!=''">
- <xsl:value-of select="key('env-param',$oldControlName)"/>
- </xsl:when>
- <xsl:otherwise><xts:string id="IDS_SRR_ANY_PACKAGE"/></xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <cf:dynamicDropDown width="100%" name="concat('rule_package_', position())" filterList="true" validate="verifyChangedValue" selectedValue="key('env-param',$oldControlName)" selectedName="$packageValue" array="'g_packageHints'" tooltipID="IDS_SRR_DROP_DOWN_TOOLTIP_PACKAGE" form="pform" aria-labelledby="'lbl_packageRoutingSet'"/>
- </xsl:when>
- <xsl:when test="key('env-param',concat('rule_package_',$currentRule))!=''">
- <input type="hidden" name="{concat('rule_package_', $currentRule)}" id="{concat('rule_package_', $currentRule)}" value="{key('env-param',concat('rule_package_',$currentRule))}"/>
- <xsl:value-of select="key('env-param',concat('rule_package_',$currentRule))"/>
- </xsl:when>
- <xsl:otherwise>
- <input type="hidden" name="{concat('rule_package_', $currentRule)}" id="{concat('rule_package_', $currentRule)}" value=""/>
- <xts:string id="IDS_SRR_ANY_PACKAGE"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:if>
- </cp:columnContent>
- <!-- group routing set -->
- <cp:columnContent>
- <xsl:if test="$currentRule != 'link'">
- <xsl:choose>
- <xsl:when test="$has_write_permission">
- <xsl:variable name="oldControlName" select="concat('rule_group_', $currentRule)"/>
- <xsl:variable name="groupValue">
- <xsl:choose>
- <xsl:when test="key('env-param',$oldControlName)!=''">
- <xsl:value-of select="key('env-param',$oldControlName)"/>
- </xsl:when>
- <xsl:otherwise><xts:string id="IDS_SRR_ANY_GROUP"/></xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <cf:dynamicDropDown width="100%" name="concat('rule_group_', position())" filterList="true" validate="verifyChangedValue" selectedValue="key('env-param',$oldControlName)" selectedName="$groupValue" array="'g_groupHints'" tooltipID="IDS_SRR_DROP_DOWN_TOOLTIP_GROUP" form="pform" aria-labelledby="'lbl_groupRoutingSet'"/>
- </xsl:when>
- <xsl:when test="key('env-param',concat('rule_group_',$currentRule)) != ''">
- <input type="hidden" name="{concat('rule_group_', $currentRule)}" id="{concat('rule_group_', $currentRule)}" value="{key('env-param',concat('rule_group_',$currentRule))}"/>
- <xsl:value-of select="key('env-param',concat('rule_group_',$currentRule))"/>
- </xsl:when>
- <xsl:otherwise>
- <input type="hidden" name="{concat('rule_group_', $currentRule)}" id="{concat('rule_group_', $currentRule)}" value=""/>
- <xts:string id="IDS_SRR_ANY_GROUP"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:if>
- </cp:columnContent>
- <!-- role routing set -->
- <cp:columnContent>
- <xsl:if test="$currentRule != 'link'">
- <xsl:choose>
- <xsl:when test="$has_write_permission">
- <xsl:variable name="oldControlName" select="concat('rule_role_', $currentRule)"/>
- <xsl:variable name="roleValue">
- <xsl:choose>
- <xsl:when test="key('env-param',$oldControlName)!=''">
- <xsl:value-of select="key('env-param',$oldControlName)"/>
- </xsl:when>
- <xsl:otherwise><xts:string id="IDS_SRR_ANY_ROLE"/></xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <cf:dynamicDropDown width="100%" name="concat('rule_role_', position())" filterList="true" validate="verifyChangedValue" selectedValue="key('env-param',$oldControlName)" selectedName="$roleValue" array="'g_roleHints'" tooltipID="IDS_SRR_DROP_DOWN_TOOLTIP_ROLE" form="pform" aria-labelledby="'lbl_roleRoutingSet'"/>
- </xsl:when>
- <xsl:when test="key('env-param',concat('rule_role_',$currentRule)) != ''">
- <input type="hidden" name="{concat('rule_role_', $currentRule)}" id="{concat('rule_role_', $currentRule)}" value="{key('env-param',concat('rule_role_',$currentRule))}"/>
- <xsl:value-of select="key('env-param',concat('rule_role_',$currentRule))"/>
- </xsl:when>
- <xsl:otherwise>
- <input type="hidden" name="{concat('rule_role_', $currentRule)}" id="{concat('rule_role_', $currentRule)}" value=""/>
- <xts:string id="IDS_SRR_ANY_ROLE"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:if>
- </cp:columnContent>
- <!-- route to -->
- <cp:columnContent align="center">
- <xsl:if test="$currentRule != 'link'">
- <img src="{$image_root}icon_route_to.gif">
- <xsl:attribute name="alt"><xts:string id="IDS_SRR_TABLE_ROUTE_TO"/></xsl:attribute>
- <xsl:attribute name="title"><xts:string id="IDS_SRR_TABLE_ROUTE_TO"/></xsl:attribute>
- </img>
- </xsl:if>
- </cp:columnContent>
- <!-- server group -->
- <cp:columnContent>
- <xsl:if test="$currentRule != 'link'">
- <xsl:choose>
- <xsl:when test="$has_write_permission">
- <select name="rule_server_group_{position()}" id="rule_server_group_{position()}" onclick="if (window.closeDropDown) closeDropDown();" aria-labelledby="lbl_serverGroup">
- <option value="">
- <xsl:if test="key('env-param',concat('rule_server_group_',$currentRule)) = ''">
- <xsl:attribute name="selected">selected</xsl:attribute>
- </xsl:if>
- <xts:string id="IDS_SRR_SERVER_GROUP_NONE"/>
- </option>
- <xsl:for-each select="$uniqueServerGroups">
- <xsl:sort select="." lang="$contentLocale"/>
- <option value="{.}">
- <xsl:if test="string(key('env-param',concat('rule_server_group_',$currentRule))) = string(.)">
- <xsl:attribute name="selected">selected</xsl:attribute>
- </xsl:if>
- <xsl:value-of select="."/>
- </option>
- </xsl:for-each>
- </select>
- </xsl:when>
- <xsl:otherwise>
- <input type="hidden" name="{concat('rule_server_group_', $currentRule)}" id="{concat('rule_server_group_', $currentRule)}" value="{key('env-param',concat('rule_server_group_',$currentRule))}"/>
- <xsl:value-of select="string(key('env-param',concat('rule_server_group_',$currentRule)))"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:if>
- </cp:columnContent>
- <!-- actions -->
- <cp:columnContent>
- <xsl:if test="$currentRule != 'link'">
- <img height="16" width="16" src="{$image_root}action_view_members.gif" onclick="showViewMemebersDialog({position()});" role="button" tabindex="0">
- <xsl:attribute name="alt"><xts:string id="IDS_SRR_INFO"/></xsl:attribute>
- <xsl:attribute name="aria-label"><xts:string id="IDS_SRR_INFO_ARIA"><xts:param name="sequence"><xsl:value-of select="position()"/></xts:param></xts:string></xsl:attribute>
- </img>
- </xsl:if>
- </cp:columnContent>
- </cp:tableContent>
- </cp:table>
- </dp:section>
- </dp:list>
- </lyt:section>
- </lyt:layout>
- <!-- Helpers for the popup dialog, need to get all the possible icons -->
- <div id="icon_package" style="display:none; border: 0px; padding: 0px; overflow:off;">
- <xsl:call-template name="gen-icon">
- <xsl:with-param name="class" select="'package'"/>
- <xsl:with-param name="showAction" select="false()"/>
- </xsl:call-template>
- </div>
- <div id="icon_dataSet" style="display:none; border: 0px; padding: 0px; overflow:off;">
- <xsl:call-template name="gen-icon">
- <xsl:with-param name="class" select="'dataSetCA'"/>
- <xsl:with-param name="showAction" select="false()"/>
- </xsl:call-template>
- </div>
- <div id="icon_module" style="display:none; border: 0px; padding: 0px; overflow:off;">
- <xsl:call-template name="gen-icon">
- <xsl:with-param name="class" select="'module'"/>
- <xsl:with-param name="showAction" select="false()"/>
- </xsl:call-template>
- </div>
- <div id="icon_uploadedFile" style="display:none; border: 0px; padding: 0px; overflow:off;">
- <xsl:call-template name="gen-icon">
- <xsl:with-param name="class" select="'uploadedFile'"/>
- <xsl:with-param name="showAction" select="false()"/>
- </xsl:call-template>
- </div>
- <div id="icon_group" style="display:none; border: 0px; padding: 0px; overflow:off;">
- <xsl:call-template name="gen-icon">
- <xsl:with-param name="class" select="'group'"/>
- <xsl:with-param name="showAction" select="false()"/>
- </xsl:call-template>
- </div>
- <div id="icon_role" style="display:none; border: 0px; padding: 0px; overflow:off;">
- <xsl:call-template name="gen-icon">
- <xsl:with-param name="class" select="'role'"/>
- <xsl:with-param name="showAction" select="false()"/>
- </xsl:call-template>
- </div>
- <div id="icon_dispatcher" style="display:none; border: 0px; padding: 0px; overflow:off;">
- <xsl:call-template name="gen-icon">
- <xsl:with-param name="class" select="'dispatcher'"/>
- <xsl:with-param name="showAction" select="false()"/>
- </xsl:call-template>
- </div>
- <div id="icon_configurationFolder" style="display:none; border: 0px; padding: 0px; overflow:off;">
- <xsl:call-template name="gen-icon">
- <xsl:with-param name="class" select="'folder'"/>
- <xsl:with-param name="showAction" select="false()"/>
- </xsl:call-template>
- </div>
- <!-- View the members popup dialog -->
- <cp:genericDialog id="viewMemebers" interactive="true" align="left" width="450" height="250" positionVertical="true" positionHorizontal="true" closeOnClick="viewMemebers.hide();">
- <cp:param name="title"><xts:string id="IDS_SRR_VIEW_THE_MEMBERS"/></cp:param>
- <cp:param name="body">
- <div style="height:250px; width:450px; display:block; border: 0px; padding: 0px; overflow:auto;">
- <table width="100%" cellpadding="0" cellspacing="0" role="presentation">
- <tr>
- <td width="10"> </td>
- <td width="100%" colspan="2" class="formLabel"><xts:string id="IDS_SRR_PACKAGE_ROUTING_SET"/></td>
- <td width="10" rowspan="8"> </td>
- </tr>
- <tr>
- <td width="10"> </td>
- <td style="padding-bottom:5px;">
- <div id="viewMembersPacakge" style="display:block; border: 0px; padding: 0px; overflow:off;"></div>
- </td>
- </tr>
- <tr>
- <td width="10"> </td>
- <td width="100%" colspan="2" class="formLabel"><xts:string id="IDS_SRR_GROUP_ROUTING_SET"/></td>
- </tr>
- <tr>
- <td width="10"> </td>
- <td style="padding-bottom:5px;">
- <div id="viewMembersGroup" style="display:block; border: 0px; padding: 0px; overflow:off;"></div>
- </td>
- </tr>
- <tr>
- <td width="10"> </td>
- <td width="100%" colspan="2" class="formLabel"><xts:string id="IDS_SRR_ROLE_ROUTING_SET"/></td>
- </tr>
- <tr>
- <td width="10"> </td>
- <td style="padding-bottom:5px;">
- <div id="viewMembersRole" style="display:block; border: 0px; padding: 0px; overflow:off;"></div>
- </td>
- </tr>
- <tr>
- <td width="10"> </td>
- <td width="100%" colspan="2" class="formLabel"><xts:string id="IDS_SRR_GROUP_MEMBERS"/></td>
- </tr>
- <tr>
- <td width="10"> </td>
- <td style="padding-bottom:5px;">
- <div id="viewMembersServerGroup" style="display:block; border: 0px; padding: 0px; overflow:off;"></div>
- </td>
- </tr>
- </table>
- </div>
- </cp:param>
- <cp:param name="footer">
- <dp:simpleFooter>
- <df:button df:id="IDS_CLOSE" df:style="href" df:href="javascript:viewMemebers.hide();"/>
- </dp:simpleFooter>
- </cp:param>
- </cp:genericDialog>
-
- <!-- footer -->
- <dp:footer>
- <xsl:choose>
- <xsl:when test="$has_write_permission">
- <df:button df:id="IDS_OK" utml:validate="true" df:style="submit"/>
- <xsl:choose>
- <xsl:when test="key('env-param', 'ps_nav_stack') and not(key('env-param', 'ps_nav_stack') = '') ">
- <df:button df:id="IDS_CANCEL" df:style="stack-down"/>
- </xsl:when>
- <xsl:otherwise>
- <df:button df:id="IDS_CANCEL" df:style="back-url"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <xsl:otherwise>
- <xsl:choose>
- <xsl:when test="key('env-param','ps_nav_stack') and not(key('env-param','ps_nav_stack') = '') ">
- <df:button df:id="IDS_CLOSE" df:style="stack-down"/>
- </xsl:when>
- <xsl:otherwise>
- <df:button df:id="IDS_CLOSE" df:style="back-url"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:otherwise>
- </xsl:choose>
- </dp:footer>
- <xsl:if test="not(key('env-param','visited_routing_rules'))">
- <script language="javascript">
- var missingRule = false;
-
- <xsl:for-each select="/root/env/param[starts-with(@name,'rule_server_group_')]">
- <xsl:variable name="rule" select="."/>
- <xsl:if test="not(/root/cm:queryResponse/cm:queryReply[2]/*/cm:serverGroup[string(.)=$rule])">
- missingRule = true;
- </xsl:if>
- </xsl:for-each>
-
- <!-- if we have a rule referencing a serverGroup that no longer exists -->
- if (missingRule)
- {
- if (window.confirm("<xts:string id="IDS_SRR_REMOVE_OLD_RULES" encode="javascript"/>"))
- {
- document.pform.action.value = 'removeEmptyServerGroup';
- document.pform.ps_nav_op.value = 'maintain';
- document.pform.m.value = 'portal/<xsl:value-of select="$mname"/>';
-
- window.setTimeout('document.pform.submit();', 1 );
- }
- }
- </script>
- </xsl:if>
- </utml:form>
- </dp:page>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ===============================================================================================
- debug - display debug information
- ===============================================================================================
- -->
- <xts:block id="debug" dependency="format" condition=".[/root/session/param[@name='debug']='1']" type="exec" mode="output" processor="XSLT" mandatory="false" mimeType="text/html">
- <!-- 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>
|