123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- Licensed Materials - Property of IBM
- IBM Cognos Products: ps
- (C) Copyright IBM Corp. 2005, 2014
- 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" requiredCapability="canUseAdministrationPortal">
- <xts:block id="formlogic_init" type="exec" mode="interpret" processor="XSLT" path="/logicsheets/formlogic_init.xslt" nodelist="env,credential,system,http"/>
-
- <!--
- ===============================================================================================
- callMorphlet - Calls the appropriate morphlet using the passed in params which will return
- markup to be displayed or the expected results
- ===============================================================================================
- -->
- <xts:block
- id="callMorphlet"
- nodelist="requestParams,env, http, session, credential, cookies, header, user"
- processor="XSLT"
- type="exec"
- dependency="formlogic_init"
- condition=".[ /root/env/param[@name='controller_state'] != '' ]"
- mandatory="false">
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/controller-templates.xsl"/>
- <xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:dlgctrl="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/controller-templates/"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
- xmlns:req-params="http://developer.cognos.com/schemas/request/params"
- exclude-result-prefixes="xsl dlgctrl xtsext req-params">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
-
- <xsl:key name="request-param" match="/root/*[local-name()='requestParams']/*[local-name()='param']" use="@name"/>
-
- <xsl:template match="/">
- <xts:sequence>
- <dlgctrl:XTS2Request>
- <dlgctrl:target>/portal/addEntries/add_entries.xts</dlgctrl:target>
- <dlgctrl:stackName>addEntriesStack</dlgctrl:stackName>
- <req-params:param name="defaultTarget">/portal/properties_signon.xts</req-params:param>
- <req-params:param name="titlePostfix"><xsl:value-of select="/root/env/param[@name='m_name']"/></req-params:param>
- <req-params:param name="defaultSearchPath">/directory</req-params:param>
- <req-params:param name="showUsers">true</req-params:param>
- <req-params:param name="addEntriesUI">members</req-params:param>
- <req-params:param name="allowDuplicates">false</req-params:param>
- <req-params:param name="typeDialog">true</req-params:param>
- <req-params:param name="returnProperties">
- <req-params:property name="userName"/>
- </req-params:param>
- </dlgctrl:XTS2Request>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
-
- <!--
- ===============================================================================================
- processReponse - Process the response from the callMorphlet block and either displays
- the markup or processes the results
- ===============================================================================================
- -->
- <xts:block
- id="processResponse"
- nodelist="output,http,env,system,user,morphletResponse,credential,cookies"
- path="/portal/addEntries/logicsheets/process_added_entries.xslt"
- processor="XSLT"
- dependency="callMorphlet"
- type="exec"
- condition=".[ /root/env/param[@name='controller_state'] != '' ]"
- mandatory="false">
- <xts:logicsheet path="logicsheets/presentation/dialog/controller-templates.xsl"/>
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- </xts:block>
-
- <!-- Load object-specific property tabs map ============================================================== -->
- <xts:block id="getTabs" type="exec" mode="interpret" processor="XML" path="/portal/uiobjects_tabs.xml" dependency="processResponse" condition=".[not(/root/mode='addEntries')]" mandatory="false"/>
- <!--
- ================================================================================
- encrypt_credentials
-
- Encrypts the credentials from the Specify the signon userid & password dialog.
- ================================================================================
- -->
- <xts:block id="encrypt_credentials" type="exec" dependency="processResponse" mode="interpret" processor="XSLT" mandatory="false" condition=".[not(/root/mode='addEntries') and (/root/env/param[@name='m_cube_password'] or /root/env/param[@name='m_signon_password'])]">
- <xts:logicsheet path="logicsheets/presentation/dialog/connections.xslt"/>
- <xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
- xmlns:dcx="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/connections/1/">
-
- <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:if test="key('env-param','m_signon_cube_pwd_changed')='1' or key('env-param','m_signon_pwd_changed')='1' or key('env-param','changed_m_signon_userid')='1'">
- <xts:delete select="/root/env/param[@name='m_p_credentials']"/>
- <xsl:variable name="password">
- <xsl:choose>
- <xsl:when test="key('env-param','m_signon_pwd_changed')='1'">
- <xsl:value-of select="key('env-param','m_signon_password')"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="key('env-param','pass_encrypted')"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:variable name="passwordEncrypted">
- <xsl:choose>
- <xsl:when test="key('env-param','m_signon_pwd_changed')='1' and not(/root/env/param[@name='m_signon_password' and @format='encrypted'])">
- <xsl:value-of select="false()"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="true()"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:variable name="cubePassword">
- <xsl:choose>
- <xsl:when test="key('env-param','m_signon_cube_pwd_changed')='1'">
- <xsl:value-of select="key('env-param','m_cube_password')"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="key('env-param','cube_pass_encrypted')"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:variable name="cubePasswordEncrypted">
- <xsl:choose>
- <xsl:when test="key('env-param','m_signon_cube_pwd_changed')='1' and not(/root/env/param[@name='m_cube_password' and @format='encrypted'])">
- <xsl:value-of select="false()"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="true()"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <!-- Generate the credentials with the user id and password. -->
- <xts:append select="/root/env">
- <param name="m_p_credentials">
- <xsl:call-template name="dcx:genCredentials">
- <xsl:with-param name="username" select="key('env-param','m_signon_userid')"/>
- <xsl:with-param name="password" select="$password"/>
- <xsl:with-param name="passwordEncrypted" select="$passwordEncrypted"/>
- <xsl:with-param name="cubePassword" select="$cubePassword"/>
- <xsl:with-param name="cubePasswordEncrypted" select="$cubePasswordEncrypted"/>
- </xsl:call-template>
- </param>
- </xts:append>
-
- <!-- if the password changed, then encrypt it and keep it in the env -->
- <xsl:if test="key('env-param','m_signon_pwd_changed')='1'">
- <xts:delete select="/root/env/param[@name='pass_encrypted']"/>
- <xts:append select="/root/env">
- <!-- password -->
- <param name="pass_encrypted">
- <xts:encrypt>
- <xts:param name="provider">cognos.cam</xts:param>
- <xts:param name="source">
- <xsl:choose>
- <xsl:when test="/root/env/param[@name='m_signon_password' and @format='encrypted']">
- <xts:transform name="XMLEncode">
- <xts:decrypt>
- <xts:param name="encode">xml</xts:param>
- <xts:param name="provider">cognos.cam</xts:param>
- <xts:param name="source"><xsl:value-of select="key('env-param','m_signon_password')"/></xts:param>
- </xts:decrypt>
- </xts:transform>
- </xsl:when>
- <xsl:otherwise><xsl:value-of select="xtsext:xmlencode(string(key('env-param','m_signon_password')))"/></xsl:otherwise>
- </xsl:choose>
- </xts:param>
- </xts:encrypt>
- </param>
- </xts:append>
- </xsl:if>
-
- <xsl:if test="key('env-param','m_signon_cube_pwd_changed')='1'">
- <xts:delete select="/root/env/param[@name='cube_pass_encrypted']"/>
- <xts:append select="/root/env">
- <!-- cube password -->
- <param name="cube_pass_encrypted">
- <xts:encrypt>
- <xts:param name="provider">cognos.cam</xts:param>
- <xts:param name="source">
- <xsl:choose>
- <xsl:when test="/root/env/param[@name='m_cube_password' and @format='encrypted']">
- <xts:transform name="XMLEncode">
- <xts:decrypt>
- <xts:param name="encode">xml</xts:param>
- <xts:param name="provider">cognos.cam</xts:param>
- <xts:param name="source"><xsl:value-of select="key('env-param','m_cube_password')"/></xts:param>
- </xts:decrypt>
- </xts:transform>
- </xsl:when>
- <xsl:otherwise><xsl:value-of select="xtsext:xmlencode(string(key('env-param','m_cube_password')))"/></xsl:otherwise>
- </xsl:choose>
- </xts:param>
- </xts:encrypt>
- </param>
- </xts:append>
- </xsl:if>
- </xsl:if>
- <xts:delete select="/root/env/param[@name='m_cube_password' or @name='m_cube_confirm_password' or @name='m_signon_password' or @name='m_signon_confirm_password']"/>
- </xts:sequence>
- </xsl:template>
-
- <dcx:genCredentialTemplate/>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ================================================================================
- get_content
-
- If there is no 'signon_data' parameter, get the necessary properties from CM,
- otherwise the signon_data value is 'web64decoded'.
- ================================================================================
- -->
- <xts:block id="get_content" type="exec" mode="interpret" processor="XSLT" dependency="processResponse" condition=".[not(/root/mode='addEntries')]" mandatory="false">
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xts:logicsheet path="logicsheets/cm-logic.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:cml="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/cml/1/"
- xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
- exclude-result-prefixes="xsl send cml cm xtsext">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:variable name="query-values" select="/root/env/param"/>
- <xsl:template match="/">
- <xts:sequence>
- <xts:append>
- <xsl:choose>
- <xsl:when test="$query-values[@name = 'm_p_consumers']">
- <xsl:value-of select="xtsext:web64decode(xtsext:cafaction('sign_unwrap', string($query-values[@name='m_p_consumers'])), true())" disable-output-escaping="yes"/>
- </xsl:when>
- <xsl:otherwise>
- <content>
- <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
- <send:request provider="cm">
- <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
- <query xmlns="http://developer.cognos.com/schemas/xts-cm/1/">
- <search>
- <xsl:value-of select="$query-values[@name = 'm_obj']"/>
- <xsl:text>[permission("read")]</xsl:text>
- </search>
- <properties>
- <cml:prop-signon/>
- </properties>
- <options>
- <refProps>
- <refProp refPropName="consumers">
- <properties>
- <property name="defaultName"/>
- <property name="defaultDescription"/>
- <property name="defaultScreenTip"/>
- <property name="searchPath"/>
- <property name="ancestors"/>
- <property name="userName"/>
- </properties>
- </refProp>
- <refProp refPropName="parent">
- <properties>
- <property name="connectionString"/>
- </properties>
- </refProp>
- </refProps>
- </options>
- </query>
- </xts:transform>
- </send:request>
- </xts:transform>
- </content>
- </xsl:otherwise>
- </xsl:choose>
- </xts:append>
-
- <xsl:if test="not(/root/env/param[@name='connectionString'])">
- <xts:append select="/root/env">
- <param name="connectionString"><xts:transform name="XMLEncode"><xts:queryValue select="/root/content/*[local-name()='queryResponse']/*/*[local-name()='parent']/*/*[local-name()='connectionString']"/></xts:transform></param>
- </xts:append>
- </xsl:if>
-
- <xts:delete select="/root/env/param[@name='pagerfromconsumers']"/>
- <xts:delete select="/root/env/param[@name='pagertoconsumers']"/>
- <xts:delete select="/root/env/param[@name='pagerfrom_dconsumers']"/>
- <xts:delete select="/root/env/param[@name='pagerto_dconsumers']"/>
-
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ================================================================================
- decrypt_credentials
-
- Decrypts the credentials property of the signon in the decrypted-credentials
- node.
- ================================================================================
- -->
- <xts:block id="decrypt_credentials" dependency="get_content" type="exec" mode="interpret" processor="XSLT" mandatory="false" condition=".[not(/root/mode='addEntries') and /root/content]">
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:variable name="xtscm" select="'http://developer.cognos.com/schemas/xts-cm/1/'"/>
- <xsl:template match="/">
- <xts:sequence>
- <xts:append select="/root/content/*[local-name()='queryResponse' and namespace-uri()='{$xtscm}']/*[local-name()='dataSourceSignon' and namespace-uri()='{$xtscm}']">
- <decrypted-credentials xmlns="http://developer.cognos.com/schemas/xts-cm/1/">
- <xts:decrypt>
- <xts:param name="provider">cognos.cam</xts:param>
- <xts:param name="source"><xsl:value-of select="substring-before(substring-after(xtsext:xmldecode( string(/root/content/cm:queryResponse/cm:dataSourceSignon/cm:credentials)), '<encryptedValue>'), '</encryptedValue>')"/></xts:param>
- </xts:decrypt>
- </decrypted-credentials>
- </xts:append>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ================================================================================
- extract_userid
-
- Extracts the userid from the decrypted credentials.
- ================================================================================
- -->
- <xts:block id="extract_userid" type="exec" mode="interpret" dependency="decrypt_credentials" processor="XSLT" mandatory="false" condition=".[not(/root/mode='addEntries') and /root/content]">
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:variable name="xtscm" select="'http://developer.cognos.com/schemas/xts-cm/1/'"/>
- <xsl:template match="/">
- <xts:sequence>
- <xsl:variable name="userid" select="xtsext:xmldecode(string(/root/content/cm:queryResponse/cm:dataSourceSignon/cm:decrypted-credentials/cm:credential/cm:username))"/>
- <xsl:variable name="pass" select="xtsext:xmldecode(string(/root/content/cm:queryResponse/cm:dataSourceSignon/cm:decrypted-credentials/cm:credential/cm:password))"/>
-
- <xts:delete select="/root/env/param[@name='m_signon_userid' or @name='pass_encrypted']"/>
-
- <xts:append select="/root/env">
- <param name="m_signon_userid"><xsl:value-of select="$userid"/></param>
- <param name="pass_encrypted">
- <xts:encrypt>
- <xts:param name="provider">cognos.cam</xts:param>
- <xts:param name="source"><xsl:value-of select="$pass"/></xts:param>
- </xts:encrypt>
- </param>
- </xts:append>
- <xts:delete select="/root/content/*[local-name()='queryResponse' and namespace-uri()='{$xtscm}']/*[local-name()='dataSourceSignon' and namespace-uri()='{$xtscm}']/*[local-name()='decrypted-credentials' and namespace-uri()='{$xtscm}']"/>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ================================================================================
- copy_content
- Copy the consumers from
- /root/content/cm:queryResponse/cm:dataSourceSignon/cm:consumers to /root/signon
- ================================================================================
- -->
- <xts:block id="copy_content" dependency="get_content extract_userid" type="exec" mode="interpret" processor="XML" mandatory="false" condition=".[not(/root/mode='addEntries') and /root/content]">
- <xts:sequence>
- <xts:append>
- <list>
- <xts:queryNode select="/root/content/*[local-name()='queryResponse' and namespace-uri()='http://developer.cognos.com/schemas/xts-cm/1/']/*[local-name()='dataSourceSignon' and namespace-uri()='http://developer.cognos.com/schemas/xts-cm/1/']/*[local-name()='consumers' and namespace-uri()='http://developer.cognos.com/schemas/xts-cm/1/']/*"/>
- </list>
- <permissions>
- <xts:queryValue select="/root/content/*[local-name()='queryResponse' and namespace-uri()='http://developer.cognos.com/schemas/xts-cm/1/']/*[local-name()='dataSourceSignon' and namespace-uri()='http://developer.cognos.com/schemas/xts-cm/1/']/*[local-name()='permissions' and namespace-uri()='http://developer.cognos.com/schemas/xts-cm/1/']"/>
- </permissions>
- </xts:append>
- <xts:delete select="/root/content"/>
- </xts:sequence>
- </xts:block>
- <!--
- ================================================================================
- execute_command
- Execute the operation: delete, additems_
- ================================================================================
- -->
- <xts:block id="execute_command" dependency="copy_content" type="exec" mode="interpret" processor="XSLT" condition=".[not(/root/mode='addEntries')]" mandatory="false">
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt" xmlns:x="x">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:variable name="query-values" select="/root/env/param"/>
- <xsl:variable name="xtscm" select="'http://developer.cognos.com/schemas/xts-cm/1/'"/>
- <xsl:variable name="op" select="$query-values[@name = 'listop']"/>
- <xsl:template match="/">
- <xsl:choose>
- <xsl:when test="$op = 'delete'">
- <xts:sequence>
- <!-- loop through selection params -->
- <xsl:for-each select="$query-values[starts-with(@name, 'pform_consumers_')]">
- <xsl:variable name="searchPath">
- <xsl:value-of select="."/>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="/root/list/*[*[local-name()='searchPath']=$searchPath][x:added]">
- <!-- Since this was a newly added entry, just remove from the list. -->
- <xts:delete select="/root/list/*[*[local-name()='searchPath']='{$searchPath}']"/>
- </xsl:when>
- <xsl:otherwise>
- <!-- For entries that were already in the list, simply append a deleted marker. -->
- <xts:append select="/root/list/*[*[local-name()='searchPath']='{$searchPath}']">
- <xsl:element name="x:deleted" namespace="x"/>
- </xts:append>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:for-each>
- <xts:delete select="/root/env/param[starts-with(@name, 'pform_consumers_')]"/>
- </xts:sequence>
- </xsl:when>
- <xsl:when test="/root/newEntries">
- <xts:sequence>
- <xsl:variable name="appends">
- <xsl:for-each select="/root/newEntries/*">
- <xsl:variable name="searchPath" select="*[local-name()='searchPath']"/>
- <xsl:choose>
- <xsl:when test="not(*[local-name()='searchPath'] = /root/list/*/*[local-name()='searchPath'])">
- <xts:append select="/root/list">
- <xsl:element name="{local-name()}" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
- <xsl:copy-of select="*"/>
- <x:added xmlns:x="x"/>
- </xsl:element>
- </xts:append>
- </xsl:when>
- <xsl:when test="/root/list/*[*[local-name()='searchPath'] = $searchPath]/x:deleted">
- <xts:delete select="/root/list/*[*[local-name()='searchPath']='{$searchPath}']/*[local-name() = 'deleted' and namespace-uri()='x']"/>
- </xsl:when>
- <xsl:otherwise>
- <xts:append select="/root">
- <duplicateEntry/>
- </xts:append>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:for-each>
- </xsl:variable>
- <xsl:if test="$appends">
- <xts:sequence>
- <xsl:copy-of select="$appends"/>
- </xts:sequence>
- </xsl:if>
-
- </xts:sequence>
- </xsl:when>
- </xsl:choose>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ================================================================================
- encode_list
-
- Serialize the data (web64 encoded)
- ================================================================================
- -->
- <xts:block id="encode_list" dependency="execute_command" type="exec" mode="interpret" processor="XSLT" condition=".[not(/root/mode='addEntries')]" mandatory="false">
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/" xmlns:pf="http://developer.cognos.com/schemas/xts/pf">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <pf:serialize-xml/>
- <pf:variables/>
- <xsl:template match="/">
- <xts:sequence>
- <xts:delete select="/root/env/param[@name = 'm_p_consumers']"/>
- <xsl:variable name="markup">
- <xsl:apply-templates mode="markup" select="/root/list | /root/permissions"/>
- </xsl:variable>
- <xts:append select="/root/env">
- <param name="m_p_consumers">
- <xsl:value-of select="xtsext:cafaction( concat('sign_wrap_setpassportid_', $passport), xtsext:web64encode(string($markup), true()))"/>
- </param>
- </xts:append>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ===============================================================================================
- getObjects - get object class names
- ===============================================================================================
- -->
- <xts:block id="classNames" type="exec" mode="input" processor="XML" path="/portal/uiExtensions.xml">
- <xts:logicsheet path="/logicsheets/uiobjects/uiobjects_names.xslt"/>
- </xts:block>
- <!--
- ================================================================================
- render_page
-
- Render the HTML page
- ===============================================================================================
- -->
- <xts:block id="render_page" dependency="formlogic_init getTabs encode_list encrypt_credentials classNames" mode="output" processor="XSLT" type="exec" mimeType="text/html" condition=".[not(/root/mode='addEntries')]" mandatory="false">
- <!-- portal specific information -->
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <!-- Get the new theme framework. -->
- <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/controls/framework.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/controls/presentation.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/confirm.xslt"/>
- <!-- apply the form logic -->
- <xts:logicsheet path="logicsheets/formlogic.xslt"/>
- <!-- Prevent the href from appearing in the status bar. -->
- <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:df="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/framework/"
- xmlns:dt="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/templates/"
- xmlns:cp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/presentation/"
- xmlns:cf="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/framework/"
- xmlns:dc="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/confirm/1/"
- xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
- xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
- 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/"
- xmlns:x="x"
- exclude-result-prefixes="xsl lyt dp dc pf df cp cf cm utml xtsext x">
- <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no" omit-xml-declaration="yes"/>
- <!-- current file name -->
- <xsl:variable name="mname" select="'properties_signon.xts'"/>
- <xsl:variable name="m_class" select="/root/env/param[@name = 'm_class']"/>
- <!-- add any theme variables -->
- <pf:variables/>
- <xsl:variable name="back-url" select="key('env-param','backURL')"/>
- <pf:gen-icon/>
- <!-- start the output -->
- <xsl:template match="root">
- <xsl:variable name="browserTitle">
- <xsl:choose>
- <xsl:when test="key('env-param','m_name')!= ''">
- <xts:string id="IDS_PROPERTIES_TITLE">
- <xts:param name="objectName"><span lang="{$contentLocale}"><xsl:value-of select="key('env-param','m_name')"/></span></xts:param>
- </xts:string>
- </xsl:when>
- <xsl:otherwise>
- <xts:string id="IDS_PROPERTIES"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <!-- Page and title -->
- <xsl:text disable-output-escaping='yes'><!DOCTYPE html></xsl:text><dp:page longTitle="$browserTitle">
- <dp:meta>
- <!-- Standard meta tags -->
- <pf:meta/>
- </dp:meta>
- <dp:script>
- <!-- Help system -->
- <pf:help context="HID_DATA_SOURCES_SIGNON"/>
- <script language="JavaScript" src="{$webcontent}/{$app}/js/utilities.js"/>
- <dc:confirm-cancel/>
- <!-- Define selectall and deselectall functions.-->
- <dt:selectDeselectAll/>
- <script language="javascript">
- function init()
- {
- if (document.pform.controller_state)
- {
- document.pform.controller_state.value = '';
- }
- }
- </script>
- </dp:script>
- <xsl:variable name="canWrite" select="contains(/root/permissions,'write')"/>
- <xsl:variable name="canSetPolicy" select="contains(/root/permissions,'setPolicy')"/>
- <xsl:variable name="showOKCancel" select="$canWrite or $canSetPolicy"/>
- <utml:form name="pform" action="{$gateway}" method="post">
- <!-- Determine if this form is read-only. -->
- <utml:read-only>
- <xsl:choose>
- <xsl:when test="$canWrite">
- <xsl:text>false</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text>true</xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- </utml:read-only>
- <utml:input type="hidden" name="controller_state" value="" utml:update="false"/>
- <utml:input type="hidden" name="listop" value="" utml:update="false"/>
- <!-- Determine if the list of consumers has been changed. -->
- <utml:input type="hidden" name="changed_m_signon_consumers" utml:update="false">
- <utml:value>
- <xsl:choose>
- <xsl:when test="/root/list/*[x:added | x:deleted]">1</xsl:when>
- <xsl:otherwise>0</xsl:otherwise>
- </xsl:choose>
- </utml:value>
- </utml:input>
- <!-- Determine if the credentials have changed. -->
- <utml:input type="hidden" name="changed_m_p_credentials" utml:update="false">
- <utml:value>
- <xsl:choose>
- <xsl:when test="key('env-param','m_p_credentials')!=''">1</xsl:when>
- <xsl:otherwise>0</xsl:otherwise>
- </xsl:choose>
- </utml:value>
- </utml:input>
- <!-- Dialog header -->
- <dp:header useBackURL="not($showOKCancel)">
- <dp:title><xsl:copy-of select="$browserTitle"/></dp:title>
- </dp:header>
- <df:propertiesTabs select="signon">
- <df:hasSetPolicy><xsl:value-of select="$canSetPolicy"/></df:hasSetPolicy>
- </df:propertiesTabs>
- <!-- Tab description -->
- <dp:description>
- <xts:string id="IDS_PROP_SIGNON_INTRO"/>
- </dp:description>
- <lyt:layout style="1">
- <lyt:section>
- <xsl:if test="$canWrite">
- <dp:input>
- <dp:section1>
- <xts:string id="IDS_PROP_SIGNON_CREDENTIALS"/>
- </dp:section1>
- <dp:section2>
- <dp:link>
- <utml:a utml:op="stack-up">
- <utml:target><xsl:value-of select="concat($app,'/set_signons.xts')"/></utml:target>
- <xsl:text/><xts:string id="IDS_PROP_SIGNON_CREDENTIALS_LINK"/><xsl:text/>
- </utml:a>
- </dp:link>
- </dp:section2>
- </dp:input>
- </xsl:if>
- </lyt:section>
- <lyt:section>
- <cf:main-pager-section name="consumers" form="pform" width="100%" genDelete="yes">
- <cf:param name="item-path">/root/list/*[not(x:deleted or cm:searchPath='')]</cf:param>
- <cf:param name="target">concat(concat($app,'/'),$mname)</cf:param>
- <cf:param name="lines-per-page">
- <xsl:choose>
- <xsl:when test="key('session-param','linesPerPage')!=''">
- <xsl:value-of select="key('session-param','linesPerPage')"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="/root/system/param[@name='defaultPortalPreferences']/pref[@name='lines']"/>
- </xsl:otherwise>
- </xsl:choose>
- </cf:param>
- <cf:param name="actions">
- <cp:action>
- <xsl:if test="$canWrite">
- <utml:a utml:op="maintain" utml:formName="pform">
- <utml:href>document.pform.controller_state.value='addEntries|navigate';</utml:href>
- <utml:target>
- <xsl:value-of select="concat($app, '/', $mname)"/>
- </utml:target>
- <xsl:text/><xts:string id="IDS_COMMAND_ADD"/><xsl:text/>
- </utml:a>
- </xsl:if>
- </cp:action>
- <cp:action>
- <xsl:if test="$canWrite">
- <utml:a href="javascript:document.pform.listop.value='delete';if(window.preDeleteconsumers)preDeleteconsumers('pform','pform_consumers_');">
- <utml:target>
- <xsl:value-of select="concat( $app, '/', $mname )"/>
- </utml:target>
- <xsl:text/><xts:string id="IDS_REMOVE"/><xsl:text/>
- </utml:a>
- </xsl:if>
- </cp:action>
- </cf:param>
- <cf:param name="rows">
- <cp:tableHeader>
- <cp:columnHeader width="16" toggleName="pform_consumers_" utml="utml" noLabel="true"/>
- <cp:columnHeader width="16"/>
- <cp:columnHeader width="100%">
- <!-- All of this is to align the header (...> Name) with the contents of the table-->
- <img height="5" width="1" border="0"><xsl:attribute name="src"><xsl:value-of select="$webcontent"/>/images/space.gif</xsl:attribute></img>
- <xsl:text/><xts:string id="IDS_PATH_INDICATOR"/><xsl:text> </xsl:text>
- <img height="5" width="1" border="0"><xsl:attribute name="src"><xsl:value-of select="$webcontent"/>/images/space.gif</xsl:attribute></img>
- <xsl:text/><xts:string id="IDS_NAME"/><xsl:text/>
- </cp:columnHeader>
- <cp:columnHeader width="100">
- <xts:string id="IDS_TYPE"/>
- </cp:columnHeader>
- </cp:tableHeader>
- <cp:tableContent>
- <xsl:variable name="entryLabel">
- <xsl:value-of select="cm:defaultName"/>
- <xsl:if test="cm:userName and not(cm:userName[@nil='true'])">
- <xsl:text> (</xsl:text>
- <xsl:value-of select="cm:userName"/>
- <xsl:text>)</xsl:text>
- </xsl:if>
- </xsl:variable>
- <cp:columnContent>
- <xsl:choose>
- <xsl:when test="$canWrite">
- <utml:input type="checkbox" utml:track="false">
- <xsl:attribute name="aria-label"><xts:string id="IDS_SELECTION_FOR_PAGER_ITEM" encode="html"><xts:param name="pagerItemName"><xsl:value-of select="$entryLabel"/></xts:param></xts:string></xsl:attribute>
- <utml:prefix>
- <xsl:text>pform_consumers_</xsl:text>
- </utml:prefix>
- <utml:name>
- <xsl:value-of select="position()"/>
- </utml:name>
- <utml:value>
- <xsl:value-of select="cm:searchPath"/>
- </utml:value>
- </utml:input>
- </xsl:when>
- <xsl:otherwise> </xsl:otherwise>
- </xsl:choose>
- </cp:columnContent>
- <cp:columnContent>
- <xsl:call-template name="gen-icon">
- <xsl:with-param name="showAction" select="false()"/>
- </xsl:call-template>
- </cp:columnContent>
- <cp:columnContent>
- <img width="20" height="16" align="absmiddle">
- <xsl:attribute name="alt">
- <cf:do-the-path-link>
- <cf:param name="familytree">cm:ancestors</cf:param>
- <cf:param name="familymember">cm:defaultName</cf:param>
- <cf:param name="onlyAncestors">true</cf:param>
- </cf:do-the-path-link>
- </xsl:attribute>
- <xsl:attribute name="src"><xsl:value-of select="concat($skin_images,'path.gif')"/></xsl:attribute>
- </img>
- <xsl:text> </xsl:text>
- <xsl:value-of select="$entryLabel"/>
- </cp:columnContent>
- <cp:columnContent>
- <xsl:variable name="objectClass"><xsl:value-of select="cm:objectClass"/></xsl:variable>
- <xsl:value-of select="/root/objectClass/class[@name=$objectClass]"/>
- </cp:columnContent>
- </cp:tableContent>
- </cf:param>
- </cf:main-pager-section>
- </lyt:section>
- </lyt:layout>
- <dp:footer>
- <xsl:choose>
- <xsl:when test="$showOKCancel">
- <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" onclick="{$dc-confirm-cancel}"/>
- </xsl:when>
- <xsl:otherwise>
- <df:button df:id="IDS_CANCEL" df:style="back-url" onclick="{$dc-confirm-cancel}"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <xsl:otherwise>
- <df:button df:id="IDS_CLOSE" df:style="back-url"/>
- </xsl:otherwise>
- </xsl:choose>
- </dp:footer>
- <!-- if the user tried to add a duplicate entry -->
- <script language="javascript">
- <xsl:if test="/root/duplicateEntry">
- <xsl:variable name="msg">
- <xts:string id="IDS_DUPLICATE_ENTRY" encode="javascript"/>
- </xsl:variable>
-
- window.alert('<xsl:value-of select="normalize-space($msg)"/>');
- </xsl:if>
- </script>
- </utml:form>
- </dp:page>
- </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 processResponse">
- <!-- 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" omit-xml-declaration="yes"/>
- <xsl:template match="/">
- <dbg:dumpxml select="/root"/>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- </xts:morphlet>
|