123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- Licensed Materials - Property of IBM
- IBM Cognos Products: rsvp
- (C) Copyright IBM Corp. 2005, 2020
- US Government Users Restricted Rights - Use, duplication or disclosure
- restricted by GSA ADP Schedule Contract with IBM Corp.
- -->
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:rsext="xalan://com.cognos.reportserver.ext.RSExt" version="1.0" extension-element-prefixes="rsext">
- <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:param name="namespaceId" select="''"/>
- <xsl:param name="CVGateway" select="''"/>
-
- <xsl:variable name="sDelimiter"><xsl:text>
</xsl:text></xsl:variable>
-
- <xsl:variable name="viewerID">
- <xsl:choose>
- <xsl:when test="$CognosViewerID=''"><xsl:value-of select="'_THIS_'"/></xsl:when>
- <xsl:otherwise><xsl:value-of select="$CognosViewerID"/></xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:variable name="vUseStyleId">
- <xsl:choose>
- <xsl:when test="$email='yes'">false</xsl:when>
- <xsl:when test="not(/Document/styleOptions/cssOptStyle)">false</xsl:when>
- <xsl:otherwise>true</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:key name="getOptStyle" match="cssOptStyle" use="@styleId"/>
- <xsl:template name="GenCommonAttributes">
- <xsl:variable name="sBackgroundImage">
- <xsl:if test="@bgsrc or @bgsrcemail">
- <xsl:choose>
- <xsl:when test="$chartSrc = 'src'">
- <xsl:text disable-output-escaping="yes">background-image:url("</xsl:text>
- <xsl:choose>
- <xsl:when test="starts-with(@bgsrc, '?b_action')">
- <xsl:value-of select="$CVGateway"/><xsl:value-of select="@bgsrc"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="@bgsrc"/>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:text disable-output-escaping="yes">");</xsl:text>
- </xsl:when>
- <xsl:when test="$chartSrc = 'srcemail'">
- <xsl:text disable-output-escaping="yes">background-image:url(</xsl:text>
- <xsl:value-of select="@bgsrcemail"/>
- <xsl:text disable-output-escaping="yes">);</xsl:text>
- </xsl:when>
- </xsl:choose>
- </xsl:if>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="@style">
- <!-- Add cursor to style if bookmarkRef defined -->
- <xsl:attribute name="style"><xsl:for-each select="@style"><xsl:value-of select="."/>;</xsl:for-each><!-- Use pointer and hand (in that order) to get NS and IE working --><xsl:if test="@bookmarkRef">cursor:pointer;cursor:hand;</xsl:if><xsl:value-of select="$sBackgroundImage"/></xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <!-- no style, check for bookmarkRef. This avoids generating two style attributes -->
- <xsl:choose>
- <xsl:when test="@bookmarkRef">
- <xsl:attribute name="style"><xsl:text>cursor:pointer;cursor:hand;</xsl:text><xsl:value-of select="$sBackgroundImage"/></xsl:attribute>
- </xsl:when>
- <xsl:when test="$sBackgroundImage != ''">
- <xsl:attribute name="style"><xsl:value-of select="$sBackgroundImage"/></xsl:attribute>
- </xsl:when>
- </xsl:choose>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:if test="@bookmarkRef">
- <xsl:variable name="location">
- <xsl:text>'</xsl:text>
- <xsl:value-of select="rsext:javascriptencode(rsext:replace(rsext:urlencode(string(@bookmarkRef)), '+', '-'))"/>
- <xsl:text>'</xsl:text>
- <xsl:if test="@bookmarkPage">
- <xsl:text>, '</xsl:text>
- <xsl:value-of select="@bookmarkPage"/>
- <xsl:text>', oCV</xsl:text>
- <xsl:value-of select="$viewerID"/>
- </xsl:if>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="$strict = 'true'">
- <xsl:attribute name="onclick">docLocation(<xsl:value-of select="$location"/>);</xsl:attribute>
- <xsl:attribute name="onkeypress">if (event.keyCode == 13) {docLocation(<xsl:value-of select="$location"/>);}</xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="onClick">docLocation(<xsl:value-of select="$location"/>);</xsl:attribute>
- <xsl:attribute name="onKeyPress">if (event.keyCode == 13) {docLocation(<xsl:value-of select="$location"/>);}</xsl:attribute>
- <xsl:attribute name="tabIndex">0</xsl:attribute>
- <xsl:if test="$accessible='true'">
- <xsl:attribute name="role">link</xsl:attribute>
- </xsl:if>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:if>
- <xsl:choose>
- <xsl:when test="not(@class) and @styleId and @layoutClass">
- <xsl:choose>
- <xsl:when test="$vUseStyleId='true'">
- <xsl:attribute name="class"><xsl:value-of select="@styleId"/></xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="style"><xsl:value-of select="key('getOptStyle',@styleId)/@value"/></xsl:attribute>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <xsl:when test="not(@class) and not(@styleId) and @layoutClass and $appSupport='false'">
- </xsl:when>
- <xsl:when test="@styleId and @class">
- <xsl:choose>
- <xsl:when test="$vUseStyleId='true'">
- <xsl:attribute name="class"><xsl:value-of select="@class"/><xsl:text> </xsl:text><xsl:value-of select="@styleId"/></xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="style"><xsl:value-of select="key('getOptStyle',@styleId)/@value"/></xsl:attribute>
- <xsl:copy-of select="@class"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <xsl:when test="not(@styleId) and @class">
- <xsl:copy-of select="@class"/>
- </xsl:when>
- <xsl:when test="not(@class) and not(@layoutClass) and @styleId">
- <xsl:choose>
- <xsl:when test="$vUseStyleId='true'">
- <xsl:attribute name="class"><xsl:value-of select="@styleId"/></xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="style"><xsl:value-of select="key('getOptStyle',@styleId)/@value"/></xsl:attribute>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- </xsl:choose>
- <xsl:if test="@tooltip">
- <xsl:attribute name="title"><xsl:value-of select="@tooltip"/></xsl:attribute>
- </xsl:if>
- <xsl:if test="$strict='false'">
- <xsl:copy-of select="HA/@*"/>
- <xsl:if test="$appSupport='false'">
- <xsl:for-each select="@name">
- <xsl:attribute name="LID"><xsl:value-of select="."/><xsl:value-of select="$namespaceId"/></xsl:attribute>
- </xsl:for-each>
- </xsl:if>
- </xsl:if>
- <xsl:if test="@blkTblTxtAlign and $strict='false' and $appSupport='true'">
- <xsl:attribute name="blkTblAgn">
- <xsl:value-of select="@blkTblTxtAlign"/>
- </xsl:attribute>
- </xsl:if>
- <xsl:if test="@actualDisplay">
- <xsl:attribute name="actualDisplay"><xsl:value-of select="@actualDisplay"/></xsl:attribute>
- </xsl:if>
- <xsl:if test="@dts">
- <xsl:attribute name="dts"><xsl:value-of select ="@dts"/></xsl:attribute>
- </xsl:if>
- </xsl:template>
-
- <xsl:template name="GenRTAttributes">
- <xsl:choose>
- <xsl:when test="@style">
- <!-- Add cursor to style if bookmarkRef defined -->
- <xsl:attribute name="style"><xsl:for-each select="@style"><xsl:value-of select="."/>;</xsl:for-each><!-- Use pointer and hand (in that order) to get NS and IE working --><xsl:if test="@bookmarkRef">cursor:pointer;cursor:hand;</xsl:if></xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <!-- no style, check for bookmarkRef. This avoids generating two style attributes -->
- <xsl:if test="@bookmarkRef">
- <xsl:attribute name="style">cursor:pointer;cursor:hand;</xsl:attribute>
- </xsl:if>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:if test="@bookmarkRef">
- <xsl:variable name="location">
- <xsl:text>'</xsl:text>
- <xsl:value-of select="rsext:javascriptencode(rsext:replace(rsext:urlencode(string(@bookmarkRef)), '+', '-'))"/>
- <xsl:text>'</xsl:text>
- <xsl:if test="@bookmarkPage">
- <xsl:text>, '</xsl:text>
- <xsl:value-of select="@bookmarkPage"/>
- <xsl:text>', oCV</xsl:text>
- <xsl:value-of select="$viewerID"/>
- </xsl:if>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="$strict='true'">
- <xsl:attribute name="onclick">docLocation(<xsl:value-of select="$location"/>);</xsl:attribute>
- <xsl:attribute name="onkeypress">if (event.keyCode == 13) {docLocation(<xsl:value-of select="$location"/>);}</xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="onClick">docLocation(<xsl:value-of select="$location"/>);</xsl:attribute>
- <xsl:attribute name="onKeyPress">if (event.keyCode == 13) {docLocation(<xsl:value-of select="$location"/>);}</xsl:attribute>
- <xsl:attribute name="tabIndex">0</xsl:attribute>
- <xsl:if test="$accessible='true'">
- <xsl:attribute name="role">link</xsl:attribute>
- </xsl:if>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:if>
-
- <xsl:copy-of select="@class"/>
- <xsl:if test="@styleId">
- <xsl:choose>
- <xsl:when test="$vUseStyleId='true'">
- <xsl:attribute name="class"><xsl:value-of select="@styleId"/></xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="style"><xsl:value-of select="key('getOptStyle',@styleId)/@value"/></xsl:attribute>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:if>
- <xsl:if test="@tooltip">
- <xsl:attribute name="title"><xsl:value-of select="@tooltip" /></xsl:attribute>
- </xsl:if>
- </xsl:template>
-
- <xsl:template name="GenTDAttributes">
- <xsl:call-template name="GenCommonAttributes"/>
- <xsl:copy-of select="@colspan" />
- <xsl:copy-of select="@rowspan" />
- <xsl:if test="$strict='true' or $accessible='true'"> <!-- Accessibility only -->
- <xsl:if test="@id">
- <xsl:attribute name="id">
- <xsl:choose>
- <xsl:when test="starts-with(@id, 'hdr')"><xsl:value-of select="concat($viewerID, @id)"/></xsl:when>
- <xsl:otherwise><xsl:value-of select="@id"/></xsl:otherwise>
- </xsl:choose>
- </xsl:attribute>
- </xsl:if>
- <xsl:if test="@headers">
- <xsl:attribute name="headers"><xsl:value-of select='rsext:replace(@headers, "hdr", concat($viewerID, "hdr"))'/></xsl:attribute>
- </xsl:if>
- <xsl:copy-of select="@axis" />
- <xsl:if test="@layoutClass='crosstabNodeMember' and $strict='false'">
- <xsl:choose>
- <xsl:when test="../@isTopLabel">
- <xsl:attribute name="role">columnheader</xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="role">rowheader</xsl:attribute>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:if>
- </xsl:if>
- <!-- TCB <xsl:if test="@hspan">
- <xsl:attribute name="colspan"><xsl:value-of select="@hspan" /></xsl:attribute>
- </xsl:if>
- <xsl:if test="@vspan">
- <xsl:attribute name="rowspan"><xsl:value-of select="@vspan" /></xsl:attribute>
- </xsl:if> -->
- </xsl:template>
- <xsl:template name="GenTDChildElements">
- <xsl:if test="$accessible='true' and @layoutClass='rowCell'">
- <xsl:variable name="uniqueId"><xsl:value-of select="concat($viewerID, generate-id(.), 'hiddenspan', $pageNumber)"/></xsl:variable>
- <xsl:choose>
- <xsl:when test="@type='section'"> <!--header row-->
- <span>
- <xsl:attribute name="style">display: none;</xsl:attribute>
- <xsl:attribute name="id"><xsl:value-of select="$uniqueId"/></xsl:attribute>
- <xsl:value-of select="$headerLabelText" disable-output-escaping="yes"/>
- </span>
- </xsl:when>
- <xsl:when test="@type='summary'"> <!--footer row-->
- <span>
- <xsl:attribute name="style">display: none;</xsl:attribute>
- <xsl:attribute name="id"><xsl:value-of select="$uniqueId"/></xsl:attribute>
- <xsl:value-of select="$footerLabelText" disable-output-escaping="yes"/>
- </span>
- </xsl:when>
- </xsl:choose>
- </xsl:if>
- <xsl:choose>
- <xsl:when test="not(*)">
- <xsl:if test="@layoutClass='crosstabCorner' and $strict = 'false' and $appSupport='false'">
- <!-- if the crosstab corner has no children, add a tab stop -->
- <span tabIndex="0">
- <xsl:if test="$accessible='true'">
- <xsl:attribute name="role">gridcell</xsl:attribute>
- <xsl:attribute name="aria-label"><xsl:value-of select="$emptyCellLabelText"/></xsl:attribute>
- </xsl:if>
- </span>
- </xsl:if>
- <xsl:choose>
- <xsl:when test="$vUseStyleId='true'">
- <xsl:variable name="sStyleIdValue1" select="key('getOptStyle',@styleId)/@value"/>
- <xsl:variable name="sStyleIdValue2" select="key('getOptStyle',../../@styleId)/@value"/>
- <xsl:if test="contains($sStyleIdValue1,'empty-cells:show') or contains($sStyleIdValue2,'empty-cells:show')">
- <xsl:text disable-output-escaping="yes">&nbsp;</xsl:text>
- </xsl:if>
- </xsl:when>
- <xsl:otherwise>
- <xsl:if test="contains(@style,'empty-cells:show') or contains(../../@style,'empty-cells:show')">
- <xsl:text disable-output-escaping="yes">&nbsp;</xsl:text>
- </xsl:if>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <xsl:otherwise>
- <xsl:apply-templates select="*"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
- <xsl:template name="GenCommonTableAttributes">
- <xsl:call-template name="GenCommonAttributes"/>
- <xsl:attribute name="cellpadding"><xsl:text>0</xsl:text></xsl:attribute>
- <xsl:choose>
- <xsl:when test="not(@styleId) and @style">
- <xsl:if test="contains(@style, 'border-spacing:') and $strict='false'">
- <xsl:attribute name="cellspacing"><xsl:variable name="sBorderSpacing" select="substring-after(@style, 'border-spacing:')"/><xsl:choose><xsl:when test="substring-before($sBorderSpacing, ';')"><xsl:value-of select="substring-before($sBorderSpacing, ';')" /></xsl:when><xsl:when test="$sBorderSpacing"><xsl:value-of select="$sBorderSpacing" /></xsl:when><xsl:otherwise><xsl:text >0</xsl:text></xsl:otherwise></xsl:choose></xsl:attribute>
- </xsl:if>
- </xsl:when>
- <xsl:when test="not(@style) and @styleId">
- <xsl:variable name="sStyleIdValue" select="key('getOptStyle',@styleId)/@value"/>
- <xsl:if test="contains($sStyleIdValue, 'border-spacing:') and $strict='false'">
- <xsl:attribute name="cellspacing"><xsl:variable name="sBorderSpacing" select="substring-after($sStyleIdValue, 'border-spacing:')"/><xsl:choose><xsl:when test="substring-before($sBorderSpacing, ';')"><xsl:value-of select="substring-before($sBorderSpacing, ';')"/></xsl:when><xsl:when test="$sBorderSpacing"><xsl:value-of select="$sBorderSpacing"/></xsl:when><xsl:otherwise><xsl:text>0</xsl:text></xsl:otherwise></xsl:choose></xsl:attribute>
- </xsl:if>
- </xsl:when>
- </xsl:choose>
- <xsl:if test="$accessible='true'">
- <xsl:choose>
- <xsl:when test="@isLayoutTable">
- <xsl:attribute name="role">presentation</xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="role">grid</xsl:attribute>
- <xsl:if test="@summaryText"> <!-- label the table with the summary text for now -->
- <xsl:attribute name="aria-label"><xsl:value-of select="@summaryText" /></xsl:attribute>
- </xsl:if>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:if test="@summaryText">
- <xsl:attribute name="summary"><xsl:value-of select="@summaryText" /></xsl:attribute>
- </xsl:if>
- </xsl:if>
- <xsl:if test="@blkTblTxtAlign and $strict='false'">
- <xsl:attribute name="blkTblAgn"><xsl:value-of select="@blkTblTxtAlign"/></xsl:attribute>
- </xsl:if>
- <xsl:if test="@dir and $strict='false'">
- <xsl:attribute name="dir">
- <xsl:value-of select="@dir"/>
- </xsl:attribute>
- </xsl:if>
- </xsl:template>
- <xsl:template match="styleOptions">
- <xsl:if test="$appSupport='false'">
- <xsl:choose>
- <xsl:when test="$email='true'">
- <xsl:for-each select="cssText">
- <style type="text/css">
- <xsl:value-of select="."/>
- </style>
- </xsl:for-each>
- </xsl:when>
- <xsl:when test="cssOptStyles">
- <xsl:for-each select="cssUrl">
- <link rel="stylesheet" type="text/css">
- <xsl:attribute name="href"><xsl:value-of select="."/></xsl:attribute>
- </link>
- </xsl:for-each>
- <style type="text/css"><xsl:value-of select="cssOptStyles" disable-output-escaping="yes"/></style>
- </xsl:when>
- <xsl:otherwise>
- <xsl:for-each select="cssUrl">
- <link rel="stylesheet" type="text/css">
- <xsl:attribute name="href"><xsl:value-of select="."/></xsl:attribute>
- </link>
- </xsl:for-each>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:if test="namedCssStyleText">
- <style type="text/css">
- <xsl:value-of select="namedCssStyleText" disable-output-escaping="yes"/>
- </style>
- </xsl:if>
- </xsl:if>
- </xsl:template>
- <!-- Generate a background image in case we are saving the report -->
- <xsl:template name="GenBackgroundImage">
- <xsl:if test="(@bgsrcsave or @bgsrcsaveAs) and ($chartSrc='srcsave' or $chartSrc='srcsaveAs')">
- <xsl:variable name="sBackgroundName">
- <xsl:value-of select='concat ("i", $pageNumber, rsext:replace(string(generate-id(.)), ".", "_"))' />
- </xsl:variable>
- <script>
- <xsl:if test="$strict='false'">
- <xsl:attribute name="language">javascript</xsl:attribute>
- </xsl:if>
- <xsl:attribute name="type">text/javascript</xsl:attribute>
- <xsl:attribute name="id"><xsl:value-of select="$sBackgroundName" /></xsl:attribute>
- <xsl:if test="$Xhtml='true'">
- <xsl:text disable-output-escaping="yes">
- //<![CDATA[
- </xsl:text>
- </xsl:if>
- <!--
- Create the uri that points to the saved output chart in content manager.
- The variables are defined in html.xsl
- -->
- <xsl:variable name="sGraphicName">
- <xsl:choose>
- <xsl:when test="$chartSrc='srcsaveAs'">
- <xsl:value-of select="@bgsrcsaveAs"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="@bgsrcsave"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- displayBackground("<xsl:value-of select='$sBackgroundName'/>", "<xsl:value-of select="rsext:javascriptencode(string($sGraphicName))"/>",
- <xsl:choose>
- <xsl:when test="$testMode = 'true'">true</xsl:when>
- <xsl:otherwise>false</xsl:otherwise>
- </xsl:choose>);
- <xsl:if test="$Xhtml='true'">
- <xsl:text disable-output-escaping="yes">
- //]]>
- </xsl:text>
- </xsl:if>
- </script>
- </xsl:if>
- </xsl:template>
-
- <xsl:template name="GenChartImageContainer">
- <xsl:variable name="uniqueId"><xsl:value-of select="concat($CognosViewerID, generate-id(.), $pageNumber)"/></xsl:variable>
- <xsl:variable name="tag">
- <xsl:choose>
- <xsl:when test="@layoutClass='viz'">div</xsl:when>
- <xsl:otherwise>span</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:element name="{$tag}">
- <xsl:if test="$strict ='false'">
- <xsl:attribute name="tabIndex">0</xsl:attribute>
- </xsl:if>
- <xsl:if test="$accessible='true'">
- <xsl:attribute name="role">img</xsl:attribute>
- <xsl:attribute name="aria-labelledby"><xsl:value-of select="$uniqueId"/></xsl:attribute>
- <span style="visibility:hidden; display:none" id="{$uniqueId}"><xsl:value-of select="@altText"/></span>
- </xsl:if>
- <xsl:call-template name="GenChartImage"/>
- </xsl:element>
- </xsl:template>
- <!-- Generate a chart image As SVG -->
- <xsl:template name="SplitTooltip">
- <xsl:param name="sTooltip"/>
- <xsl:choose>
- <xsl:when test="contains($sTooltip,$sDelimiter)">
- <xsl:value-of select="substring-before($sTooltip,$sDelimiter)"/><br/><xsl:value-of disable-output-escaping="yes" select ="$sDelimiter"/>
- <xsl:call-template name="SplitTooltip">
- <xsl:with-param name="sTooltip" select="substring-after($sTooltip,$sDelimiter)"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$sTooltip"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
- <xsl:template name="GenChartMapAsSvg">
- <xsl:choose>
- <xsl:when test="./REVERSE and $chartUsesSvg='true'">
- <xsl:for-each select="./REVERSE/*"><!-- OAREA -->
- <xsl:call-template name="GenChartAreaAsSvg"/>
- </xsl:for-each>
- </xsl:when>
- <xsl:otherwise>
- <xsl:for-each select="./*"><!-- OAREA -->
- <xsl:call-template name="GenChartAreaAsSvg"/>
- </xsl:for-each>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
- <xsl:template name="GenChartAreaAsSvg">
- <xsl:if test="@layoutClass='chart_area'">
- <xsl:variable name="sStartCoord">
- <xsl:value-of select="substring-before(@coords,',')"/>
- <xsl:text>,</xsl:text>
- <xsl:choose>
- <xsl:when test="contains(substring-after(@coords,','),',')">
- <xsl:value-of select="substring-before(substring-after(@coords,','),',')"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="substring-after(@coords,',')"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <polyline>
- <xsl:attribute name="points"><xsl:value-of select="@coords"/><xsl:text> </xsl:text><xsl:value-of select="$sStartCoord"/></xsl:attribute>
- <xsl:if test="@roid">
- <xsl:attribute name="roid"><xsl:value-of select="@roid"/></xsl:attribute>
- </xsl:if>
- <xsl:if test="@ctx">
- <xsl:attribute name="ctx"><xsl:value-of select="@ctx"/></xsl:attribute>
- </xsl:if>
- <xsl:if test="@specname">
- <xsl:attribute name="specname"><xsl:value-of select="@specname"/></xsl:attribute>
- </xsl:if>
- <xsl:if test="MEASURE and MEASURE != '' ">
- <xsl:attribute name="display">
- <xsl:value-of select="rsext:htmlencode(string(./MEASURE))" disable-output-escaping="yes"/>
- </xsl:attribute>
- </xsl:if>
- <xsl:if test="./drillTargets">
- <xsl:apply-templates select="." />
- </xsl:if>
- <xsl:if test="@title">
- <title>
- <xsl:choose>
- <xsl:when test="contains(@title,$sDelimiter)">
- <xsl:call-template name="SplitTooltip">
- <xsl:with-param name="sTooltip" select="@title"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="@title"/>
- </xsl:otherwise>
- </xsl:choose>
- </title>
- </xsl:if>
- </polyline>
- </xsl:if>
- </xsl:template>
- <xsl:template name="GenChartImageAsSvg">
- <xsl:variable name="sSvgStyle">
- <xsl:if test="@chart_height">
- <xsl:text>height:</xsl:text><xsl:value-of select="@chart_height"/><xsl:text>px;</xsl:text>
- </xsl:if>
- <xsl:if test="@chart_width">
- <xsl:text>width:</xsl:text><xsl:value-of select="@chart_width"/><xsl:text>px;</xsl:text>
- </xsl:if>
- <xsl:if test="$chartSrc = 'src'">
- <xsl:text>background-image:url(</xsl:text>
- <xsl:choose>
- <xsl:when test="starts-with(@src, '?b_action')">
- <xsl:value-of select="$CVGateway"/><xsl:value-of select="@src"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="@src"/>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:text>);</xsl:text>
- </xsl:if>
- </xsl:variable>
- <xsl:variable name="sUsemap" select="@usemap"/>
- <svg>
- <xsl:copy-of select="@name"/>
- <xsl:attribute name="viewBox">0 0 <xsl:value-of select="@chart_width"/><xsl:text> </xsl:text><xsl:value-of select="@chart_height" /></xsl:attribute>
- <xsl:if test="@style">
- <xsl:attribute name="style"><xsl:for-each select="@style"><xsl:value-of select="."/>;</xsl:for-each><xsl:value-of select="$sSvgStyle"/></xsl:attribute>
- </xsl:if>
- <xsl:if test="$chartSrc = 'srcsave'">
- <xsl:attribute name="graphic"><xsl:value-of select="@srcsave"/></xsl:attribute>
- </xsl:if>
- <xsl:if test="$chartSrc = 'srcsaveAs'">
- <xsl:attribute name="graphic"><xsl:value-of select="@srcsaveAs"/></xsl:attribute>
- </xsl:if>
- <xsl:choose>
- <xsl:when test="not(@class) and @styleId and @layoutClass">
- <xsl:choose>
- <xsl:when test="$vUseStyleId='true'">
- <xsl:if test="string-length($sSvgStyle) != 0">
- <xsl:attribute name="style"><xsl:value-of select="$sSvgStyle"/></xsl:attribute>
- </xsl:if>
- <xsl:attribute name="class"><xsl:value-of select="@styleId"/><xsl:text> clsSvgImageMap</xsl:text></xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="style"><xsl:value-of select="key('getOptStyle',@styleId)/@value"/><xsl:value-of select="$sSvgStyle"/></xsl:attribute>
- <xsl:attribute name="class"><xsl:text>clsSvgImageMap</xsl:text></xsl:attribute>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <xsl:when test="not(@class) and not(@styleId) and @layoutClass">
- <xsl:if test="string-length($sSvgStyle) != 0">
- <xsl:attribute name="style"><xsl:value-of select="$sSvgStyle"/></xsl:attribute>
- </xsl:if>
- <xsl:attribute name="class"><xsl:text>clsSvgImageMap</xsl:text></xsl:attribute>
- </xsl:when>
- <xsl:when test="@styleId and @class">
- <xsl:choose>
- <xsl:when test="$vUseStyleId='true'">
- <xsl:if test="string-length($sSvgStyle) != 0">
- <xsl:attribute name="style"><xsl:value-of select="$sSvgStyle"/></xsl:attribute>
- </xsl:if>
- <xsl:attribute name="class"><xsl:value-of select="@class"/><xsl:text> </xsl:text><xsl:value-of select="@styleId"/><xsl:text> clsSvgImageMap</xsl:text></xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="style"><xsl:value-of select="key('getOptStyle',@styleId)/@value"/><xsl:value-of select="$sSvgStyle"/></xsl:attribute>
- <xsl:attribute name="class"><xsl:value-of select="@class"/><xsl:text> clsSvgImageMap</xsl:text></xsl:attribute>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <xsl:when test="not(@styleId) and @class">
- <xsl:if test="string-length($sSvgStyle) != 0">
- <xsl:attribute name="style"><xsl:value-of select="$sSvgStyle"/></xsl:attribute>
- </xsl:if>
- <xsl:attribute name="class"><xsl:value-of select="@class"/><xsl:text> clsSvgImageMap</xsl:text></xsl:attribute>
- </xsl:when>
- <xsl:when test="not(@class) and not(@layoutClass) and @styleId">
- <xsl:choose>
- <xsl:when test="$vUseStyleId='true'">
- <xsl:if test="string-length($sSvgStyle) != 0">
- <xsl:attribute name="style"><xsl:value-of select="$sSvgStyle"/></xsl:attribute>
- </xsl:if>
- <xsl:attribute name="class"><xsl:value-of select="@styleId"/><xsl:text> clsSvgImageMap</xsl:text></xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="style"><xsl:value-of select="key('getOptStyle',@styleId)/@value"/><xsl:value-of select="$sSvgStyle"/></xsl:attribute>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- </xsl:choose>
- <xsl:if test="$strict='false'">
- <xsl:copy-of select="HA/@*"/>
- </xsl:if>
- <xsl:variable name="uniqueId">
- <xsl:choose>
- <xsl:when test="$testMode = 'true'"><xsl:value-of select="'uniqueId'"/></xsl:when>
- <xsl:otherwise><xsl:value-of select="generate-id(.)"/></xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:if test="$accessible='true'">
- <xsl:attribute name="role">img</xsl:attribute>
- <xsl:attribute name="aria-labelledby"><xsl:value-of select="$uniqueId"/></xsl:attribute>
- <title><xsl:attribute name="id"><xsl:value-of select="$uniqueId"/></xsl:attribute><xsl:value-of select="@altText"/></title>
- </xsl:if>
- <xsl:for-each select="../OMAP[@name=$sUsemap]|parent::WRAP/../OMAP[@name=$sUsemap]">
- <xsl:call-template name="GenChartMapAsSvg"/>
- </xsl:for-each>
- </svg>
- </xsl:template>
- <!-- Generate a chart image -->
- <xsl:template name="GenChartImage">
- <img>
- <xsl:if test="$appSupport='false'">
- <xsl:choose>
- <xsl:when test="$strict='true'">
- <xsl:attribute name="id">chart<xsl:value-of select='concat ($pageNumber, "_", rsext:replace(string(generate-id(.)), ".", "_"))'/></xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="name">chart<xsl:value-of select='concat ($pageNumber, "_", rsext:replace(string(generate-id(.)), ".", "_"))'/></xsl:attribute>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:if>
- <xsl:call-template name="GenCommonAttributes"/>
- <xsl:call-template name="GenEventHandlers"/>
- <xsl:choose>
- <xsl:when test="$chartSrc = 'src'">
- <xsl:attribute name="src">
- <xsl:choose>
- <xsl:when test="starts-with(@src, '?b_action')">
- <xsl:value-of select="$CVGateway"/><xsl:value-of select="@src"/>
- </xsl:when>
- <xsl:when test="starts-with(@src, '/repository')">
- <xsl:text/>/<xsl:value-of select="substring-after(substring-after($gatewayPath, '//'),'/')"/><xsl:value-of select="@src"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="@src"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:attribute>
- </xsl:when>
- <xsl:when test="$chartSrc = 'srcemail'">
- <xsl:attribute name="src"><xsl:value-of select="@srcemail" /></xsl:attribute>
- </xsl:when>
- <xsl:when test="$chartSrc = 'srcmobile'">
- <xsl:attribute name="src"><xsl:value-of select="@srcmobile" /></xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:if test="$strict='true'">
- <xsl:attribute name="src">graphic</xsl:attribute>
- </xsl:if>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:if test="@chart_width">
- <xsl:attribute name="width"><xsl:value-of select="@chart_width" /></xsl:attribute>
- </xsl:if>
- <xsl:if test="@chart_height">
- <xsl:attribute name="height"><xsl:value-of select="@chart_height" /></xsl:attribute>
- </xsl:if>
- <xsl:if test="@usemap">
- <xsl:attribute name="usemap">#<xsl:value-of select="$namespaceId"/><xsl:value-of select="@usemap" /></xsl:attribute>
- <xsl:if test="$strict='false'">
- <xsl:attribute name="border">0</xsl:attribute>
- </xsl:if>
- </xsl:if>
- <xsl:choose>
- <xsl:when test="$accessible='true'">
- <xsl:attribute name="alt"><xsl:value-of select="@altText" /></xsl:attribute>
- <xsl:attribute name="role">presentation</xsl:attribute>
- </xsl:when>
- <xsl:when test="$strict='true'">
- <xsl:attribute name="alt"><xsl:value-of select="@name" /></xsl:attribute>
- </xsl:when>
- </xsl:choose>
- </img>
- <xsl:variable name="sUseScale">
- <xsl:choose>
- <xsl:when test='contains(@chart_width, "%") or contains(@chart_height, "%")'>true</xsl:when>
- <xsl:otherwise>false</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:variable name="sIsImage">
- <xsl:choose>
- <xsl:when test="@layoutClass='image' or @layoutClass='richTextImage' or @layoutClass='CMMMap'">true</xsl:when>
- <xsl:otherwise>false</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:if test="$email = 'false' and $appSupport='false'">
- <script>
- <xsl:if test="$strict='false'">
- <xsl:attribute name="language">javascript</xsl:attribute>
- </xsl:if>
- <xsl:attribute name="type">text/javascript</xsl:attribute>
- <xsl:if test="$Xhtml='true' and $isNewViewer='false'">
- <xsl:text disable-output-escaping="yes">
- //<![CDATA[
- </xsl:text>
- </xsl:if>
- <xsl:if test="$isNewViewer='false'">
- <xsl:choose>
- <xsl:when test="$chartSrc='srcsave' or $chartSrc='srcsaveAs'">
- <!--
- Create the uri that points to the saved output chart in content manager.
- The variables are defined in html.xsl
- -->
- <xsl:variable name="sGraphicName">
- <xsl:choose>
- <xsl:when test="@srcsaveAs !=''">
- <xsl:value-of select="@srcsaveAs"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="@srcsave"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:variable name="sChartName">
- <xsl:value-of select='concat ($pageNumber, "_", rsext:replace(string(generate-id(.)), ".", "_"))'/>
- </xsl:variable>
-
- var graphicName<xsl:value-of select='$sChartName'/> = "<xsl:value-of select="rsext:javascriptencode(string($sGraphicName))"/>";
-
- var graphicSrc<xsl:value-of select='$sChartName'/> = resolveGraphicSrc (graphicName<xsl:value-of select='$sChartName'/>, false);
-
- <xsl:if test="$testMode = 'true'">
- graphicSrc<xsl:value-of select='$sChartName'/> = graphicName<xsl:value-of select='$sChartName'/>;
- </xsl:if>
-
- displayChart("chart<xsl:value-of select="$sChartName"/>", graphicSrc<xsl:value-of select='$sChartName'/>, <xsl:value-of select="$sUseScale"/>, <xsl:value-of select="$sIsImage"/>);
- </xsl:when>
- <xsl:otherwise>
- <xsl:variable name="sChartName">
- <xsl:value-of select='concat ($pageNumber, "_", rsext:replace(string(generate-id(.)), ".", "_"))'/>
- </xsl:variable>
-
- var graphicSrc<xsl:value-of select='$sChartName'/> = document.images["chart<xsl:value-of select='$sChartName'/>"].src;
-
- displayChart("chart<xsl:value-of select='$sChartName'/>", "", <xsl:value-of select="$sUseScale"/>, <xsl:value-of select="$sIsImage"/>);
- </xsl:otherwise>
- </xsl:choose>
- </xsl:if>
- <xsl:if test="$Xhtml='true' and $isNewViewer='false'">
- <xsl:text disable-output-escaping="yes">
- //]]>
- </xsl:text>
- </xsl:if>
- </script>
- </xsl:if>
- </xsl:template>
- <!--
- The "mother of all templates".
- It is faster to check @layoutClass procedurally than to specify the the @layoutClass= in the match clause.
- -->
- <xsl:template match="*[@layoutClass]" name="GenReportLayout">
- <xsl:choose>
- <!--
- **************************************************
- THIS SECTION SHOULD BE REMOVED.
- THESE ELEMENTS TO NOT EXIST IN THE LAYOUT SPEC
- BUT THEY ARE STILL BE GENERATED IN THE XML AS IF THEY DO
- crosstabInnerHeaderCell
- crosstabInnerFooterCell
- crosstabOuterHeaderCell
- crosstabOuterFooterCell
- <xsl:when test="@layoutClass='crosstabInnerHeaderCell' or @layoutClass='crosstabInnerFooterCell' or @layoutClass='crosstabOuterHeaderCell' or @layoutClass='crosstabOuterFooterCell'">
- <td>
- <xsl:call-template name="GenTDAttributes"/>
- <xsl:call-template name="GenEventHandlers"/>
- <xsl:call-template name="GenBackgroundImage"/>
- <xsl:call-template name="GenTDChildElements"/>
- </td>
- </xsl:when>
- -->
- <!--
- listColumnTitle
- listColumn
- rowCell
- These elements may inherit styles from their parents. This is the incorrect place to do this.
- This should have been accounted for in the generated XML because the related elements may
- not all be contained in the same row.
- -->
- <xsl:when test="@layoutClass='listColumnTitle' or @layoutClass='listColumnBody' or @layoutClass='rowCell'">
- <xsl:choose>
- <xsl:when test="( $strict='true' or $accessible='true' ) and (@layoutClass='listColumnTitle' or @layoutClass='crosstabLevel' or @layoutClass='levelHeader' or (@layoutClass='rowCell' and @type='section') or (@layoutClass='listColumnBody' and @tblHdr))">
- <th>
- <xsl:call-template name="GenTDAttributes"/>
- <!-- overwrite style with parent and self style -->
- <!-- TCB <xsl:if test="@style | ../@style">
- <xsl:attribute name="style"><xsl:if test="../@style"><xsl:value-of select="../@style" /></xsl:if><xsl:if test="@style">;<xsl:value-of select="@style" /></xsl:if></xsl:attribute>
- </xsl:if> -->
- <xsl:if test="@style">
- <xsl:variable name="sBackgroundImage">
- <xsl:if test="@bgsrc or @bgsrcemail">
- <xsl:choose>
- <xsl:when test="$chartSrc = 'src'">
- <xsl:text disable-output-escaping="yes">;background-image:url("</xsl:text>
- <xsl:choose>
- <xsl:when test="starts-with(@bgsrc, '?b_action')">
- <xsl:value-of select="$CVGateway"/><xsl:value-of select="@bgsrc"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="@bgsrc"/>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:text disable-output-escaping="yes">")</xsl:text>
- </xsl:when>
- <xsl:when test="$chartSrc = 'srcemail'">
- <xsl:text disable-output-escaping="yes">;background-image:url(</xsl:text>
- <xsl:value-of select="@bgsrcemail" disable-output-escaping="yes"/>
- <xsl:text disable-output-escaping="yes">)</xsl:text>
- </xsl:when>
- </xsl:choose>
- </xsl:if>
- </xsl:variable>
- <xsl:attribute name="style"><xsl:value-of select="@style" /><xsl:value-of select="$sBackgroundImage" /></xsl:attribute>
- </xsl:if>
- <xsl:call-template name="GenEventHandlers"/>
- <xsl:call-template name="GenTDChildElements"/>
- </th>
- </xsl:when>
- <xsl:otherwise>
- <td>
- <xsl:call-template name="GenTDAttributes"/>
- <!-- overwrite style with parent and self style -->
- <!-- TCB <xsl:if test="@style | ../@style">
- <xsl:attribute name="style"><xsl:if test="../@style"><xsl:value-of select="../@style" /></xsl:if><xsl:if test="@style">;<xsl:value-of select="@style" /></xsl:if></xsl:attribute>
- </xsl:if> -->
- <xsl:if test="@style">
- <xsl:variable name="sBackgroundImage">
- <xsl:if test="@bgsrc or @bgsrcemail">
- <xsl:choose>
- <xsl:when test="$chartSrc = 'src'">
- <xsl:text disable-output-escaping="yes">;background-image:url("</xsl:text>
- <xsl:choose>
- <xsl:when test="starts-with(@bgsrc, '?b_action')">
- <xsl:value-of select="$CVGateway"/><xsl:value-of select="@bgsrc"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="@bgsrc"/>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:text disable-output-escaping="yes">")</xsl:text>
- </xsl:when>
- <xsl:when test="$chartSrc = 'srcemail'">
- <xsl:text disable-output-escaping="yes">;background-image:url(</xsl:text>
- <xsl:value-of select="@bgsrcemail" disable-output-escaping="yes"/>
- <xsl:text disable-output-escaping="yes">)</xsl:text>
- </xsl:when>
- </xsl:choose>
- </xsl:if>
- </xsl:variable>
- <xsl:attribute name="style"><xsl:value-of select="@style" /><xsl:value-of select="$sBackgroundImage" /></xsl:attribute>
- </xsl:if>
- <xsl:call-template name="GenEventHandlers"/>
- <xsl:call-template name="GenBackgroundImage"/>
- <xsl:call-template name="GenTDChildElements"/>
- </td>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <!--
- crosstabCorner
- crosstabCell
- crosstabFact
- crosstabFactCell
- crosstabNodeMember
- crosstabMember
- repeaterBody
- -->
- <xsl:when test="@layoutClass='crosstabCorner' or @layoutClass='crosstabCell' or @layoutClass='crosstabNodeMember' or @layoutClass='crosstabFactCell' or @layoutClass='crosstabFact' or @layoutClass='crosstabMember' or @layoutClass='repeaterBody'">
- <xsl:choose>
- <xsl:when test="( $strict = 'true' or $accessible = 'true' ) and (@layoutClass='crosstabNodeMember' or @layoutClass='crosstabCorner')">
- <xsl:variable name="cornerCelltag">
- <xsl:choose>
- <xsl:when test=" not(*) and @layoutClass='crosstabCorner' and $accessible = 'true' ">td</xsl:when>
- <xsl:otherwise>th</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:element name="{$cornerCelltag}">
- <xsl:call-template name="GenTDAttributes"/>
- <xsl:call-template name="GenEventHandlers"/>
- <xsl:call-template name="GenBackgroundImage"/>
- <xsl:call-template name="GenTDChildElements"/>
- </xsl:element>
- </xsl:when>
- <xsl:otherwise>
- <td>
- <xsl:call-template name="GenTDAttributes"/>
- <xsl:call-template name="GenEventHandlers"/>
- <xsl:call-template name="GenBackgroundImage"/>
- <xsl:call-template name="GenTDChildElements"/>
- </td>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <!--
- listColumns
- listColumnTitles
- listRowCells
- crosstabRowLevels
- crosstabColumnLevels
- crosstabColumns
- crosstabRows
- There is no styling that should be applied to TRs. Any styling specified on these objects
- must be applied to their children. This really should be handled by the XML output generated,
- because TR may contain header cells and bodys cells (e.g. listColumn and rowCell elements).
- -->
- <xsl:when test="@layoutClass='listColumns' or @layoutClass='listColumnTitles' or @layoutClass='listRow' or @layoutClass='listRowCells' or @layoutClass='rowCells' or @layoutClass='crosstabColumnLevels' or @layoutClass='crosstabRowLevels' or @layoutClass='crosstabColumns' or @layoutClass='crosstabRows'">
- <tr>
- <xsl:if test="$accessible='true'">
- <xsl:attribute name="role">row</xsl:attribute>
- </xsl:if>
- <xsl:apply-templates select="*"/>
- <!-- the table has no measures -->
- <xsl:if test="@layoutClass='crosstabRows' and not(*[@layoutClass='crosstabFactCell']) and not(../*[@layoutClass='crosstabRows']/*[@layoutClass='crosstabCorner']/*) and not(*[@layoutClass='crosstabCorner']) and (../*[@layoutClass='crosstabRows']/*[@layoutClass='crosstabCorner']/@rowspan < 2 or ../*[@layoutClass='crosstabRows']/*[@layoutClass='crosstabCorner']/@rowspan='')">
- <xsl:choose>
- <!-- the condition meets when the layoutClass is crosstabRows which has colspan and vspan attributes or has vspan and no colspan attributes, ie the crosstabCorner has at least 2 rowspan and any number of colspan -->
- <xsl:when test="(../*[@layoutClass='crosstabRows']/*[@layoutClass='crosstabCorner']/@colspan!='' and ../*[@layoutClass='crosstabRows']/*[@layoutClass='crosstabCorner']/@rowspan='1') or (../*[@layoutClass='crosstabRows']/*[@layoutClass='crosstabCorner']/@colspan='' and ../*[@layoutClass='crosstabRows']/*[@layoutClass='crosstabCorner']/@rowspan!='')">
- <xsl:variable name="numColumn"><xsl:value-of select="../*[@layoutClass='crosstabRows']/*[@layoutClass='crosstabCorner']/@colspan"/></xsl:variable>
- <xsl:variable name="numMultiple"><xsl:value-of select="count(../*[@layoutClass='crosstabRows']/*[@layoutClass='crosstabCorner']/following-sibling::node())"/></xsl:variable>
- <td>
- <!-- get the total number of colspan -->
- <xsl:attribute name="colspan"><xsl:value-of select="$numColumn*$numMultiple"/></xsl:attribute>
- </td>
- </xsl:when>
- <!-- this condition exists when the crosstabCorner has 1 rowspan and any number of colspan -->
- <xsl:otherwise>
- <xsl:variable name="numColumns"><xsl:value-of select="count(../*[@layoutClass='crosstabRows']/*[@layoutClass='crosstabCorner']/following-sibling::node())"/></xsl:variable>
- <td>
- <!-- get the total number of colspan, don't count the crosstabCorner -->
- <xsl:attribute name="colspan"><xsl:value-of select="$numColumns"/></xsl:attribute>
- </td>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:if>
- </tr>
- </xsl:when>
- <!--
- list
- crosstab
- -->
- <xsl:when test="@layoutClass='list' or @layoutClass='crosstab'">
- <xsl:if test="$strict = 'false' or DR">
- <table>
- <xsl:call-template name="GenCommonTableAttributes"/>
- <xsl:if test="$isNS6">
- <xsl:choose>
- <xsl:when test="../@style!=''">
- <xsl:variable name="sTextAlign" select="substring-after(../@style, 'text-align')"/>
- <xsl:variable name="sTextAlignCenter">
- <xsl:choose>
- <xsl:when test="contains(substring-before($sTextAlign, ';'), 'center')">true</xsl:when>
- <xsl:when test="not(contains($sTextAlign, ';')) and contains($sTextAlign, 'center')">true</xsl:when>
- <xsl:otherwise>false</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:variable name="sTextAlignRight">
- <xsl:choose>
- <xsl:when test="contains(substring-before($sTextAlign, ';'), 'right')">true</xsl:when>
- <xsl:when test="not(contains($sTextAlign, ';')) and contains($sTextAlign, 'right')">true</xsl:when>
- <xsl:otherwise>false</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="@style and (../@layoutClass='tableCell' or ../@layoutClass='pageBody') and $sTextAlignCenter='true'">
- <xsl:attribute name="style">margin-left:auto;margin-right:auto;<xsl:value-of select="@style" /></xsl:attribute>
- </xsl:when>
- <xsl:when test="@style and (../@layoutClass='tableCell' or ../@layoutClass='pageBody') and $sTextAlignRight='true'">
- <xsl:attribute name="style">margin-left:auto;<xsl:value-of select="@style" /></xsl:attribute>
- </xsl:when>
- </xsl:choose>
- <xsl:if test="$sTextAlignCenter='false' and $sTextAlignRight='false' and ../../@style!=''">
- <xsl:variable name="sTextAlign2" select="substring-after(../../@style, 'text-align')"/>
- <xsl:variable name="sTextAlignCenter2">
- <xsl:choose>
- <xsl:when test="contains(substring-before($sTextAlign2, ';'), 'center')">true</xsl:when>
- <xsl:when test="not(contains($sTextAlign2, ';')) and contains($sTextAlign2, 'center')">true</xsl:when>
- <xsl:otherwise>false</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:variable name="sTextAlignRight2">
- <xsl:choose>
- <xsl:when test="contains(substring-before($sTextAlign2, ';'), 'right')">true</xsl:when>
- <xsl:when test="not(contains($sTextAlign2, ';')) and contains($sTextAlign2, 'right')">true</xsl:when>
- <xsl:otherwise>false</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="@style and ../../@layoutClass='page' and $sTextAlignCenter2='true'">
- <xsl:attribute name="style">margin-left:auto;margin-right:auto;<xsl:value-of select="@style" /></xsl:attribute>
- </xsl:when>
- <xsl:when test="@style and ../../@layoutClass='page' and $sTextAlignRight2='true'">
- <xsl:attribute name="style">margin-left:auto;<xsl:value-of select="@style" /></xsl:attribute>
- </xsl:when>
- </xsl:choose>
- </xsl:if>
- </xsl:when>
- <xsl:when test="../../@style!=''">
- <xsl:variable name="sTextAlign" select="substring-after(../../@style, 'text-align')"/>
- <xsl:variable name="sTextAlignCenter">
- <xsl:choose>
- <xsl:when test="contains(substring-before($sTextAlign, ';'), 'center')">true</xsl:when>
- <xsl:when test="not(contains($sTextAlign, ';')) and contains($sTextAlign, 'center')">true</xsl:when>
- <xsl:otherwise>false</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:variable name="sTextAlignRight">
- <xsl:choose>
- <xsl:when test="contains(substring-before($sTextAlign, ';'), 'right')">true</xsl:when>
- <xsl:when test="not(contains($sTextAlign, ';')) and contains($sTextAlign, 'right')">true</xsl:when>
- <xsl:otherwise>false</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="@style and ../../@layoutClass='page' and $sTextAlignCenter='true'">
- <xsl:attribute name="style">margin-left:auto;margin-right:auto;<xsl:value-of select="@style" /></xsl:attribute>
- </xsl:when>
- <xsl:when test="@style and ../../@layoutClass='page' and $sTextAlignRight='true'">
- <xsl:attribute name="style">margin-left:auto;<xsl:value-of select="@style" /></xsl:attribute>
- </xsl:when>
- </xsl:choose>
- </xsl:when>
- </xsl:choose>
- </xsl:if>
- <xsl:if test="$strict = 'true' and @name">
- <caption><xsl:value-of select="@name"/></caption>
- </xsl:if>
- <xsl:call-template name="AppPreProcess"/>
- <xsl:apply-templates select="*"/>
- <xsl:call-template name="AppPostProcess"/>
- </table>
- </xsl:if>
- </xsl:when>
- <!--
- repeater
- -->
- <xsl:when test="@layoutClass='repeater'">
- <xsl:choose>
- <xsl:when test="name() = 'DR'">
- <tr>
- <xsl:if test="$accessible='true'">
- <xsl:attribute name="role">row</xsl:attribute>
- </xsl:if>
- <xsl:apply-templates select="*"/>
- </tr>
- </xsl:when>
- <xsl:otherwise>
- <xsl:if test="$strict = 'false' or count (./DR) > 0">
- <table>
- <xsl:call-template name="GenCommonTableAttributes"/>
- <xsl:if test="$isNS6">
- <xsl:choose>
- <xsl:when test="../@style!=''">
- <xsl:variable name="sTextAlign" select="substring-after(../@style, 'text-align')"/>
- <xsl:variable name="sTextAlignCenter">
- <xsl:choose>
- <xsl:when test="contains(substring-before($sTextAlign, ';'), 'center')">true</xsl:when>
- <xsl:when test="not(contains($sTextAlign, ';')) and contains($sTextAlign, 'center')">true</xsl:when>
- <xsl:otherwise>false</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:variable name="sTextAlignRight">
- <xsl:choose>
- <xsl:when test="contains(substring-before($sTextAlign, ';'), 'right')">true</xsl:when>
- <xsl:when test="not(contains($sTextAlign, ';')) and contains($sTextAlign, 'right')">true</xsl:when>
- <xsl:otherwise>false</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="@style and (../@layoutClass='tableCell' or ../@layoutClass='pageBody') and $sTextAlignCenter='true'">
- <xsl:attribute name="style">margin-left:auto;margin-right:auto;<xsl:value-of select="@style" /></xsl:attribute>
- </xsl:when>
- <xsl:when test="@style and (../@layoutClass='tableCell' or ../@layoutClass='pageBody') and $sTextAlignRight='true'">
- <xsl:attribute name="style">margin-left:auto;<xsl:value-of select="@style" /></xsl:attribute>
- </xsl:when>
- </xsl:choose>
- <xsl:if test="$sTextAlignCenter='false' and $sTextAlignRight='false' and ../../@style!=''">
- <xsl:variable name="sTextAlign2" select="substring-after(../../@style, 'text-align')"/>
- <xsl:variable name="sTextAlignCenter2">
- <xsl:choose>
- <xsl:when test="contains(substring-before($sTextAlign, ';'), 'center')">true</xsl:when>
- <xsl:when test="not(contains($sTextAlign, ';')) and contains($sTextAlign, 'center')">true</xsl:when>
- <xsl:otherwise>false</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:variable name="sTextAlignRight2">
- <xsl:choose>
- <xsl:when test="contains(substring-before($sTextAlign, ';'), 'right')">true</xsl:when>
- <xsl:when test="not(contains($sTextAlign, ';')) and contains($sTextAlign, 'right')">true</xsl:when>
- <xsl:otherwise>false</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="@style and ../../@layoutClass='page' and $sTextAlignCenter2='true'">
- <xsl:attribute name="style">margin-left:auto;margin-right:auto;<xsl:value-of select="@style" /></xsl:attribute>
- </xsl:when>
- <xsl:when test="@style and ../../@layoutClass='page' and $sTextAlignRight2='true'">
- <xsl:attribute name="style">margin-left:auto;<xsl:value-of select="@style" /></xsl:attribute>
- </xsl:when>
- </xsl:choose>
- </xsl:if>
- </xsl:when>
- <xsl:when test="../../@style!=''">
- <xsl:variable name="sTextAlign" select="substring-after(../../@style, 'text-align')"/>
- <xsl:variable name="sTextAlignCenter">
- <xsl:choose>
- <xsl:when test="contains(substring-before($sTextAlign, ';'), 'center')">true</xsl:when>
- <xsl:when test="not(contains($sTextAlign, ';')) and contains($sTextAlign, 'center')">true</xsl:when>
- <xsl:otherwise>false</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:variable name="sTextAlignRight">
- <xsl:choose>
- <xsl:when test="contains(substring-before($sTextAlign, ';'), 'right')">true</xsl:when>
- <xsl:when test="not(contains($sTextAlign, ';')) and contains($sTextAlign, 'right')">true</xsl:when>
- <xsl:otherwise>false</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="@style and ../../@layoutClass='page' and $sTextAlignCenter='true'">
- <xsl:attribute name="style">margin-left:auto;margin-right:auto;<xsl:value-of select="@style" /></xsl:attribute>
- </xsl:when>
- <xsl:when test="@style and ../../@layoutClass='page' and $sTextAlignRight='true'">
- <xsl:attribute name="style">margin-left:auto;<xsl:value-of select="@style" /></xsl:attribute>
- </xsl:when>
- </xsl:choose>
- </xsl:when>
- </xsl:choose>
- </xsl:if>
- <xsl:call-template name="AppPreProcess"/>
- <xsl:apply-templates select="*"/>
- <xsl:call-template name="AppPostProcess"/>
- </table>
- </xsl:if>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <!--
- page
- -->
- <xsl:when test="@layoutClass='page'">
- <table cellpadding="0" cellspacing="0" border="0">
- <xsl:if test="$accessible='true'">
- <xsl:attribute name="role">presentation</xsl:attribute>
- </xsl:if>
- <xsl:variable name="pageName" select="@name"/>
- <xsl:if test="/Document/ReportPageSet/ReportPage[string(@id) = $pageName]">
- <xsl:attribute name="tabid"><xsl:value-of select="$pageName"/></xsl:attribute>
- </xsl:if>
- <xsl:call-template name="GenCommonAttributes"/>
- <xsl:call-template name="GenBackgroundImage"/>
- <xsl:apply-templates select="*"/>
- </table>
- </xsl:when>
- <!--
- block
- -->
- <xsl:when test="@layoutClass='block'">
- <div>
- <xsl:call-template name="GenCommonAttributes"/>
- <xsl:call-template name="GenBackgroundImage"/>
- <xsl:call-template name="AppPreProcess"/>
- <xsl:choose>
- <xsl:when test="./HA[@specname='vizControl']">
- <xsl:choose>
- <xsl:when test="$email='true'">
- <xsl:apply-templates select="OMAP|OCHART|WRAP/OCHART"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:apply-templates select="*[local-name () != 'OCHART' and local-name () != 'WRAP']"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <xsl:otherwise>
- <xsl:apply-templates select="*"/>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:call-template name="AppPostProcess"/>
- </div>
- </xsl:when>
-
- <xsl:when test="@layoutClass='TOC'">
- <div>
- <xsl:if test="$accessible='true'">
- <xsl:attribute name="role">navigation</xsl:attribute>
- <xsl:attribute name="aria-label"><xsl:value-of select="$pageNumberString"/></xsl:attribute>
- </xsl:if>
- <xsl:call-template name="GenCommonAttributes"/>
- <xsl:call-template name="GenBackgroundImage"/>
- <xsl:apply-templates select="*"/>
- </div>
- </xsl:when>
- <xsl:when test="@layoutClass='TOCEntry'">
- <div>
- <xsl:call-template name="GenCommonAttributes"/>
- <xsl:call-template name="GenBackgroundImage"/>
- <xsl:apply-templates select="*"/>
- </div>
- </xsl:when>
- <!--
- pageHeader
- pageFooter
- pageBody
- -->
- <xsl:when test="@layoutClass='pageHeader' or @layoutClass='pageBody' or @layoutClass='pageFooter'">
- <td>
- <xsl:call-template name="GenCommonAttributes"/>
- <xsl:call-template name="GenBackgroundImage"/>
- <xsl:if test="$accessible='true'">
- <xsl:choose>
- <xsl:when test="@layoutClass='pageHeader'">
- <a>
- <xsl:attribute name="href">#rsvpPageBody<xsl:value-of select="$pageNumber"/>-<xsl:value-of select="$viewerID"/></xsl:attribute>
- <xsl:attribute name="style">left: -3000px;position: absolute;width: 500px;</xsl:attribute>
- <xsl:value-of select="$skipLinkText" disable-output-escaping="yes"/>
- </a>
- </xsl:when>
- <xsl:when test="@layoutClass='pageBody'">
- <a>
- <xsl:attribute name="name">rsvpPageBody<xsl:value-of select="$pageNumber"/>-<xsl:value-of select="$viewerID"/></xsl:attribute>
- </a>
- </xsl:when>
- </xsl:choose>
- </xsl:if>
- <xsl:choose>
- <xsl:when test="(@layoutClass='pageBody') and (not(*) or (count(*) = 1 and count(*[@layoutClass='list']) = 1 and not(*[@layoutClass='list']/*)))">
- <xsl:call-template name="startPage"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:apply-templates select="*"/>
- </xsl:otherwise>
- </xsl:choose>
- </td>
- </xsl:when>
- <!--
- table
- repeaterTable
- -->
- <xsl:when test="@layoutClass='table' or @layoutClass='repeaterTable' or @layoutClass='richTextTable'">
- <xsl:if test="$strict = 'false' or DR or OTR or UNKNOWN">
- <table>
- <xsl:call-template name="GenCommonTableAttributes"/>
- <xsl:if test="$isNS6">
- <xsl:variable name="sTextAlign" select="substring-after(../@style, 'text-align')"/>
- <xsl:variable name="sTextAlignCenter">
- <xsl:choose>
- <xsl:when test="contains(substring-before($sTextAlign, ';'), 'center')">true</xsl:when>
- <xsl:when test="not(contains($sTextAlign, ';')) and contains($sTextAlign, 'center')">true</xsl:when>
- <xsl:otherwise>false</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:if test="@style and (../@layoutClass='tableCell' or ../@layoutClass='repeaterTableCell') and $sTextAlignCenter='true'">
- <xsl:attribute name="style">margin-left:auto;margin-right:auto;<xsl:value-of select="@style" /></xsl:attribute>
- </xsl:if>
- </xsl:if>
- <xsl:call-template name="AppPreProcess"/>
- <xsl:apply-templates select="*"/>
- <xsl:call-template name="AppPostProcess"/>
- </table>
- </xsl:if>
- </xsl:when>
- <!--
- tableRow
- repeaterTableRow
- -->
- <xsl:when test="@layoutClass='tableRow' or @layoutClass='repeaterTableRow' or @layoutClass='tr'">
- <tr>
- <xsl:if test="$accessible='true' and (@layoutClass='repeaterTableRow' or (@layoutClass='tableRow' and not(../@layoutClass='page') and not(../@isLayoutTable))) ">
- <xsl:attribute name="role">row</xsl:attribute>
- </xsl:if>
- <xsl:call-template name="GenCommonAttributes"/>
- <xsl:call-template name="GenBackgroundImage"/>
- <xsl:apply-templates select="*"/>
- </tr>
- </xsl:when>
- <!--
- tableCell
- repeaterTableCell
- -->
- <xsl:when test="@layoutClass='tableCell' or @layoutClass='repeaterTableCell' or @layoutClass='td' or @layoutClass='th'">
- <xsl:choose>
- <xsl:when test="$accessible='true' and @layoutClass='tableCell' and @tblHdr">
- <th>
- <xsl:call-template name="GenTDAttributes"/>
- <xsl:call-template name="GenEventHandlers"/>
- <xsl:call-template name="GenBackgroundImage"/>
- <xsl:call-template name="GenTDChildElements"/>
- </th>
- </xsl:when>
- <xsl:otherwise>
- <td>
- <xsl:call-template name="GenTDAttributes"/>
- <xsl:call-template name="GenEventHandlers"/>
- <xsl:call-template name="GenBackgroundImage"/>
- <xsl:call-template name="GenTDChildElements"/>
- </td>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <!--
- section
- -->
- <xsl:when test="@layoutClass='section'">
- <xsl:if test="$strict = 'false' or DR">
- <table>
- <xsl:apply-templates select="*"/>
- </table>
- </xsl:if>
- </xsl:when>
- <!--
- sectionFooter
- -->
- <xsl:when test="@layoutClass='sectionFooter'"/>
- <!--
- image
- -->
- <xsl:when test="@layoutClass='image' or @layoutClass='richTextImage'">
- <xsl:choose>
- <xsl:when test="@processAttachment">
- <!-- Process the image as if it were a chart -->
- <xsl:call-template name="GenChartImageContainer"/>
- </xsl:when>
- <xsl:otherwise>
- <img>
- <xsl:call-template name="GenTabIndexAttribute"/>
- <xsl:call-template name="AddAccessibleTagsForSpan"/>
- <xsl:call-template name="GenCommonAttributes"/>
- <xsl:choose>
- <xsl:when test="$email='true' and @srcemail">
- <xsl:attribute name="src"><xsl:value-of select="@srcemail"/></xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:if test="@src">
- <xsl:attribute name="src"><xsl:value-of select="@src" /></xsl:attribute>
- </xsl:if>
- </xsl:otherwise>
- </xsl:choose>
- <!-- Yes, this overwrites the src attribute. I cannot find a better way in the rendering engine
- to accomplish this. What happens is that if the image control is data driven, I will set the source
- attribute. This takes presedence over hard-coded src attribute
- -->
- <xsl:if test="@source">
- <xsl:attribute name="src"><xsl:value-of select="@source" /></xsl:attribute>
- </xsl:if>
- <xsl:if test="@URL">
- <xsl:attribute name="src"><xsl:value-of select="@URL" /></xsl:attribute>
- </xsl:if>
- <xsl:choose>
- <xsl:when test="$accessible='true'">
- <xsl:attribute name="alt"><xsl:value-of select="@altText" /></xsl:attribute>
- </xsl:when>
- <xsl:when test="$strict='true'">
- <xsl:attribute name="alt"><xsl:value-of select="@name" /></xsl:attribute>
- </xsl:when>
- </xsl:choose>
- <xsl:call-template name="GenBackgroundImage"/>
- <xsl:apply-templates/>
- </img>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <!--
- pieChart
- paretoChart
- scatterChart
- polarChart
- radarChart
- progressiveChart
- combinationChart
- bubbleChart
- threeDCombinationChart
- threeDScatterChart
- gaugeChart
- mapChart
- metricsChart
- marimekkoChart
- CMMMap
- marimekkoChart
- viz
- vizControl
- -->
- <xsl:when test="@layoutClass='pieChart' or @layoutClass='v2_pieChart' or @layoutClass='paretoChart' or @layoutClass='v2_paretoChart' or @layoutClass='scatterChart' or @layoutClass='v2_scatterChart' or @layoutClass='polarChart' or @layoutClass='radarChart' or @layoutClass='progressiveChart' or @layoutClass='v2_progressiveChart' or @layoutClass='combinationChart' or @layoutClass='v2_combinationChart' or @layoutClass='bubbleChart' or @layoutClass='v2_bubbleChart' or @layoutClass='threeDCombinationChart' or @layoutClass='threeDScatterChart' or @layoutClass='gaugeChart' or @layoutClass='v2_gaugeChart' or @layoutClass='metricsChart' or @layoutClass='mapChart' or @layoutClass='CMMMap' or @layoutClass='marimekkoChart' or @layoutClass='viz' or @layoutClass='vizControl'">
- <xsl:if test="string(@useFlash) !='true'">
- <xsl:choose>
- <xsl:when test="string(@checkSvg)='true' and $chartUsesSvg='true'">
- <xsl:call-template name="GenChartImageAsSvg"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="GenChartImageContainer"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:if>
- </xsl:when>
- <!--
- chart map
- -->
- <xsl:when test="@layoutClass='chart_map' and count(./*[@layoutClass='chart_area']) > 0">
- <xsl:variable name="sViewChartImageAsSVG">
- <xsl:choose>
- <xsl:when test="string(@checkSvg)='true' and $chartUsesSvg='true'">true</xsl:when>
- <xsl:otherwise>false</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:if test="$sViewChartImageAsSVG='false'">
- <map>
- <xsl:call-template name="GenCommonAttributes"/>
- <xsl:call-template name="GenEventHandlers"/>
- <xsl:if test="$strict='true'">
- <xsl:attribute name="id">map<xsl:value-of select="$pageNumber"/>-<xsl:value-of select="generate-id(.)"/></xsl:attribute>
- </xsl:if>
- <xsl:if test="@name">
- <xsl:attribute name="name"><xsl:value-of select="$namespaceId"/><xsl:value-of select="@name" /></xsl:attribute>
- </xsl:if>
- <xsl:call-template name="AppPreProcess"/>
- <xsl:choose>
- <xsl:when test="./REVERSE and $chartUsesSvg='true'">
- <xsl:for-each select="./REVERSE/*"><!-- OAREA -->
- <xsl:call-template name="GenChartArea"/>
- </xsl:for-each>
- </xsl:when>
- <xsl:otherwise>
- <xsl:for-each select="./*"><!-- OAREA -->
- <xsl:call-template name="GenChartArea"/>
- </xsl:for-each>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:call-template name="AppPostProcess"/>
- </map>
- </xsl:if>
- </xsl:when>
- <!--
- RichTextItem ol, ul, li, span, div
- -->
- <xsl:when test="@layoutClass='richTextItem'">
-
- <xsl:apply-templates select="*"/>
-
- </xsl:when>
-
- <xsl:when test="@layoutClass='div'">
- <div>
- <xsl:call-template name="GenRTAttributes"/>
- <xsl:apply-templates select="*"/>
- </div>
- </xsl:when>
-
- <xsl:when test="@layoutClass='span'">
- <span>
- <xsl:call-template name="GenRTAttributes"/>
- <xsl:apply-templates select="*"/>
- </span>
- </xsl:when>
-
- <xsl:when test="@layoutClass='ol'">
- <ol>
- <xsl:call-template name="GenRTAttributes"/>
- <xsl:apply-templates select="*"/>
- </ol>
- </xsl:when>
-
- <xsl:when test="@layoutClass='ul'">
- <ul>
- <xsl:call-template name="GenRTAttributes"/>
- <xsl:apply-templates select="*"/>
- </ul>
- </xsl:when>
-
- <xsl:when test="@layoutClass='li'">
- <li>
- <xsl:call-template name="GenRTAttributes"/>
- <xsl:apply-templates select="*"/>
- </li>
- </xsl:when>
-
- <!--
- Hyperlink
- -->
- <xsl:when test="name()='OHL'">
- <a href="{@href}">
- <xsl:if test="$strict='false'">
- <xsl:attribute name="target">
- <xsl:choose>
- <xsl:when test="not(@target) or @target=''">_top</xsl:when>
- <xsl:otherwise><xsl:value-of select="@target"/></xsl:otherwise>
- </xsl:choose>
- </xsl:attribute>
- </xsl:if>
- <xsl:call-template name="GenCommonAttributes"/>
- <xsl:apply-templates select="*"/>
- </a>
- </xsl:when>
- <!--
- HTML Item
- -->
- <xsl:when test="@layoutClass='HTMLItem'">
- <xsl:value-of disable-output-escaping="yes" select="."/>
- </xsl:when>
- <!--
- Custom Control
- -->
- <xsl:when test="@layoutClass='customControl'">
- <customControl>
- <xsl:copy-of select="HA/@*"/>
- <xsl:if test="./CFG">
- <configuration>
- <xsl:text disable-output-escaping="yes"><![CDATA[</xsl:text>
- <xsl:value-of select="./CFG" disable-output-escaping="yes"/>
- <xsl:text disable-output-escaping="yes">]]></xsl:text>
- </configuration>
- </xsl:if>
- <xsl:if test="count(./*[@layoutClass='dataStore']) > 0"><dataStores><xsl:apply-templates select="*"/></dataStores></xsl:if>
- </customControl>
- </xsl:when>
- <!--
- Bookmark
- -->
- <xsl:when test="@layoutClass='bookmark'">
- <a>
- <xsl:choose>
- <xsl:when test="$strict = 'true'">
- <xsl:attribute name="name"><xsl:value-of select="rsext:replace (rsext:urlencode(string(@name)), '+', '-')"/></xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="name"><xsl:value-of select="rsext:replace (rsext:urlencode(string(@name)), '+', '-')"/></xsl:attribute>
- </xsl:otherwise>
- </xsl:choose>
- </a>
- </xsl:when>
-
- <xsl:when test="@layoutClass='TOCBookmark'">
- <a>
- <xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
- </a>
- </xsl:when>
- <!--
- Button
- -->
- <xsl:when test="@layoutClass='button'">
- <xsl:variable name="sButtonTarget">
- <xsl:choose>
- <xsl:when test="@target and @target != ''"><xsl:value-of select="@target"/></xsl:when>
- <xsl:when test="$hyperlinkButtonNewWindow='false'">_top</xsl:when>
- <xsl:otherwise>_blank</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:variable name="sCommand">
- <xsl:choose>
- <xsl:when test="not(@href) or @href=''"/>
- <xsl:otherwise>window.open('<xsl:value-of select="@href"/>', '<xsl:value-of select="$sButtonTarget"/>');</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <!-- we are using a table instead of a span, because NS6+ won't render the span correctly if an image is in it -->
- <button type="button" onclick="{$sCommand}">
- <xsl:call-template name="GenCommonAttributes"/>
- <xsl:call-template name="GenBackgroundImage"/>
- <xsl:apply-templates select="*"/>
- </button>
- <!-- if we need NS6 to support images in buttons we can add this in a if for NS6
- <table cellspacing="0" border="0" onMouseDown="{$sCommand}">
- <xsl:call-template name="GenCommonAttributes"/>
- <tr><td>
- <xsl:apply-templates select="*"/>
- </td></tr>
- </table>
- -->
- </xsl:when>
- <xsl:when test="@layoutClass='fieldSet'">
- <fieldset>
- <xsl:call-template name="GenCommonAttributes"/>
- <xsl:call-template name="GenBackgroundImage"/>
- <xsl:apply-templates select="*[name() = 'caption']"/>
- <xsl:apply-templates select="*[not(name() = 'caption')]"/>
- </fieldset>
- </xsl:when>
- <xsl:when test="@layoutClass='fieldSetCaption'">
- <legend>
- <xsl:if test="$strict='false'">
- <xsl:attribute name="align"><xsl:value-of select="./@showCaption"/></xsl:attribute>
- </xsl:if>
- <xsl:call-template name="GenCommonAttributes"/>
- <xsl:call-template name="GenBackgroundImage"/>
- <xsl:apply-templates select="*"/>
- </legend>
- </xsl:when>
- <!--
- textItem
- queryItemRef
- textExpression
- -->
- <xsl:when test="@layoutClass='textItem' or @layoutClass='textExpression' or @layoutClass='richTextContent' or (@layoutClass='hyperlink' and name()='OTI')">
- <span>
- <xsl:call-template name="GenCommonAttributes"/>
- <xsl:call-template name="GenBackgroundImage"/>
- <xsl:value-of select="rsext:htmlencode(.)" disable-output-escaping="yes"/>
- </span>
- </xsl:when>
-
- <!--
- dataStore
- -->
- <xsl:when test="@layoutClass='dataStore' ">
- <dataStore>
- <xsl:call-template name="GenDataStore"/>
- <xsl:value-of select="rsext:htmlencode(.)" disable-output-escaping="yes"/>
- </dataStore>
- </xsl:when>
- </xsl:choose>
- </xsl:template>
- <xsl:template name="GenChartArea">
- <xsl:if test="@layoutClass='chart_area'">
- <area>
- <xsl:call-template name="GenCommonAttributes"/>
- <xsl:if test="@type and $strict='false'">
- <xsl:attribute name="type"><xsl:value-of select="@type" /></xsl:attribute>
- </xsl:if>
- <xsl:if test="@shape">
- <xsl:attribute name="shape"><xsl:value-of select="@shape" /></xsl:attribute>
- </xsl:if>
- <xsl:if test="@coords">
- <xsl:attribute name="coords"><xsl:value-of select="@coords" /></xsl:attribute>
- </xsl:if>
- <xsl:if test="@title">
- <xsl:attribute name="title"><xsl:value-of select="@title"/></xsl:attribute>
- </xsl:if>
- <xsl:if test="@roid">
- <xsl:attribute name="roid"><xsl:value-of select="@roid" /></xsl:attribute>
- </xsl:if>
- <xsl:if test="@specname">
- <xsl:attribute name="specname"><xsl:value-of select="@specname" /></xsl:attribute>
- </xsl:if>
- <xsl:if test="@ctx">
- <xsl:attribute name="ctx"><xsl:value-of select="@ctx" /></xsl:attribute>
- </xsl:if>
- <xsl:if test="$strict ='false' and $appSupport='false'">
- <xsl:attribute name="tabIndex">-1</xsl:attribute>
- </xsl:if>
- <xsl:if test="@di">
- <xsl:attribute name="di"><xsl:value-of select="@di" /></xsl:attribute>
- </xsl:if>
- <xsl:choose>
- <xsl:when test="$strict='true'">
- <xsl:attribute name="alt"><xsl:value-of select="@type" /></xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:if test="$accessible='true'">
- <xsl:attribute name="alt"><xsl:value-of select="@altText" /></xsl:attribute>
- </xsl:if>
- <!-- apply drill/up down links if meta data exists for this chart area -->
- <xsl:apply-templates select="self::node()"/>
- </xsl:otherwise>
- </xsl:choose>
- </area>
- </xsl:if>
- </xsl:template>
- <!-- sectionHeader DR -->
- <xsl:template match="DR[@layoutClass='sectionHeader']">
- <tr>
- <xsl:if test="$accessible='true'">
- <xsl:attribute name="role">row</xsl:attribute>
- </xsl:if>
- <xsl:apply-templates select="*"/>
- </tr>
- </xsl:template>
- <!-- sectionHeader DRI -->
- <xsl:template match="DRI[@layoutClass='sectionHeader']">
- <td>
- <xsl:call-template name="GenTDAttributes"/>
- <xsl:call-template name="GenEventHandlers"/>
- <xsl:attribute name="class">sh</xsl:attribute>
- <xsl:call-template name="GenBackgroundImage"/>
- <xsl:apply-templates select="*"/>
- </td>
- </xsl:template>
- <!-- sectionBody DR -->
- <xsl:template match="DR[@layoutClass='sectionBody']">
- <tr>
- <xsl:if test="$accessible='true'">
- <xsl:attribute name="role">row</xsl:attribute>
- </xsl:if>
- <xsl:apply-templates select="*"/>
- </tr>
- </xsl:template>
- <!-- sectionBody DRI -->
- <xsl:template match="DRI[@layoutClass='sectionBody']">
- <td>
- <xsl:apply-templates select="*"/>
- </td>
- </xsl:template>
- <!-- XMLItem -->
- <xsl:template match="XMLItem">
- <xsl:value-of disable-output-escaping="yes" select="@value"/>
- </xsl:template>
- <!-- remove bogus row for next or previous controls -->
- <xsl:template match="DR[@type='next'] | DR[@type='previous']"/>
- <!-- FieldSet
- <xsl:template match="fieldSet">
- <fieldset class="fieldset">
- <xsl:if test="@style">
- <xsl:attribute name="style"><xsl:value-of select="@style" /></xsl:attribute>
- </xsl:if>
- <xsl:call-template name="genCaption">
- <xsl:with-param name="showCaption" select="./@showCaption"/>
- <xsl:with-param name="style" select="./caption/OTI/@style"/>
- <xsl:with-param name="class" select="./caption/OTI/@class"/>
- <xsl:with-param name="caption" select="./caption/OTI"/>
- </xsl:call-template>
- <xsl:apply-templates select="*[not(name() = 'caption')]"/>
- </fieldset>
- </xsl:template>-->
- <xsl:template name="genCaption">
- <xsl:param name="showCaption"/>
- <xsl:param name="style"/>
- <xsl:param name="class"/>
- <xsl:param name="styleId"/>
- <xsl:param name="caption"/>
- <xsl:element name="legend">
- <xsl:if test=" not($showCaption= '') ">
- <xsl:attribute name="align"><xsl:value-of select="$showCaption"/></xsl:attribute>
- </xsl:if>
- <xsl:element name="span">
- <xsl:if test="not($styleId)">
- <xsl:attribute name="style"><xsl:value-of select="$style"/></xsl:attribute>
- </xsl:if>
- <xsl:attribute name="class"><xsl:value-of select="$class"/><xsl:text> </xsl:text><xsl:value-of select="$styleId"/></xsl:attribute>
- <xsl:value-of select="$caption"/>
- </xsl:element>
- </xsl:element>
- </xsl:template>
-
- <xsl:template name="chartConfig">
- <xsl:if test="$chartSupport = 'true' and $chartSrc != 'srcemail' and $appSupport='false'">
- <script>
- <xsl:if test="$strict='false'">
- <xsl:attribute name="language">javascript</xsl:attribute>
- </xsl:if>
- <xsl:attribute name="type">text/javascript</xsl:attribute>
- <xsl:if test="$Xhtml='true'">
- <xsl:text disable-output-escaping="yes">
- //<![CDATA[
- </xsl:text>
- </xsl:if>
- <xsl:text disable-output-escaping="yes">
- function isIE()
- {
- return (navigator.userAgent.indexOf('MSIE') != -1 || navigator.userAgent.indexOf('Trident') != -1);
- }
- function getNavVer()
- {
- var temp;
- if (isIE()){
- return getIEVersion();
- } else {
- temp = navigator.userAgent.split('\/');
- return parseFloat(temp[temp.length - 1]);
- }
- }
- function getIEVersion()
- {
- var regExMatch = navigator.userAgent.match(/(?:MSIE |Trident\/.*; rv:)(\d+)/);
- return regExMatch ? parseFloat(regExMatch[1]) : null;
- }
- function preprint()
- {
- if (isIE() && getNavVer() >= 5.5 && getNavVer() < 7.0) {
- var alltags = document.images;
-
- for (var i=0; i < alltags.length; i++){
- if (alltags[i].className == 'ch'){
- if (alltags[i].srcbackup){
- alltags[i].src = alltags[i].srcbackup;
- }
- }
- }
- }
- }
- function postprint()
- {
- if (isIE() && getNavVer() >= 5.5 && getNavVer() < 7.0) {
- var alltags = document.images;
-
- for (var i=0; i < alltags.length; i++){
- if (alltags[i].className == 'ch'){
- if (alltags[i].srcbackup){
- alltags[i].src = '../ps/images/space.gif';
- }
- }
- }
- }
- }
- if (isIE() && getNavVer() >= 5.5 && getNavVer() < 7.0) {
- window.onbeforeprint=preprint;
- window.onafterprint=postprint;
- }
- function displayChart(imageName, imgSrc, useScale, isImage)
- {
- if (isIE() && getNavVer() >= 5.5 && getNavVer() < 7.0) {
- var oImg = document.images[imageName];
- var strOldImg;
- if (imgSrc.length > 1){
- strOldImg = imgSrc;
- } else {
- strOldImg = oImg.src;
- }
- var imgURL = strOldImg;
- oImg.srcbackup = imgURL;
-
- <!--
- Preserve URL encoding by encoding % character.
- The inbound URL arguments encode %, &, = and +
- The filter expects these to still be encoded so we encoded % as %25 to preserve the encoding
- -->
-
- strOldImg = strOldImg.replace(new RegExp(/%/g), "%25");
- // BUG: IE's display filter parser is broken and incorrectly sees any closing
- // brackets contained in an href as the end of a filter expression .. so we need to escape them
- strOldImg = strOldImg.replace(/\x28/g, "%28");
- strOldImg = strOldImg.replace(/\x29/g, "%29");
-
- var strSizing = useScale ? "scale" : "crop";
- if ( isImage ) {
- strSizing = "image";
- }
- </xsl:text>
- <xsl:choose>
- <xsl:when test="$chartEnableTransparencyIE = 'true'">
- <xsl:text disable-output-escaping="yes">
- oImg.src = '../ps/images/space.gif';
- oImg.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + strOldImg + "',sizingMethod='" + strSizing + "');";
- </xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text disable-output-escaping="yes">
- document.images[imageName].src = imgURL;
- </xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:text disable-output-escaping="yes">
- } else {
- if (imgSrc.length > 1){
- document.images[imageName].src = imgSrc;
- }
- }
- }
- </xsl:text>
- <xsl:if test="$chartSrc = 'srcsave' or $chartSrc='srcsaveAs'">
- <!-- Add code to find saved charts -->
- <xsl:text disable-output-escaping="yes">
- function getSearchStringArgs()
- {
- var args = new Object();
- var query = location.search.substring(1);
- var pairs = query.split("&");
- for(var i = 0; i < pairs.length; i++)
- {
- var pos = pairs[i].indexOf('=');
- if (pos == -1) continue;
- var argname = pairs[i].substring(0,pos);
- if (argname == "search")
- {
- var value = pairs[i].substring(pos+1);
- args[argname] = value;
- break;
- }
- }
- return args;
- }
- var gateway = location.protocol + "//" + location.host + location.pathname;
- var startMethod = "SM=query&search=";
- var searchDelimeter = "?";
- var repositorySuffix = "images/";
- var graphicNamePrefix = "/graphic[@name=\"";
- var graphicNameSuffix = "\"]";
- var endMethod = "&SA=propEnum,properties&ITEM=data&EA=&SS=queryOptions,options&dataEncoding=MIME&ES=&EM=";
- var searchStringArgs = getSearchStringArgs();
- var searchPathToOutput = searchStringArgs["search"];
- function displayBackground (sBackgroundName, sGraphicName, isTest)
- {
- var sGraphicSrc;
- if (isTest) {
- sGraphicSrc = sGraphicName;
- } else {
- sGraphicSrc = resolveGraphicSrc (sGraphicName, true);
- }
- var scriptElement = document.getElementById(sBackgroundName);
- if (scriptElement != null && scriptElement.parentNode != null)
- scriptElement.parentNode.style.backgroundImage = "url(" + sGraphicSrc + ")";
- }
- function resolveGraphicSrc (sGraphicName, isBackground)
- {
- var sGraphicSrc;
- if (searchPathToOutput != null) {
- var sGraphPath = searchPathToOutput + graphicNamePrefix + sGraphicName + graphicNameSuffix;
- if (isBackground) {
- sGraphPath = urlEncode (sGraphPath);
- }
- sGraphicSrc = gateway + searchDelimeter + startMethod + sGraphPath + endMethod;
- } else if (location.pathname.match(/\/rds\/(outputFormat|sessionOutput)\//gi)) {
- var parts = location.pathname.split("/");
- sGraphicSrc = parts[parts.length - 1] + "/" + repositorySuffix + sGraphicName;
- if (location.pathname.indexOf("/rds/outputFormat/") != -1) {
- sGraphicSrc += location.search
- }
- } else {
- sGraphicSrc = repositorySuffix + sGraphicName;
- }
- return sGraphicSrc;
- }
- <!-- fixed bug COGCQ142700. for firefox, the image URL needs to encode the right bracket and left bracket. And the square bracket can't be encoded.-->
- function urlEncode (sz)
- {
- sz = sz.replace(/\x28/g, "%28");
- sz = sz.replace(/\x29/g, "%29");
- sz = sz.replace(/%5b/g, "[");
- sz = sz.replace(/%5d/g, "]");
- sz = sz.replace(/\x22/g, "%22");
- return sz;
- }
- </xsl:text>
- </xsl:if>
- <xsl:if test="$Xhtml='true'">
- <xsl:text disable-output-escaping="yes">
- //]]>
- </xsl:text>
- </xsl:if>
- </script>
- </xsl:if>
- </xsl:template>
- <!--
- This template is used to generate any output at the start of the first page
- that is common to all transformations (v5html, rv, bux etc.)
- -->
- <xsl:template name="preProcess">
- <xsl:if test="$appSupport='false'">
- <script>
- <xsl:if test="$strict='false'">
- <xsl:attribute name="language">javascript</xsl:attribute>
- </xsl:if>
- <xsl:attribute name="type">text/javascript</xsl:attribute>
- <xsl:if test="$Xhtml='true'">
- <xsl:text disable-output-escaping="yes">//<![CDATA[
- </xsl:text>
- </xsl:if>
- <xsl:text disable-output-escaping="yes">
- function docLocation(label, page, viewer)
- {
- if (page === undefined || viewer === undefined) {
- </xsl:text>
- <xsl:if test="$mht='true'">
- <xsl:text disable-output-escaping="yes"> if (navigator.userAgent.indexOf('MSIE') != -1 || navigator.userAgent.indexOf('Trident') != -1)
- label="mhtml:#"+label;
- else
- </xsl:text>
- </xsl:if>
- <xsl:text disable-output-escaping="yes"> label="#"+label;
- document.location=label;
- }
- else {
- viewer.executeAction("GotoPage",{"pageNumber": page,"anchorName": label});
- }
- }
- function isAllowEmptyStrings()
- {
- return </xsl:text><xsl:value-of select="$PRMT_allowEmptyStrings"/><xsl:text disable-output-escaping="yes">;
- }
- function isAllowEmptyStringHeaderText()
- {
- return </xsl:text><xsl:value-of select="$PRMT_allowEmptyStringTextHeader"/><xsl:text disable-output-escaping="yes">;
- }
- </xsl:text>
- <xsl:if test="$Xhtml='true'">
- <xsl:text disable-output-escaping="yes">//]]>
- </xsl:text>
- </xsl:if>
- </script>
- </xsl:if>
- <xsl:call-template name="textAlignForNonIE"/>
- </xsl:template>
- <xsl:template name="textAlignForNonIE">
- </xsl:template>
- <!--
- This template is used to generate any output at the end of the last page
- that is common to all transformations (v5html, rv, bux etc.)
- -->
- <xsl:template name="postProcess">
- <xsl:param name="elementID"/>
- <xsl:choose>
- <xsl:when test="not($elementID) or $elementID=''">
- <xsl:call-template name="changeDisplayInlineToInlineblockForFireFox">
- <xsl:with-param name="elementID" select="''"/>
- </xsl:call-template>
- <xsl:call-template name="addStyleOverFlowHiddenToTdIfTableLayoutIsFixedForFireFox">
- <xsl:with-param name="elementID" select="''"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="changeDisplayInlineToInlineblockForFireFox">
- <xsl:with-param name="elementID" select="$elementID"/>
- </xsl:call-template>
- <xsl:call-template name="addStyleOverFlowHiddenToTdIfTableLayoutIsFixedForFireFox">
- <xsl:with-param name="elementID" select="$elementID"/>
- </xsl:call-template>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
- <!-- just for firefox, if the width and height have been specified and display is inline, change display: inline to inline-block -->
- <xsl:template name="changeDisplayInlineToInlineblockForFireFox">
- <xsl:param name="elementID"/>
- <xsl:if test="$appSupport='false'">
- <script type="text/javascript">
- <xsl:if test="$Xhtml='true'">
- <xsl:text disable-output-escaping="yes">//<![CDATA[
- </xsl:text>
- </xsl:if>
- <xsl:text disable-output-escaping="yes">
- (function(){
- var userAgent = navigator.userAgent.toLowerCase();
- if (userAgent.indexOf ("msie") < 0 || userAgent.indexOf ("trident") < 0 || userAgent.indexOf("firefox") > -1) {
- </xsl:text>
- <xsl:choose>
- <xsl:when test="not($elementID) or $elementID=''">
- <xsl:text disable-output-escaping="yes"> var elmList = document.getElementsByTagName("*");
- </xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text disable-output-escaping="yes"> var element = document.getElementById("</xsl:text><xsl:value-of select="$elementID"/><xsl:text disable-output-escaping="yes">");
- var elmList = element.getElementsByTagName("*");
- </xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:text disable-output-escaping="yes"> for (var index = 0 ; index < elmList.length; index++){
- var elm = elmList.item(index);
- var sDisplay = elm.style.height && elm.style.width && document.defaultView.getComputedStyle(elm, null).getPropertyValue("display");
- var bIsTable = (elm.nodeName === "TABLE");
- if (sDisplay === "inline"){
- elm.style.display = (bIsTable?"inline-table":"inline-block");
- }
- else if (sDisplay === "block" && bIsTable){
- elm.style.display = "table";
- }
- }
- }
- })();
- </xsl:text>
-
- <xsl:if test="$Xhtml='true'">
- <xsl:text disable-output-escaping="yes">//]]></xsl:text>
- </xsl:if>
- </script>
- </xsl:if>
- </xsl:template>
- <!-- just for firefox, if the table-layout property is fixed, add new style property: overflow: hidden to each table cell -->
- <xsl:template name="addStyleOverFlowHiddenToTdIfTableLayoutIsFixedForFireFox">
- <xsl:param name="elementID"/>
- <xsl:if test="$appSupport='false'">
- <script type="text/javascript">
- <xsl:if test="$Xhtml='true'">
- <xsl:text disable-output-escaping="yes">//<![CDATA[
- </xsl:text>
- </xsl:if>
- <xsl:text disable-output-escaping="yes">
- (function(){
- var userAgent = navigator.userAgent.toLowerCase();
- if (userAgent.indexOf ("msie") < 0 || userAgent.indexOf ("trident") < 0 || userAgent.indexOf("firefox") > -1) {
- </xsl:text>
- <xsl:choose>
- <xsl:when test="not($elementID) or $elementID=''">
- <xsl:text disable-output-escaping="yes"> var elmList = document.getElementsByTagName("table");
- </xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text disable-output-escaping="yes"> var element = document.getElementById("</xsl:text>
- <xsl:value-of select="$elementID"/>
- <xsl:text disable-output-escaping="yes">");
- var elmList = element.getElementsByTagName("table");
- </xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:text disable-output-escaping="yes">
- for (var index = 0 ; index < elmList.length; index++){
- var elm = elmList.item(index);
- if (document.defaultView.getComputedStyle (elm, null).getPropertyValue ("table-layout") === "fixed"){
- for ( var i = 0, row; row = elm.rows[i]; i++){
- for (var j = 0, cell; cell = row.cells[j]; j++) {
- cell.style.overflow = "hidden";
- }
- }
- }
- }
- }
- })();
- </xsl:text>
- <xsl:if test="$Xhtml='true'">
- <xsl:text disable-output-escaping="yes">//]]></xsl:text>
- </xsl:if>
- </script>
- </xsl:if>
- </xsl:template>
- <!-- For crosstabs and lists only the first cell should have a tabIndex of 0, all other cells need a tabIndex of -1 -->
- <xsl:template name="GenTabIndexAttribute">
- <xsl:if test="$strict ='false' and $appSupport='false'">
- <xsl:choose>
- <xsl:when test="../../../@layoutClass = 'list' or ../../../@layoutClass = 'crosstab' or ../../../../@layoutClass = 'list' or ../../../../@layoutClass = 'crosstab'
- or ancestor::DRI[1]/../../@layoutClass = 'crosstab' or ../../../@layoutClass = 'repeaterTable' or ../../../../@layoutClass = 'repeaterTable' ">
- <xsl:choose>
- <xsl:when test="(../@isFirstCell or ../../@isFirstCell or ancestor::DRI[1]/@isFirstCell) and @isFirstElement"> <!-- the isFirstCell attribute is added to a table's first cell -->
- <xsl:attribute name="tabIndex">0</xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="tabIndex">-1</xsl:attribute>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <xsl:otherwise>
- <!-- Don't stop on prompt labels as text will be read by prompt control -->
- <xsl:if test="name(..) != 'OLBL'">
- <xsl:attribute name="tabIndex">0</xsl:attribute>
- </xsl:if>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:if>
- <xsl:if test="$appSupport='true'">
- <xsl:if test="not ((../../../@layoutClass = 'list') or (../../../@layoutClass = 'crosstab'))">
- <xsl:if test="@isFirstElement">
- <xsl:attribute name="tabIndex">0</xsl:attribute>
- </xsl:if>
- </xsl:if>
- <xsl:if test="../../../@layoutClass = 'table'">
- <xsl:attribute name="tabIndex">0</xsl:attribute>
- </xsl:if>
- </xsl:if>
- </xsl:template>
- <xsl:template name="AddAccessibleTagsForSpan">
- <xsl:if test="$accessible='true'">
- <xsl:variable name="DRINode" select="ancestor::*[local-name()='DRI'][1]"/>
- <xsl:if test="$DRINode/@headers or $DRINode/@type='summary' or $DRINode/@type='section'">
- <!-- Need a unique id to put on the span for the aria-labelledby -->
- <xsl:variable name="uniqueId"><xsl:value-of select="concat($viewerID, generate-id(.), $pageNumber)"/></xsl:variable>
- <xsl:variable name="siblingId"><xsl:value-of select="concat($viewerID, generate-id($DRINode), 'hiddenspan', $pageNumber)"/></xsl:variable>
- <xsl:attribute name="id"><xsl:value-of select="$uniqueId"/></xsl:attribute>
- <xsl:attribute name="aria-labelledby">
- <xsl:value-of select='concat(rsext:replace($DRINode/@headers, "hdr", concat($viewerID, "hdr")), " ")'/>
- <xsl:if test="$DRINode/@type='summary' or $DRINode/@type='section'"> <!-- add label of the sibling header row/footer row text -->
- <xsl:value-of select='concat($siblingId, " ")'/>
- </xsl:if>
- <xsl:value-of select='$uniqueId'/>
- </xsl:attribute>
- </xsl:if>
- <xsl:if test="@ic and not($DRINode/../../@isLayoutTable or $DRINode/../../../@isLayoutTable) or $appSupport='true'"> <!-- set role only if element is in a cell (ic) and not in a layout table -->
- <xsl:attribute name="role">gridcell</xsl:attribute>
- <!-- for empty gridcells, output a label -->
- <xsl:if test="text()='' or text()=' '">
- <xsl:attribute name="aria-label"><xsl:value-of select="$emptyCellLabelText"/></xsl:attribute>
- </xsl:if>
- </xsl:if>
- </xsl:if>
- </xsl:template>
- <!-- strong emphasis -->
- <xsl:template match="OSTG">
- <strong>
- <xsl:apply-templates select="*"/>
- </strong>
- </xsl:template>
- <!-- emphasis -->
- <xsl:template match="OEM">
- <em>
- <xsl:apply-templates select="*"/>
- </em>
- </xsl:template>
- <!-- heading level 1 -->
- <xsl:template match="OH1">
- <h1>
- <xsl:attribute name="class">h1</xsl:attribute>
- <xsl:apply-templates select="*"/>
- </h1>
- </xsl:template>
- <!-- heading level 2 -->
- <xsl:template match="OH2">
- <h2>
- <xsl:attribute name="class">h2</xsl:attribute>
- <xsl:apply-templates select="*"/>
- </h2>
- </xsl:template>
- <!-- heading level 3 -->
- <xsl:template match="OH3">
- <h3>
- <xsl:attribute name="class">h3</xsl:attribute>
- <xsl:apply-templates select="*"/>
- </h3>
- </xsl:template>
- <!-- heading level 4 -->
- <xsl:template match="OH4">
- <h4>
- <xsl:attribute name="class">h4</xsl:attribute>
- <xsl:apply-templates select="*"/>
- </h4>
- </xsl:template>
- <!-- heading level 5 -->
- <xsl:template match="OH5">
- <h5>
- <xsl:attribute name="class">h5</xsl:attribute>
- <xsl:apply-templates select="*"/>
- </h5>
- </xsl:template>
- <!-- heading level 6 -->
- <xsl:template match="OH6">
- <h6>
- <xsl:attribute name="class">h6</xsl:attribute>
- <xsl:apply-templates select="*"/>
- </h6>
- </xsl:template>
- <!-- labels -->
- <xsl:template match="OLBL">
- <xsl:variable name="promptName"><xsl:value-of select="@labelFor"/></xsl:variable>
- <xsl:variable name="promptControl" select="//*[@name=$promptName]"/>
- <!-- In some cases the prompt control has no form element, so we cannot use a label-for construct -->
- <xsl:variable name="canUseLabelFor">
- <xsl:choose>
- <xsl:when test="name($promptControl[1]) = 'selectValue' and ($promptControl[1]/@selectValueUI='radioGroup'or $promptControl[1]/@selectValueUI='checkboxGroup') or name($promptControl[1]) = 'selectWithTree'">
- <xsl:value-of select="'0'"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="'1'"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:variable name="promptType">
- <xsl:choose>
- <xsl:when test="$canUseLabelFor='0'">
- <!-- if we cannot use the label-for construct, prefix with PRMT_LBL_-->
- <xsl:value-of select="'PRMT_LBL_'"/>
- </xsl:when>
- <xsl:when test="name($promptControl[1]) = 'textBox' or name($promptControl[1]) = 'selectInterval'">
- <xsl:value-of select="'PRMT_TB_'"/>
- </xsl:when>
- <xsl:when test="name($promptControl[1]) = 'selectTime'">
- <xsl:value-of select="'hours'"/>
- </xsl:when>
- <xsl:when test="name($promptControl[1]) = 'selectDateTime' or name($promptControl[1]) = 'selectDate'">
- <xsl:value-of select="'txtDate'"/>
- </xsl:when>
- <xsl:when test="name($promptControl[1]) = 'selectValue'">
- <xsl:value-of select="'PRMT_SV_'"/>
- </xsl:when>
- <xsl:when test="name($promptControl[1]) = 'selectWithSearch'">
- <xsl:value-of select="'swsInput'"/>
- </xsl:when>
- <xsl:when test="name($promptControl[1]) = 'promptButton'">
- <xsl:value-of select="$promptControl[1]/@type"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="''"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:variable name="rangeId">
- <xsl:choose>
- <xsl:when test="$canUseLabelFor='1' and $promptControl[1]/@range = 'true'">
- <xsl:value-of select="'F_'"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="''"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:variable name="promptIdSuffix">
- <xsl:choose>
- <xsl:when test="$canUseLabelFor='1' and name($promptControl[1]) = 'selectInterval'">
- <xsl:value-of select="'[D]'"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="''"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:variable name="targetId">
- <xsl:choose>
- <!-- Only define the target id if we have a valid promptType -->
- <xsl:when test="$promptType != ''">
- <xsl:value-of select="concat($promptType, $rangeId, translate(generate-id($promptControl[1]), '.', 'x'), $CognosViewerID, $promptIdSuffix)"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="''"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <label>
- <xsl:if test="$targetId != ''">
- <xsl:choose>
- <!-- Only add a 'for' attribute if we can, otherwise add an id (for the aria-labelledby to reference) -->
- <xsl:when test="$canUseLabelFor='1'">
- <xsl:attribute name="for"><xsl:value-of select="$targetId"/></xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="id"><xsl:value-of select="$targetId"/></xsl:attribute>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:if>
- <xsl:apply-templates select="*"/>
- </label>
- </xsl:template>
- <!--
- This template is used to generate specific for App compression
- -->
- <xsl:template match="APP-CONTEXT-DATA"></xsl:template>
-
- <xsl:template name="AppPreProcess">
- <xsl:if test="$appSupport='true'">
- <xsl:if test="@compress_candidate='true'"><CompressStart/></xsl:if>
- </xsl:if>
- <xsl:if test="./APP-CONTEXT-DATA">
- <ctxData>
- <xsl:choose>
- <xsl:when test="./APP-CONTEXT-DATA/@compress_candidate='true'"><CompressStart/></xsl:when>
- <xsl:otherwise><xsl:text disable-output-escaping="yes"><![CDATA[</xsl:text></xsl:otherwise>
- </xsl:choose>
- <xsl:value-of select="./APP-CONTEXT-DATA" disable-output-escaping="yes"/>
- <xsl:choose>
- <xsl:when test="./APP-CONTEXT-DATA/@compress_candidate='true'"><CompressEnd/></xsl:when>
- <xsl:otherwise><xsl:text disable-output-escaping="yes">]]></xsl:text></xsl:otherwise>
- </xsl:choose>
- </ctxData>
- </xsl:if>
- </xsl:template>
-
- <xsl:template name="AppPostProcess">
- <xsl:if test="$appSupport='true'">
- <xsl:if test="@compress_candidate='true'"><CompressEnd/></xsl:if>
- </xsl:if>
- </xsl:template>
- <!-- Active report data store-->
- <xsl:template name="GenDataStore">
- <xsl:if test="@dataStoreIndex">
- <xsl:attribute name="idxStore"><xsl:value-of select="@dataStoreIndex" /></xsl:attribute>
- <xsl:if test="@dataStorePart">
- <xsl:attribute name="idxPart"><xsl:value-of select="@dataStorePart" /></xsl:attribute>
- </xsl:if>
- </xsl:if>
- <xsl:if test="@geoDataStoreIndex">
- <xsl:attribute name="idxGeoStore">
- <xsl:value-of select="@geoDataStoreIndex" />
- </xsl:attribute>
- </xsl:if>
- <xsl:if test="@name">
- <xsl:attribute name="name"><xsl:value-of select="@name" /></xsl:attribute>
- </xsl:if>
- <xsl:choose>
- <xsl:when test="$chartSrc = 'src' and @src">
- <xsl:attribute name="src">
- <xsl:choose>
- <xsl:when test="starts-with(@src, '?b_action')">
- <xsl:value-of select="$CVGateway"/>
- <xsl:value-of select="@src"/>
- </xsl:when>
- <xsl:when test="starts-with(@src, '/repository')">
- <xsl:text/>/<xsl:value-of select="substring-after(substring-after($gatewayPath, '//'),'/')"/><xsl:value-of select="@src"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="@src"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:attribute>
- </xsl:when>
- <xsl:when test="$chartSrc = 'srcemail' and @srcemail">
- <xsl:attribute name="src">
- <xsl:value-of select="@srcemail" />
- </xsl:attribute>
- </xsl:when>
- <xsl:when test="$chartSrc = 'srcmobile' and @srcmobile">
- <xsl:attribute name="src">
- <xsl:value-of select="@srcmobile" />
- </xsl:attribute>
- </xsl:when>
- <xsl:when test="$chartSrc = 'srcsaveAs' and @srcsaveAs">
- <xsl:attribute name="src">
- <xsl:value-of select="@srcsaveAs" />
- </xsl:attribute>
- </xsl:when>
- <xsl:when test="$chartSrc = 'srcsave' and @srcsave">
- <xsl:attribute name="src">
- <xsl:value-of select="@srcsave" />
- </xsl:attribute>
- </xsl:when>
- </xsl:choose>
- <xsl:choose>
- <xsl:when test="$chartSrc = 'src' and @geosrc">
- <xsl:attribute name="geosrc">
- <xsl:choose>
- <xsl:when test="starts-with(@geosrc, '?b_action')">
- <xsl:value-of select="$CVGateway"/>
- <xsl:value-of select="@geosrc"/>
- </xsl:when>
- <xsl:when test="starts-with(@geosrc, '/repository')">
- <xsl:text/>/<xsl:value-of select="substring-after(substring-after($gatewayPath, '//'),'/')"/><xsl:value-of select="@geosrc"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="@geosrc"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:attribute>
- </xsl:when>
- <xsl:when test="$chartSrc = 'srcemail' and @geosrcemail">
- <xsl:attribute name="geosrc">
- <xsl:value-of select="@geosrcemail" />
- </xsl:attribute>
- </xsl:when>
- <xsl:when test="$chartSrc = 'srcmobile' and @geosrcmobile">
- <xsl:attribute name="geosrc">
- <xsl:value-of select="@geosrcmobile" />
- </xsl:attribute>
- </xsl:when>
- <xsl:when test="$chartSrc = 'srcsaveAs' and @geosrcsaveAs">
- <xsl:attribute name="geosrc">
- <xsl:value-of select="@geosrcsaveAs" />
- </xsl:attribute>
- </xsl:when>
- <xsl:when test="$chartSrc = 'srcsave' and @geosrcsave">
- <xsl:attribute name="geosrc">
- <xsl:value-of select="@geosrcsave" />
- </xsl:attribute>
- </xsl:when>
- </xsl:choose>
- <xsl:if test="@rowCount">
- <xsl:attribute name="rowCount">
- <xsl:value-of select="@rowCount" />
- </xsl:attribute>
- </xsl:if>
- <xsl:if test="@colCount">
- <xsl:attribute name="colCount">
- <xsl:value-of select="@colCount" />
- </xsl:attribute>
- </xsl:if>
- <xsl:if test="@cellCount">
- <xsl:attribute name="cellCount">
- <xsl:value-of select="@cellCount" />
- </xsl:attribute>
- </xsl:if>
- </xsl:template>
- <xsl:template name="createJsonTabset">
- <xsl:param name="node"/>
- <xsl:text disable-output-escaping="yes">{"tabs":[</xsl:text>
- <xsl:variable name="curTabId" select="$node/@currentId"/>
- <xsl:variable name="position" select="$node/@position"/>
- <xsl:for-each select="$node/ReportPage">
- <xsl:if test="position() > 1"><xsl:text disable-output-escaping="yes">,</xsl:text></xsl:if>
- <xsl:text disable-output-escaping="yes">{"id":"</xsl:text>
- <xsl:value-of select="rsext:jsonencode(@id)"/>
- <xsl:text disable-output-escaping="yes">","label":"</xsl:text>
- <xsl:value-of select="rsext:jsonencode(.)"/>
- <xsl:text disable-output-escaping="yes">"</xsl:text>
- <xsl:if test="@pages">
- <xsl:text disable-output-escaping="yes">,"pages":</xsl:text>
- <xsl:value-of select="rsext:jsonencode(@pages)"/>
- </xsl:if>
- <xsl:text disable-output-escaping="yes">}</xsl:text>
- </xsl:for-each>
- <xsl:text disable-output-escaping="yes">],</xsl:text>
- <xsl:text disable-output-escaping="yes">"currentTabId":"</xsl:text>
- <xsl:value-of select="rsext:jsonencode($curTabId)"/>
- <xsl:text disable-output-escaping="yes">","position":"</xsl:text>
- <xsl:value-of select="$position"/>
- <xsl:text disable-output-escaping="yes">"}</xsl:text>
- </xsl:template>
- <xsl:template match="reportDrillTargets">
- <xsl:if test="$appSupport='true'">
- <reportDrillTargets>
- <xsl:for-each select="*">
- <reportDrillTarget>
- <xsl:attribute name="idxDrill">
- <xsl:value-of select="@idxDrill"></xsl:value-of>
- </xsl:attribute>
- </reportDrillTarget>
- </xsl:for-each>
- </reportDrillTargets>
- </xsl:if>
- </xsl:template>
-
- <xsl:template match="WRAP">
- <div class="q-div">
- <xsl:attribute name="style"><xsl:value-of select="@style" /></xsl:attribute>
- <xsl:apply-templates />
- </div>
- </xsl:template>
-
- <xsl:template match="WRAPTABLE">
- <table class="q-table">
- <xsl:attribute name="style"><xsl:value-of select="@style" /></xsl:attribute>
- <tbody>
- <tr>
- <td class="q-td">
- <xsl:apply-templates />
- </td>
- </tr>
- </tbody>
- </table>
- </xsl:template>
- </xsl:stylesheet>
|