123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- *****************************************************************
- ** Licensed Materials - Property of IBM
- **
- ** IBM Cognos Products: drill
- **
- ** (C) Copyright IBM Corp. 2001, 2019
- **
- ** US Government Users Restricted Rights - Use, duplication or
- ** disclosure restricted by GSA ADP Schedule Contract with
- ** IBM Corp.
- *****************************************************************
- -->
- <!--
- Copyright (C) 2008 Cognos ULC, an IBM Company. All rights reserved.
- Cognos (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated).
- -->
- <xts:morphlet xmlns:xts="http://developer.cognos.com/schemas/xts/" messageBase="messages/drill.xml, messages/viewer.xml, messages/portal.xml, messages/portalRL.xml, messages/cogadminuimsgs.xml" includeConfig="true">
-
-
- <!-- BLOCK: decodeInputContextParams -->
- <!-- PURPOSE: decode the parameters that has been sent to the GoTo page -->
- <!-- condition: runs when we have drillContext or authoredDrillthru-->
- <!-- appends: decoded executionParameters to the environment variables-->
- <!-- @executionParameters: includes the value of the source parameters and credentials -->
- <xts:block id="decodeInputContextParams" processor="XSLT" type="exec" dependency="" mandatory="false"
- condition=".[/root/env/param[@name='drillContext']] or /root/env/param[@name='authoredDrillthru']" nodelist="env">
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/"
- xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
- xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
- xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
- xmlns:bus="http://developer.cognos.com/schemas/bibus/3/">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/root">
- <xts:sequence>
- <xsl:if test="string(/root/env/param[@name='ui.action'])='forward' or string(/root/env/param[@name='ui.action'])='back'">
- <xts:append>
- <PromptValues>
- <xsl:for-each select="/root/env/param[starts-with(@name, 'p_')]">
- <xsl:if test=". != ''">
- <PromptValue name="{substring-after(@name,'_')}">
- <xsl:value-of select="." disable-output-escaping="yes"/>
- </PromptValue>
- </xsl:if>
- </xsl:for-each>
- </PromptValues>
- </xts:append>
- </xsl:if>
- <xts:append>
- <drillthruContext>
- <!-- This is used to decode the authored drill thru info that are passed to the goto page -->
- <xsl:if test="/root/env/param[@name='authoredDrillthru'] and /root/env/param[@name='authoredDrillthru'] != ''">
- <authoredDrillthru>
- <!--<xsl:value-of select="xtsext:web64decode(/root/env/param[@name='authoredDrillthru'], true())" disable-output-escaping="yes"/>-->
- <xsl:value-of select="/root/env/param[@name='authoredDrillthru']" disable-output-escaping="yes"/>
- </authoredDrillthru>
- </xsl:if>
- <!-- execution parameters are only available for modeled drill-through -->
- <xsl:choose>
- <xsl:when test="/root/env/param[@name='executionParameters'] and /root/env/param[@name='executionParameters'] != ''">
- <executionParameters>
- <!--<xsl:value-of select="xtsext:web64decode(/root/env/param[@name='executionParameters'], true())" disable-output-escaping="yes"/>-->
- <xsl:value-of select="/root/env/param[@name='executionParameters']" disable-output-escaping="yes"/>
- </executionParameters>
- </xsl:when>
- <xsl:when test="/root/env/param[@name='encExecutionParameters'] and /root/env/param[@name='encExecutionParameters'] != ''">
- <executionParameters>
- <xsl:choose>
- <xsl:when test="substring(normalize-space(/root/env/param[@name='encExecutionParameters']),1,1) = '<'">
- <xsl:value-of select="xtsext:web64decode(/root/env/param[@name='encExecutionParameters'], true())" disable-output-escaping="yes"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="xtsext:web64decode(xtsext:cafaction('sign_unwrap', string(/root/env/param[@name='encExecutionParameters'])), true())" disable-output-escaping="yes"/>
- </xsl:otherwise>
- </xsl:choose>
- </executionParameters>
- </xsl:when>
- </xsl:choose>
- </drillthruContext>
- </xts:append>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--
- // TODO: sprint3-WO2374 (details)
- -->
- <!-- JSON conversion of parameter values -->
- <xts:block id="convertURL" mode="interpret" processor="XSLT" type="exec" madatory="false" nodelist="env,error">
- <xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:xtsext="xalan://com.cognos.drill.ext.XTSExt">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/root">
- <xsl:if test="not(/root/*[local-name()='error']/*[local-name()='badParams'])">
- <xsl:if test="/root/env/param[@name='customURL'] and /root/env/param[@name='customURL'] != ''">
- <xts:sequence>
- <xts:append>
- <xsl:value-of select="xtsext:convertJSONToURL(string(/root/env/param[@name='customURL']),string('true'))" disable-output-escaping="yes"/>
- </xts:append>
- </xts:sequence>
- </xsl:if>
- </xsl:if>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
-
- <!--
- // TODO: sprint3-WO2374 (details)
- -->
- <!-- JSON conversion of parameter values -->
- <xts:block id="convertForm" mode="interpret" processor="XSLT" type="exec" madatory="false" nodelist="env">
- <xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:xtsext="xalan://com.cognos.drill.ext.XTSExt">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/root">
- <xsl:if test="not(/root/*[local-name()='error']/*[local-name()='badParams'])">
- <xsl:if test="/root/env/param[@name='customForm'] and /root/env/param[@name='customForm'] != ''">
- <xts:sequence>
- <xts:append>
- <xsl:value-of select="xtsext:convertJSONToForm(string(/root/env/param[@name='customForm']),string('true'))" disable-output-escaping="yes"/>
- </xts:append>
- </xts:sequence>
- </xsl:if>
- </xsl:if>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
-
- <!--
- // TODO: sprint3-WO2374 (details)
- // the choice to use the direct action should come as part of the drill through path (WO 2400)
- process directAction: take the directAction parameter and convert into an xml array.
- This is used during rendering - see the render block
- TODO: fix this code up
- -->
- <xts:block id="convertDirectAction" mode="interpret" processor="XSLT" type="exec" madatory="false" nodelist="env">
- <xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:xtsext="xalan://com.cognos.drill.ext.XTSExt">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/root">
- <xsl:if test="/root/env/param[@name='directAction'] and /root/env/param[@name='directAction'] != ''">
- <xts:sequence>
- <xts:append>
- <xsl:value-of select="xtsext:convertDirectAction(string(/root/env/param[@name='directAction']),string('true'))" disable-output-escaping="yes"/>
- </xts:append>
- </xts:sequence>
- </xsl:if>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!-- BLOCK: drillContextVar_to_SelectionContext_or_Converter -->
- <!-- PURPOSE: process the drillContext as passed in on the first call to cognosLaunch -->
- <!-- For PP8: prepare a PP8 drillContext for the converter: The converter will produce a selection context -->
- <!-- From selection context library: The selection context is passed directly, save the xml encoded selection context as an XML node tree under /root/selectionContext -->
- <xts:block id="drillContextVar_to_SelectionContext_or_Converter" mode="interpret" processor="XSLT" type="exec" madatory="false" nodelist="env">
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xtsext="xalan://com.cognos.drill.ext.XTSExt">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/root">
- <xsl:if test="(/root/env/param[@name='drillContext'] and /root/env/param[@name='drillContext'] != '') or (/root/env/param[@name='selectionContext'] and /root/env/param[@name='selectionContext'] != '')">
- <xts:sequence>
- <xts:append select="/root">
- <xsl:choose>
- <!-- case 1: produce a selection context under the root node -->
- <xsl:when test="/root/env/param[@name='selectionContext'] and /root/env/param[@name='selectionContext'] != ''">
- <selectionContext>
- <xsl:value-of select="/root/env/param[@name='selectionContext']"/>
- </selectionContext>
- <selectionContextNodeTree>
- <xsl:value-of select="/root/env/param[@name='selectionContext']" disable-output-escaping="yes"/>
- </selectionContextNodeTree>
- </xsl:when>
- <!-- case 1: produce a selection context under the root node -->
- <xsl:when test="starts-with(/root/env/param[@name='drillContext'], '<s:selection')">
- <selectionContext>
- <xsl:value-of select="/root/env/param[@name='drillContext']"/>
- </selectionContext>
- <selectionContextNodeTree>
- <xsl:value-of select="/root/env/param[@name='drillContext']" disable-output-escaping="yes"/>
- </selectionContextNodeTree>
- </xsl:when>
- <!-- case 2: prepare the drill context for the converter (input is expanded under root node ConverterInput -->
- <xsl:otherwise>
- <ConverterInput>
- <xsl:value-of select="xtsext:convertJSONToDrillContext(string(/root/env/param[@name='drillContext']),string('true'))" disable-output-escaping="no"/>
- </ConverterInput>
- <ConverterInputNodeTree>
- <xsl:value-of select="xtsext:convertJSONToDrillContext(string(/root/env/param[@name='drillContext']),string('true'))" disable-output-escaping="yes"/>
- </ConverterInputNodeTree>
- </xsl:otherwise>
- </xsl:choose>
- </xts:append>
- </xts:sequence>
- </xsl:if>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
-
- <!-- BLOCK: packageBase -->
- <!-- PURPOSE: locate the package associated with a passed in model search path -->
- <!-- For PP8: when PP8 passes a drill context, we need to expand it simply to get the model search path -->
- <!-- The FindDrillThroughPaths requires a package path , se we need to talk to CM to get the package path from the model path -->
- <xts:block id="packageBase" dependency="drillContextVar_to_SelectionContext_or_Converter" mode="interpret" type="exec" processor="XSLT" mandatory="false" condition=".[(/root/env/param[@name='modelPath']!='' and string(/root/env/param[@name='objpath'])='') or (/root/*[local-name()='ConverterInputNodeTree'])]">
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/root">
- <xts:sequence>
- <xts:append select="/root">
- <packageBase>
- <xsl:variable name="modelPath">
- <xsl:choose>
- <xsl:when test="/root/env/param[@name='modelPath']">
- <xsl:value-of select="/root/env/param[@name='modelPath']"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="/root/*[local-name()='ConverterInputNodeTree']/*[local-name()='array']/*[local-name()='modelPath']"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
- <xts:request href="bus://dispatcher" protocol="BUS" responseEnvelope="true" soapAction="http://www.ibm.com/xmlns/prod/cognos/contentManagerService/201610/" outputHeader="true">
- <SOAP-ENV:Envelope xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <SOAP-ENV:Header>
- <!--xts:queryNode select="/root/header/bus:biBusHeader"/-->
- <xts:queryNode select="/root/header/*[local-name()='biBusHeader']"/>
- </SOAP-ENV:Header>
- <SOAP-ENV:Body>
- <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
- <cm:query xmlns:cm="http://developer.cognos.com/schemas/bibus/3/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <cm:search>
- <xsl:value-of select="$modelPath"/>
- </cm:search>
- <properties xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="cm:propEnum[1]">
- <item xsi:type="cm:propEnum">parent</item>
- </properties>
- </cm:query>
- </xts:transform>
- </SOAP-ENV:Body>
- </SOAP-ENV:Envelope>
- </xts:request>
- </xts:transform>
- </packageBase>
- </xts:append>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
-
- <!--
- ===============================================================================================
- get-object - if this is the first time in and it is a saved report/query, collect some information about the report/query
- Also create a new env parameter that is a copy of the url for re-execute.
- ===============================================================================================
- -->
- <xts:block id="get-object" type="exec" mode="interpret" processor="XSLT" condition=".[string(/root/env/param[@name='ui.object'])!='' and string(/root/env/param[@name='objpath'])='']" mandatory="false" nodelist="env">
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
- xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/root">
- <xts:sequence>
- <xts:append>
- <source>
- <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
- <send:request provider="cm">
- <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
- <cm:query xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
- <cm:search>
- <xsl:value-of select="/root/env/param[@name='ui.object']"/>
- </cm:search>
- <cm:properties>
- <cm:property name="defaultName"/>
- <cm:property name="searchPath"/>
- <cm:property name="base"/>
- <cm:property name="ancestors"/>
- <cm:property name="searchPathForURL"/>
- <cm:property name="routingServerGroup"/>
- <cm:property name="metadataModelPackage"/>
- <cm:property name="metadataModel"/>
- </cm:properties>
- <cm:options schemaInfo="true">
- <cm:refProps>
- <cm:refProp refPropName="base">
- <cm:properties>
- <cm:property name="searchPath"/>
- <cm:property name="permissions"/>
- </cm:properties>
- </cm:refProp>
- </cm:refProps>
- </cm:options>
- </cm:query>
- </xts:transform>
- </send:request>
- </xts:transform>
- </source>
- </xts:append>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <xts:block id="secondary-request" processor="XSLT" type="exec" dependency="decodeInputContextParams" mandatory="false"
- condition=".[string(/root/env/param[@name='ui.action'])='wait' or string(/root/env/param[@name='ui.action'])='back' or string(/root/env/param[@name='ui.action'])='forward']" nodelist="header, env, PromptValues">
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xts:logicsheet path="prompting/soaplogic.xsl"/>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
- xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
- xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
- xmlns:rns1="http://developer.cognos.com/schemas/reportService/1"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:sl="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/prmt/soaplogic/">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:key name="env-param" match="/root/env/param" use="@name"/>
- <sl:soaplogic/>
- <xsl:template match="/root">
- <xsl:variable name="method">
- <xsl:value-of select="/root/env/param[@name='ui.action']"/>
- </xsl:variable>
- <xts:sequence>
- <xts:append select="/root">
- <response>
- <xts:request href="bus://dispatcher" protocol="BUS" soapAction="http://www.ibm.com/xmlns/prod/cognos/reportService/201610/.absolute" responseEnvelope="true" outputHeader="true" option="xml-multipart">
- <SOAP-ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <SOAP-ENV:Header>
- <bus:biBusHeader xsi:type="bus:biBusHeader">
- <bus:tracking>
- <xsl:value-of select="xtsext:web64decode(xtsext:cafaction('sign_unwrap', string(key('env-param','tracking'))), true())" disable-output-escaping="yes"/>
- </bus:tracking>
- <xsl:copy-of select="/root/header/bus:biBusHeader/*[local-name()!='tracking']"/>
- </bus:biBusHeader>
- </SOAP-ENV:Header>
- <SOAP-ENV:Body>
- <xsl:element name="{$method}" namespace="http://developer.cognos.com/schemas/reportService/1">
- <bus:conversation xsi:type="bus:asynchRequest" xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <xsl:choose>
- <xsl:when test="$method='wait'">
- <xsl:attribute name="xsi:nil">true</xsl:attribute>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="xtsext:web64decode(xtsext:cafaction('sign_unwrap', string(key('env-param', 'conversation'))), true())" disable-output-escaping="yes"/>
- </xsl:otherwise>
- </xsl:choose>
- </bus:conversation>
- <xsl:call-template name="SetParameters"/>
- <bus:options xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:option[]" xmlns:bus="http://developer.cognos.com/schemas/bibus/3/">
- </bus:options>
- </xsl:element>
- </SOAP-ENV:Body>
- </SOAP-ENV:Envelope>
- </xts:request>
- </response>
- </xts:append>
- <xts:append>
- <resultStatus>
- <xts:queryNode select="/root//*[local-name()='Envelope']/*[local-name()='Body']/*/*[local-name()='result']/*[local-name()='status']"/>
- </resultStatus>
- </xts:append>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!-- BLOCK: getRoutingServerContent -->
- <!-- PURPOSE: gets package routingServerGroup information of the source-->
- <!-- OUTPUT: ui.routingServerGroup : Used to spefiy the server we have to pass our requests to -->
- <!-- We should have this value before sending find request to get the drill path list. In addition, it is also used in runConverter method-->
- <!-- This block first checks to see if ui.routingServerGroup or routingServerGroup already exist in the environment and if they don't, sends a CM request to get it and add it to the environment -->
- <xts:block id="getRoutingServerContent" processor="XSLT" type="exec" mandatory="false" condition="/root/packageBase//*[local-name()='parent']//*[local-name()='searchPath']" dependency="packageBase get-object decodeInputContextParams" nodelist="env, header, http, cookies, packageBase, source, drillthruContext">
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/" xmlns:xts="http://developer.cognos.com/schemas/xts/" exclude-result-prefixes="xsl send xts cm">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:key name="env-param" match="/root/env/param" use="@name"/>
- <xsl:template match="/">
- <xsl:choose>
- <xsl:when test="/root/env/param[@name='ui.routingServerGroup']">
- </xsl:when>
- <xsl:when test="/root/env/param[@name='routingServerGroup']">
- <xts:sequence>
- <xts:append select="/root/env">
- <param name="ui.routingServerGroup">
- <xsl:value-of select="/root/env/param[@name='routingServerGroup']"/>
- </param>
- </xts:append>
- </xts:sequence>
- </xsl:when>
- <xsl:otherwise>
- <xsl:variable name="objpath">
- <xsl:choose>
- <xsl:when test="string(/root/env/param[@name='objpath'])!=''">
- <xsl:value-of select="/root/env/param[@name='objpath']"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="/root/packageBase//*[local-name()='parent']//*[local-name()='searchPath']"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xts:sequence>
- <xts:append>
- <routing>
- <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
- <send:request provider="cm">
- <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
- <cm:query>
- <cm:search>
- <xsl:value-of select="$objpath"/>
- </cm:search>
- <cm:properties>
- <cm:property name="searchPath"/>
- <cm:property name="routingServerGroup"/>
- </cm:properties>
- </cm:query>
- </xts:transform>
- </send:request>
- </xts:transform>
- </routing>
- </xts:append>
- <xts:append select="/root/env">
- <param name="ui.routingServerGroup">
- <xts:queryValue select="/root/routing/*[local-name()='queryResponse']/*/*[local-name()='routingServerGroup']"/>
- </param>
- <param name="routingServerGroup">
- <xts:queryValue select="/root/routing/*[local-name()='queryResponse']/*/*[local-name()='routingServerGroup']"/>
- </param>
- </xts:append>
- <xts:delete select="/root/routing"/>
- </xts:sequence>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <xts:block id="runConverter" processor="XSLT" type="exec" dependency="getRoutingServerContent packageBase get-object decodeInputContextParams secondary-request drillContextVar_to_SelectionContext_or_Converter" mandatory="false" condition=".[/root/*[local-name()='ConverterInput'] and
- not(string(/root/env/param[@name='ui.action'])='wait' or string(/root/env/param[@name='ui.action'])='back' or string(/root/env/param[@name='ui.action'])='forward')]">
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:rns1="http://developer.cognos.com/schemas/reportService/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:key name="env-param" match="/root/env/param" use="@name"/>
- <xsl:template match="/root">
- <xts:sequence>
- <xts:append select="/root">
- <response>
- <send:request provider="warp" option="xml-multipart" outputHeader="true" responseEnvelope="true" soapAction="http://www.ibm.com/xmlns/prod/cognos/reportService/201610/">
- <convertDrillThroughContext xmlns="http://developer.cognos.com/schemas/reportService/1">
- <inputContext xsi:type="bus:xmlEncodedXML">
- <xsl:value-of select="/root/*[local-name()='ConverterInput']"/>
- </inputContext>
- <parameterValues SOAP-ENC:arrayType="bus:parameterValue[]" xsi:type="SOAP-ENC:Array">
- <!-- credential parameters (NOTE: extractCredential (in drillthrough.xslt) isn't valid (or necessary) for selection context. Its expecting parameters under sourceContextValues tag!) -->
- <xsl:copy-of select="*[local-name()='drillthruContext']/*[local-name()='executionParameters']/*[local-name()='parameters']/child::*"/>
- </parameterValues>
- <options xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:option[]">
- <item xmlns="" xsi:type="bus:drillThroughOptionBoolean">
- <bus:name xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xsi:type="bus:drillThroughOptionEnum">includeDataSourceActions</bus:name>
- <bus:value xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xsi:type="xs:boolean">true</bus:value>
- </item>
- <item xmlns="" xsi:type="bus:drillThroughOptionBoolean">
- <bus:name xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xsi:type="bus:drillThroughOptionEnum">includeDrillThroughPaths</bus:name>
- <bus:value xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xsi:type="xs:boolean">true</bus:value>
- </item>
- <item xsi:type="bus:runOptionString">
- <bus:name xsi:type="bus:runOptionEnum">promptFormat</bus:name>
- <bus:value xsi:type="xsd:string">HTMLFragment</bus:value>
- </item>
- <item xsi:type="bus:runOptionAnyURI">
- <bus:name xsi:type="bus:runOptionEnum">xslURL</bus:name>
- <bus:value xsi:type="xsd:string">sa.xsl</bus:value>
- </item>
- </options>
- </convertDrillThroughContext>
- </send:request>
- </response>
- </xts:append>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <xts:block id="polling_runConverter_request" mode="output" processor="XSLT" type="exec" mimeType="text/html" mandatory="false" dependency="runConverter" condition=".[not(/root/env/param[@name='redirect']) and not(/root/env/param[@name='Target']) and
- (/root//*[local-name() = 'Envelope']/*[local-name() = 'Body']//*[local-name() = 'status'] = 'working' or
- /root//*[local-name() = 'Envelope']/*[local-name() = 'Body']//*[local-name() = 'status'] = 'stillWorking')]" nodelist="env, header, http, response, cookies,user,system"> <!-- user and system nodes are required when a request takes a long time to process. (Async mode) -->
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/framework.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/layout.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/controls/framework.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/controls/presentation.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/presentation.xsl"/>
- <xts:logicsheet path="logicsheets/validation.xslt"/>
- <xts:logicsheet path="logicsheets/presentation/touch_up.xslt"/>
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
-
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:rns1="http://developer.cognos.com/schemas/reportService/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xmlns:pf="http://developer.cognos.com/schemas/xts/pf" xmlns:dp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/presentation/" xmlns:lyt="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/layout/" xmlns:df="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/framework/" xmlns:cf="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/framework/" xmlns:cp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/presentation/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no"/>
- <pf:variables/>
- <pf:serialize-xml/>
- <xsl:template match="/">
- <xsl:variable name="contextid">
- <xsl:value-of select="xtsext:cafaction(concat('get_contextid_setcomponent_es_setpassportid_', $passport), '')"/>
- </xsl:variable>
- <xsl:variable name="status">
- <xsl:value-of select="string(/root//*[local-name() = 'Envelope']/*[local-name() = 'Body']//*[local-name() = 'status'])"/>
- </xsl:variable>
- <xsl:variable name="method">
- <xsl:choose>
- <xsl:when test="$status = 'working' or $status = 'stillWorking'">
- <xsl:value-of select="'wait'"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="'wait'"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:variable name="tracking">
- <xsl:for-each select="/root//*[local-name() = 'Envelope']/*[local-name() = 'Header']/*[local-name() = 'biBusHeader']/*[local-name() = 'tracking']/*[local-name() = 'conversationContext']">
- <xsl:variable name="markup-track">
- <xsl:call-template name="serialize-xml">
- <xsl:with-param name="node-set" select="."/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:value-of select="string($markup-track)"/>
- </xsl:for-each>
- </xsl:variable>
- <xsl:variable name="conversation">
- <xsl:call-template name="serialize-xml">
- <xsl:with-param name="node-set" select="/root//*[local-name() = 'Envelope']/*[local-name() = 'Body']/*/*/*[local-name() = 'primaryRequest']/*"/>
- </xsl:call-template>
- </xsl:variable>
- <form name="formWarpRequest" id="formWarpRequest" method="POST" action="{$gateway}" style="margin:0px;height:100%;">
- <input type="hidden" name="ui.action">
- <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='ui.action']"/></xsl:attribute>
- </input>
- <input type="hidden" name="m" value="portal/goto2.xts"/>
- <input type="hidden" name="b_action" value="xts.run"/>
- <input type="hidden" name="inlineSpec" value=""/>
- <input type="hidden" name="conversation" value=""/>
- <input type="hidden" name="drillContext"><xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='drillContext']"/></xsl:attribute></input>
- <input type="hidden" name="tracking" value=""/>
- <input type="hidden" name="ref" value="{/root/env/param[@name='ref']}"/>
- <input type="hidden" name="modeledDrillthru">
- <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='modeledDrillthru']"/></xsl:attribute>
- </input>
- <input type="hidden" name="executionParameters">
- <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='executionParameters']"/></xsl:attribute>
- </input>
- <input type="hidden" name="mobileLaunch">
- <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='mobileLaunch']"/></xsl:attribute>
- </input>
-
- <input type="hidden" name="authoredDrillthru">
- <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='authoredDrillthru']"/></xsl:attribute>
- </input>
- <!-- If lang was passed, it tells XTS to use that language instead of the productLocale for message strings - this is how we get RV to be in contentLocale -->
- <xsl:if test="string(/root/env/param[@name='lang']) != ''">
- <input type="hidden" name="lang" value="{string(/root/env/param[@name='lang'])}"/>
- </xsl:if>
- <!--if customForm is passed, Add to a wait request -->
- <!--xsl:if test="string(/root/env/param[@name='customForm']) != ''"-->
- <input type="hidden" name="customForm"><xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='customForm']"/></xsl:attribute></input>
- <!--/xsl:if-->
- <xsl:if test="$contextid!=''">
- <input type="hidden" name="cafcontextid">
- <xsl:attribute name="value"><xsl:value-of select="$contextid"/></xsl:attribute>
- </input>
- </xsl:if>
- <input type="hidden" name="errURL">
- <xsl:variable name="gotoerror-url">
- <xsl:value-of select="$gateway"/>?b_action=xts.run&m=portal/goto2.xts&gotoerror<xsl:text/>
- </xsl:variable>
- <xsl:attribute name="value"><xsl:value-of select="$gotoerror-url"/></xsl:attribute>
- </input>
- <xsl:if test="/root/env/param[@name='directLaunch']='true'">
- <input type="hidden" name="directLaunch" value="true"/>
- </xsl:if>
- </form>
- <script language="javascript">
- var method = "<xsl:value-of select="$method"/>";
- var tracking = "<xsl:value-of select="xtsext:cafaction(concat('sign_wrap_setpassportid_', $passport), xtsext:web64encode(string($tracking), true()))"/>";
- var conversation = "<xsl:value-of select="xtsext:cafaction(concat('sign_wrap_setpassportid_', $passport), xtsext:web64encode(string($conversation), true()))"/>";
- document.formWarpRequest["ui.action"].value = method;
- document.formWarpRequest.tracking.value = tracking;
- document.formWarpRequest.conversation.value = conversation;
- document.formWarpRequest.submit();
- if (document.progress)
- setTimeout('document.progress.src="<xsl:value-of select="xtsext:javascriptencode(string($brand_images))"/>progress.gif"', 1);
- </script>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!-- BLOCK: saveSelectionContextFromConverter -->
- <!-- PURPOSE: Save the selection context as /root/selectionContext. -->
- <!-- TODO: Currently, the block also produces the parameter values for getDrillThroughPaths....this will soon be removed -->
- <xts:block id="saveSelectionContextFromConverter" processor="XSLT" type="exec" dependency="packageBase get-object decodeInputContextParams drillContextVar_to_SelectionContext_or_Converter runConverter" mandatory="false" condition=".[/root/response//*[local-name()='context'] and
- not(string(/root/env/param[@name='ui.action'])='back')]">
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:rns1="http://developer.cognos.com/schemas/reportService/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:s="http://developer.cognos.com/schemas/selection/1/" xmlns:pf="http://developer.cognos.com/schemas/xts/pf">
- <pf:variables/>
- <pf:serialize-xml/>
- <xsl:template match="/root">
- <xts:sequence>
- <xts:append>
- <selectionContext>
- <xsl:value-of select="/root/response//*[local-name()='context']" disable-output-escaping="no"/>
- </selectionContext>
- <selectionContextNodeTree>
- <xsl:value-of select="/root/response//*[local-name()='context']" disable-output-escaping="yes"/>
- </selectionContextNodeTree>
- </xts:append>
- <!-- Save parameters for PowerPlay Studio as a source-->
- <xsl:if test="/root/response//*[local-name()='parameters']">
- <xts:append select="/root/drillthruContext">
- <executionParameters>
- <xsl:copy-of select="*[local-name()='response']//*[local-name()='parameters']"/>
- </executionParameters>
- </xts:append>
- </xsl:if>
- <xts:delete select="/root/*[local-name()='response']"/>
- <!-- There's a response, so clear the wait status -->
- <xsl:if test="/root/response//*[local-name()='context'] and string(/root/env/param[@name='ui.action'])='wait'">
- <xts:delete select="/root/env/param[@name='ui.action']"/>
- </xsl:if>
- </xts:sequence>
- </xsl:template>
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- </xsl:stylesheet>
- </xts:block>
- <!--Added an additional condition to check drillContext as selection context-->
- <xts:block id="getContent" processor="XSLT" type="exec" dependency="getRoutingServerContent packageBase get-object decodeInputContextParams drillContextVar_to_SelectionContext_or_Converter saveSelectionContextFromConverter secondary-request" mandatory="false"
- condition=".[(/root/drillthruContext/*[local-name()='modeledDrillthru'] or root/env/param[@name='drillContext']!='' or root/env/param[@name='modeledDrillthru']) and
- not(string(/root/env/param[@name='ui.action'])='wait' or string(/root/env/param[@name='ui.action'])='back') and not(/root/*[local-name()='response']/*[local-name()='Envelope']/*[local-name()='Body']/*/*[local-name()='result']/*[local-name()='details']/*[local-name()='item'][@*[local-name()='type']='bus:asynchDetailDrillThroughRequest']) and not(/root/*[local-name()='response']/*[local-name()='Envelope']/*[local-name()='Body']/*/*[local-name()='result']/*[local-name()='details']/*[local-name()='item'][@*[local-name()='type']='bus:asynchDetailReportStatus']/*[local-name()='status']='prompting')]" nodelist="env, header, http, cookies, packageBase, source, drillthruContext, selectionContext">
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
- xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
- xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
- xmlns:rns1="http://developer.cognos.com/schemas/reportService/1"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
- xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
- xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:key name="env-param" match="/root/env/param" use="@name"/>
- <pf:variables/>
- <pf:serialize-xml/>
- <xsl:template match="/root">
- <xts:sequence>
- <xts:append select="/root">
- <response>
- <send:request provider="warp" option="xml-multipart" outputHeader="true" responseEnvelope="true" soapAction="http://www.ibm.com/xmlns/prod/cognos/reportService/201610/">
- <!-- MARK: findDrillThroughPaths does not require the modeledDrillThrough context....it requires the selection Context option -->
- <!--xsl:variable name="context" select="drillthruContext/modeledDrillthru/context/*/child::*"/-->
- <xsl:variable name="objpath">
- <xsl:choose>
- <xsl:when test="string(/root/env/param[@name='objpath'])!=''">
- <xsl:value-of select="/root/env/param[@name='objpath']"/>
- </xsl:when>
- <xsl:when test="/root/packageBase//*[local-name()='parent']//*[local-name()='searchPath']!=''">
- <xsl:value-of select="/root/packageBase//*[local-name()='parent']//*[local-name()='searchPath']"/>
- </xsl:when>
- <xsl:when test="/root/source/*[local-name()='queryResponse']/*/*[local-name()='metadataModelPackage']/*/*[local-name()='searchPath']!=''">
- <xsl:value-of select="/root/source/*[local-name()='queryResponse']/*/*[local-name()='metadataModelPackage']/*/*[local-name()='searchPath']"/>
- </xsl:when>
- <xsl:when test="/root/source/*[local-name()='queryResponse']/*/*[local-name()='package']!=''">
- <xsl:value-of select="/root/source/*[local-name()='queryResponse']/*/*[local-name()='package']"/>
- </xsl:when>
- <xsl:when test="/root/packageBase/*[local-name()='queryResponse']/*/*[local-name()='package']!=''">
- <xsl:value-of select="/root/source/*[local-name()='queryResponse']/*/*[local-name()='package']"/>
- </xsl:when>
- <xsl:when test="/root/source/*[local-name()='queryResponse']/*/*[local-name()='ancestors']/*[local-name()='ancestorInfo'][./*[local-name()='objectClass']='package']/*[local-name()='searchPath']!=''">
- <xsl:value-of select="/root/source/*[local-name()='queryResponse']/*/*[local-name()='ancestors']/*[local-name()='ancestorInfo'][./*[local-name()='objectClass']='package']/*[local-name()='searchPath']"/>
- </xsl:when>
- </xsl:choose>
- </xsl:variable>
- <findDrillThroughPaths xmlns="http://developer.cognos.com/schemas/reportService/1">
- <objectPath xsi:type="bus:searchPathSingleObject"><xsl:value-of select="$objpath"/></objectPath>
- <!-- MARK: parameterValues are CREDENTIALS ONLY (see the selectionContext option for scoping parameters) -->
- <parameterValues SOAP-ENC:arrayType="bus:parameterValue[]" xsi:type="SOAP-ENC:Array">
- <!-- credential parameters (NOTE: extractCredential (in drillthrough.xslt) isn't valid (or necessary) for selection context. Its expecting parameters under sourceContextValues tag!) -->
-
- <!-- When we drill from ANS the execution parameters are stored in parameterValues while from other sources they are stored in parameters so we should look at the both path-->
- <xsl:copy-of select="/root/*[local-name()='drillthruContext']/*[local-name()='executionParameters']/*[local-name()='parameterValues']/child::*"/>
- <xsl:copy-of select="/root/*[local-name()='drillthruContext']/*[local-name()='executionParameters']/*[local-name()='parameters']/child::*"/>
- </parameterValues>
- <options xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:option[]">
- <!-- Pass in the selectionContext as an option -->
- <item xsi:type="bus:drillThroughOptionXMLEncodedXML">
- <bus:name xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xsi:type="bus:drillThroughOptionEnum">selectionContext</bus:name>
- <bus:value xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xsi:type="bus:xmlEncodedXML">
- <xsl:value-of select="/root/selectionContext"/>
- </bus:value>
- </item>
- <item xmlns="" xsi:type="bus:drillThroughOptionBoolean">
- <bus:name xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xsi:type="bus:drillThroughOptionEnum">includeDataSourceActions</bus:name>
- <bus:value xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xsi:type="xs:boolean">true</bus:value>
- </item>
- <item xmlns="" xsi:type="bus:drillThroughOptionBoolean">
- <bus:name xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xsi:type="bus:drillThroughOptionEnum">includeDrillThroughPaths</bus:name>
- <bus:value xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xsi:type="xs:boolean">true</bus:value>
- </item>
- <item xsi:type="bus:runOptionString">
- <bus:name xsi:type="bus:runOptionEnum">promptFormat</bus:name>
- <bus:value xsi:type="xsd:string">HTMLFragment</bus:value>
- </item>
- <item xsi:type="bus:runOptionAnyURI">
- <bus:name xsi:type="bus:runOptionEnum">xslURL</bus:name>
- <bus:value xsi:type="xsd:string">sa.xsl</bus:value>
- </item>
- </options>
- </findDrillThroughPaths>
- </send:request>
- </response>
- </xts:append>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <xts:block id="getOutput" dependency="getContent secondary-request" type="exec" mode="interpret" processor="XSLT" mandatory="false"
- condition=".[/root//*[local-name()='Envelope']/*[local-name()='Body']/*//*[local-name() = 'status'] = 'responseReady']" nodelist="header, ,http, env, response, cookies">
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt" xmlns:xos="http://developer.cognos.com/schemas/xts/output/" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/" xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" exclude-result-prefixes="xsl xts xos cm bus SOAP-ENV xsi">
- <xsl:output method="xml"/>
- <xsl:key name="env-param" match="/root/env/param" use="@name"/>
- <xsl:template match="/root">
- <xts:sequence>
- <xts:append>
- <affinity>absolute</affinity>
- </xts:append>
- </xts:sequence>
- <xts:sequence>
- <xts:replace select="/root/response">
- <response>
- <xts:request href="bus://dispatcher" protocol="BUS" responseEnvelope="true" outputHeader="true" option="xml-multipart" soapAction="http://www.ibm.com/xmlns/prod/cognos/reportService/201610/.absolute">
- <SOAP-ENV:Envelope>
- <SOAP-ENV:Header>
- <bus:biBusHeader xsi:type="bus:biBusHeader" xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <bus:tracking>
- <xsl:copy-of select="/root//*[local-name() = 'Envelope']/*[local-name() = 'Header']/*[local-name() = 'biBusHeader']/*[local-name() = 'tracking']/*[local-name() = 'conversationContext']"/>
- </bus:tracking>
- <xsl:copy-of select="/root/header/bus:biBusHeader/*[local-name()!='tracking']"/>
- </bus:biBusHeader>
- </SOAP-ENV:Header>
- <SOAP-ENV:Body>
- <xsl:element name="getOutput" namespace="http://developer.cognos.com/schemas/reportService/1">
- <bus:conversation xsi:type="bus:asynchRequest" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:nil="true"/>
- <bus:parameterValues xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parameterValue[]" xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"/>
- <bus:options xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:option[]" xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"/>
- </xsl:element>
- </SOAP-ENV:Body>
- </SOAP-ENV:Envelope>
- </xts:request>
- </response>
- </xts:replace>
- </xts:sequence>
- </xsl:template>
- <xsl:template match="*">
- <xsl:copy>
- <xsl:copy-of select="@*"/>
- <xsl:apply-templates/>
- </xsl:copy>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <xts:block id="polling_getDrillThroughPaths_request" mode="output" processor="XSLT" type="exec" mimeType="text/html" mandatory="false"
- dependency="render"
- condition=".[not(/root/env/param[@name='redirect']) and not(/root/env/param[@name='debugTarget']) and
- (/root//*[local-name() = 'Envelope']/*[local-name() = 'Body']//*[local-name() = 'status'] = 'working' or
- /root//*[local-name() = 'Envelope']/*[local-name() = 'Body']//*[local-name() = 'status'] = 'stillWorking')]" nodelist="env, header, http, response, cookies,user,system,selectionContext"> <!-- user and system nodes are required when a request takes a long time to process. (Async mode) -->
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/framework.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/layout.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/controls/framework.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/controls/presentation.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/presentation.xsl"/>
- <xts:logicsheet path="logicsheets/validation.xslt"/>
- <xts:logicsheet path="logicsheets/presentation/touch_up.xslt"/>
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
- xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
- xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
- xmlns:rns1="http://developer.cognos.com/schemas/reportService/1"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
- xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
- xmlns:dp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/presentation/"
- xmlns:lyt="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/layout/"
- xmlns:df="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/framework/"
- xmlns:cf="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/framework/"
- xmlns:cp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/presentation/"
- xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no"/>
- <pf:variables/>
- <pf:serialize-xml/>
- <xsl:template match="/">
- <xsl:variable name="contextid">
- <xsl:value-of select="xtsext:cafaction(concat('get_contextid_setcomponent_es_setpassportid_', $passport), '')"/>
- </xsl:variable>
- <xsl:variable name="status">
- <xsl:value-of select="string(/root//*[local-name() = 'Envelope']/*[local-name() = 'Body']//*[local-name() = 'status'])"/>
- </xsl:variable>
- <xsl:variable name="method">
- <xsl:choose>
- <xsl:when test="$status = 'working' or $status = 'stillWorking'">
- <xsl:value-of select="'wait'"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="'wait'"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:variable name="tracking">
- <xsl:for-each select="/root//*[local-name() = 'Envelope']/*[local-name() = 'Header']/*[local-name() = 'biBusHeader']/*[local-name() = 'tracking']/*[local-name() = 'conversationContext']">
- <xsl:variable name="markup-track">
- <xsl:call-template name="serialize-xml">
- <xsl:with-param name="node-set" select="."/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:value-of select="string($markup-track)"/>
- </xsl:for-each>
- </xsl:variable>
- <xsl:variable name="conversation">
- <xsl:call-template name="serialize-xml">
- <xsl:with-param name="node-set" select="/root//*[local-name() = 'Envelope']/*[local-name() = 'Body']/*/*/*[local-name() = 'primaryRequest']/*"/>
- </xsl:call-template>
- </xsl:variable>
- <form name="formWarpRequest" id="formWarpRequest" method="POST" action="{$gateway}" style="margin:0px;height:100%;">
- <input type="hidden" name="ui.action">
- <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='ui.action']"/></xsl:attribute>
- </input>
- <input type="hidden" name="m" value="portal/goto2.xts"/>
- <input type="hidden" name="b_action" value="xts.run"/>
- <input type="hidden" name="inlineSpec" value=""/>
- <input type="hidden" name="conversation" value=""/>
- <input type="hidden" name="tracking" value=""/>
- <input type="hidden" name="ref" value="{/root/env/param[@name='ref']}"/>
- <input type="hidden" name="modeledDrillthru"><xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='modeledDrillthru']"/></xsl:attribute></input>
- <xsl:choose>
- <xsl:when test="/root/env/param[@name='executionParameters'] and /root/env/param[@name='executionParameters'] != ''">
- <input type="hidden" name="executionParameters">
- <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='executionParameters']"/></xsl:attribute>
- </input>
- </xsl:when>
- <xsl:when test="/root/env/param[@name='encExecutionParameters'] and /root/env/param[@name='encExecutionParameters'] != ''">
- <input type="hidden" name="encExecutionParameters">
- <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='encExecutionParameters']"/></xsl:attribute>
- </input>
- </xsl:when>
- </xsl:choose>
- <xsl:if test="/root/env/param[@name='mobileLaunch'] and /root/env/param[@name='mobileLaunch'] != ''">
- <input type="hidden" name="mobileLaunch">
- <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='mobileLaunch']"/></xsl:attribute>
- </input>
- </xsl:if>
-
- <input type="hidden" name="drillContext"><xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='drillContext']"/></xsl:attribute></input>
- <input type="hidden" name="selectionContext"><xsl:attribute name="value"><xsl:value-of select="/root/selectionContext"/></xsl:attribute></input>
- <input type="hidden" name="authoredDrillthru">
- <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='authoredDrillthru']"/></xsl:attribute>
- </input>
- <!-- If lang was passed, it tells XTS to use that language instead of the productLocale for message strings - this is how we get RV to be in contentLocale -->
- <xsl:if test="string(/root/env/param[@name='lang']) != ''">
- <input type="hidden" name="lang" value="{string(/root/env/param[@name='lang'])}"/>
- </xsl:if>
- <xsl:if test="$contextid!=''">
- <input type="hidden" name="cafcontextid">
- <xsl:attribute name="value"><xsl:value-of select="$contextid"/></xsl:attribute>
- </input>
- </xsl:if>
- <input type="hidden" name="errURL">
- <xsl:variable name="gotoerror-url">
- <xsl:value-of select="$gateway"/>?b_action=xts.run&m=portal/goto2.xts&gotoerror<xsl:text/>
- </xsl:variable>
- <xsl:attribute name="value"><xsl:value-of select="$gotoerror-url"/></xsl:attribute>
- </input>
- <xsl:if test="/root/env/param[@name='directLaunch']='true'">
- <input type="hidden" name="directLaunch" value="true"/>
- </xsl:if>
- </form>
- <script language="javascript">
- var method = "<xsl:value-of select="$method"/>";
- var tracking = "<xsl:value-of select="xtsext:cafaction(concat('sign_wrap_setpassportid_', $passport), xtsext:web64encode(string($tracking), true()))"/>";
- var conversation = "<xsl:value-of select="xtsext:cafaction(concat('sign_wrap_setpassportid_', $passport), xtsext:web64encode(string($conversation), true()))"/>";
- document.formWarpRequest["ui.action"].value = method;
- document.formWarpRequest.tracking.value = tracking;
- document.formWarpRequest.conversation.value = conversation;
- document.formWarpRequest.submit();
- setTimeout('document.progress.src="<xsl:value-of select="xtsext:javascriptencode(string($brand_images))"/>progress.gif"', 1);
- </script>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <xts:block id="gotoerror" mode="output" processor="XSLT" type="exec" mimeType="text/html" mandatory="false"
- condition=".[/root/env/param[@name='gotoerror']]" nodelist="env">
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/framework.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/layout.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/controls/framework.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/controls/presentation.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/presentation.xsl"/>
- <xts:logicsheet path="logicsheets/validation.xslt"/>
- <xts:logicsheet path="logicsheets/presentation/touch_up.xslt"/>
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
- xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
- xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
- xmlns:rns1="http://developer.cognos.com/schemas/reportService/1"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
- xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
- xmlns:dp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/presentation/"
- xmlns:lyt="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/layout/"
- xmlns:df="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/framework/"
- xmlns:cf="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/framework/"
- xmlns:cp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/presentation/"
- xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no" omit-xml-declaration="yes"/>
- <xsl:template match="/">
- <xsl:text disable-output-escaping='yes'><!DOCTYPE html></xsl:text>
- <html>
- <head>
- <script language="javascript">
- function onClose() {
- if (window.opener != null) {
- window.close();
- }
- }
- </script>
- </head>
- <body onload="javascript:onClose();"/>
- </html>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <xts:block id="getTargets" processor="XSLT" type="exec" dependency="getContent getOutput" mandatory="false"
- condition=".[not(/root/env/param[@name='redirect']) and not(/root/env/param[@name='debugTarget']) and /root//*[local-name()='result']/*[local-name()='details']/*[local-name()='item'] and not(/root/*[local-name()='response']/*[local-name()='Envelope']/*[local-name()='Body']/*/*[local-name()='result']/*[local-name()='details']/*[local-name()='item'][@*[local-name()='type']='bus:asynchDetailDrillThroughRequest']) and not(/root/*[local-name()='response']/*[local-name()='Envelope']/*[local-name()='Body']/*/*[local-name()='result']/*[local-name()='details']/*[local-name()='item'][@*[local-name()='type']='bus:asynchDetailReportStatus']/*[local-name()='status']='prompting')]" nodelist="env, header, http, cookies, response">
- <xts:logicsheet path="logicsheets/cm-logic.xsl"/>
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
- xmlns:cml="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/cml/1/"
- xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
- xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
- xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/">
- <!-- @TODO sprint9: This block will soon be completely removed, however; the shell has been left for dependency purposes. -->
- </xsl:template>
- </xsl:stylesheet>
-
- </xts:block>
- <xts:block id="handleDirectLaunch" dependency="getTargets" type="exec" mode="interpret" processor="XSLT" mandatory="false" condition=".[(count(/root/*[local-name()='response']/*/*[local-name()='Body']/*/*/*[local-name()='details']/*[local-name()='item'][@*[local-name()='type']='bus:asynchDetailDrillThroughTarget']) + count(/root/*[local-name()='FormArray']/*[local-name()='array'])) = 1 and string(/root/env/param[@name='directLaunch'])='true' and string(/root/env/param[@name='authoredDrillthru'])='']" nodelist="env">
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" exclude-result-prefixes="xsl xts bus SOAP-ENV xsi">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/root">
- <xts:sequence>
- <xts:append select="/root/env">
- <param name="redirect"/>
- <param name="drillType">modeledDrillThroughPath</param>
- </xts:append>
- <xts:delete select="/root/env/param[@name='method']"/>
- <!-- there was a response so clear any wait status -->
- <xts:delete select="/root/env/param[@name='ui.action']"/>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!-- This block is used to handle prompts generated from both source and target.-->
- <xts:block id="prompt-page" mode="output" processor="XSLT" type="exec" mimeType="text/html" dependency="getContent getOutput getTargets runDrillPath"
- condition=".[not(/root/env/param[@name='cv.drillServiceOnly']) and /root/*[local-name()='response']/*[local-name()='Envelope']/*[local-name()='Body']/*/*[local-name()='result']/*[local-name()='details']/*[local-name()='item'][@*[local-name()='type']='bus:asynchDetailReportStatus']/*[local-name()='status']='prompting']" nodelist="env, header, http, cookies, response, user, packageBase">
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt">
- <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no" omit-xml-declaration="yes"/>
- <pf:variables/>
- <xsl:template match="/root">
- <xsl:variable name="markup-tracking">
- <xsl:apply-templates select="/root/*[local-name()='response']/*[local-name()='Envelope']/*[local-name()='Header']/*[local-name()='biBusHeader']/*[local-name()='tracking']/*[local-name() = 'conversationContext']" mode="markup"/>
- </xsl:variable>
- <xsl:variable name="markup-conversation">
- <xsl:apply-templates select="/root/*[local-name()='response']/*[local-name()='Envelope']/*[local-name()='Body']/*/*/*[local-name()='primaryRequest']/*" mode="markup"/>
- </xsl:variable>
- <xsl:variable name="contextid">
- <xsl:value-of select="xtsext:cafaction(concat('get_contextid_setcomponent_es_setpassportid_', $passport), '')"/>
- </xsl:variable>
- <xsl:variable name="lang">
- <xsl:choose>
- <xsl:when test="/root/env/param[@name='contentLocale']">
- <xsl:value-of select="string(/root/*[local-name()='contentLocale'])"/>
- </xsl:when>
- <xsl:when test="/root/env/param[@name='lang']">
- <xsl:value-of select="string(/root/*[local-name()='lang'])"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text/>en<xsl:text/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:text disable-output-escaping='yes'><!DOCTYPE html></xsl:text>
- <html>
- <xsl:attribute name="lang"><xsl:value-of select="$lang"/></xsl:attribute>
-
- <head>
- <link rel="stylesheet" type="text/css" href="{$skin_root}/portal/default.css"/>
- <link rel="stylesheet" type="text/css" href="{$skin_root}/qs/RVReport.css"/>
- <script type="text/javascript">
- function cancel() {
- if (window.opener != null) {
- window.close();
- }
- }
- </script>
- </head>
- <body topmargin="3" bottommargin="0" marginheight="3" rightmargin="5" leftmargin="5" marginwidth="3" style="overflow:auto">
- <form action="{$gateway}" name="formWarpRequest" id="formWarpRequest" method="post" style="height:100%;margin:0px">
- <xsl:value-of select="/root/*[local-name()='response']/*[local-name()='Envelope']/*[local-name()='Body']/*/*[local-name()='result']/*[local-name()='details']/*[local-name()='item'][@*[local-name()='type']='bus:asynchDetailReportOutput']/*[local-name()='outputPages']/*[local-name()='item']" disable-output-escaping="yes"/>
- <input type="hidden" name="b_action" value="xts.run"/>
- <input type="hidden" name="m" value="portal/goto2.xts"/>
- <input type="hidden" name="ui.action" value=""/>
- <input type="hidden" name="run.prompt" value=""/>
- <input type="hidden" name="conversation">
- <xsl:attribute name="value">
- <xsl:value-of select="xtsext:cafaction(concat('sign_wrap_setpassportid_', $passport), xtsext:web64encode(string($markup-conversation), true()))"/>
- </xsl:attribute>
- </input>
- <input type="hidden" name="tracking">
- <xsl:attribute name="value">
- <xsl:value-of select="xtsext:cafaction(concat('sign_wrap_setpassportid_', $passport), xtsext:web64encode(string($markup-tracking), true()))"/>
- </xsl:attribute>
- </input>
- <input type="hidden" name="inlineSpec" value=""/>
- <input type="hidden" name="ref" value="{/root/env/param[@name='ref']}"/>
- <input type="hidden" name="modeledDrillthru"><xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='modeledDrillthru']"/></xsl:attribute></input>
- <xsl:choose>
- <xsl:when test="/root/env/param[@name='executionParameters'] and /root/env/param[@name='executionParameters'] != ''">
- <input type="hidden" name="executionParameters">
- <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='executionParameters']"/></xsl:attribute>
- </input>
- </xsl:when>
- <xsl:when test="/root/env/param[@name='encExecutionParameters'] and /root/env/param[@name='encExecutionParameters'] != ''">
- <input type="hidden" name="encExecutionParameters">
- <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='encExecutionParameters']"/></xsl:attribute>
- </input>
- </xsl:when>
- <xsl:when test="/root/env/param[@name='mobileLaunch'] and /root/env/param[@name='mobileLaunch'] != ''">
- <input type="hidden" name="mobileLaunch">
- <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='mobileLaunch']"/></xsl:attribute>
- </input>
- </xsl:when>
- </xsl:choose>
- <input type="hidden" name="authoredDrillthru">
- <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='authoredDrillthru']"/></xsl:attribute>
- </input>
- <!-- added an object path that is required by forward request -->
- <input type="hidden" name="objpath" value="{/root/packageBase//*[local-name()='parent']//*[local-name()='searchPath']}"/>
- <!-- If lang was passed, it tells XTS to use that language instead of the productLocale for message strings - this is how we get RV to be in contentLocale -->
- <xsl:if test="$lang != ''">
- <input type="hidden" name="lang">
- <xsl:attribute name="value"><xsl:value-of select="$lang"/></xsl:attribute>
- </input>
- </xsl:if>
- <!-- Added debugTarget or redirect that is required by forward (run) request -->
- <xsl:if test="(/root/env/param[@name='debugTarget'])">
- <input type="hidden" name="debugTarget" value="{string(/root/env/param[@name='debugTarget'])}"/>
- </xsl:if>
- <xsl:if test="(/root/env/param[@name='redirect'])">
- <input type="hidden" name="redirect" value="{string(/root/env/param[@name='redirect'])}"/>
- </xsl:if>
- <xsl:if test="(/root/env/param[@name='mobileLaunch'])">
- <input type="hidden" name="mobileLaunch" value="{string(/root/env/param[@name='mobileLaunch'])}"/>
- </xsl:if>
- <xsl:if test="$contextid!=''">
- <input type="hidden" name="cafcontextid">
- <xsl:attribute name="value"><xsl:value-of select="$contextid"/></xsl:attribute>
- </input>
- </xsl:if>
- <input type="hidden" name="errURL">
- <xsl:variable name="gotoerror-url">
- <xsl:value-of select="$gateway"/>?b_action=xts.run&m=portal/goto2.xts&gotoerror<xsl:text/>
- </xsl:variable>
- <xsl:attribute name="value"><xsl:value-of select="$gotoerror-url"/></xsl:attribute>
- </input>
- <xsl:if test="/root/env/param[@name='directLaunch']='true'">
- <input type="hidden" name="directLaunch" value="true"/>
- </xsl:if>
- </form>
- </body>
- </html>
- </xsl:template>
- <pf:serialize-xml/>
- </xsl:stylesheet>
- </xts:block>
- <!-- PURPOSE: To get details about each authored drill through target for rendering (so the user can choose a path), or for direct launch to use the one and only target path -->
- <xts:block id="getAuthoredDrillThroughDetails1" mode="interpret" type="exec" processor="XSLT" mandatory="false" condition=".[root/drillthruContext/authoredDrillthru]" dependency="decodeInputContextParams">
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
- xmlns:xts="http://developer.cognos.com/schemas/xts/"
- xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
- xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
- xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- exclude-result-prefixes="xsl cm xts xtsext">
- <xsl:template match="/root">
- <!-- Handle the authored drills, get there info -->
- <xts:sequence>
- <xts:append select="/root">
- <authoredDrillThroughDetails>
- <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
- <xts:request href="bus://dispatcher" protocol="BUS" responseEnvelope="true" soapAction="http://www.ibm.com/xmlns/prod/cognos/contentManagerService/201610/" outputHeader="true">
- <SOAP-ENV:Envelope xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <SOAP-ENV:Header>
- <xsl:copy-of select="/root/header/bus:biBusHeader"/>
- </SOAP-ENV:Header>
- <SOAP-ENV:Body>
- <cm:query xmlns:cm="http://developer.cognos.com/schemas/bibus/3/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <cm:requests>
- <xsl:for-each select="/root/drillthruContext/authoredDrillthru/context/member">
- <!-- Step 1 of extracting member data for debugging -->
- <!-- While processing members, pick the "authoredDrillRequest URL parameter out of the decoded data for each member. -->
- <!-- Save memberData parallel to the member block -->
- <xts:append select="/root/drillthruContext/authoredDrillthru/context'">
- <memberData>
- <name><xsl:value-of select="./*[local-name()='name']"/></name>
- <xsl:value-of select="substring-after(xtsext:urldecode(./*[local-name()='data']), 'authoredDrill.request=')" disable-output-escaping="yes"/>
- </memberData>
- </xts:append>
- <cm:request>
- <xsl:variable name="currentName">
- <xsl:value-of select="name"/>
- </xsl:variable>
- <search>
- <xsl:value-of select="./drillThroughSearchPath"/>
- </search>
- <properties xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="cm:propEnum[]">
- <item xsi:type="cm:propEnum">defaultScreenTip</item>
- <item xsi:type="cm:propEnum">objectClass</item>
- <item xsi:type="cm:propEnum">defaultName</item>
- <item xsi:type="cm:propEnum">ancestors</item>
- <item xsi:type="cm:propEnum">searchPath</item>
- <!--added to be able to find out if a target is hidden -->
- <item xsi:type="cm:propEnum">hidden</item>
- </properties>
- </cm:request>
- </xsl:for-each>
- </cm:requests>
- </cm:query>
- </SOAP-ENV:Body>
- </SOAP-ENV:Envelope>
- </xts:request>
- </xts:transform>
- </authoredDrillThroughDetails>
- </xts:append>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!-- PURPOSE: Step 2 of extracting authored drill parameter details for debugging. -->
- <!-- For each element in memberData, produce a node tree of the authored drill source parameter assignments -->
- <!-- TODO: add hasDrillThroughDebugCapability condition to this block for efficiency -->
- <xts:block id="getAuthoredDrillThroughDetails" mode="interpret" type="exec" processor="XSLT" mandatory="false" condition=".[root/drillthruContext/authoredDrillthru]" dependency="getAuthoredDrillThroughDetails1">
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
- xmlns:xts="http://developer.cognos.com/schemas/xts/"
- xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
- xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
- xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- exclude-result-prefixes="xsl cm xts xtsext">
- <xsl:template match="/root/drillthruContext/authoredDrillthru/context/memberData/authoredDrillRequest/drillParameters">
- <!-- Handle the authored drills, get there info -->
- <xts:sequence>
- <xsl:for-each select="./*[local-name()='param']">
- <xts:append select="/root/drillthruContext/authoredDrillthru/context">
- <paramNodeTree>
- <xsl:attribute name="drillThruName"><xsl:value-of select="../../../name"/></xsl:attribute>
- <parm name="{substring-after(@name,'_')}"/>
- <xsl:value-of select="." disable-output-escaping="yes"/>
- </paramNodeTree>
- </xts:append>
- </xsl:for-each>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!-- TODO: PERF: Get rid of this block to cut down on the number of CM queries -->
- <!-- @TODO: sprint9: This block (and its cm calls) will soon be removed...ancestry information is returned in the RSAOMDrillThroughTarget array -->
- <xts:block id="getModelDrillThroughDetails" mode="interpret" type="exec" processor="XSLT" mandatory="false" condition=".[root/drillthruContext/modeledDrillthru and /root/*[local-name()='response']]" dependency="getContent getTargets" nodelist="header, env, queryResponse, response">
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
- xmlns:xts="http://developer.cognos.com/schemas/xts/"
- xmlns:bus="http://developer.cognos.cmo/schemas/bibus/3/"
- xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
- xmlns:SOAP-ENC="http://scheams.xmlsoap.org/soap/encoding/"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- exclude-result-prefixes="xsl cm xts xtsext">
- <xsl:template match="/root">
- <xts:sequence>
- <xts:append select="/root">
- <modelDrillThroughTargetDetails>
- <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
- <xts:request href="bus://dispatcher" protocol="BUS" responseEnvelope="true" soapAction="http://www.ibm.com/xmlns/prod/cognos/contentManagerService/201610/" outputHeader="true">
- <SOAP-ENV:Envelope xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <SOAP-ENV:Header>
- <xsl:copy-of select="/root/header/bus:biBusHeader"/>
- </SOAP-ENV:Header>
- <SOAP-ENV:Body>
- <xsl:if test="/root/response//*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*[local-name()='item']!=''">
- <cm:query xmlns:cm="http://developer.cognos.com/schemas/bibus/3/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <cm:requests>
- <!-- The input to this block is now taken directly from RSAOMDetailDrillThroughTarget...no CM calls! -->
- <!--xsl:for-each select="/root/*[local-name()='queryResponse']/*[local-name()='queryReply']"-->
- <xsl:for-each select="/root/response//*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*[local-name()='item']">
- <xsl:variable name="searchPath">
- <xsl:value-of select="./*[local-name()='target']"/>
- </xsl:variable>
- <xsl:if test="$searchPath != ''">
- <cm:request>
- <!-- Not used??? xsl:variable name="targetReportName">
- <xsl:value-of select="./*/*[local-name()='target']/*/*[local-name()='defaultName']"/>
- </xsl:variable-->
- <search>
- <xsl:value-of select="xtsext:urldecode($searchPath)"/>
- </search>
- <properties xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="cm:propEnum[]">
- <item xsi:type="cm:propEnum">ancestors</item>
- <item xsi:type="cm:propEnum">executionFormat</item>
- <item xsi:type="cm:propEnum">searchPath</item>
- </properties>
- </cm:request>
- </xsl:if>
- </xsl:for-each>
- </cm:requests>
- </cm:query>
- </xsl:if>
- </SOAP-ENV:Body>
- </SOAP-ENV:Envelope>
- </xts:request>
- </xts:transform>
- </modelDrillThroughTargetDetails>
- </xts:append>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <xts:block id="render" mode="output" processor="XSLT" type="exec" mimeType="text/html"
- dependency="getContent getOutput handleDirectLaunch getAuthoredDrillThroughDetails getModelDrillThroughDetails convertURL convertForm convertDirectAction drillContextVar_to_SelectionContext_or_Converter"
- condition=".[not(/root/env/param[@name='redirect']) and not(/root/env/param[@name='debugTarget']) and not(/root/*[local-name()='response']/*[local-name()='Envelope']/*[local-name()='Body']/*/*[local-name()='result']/*[local-name()='details']/*[local-name()='item'][@*[local-name()='type']='bus:asynchDetailDrillThroughRequest']) and not(/root/*[local-name()='response']/*[local-name()='Envelope']/*[local-name()='Body']/*/*[local-name()='result']/*[local-name()='details']/*[local-name()='item'][@*[local-name()='type']='bus:asynchDetailReportStatus']/*[local-name()='status']='prompting')]">
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/framework.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/layout.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/controls/framework.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/controls/presentation.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/presentation.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/selectionContextRenderer.xsl"/>
- <xts:logicsheet path="portal/get2post.xsl"/>
- <xts:logicsheet path="logicsheets/validation.xslt"/>
- <xts:logicsheet path="logicsheets/presentation/touch_up.xslt"/>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
- xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
- xmlns:s="http://developer.cognos.com/schemas/selection/1/"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
- xmlns:lyt="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/layout/"
- xmlns:dp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/presentation/"
- xmlns:gp="http://developer.cognos.com/schemas/xts/gp"
- xmlns:df="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/framework/"
- xmlns:cf="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/framework/"
- xmlns:cp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/presentation/"
- xmlns:xts="http://developer.cognos.com/schemas/xts/"
- xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
- xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
- xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
- xmlns:rns1="http://developer.cognos.com/schemas/reportService/1"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:xtsdrillext="xalan://com.cognos.drill.ext.XTSExt"
- exclude-result-prefixes="xsl cm pf xts xtsext lyt dp df cf cp">
- <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no" omit-xml-declaration="yes"/>
- <xsl:variable name="mname" select="'goto2.xts'"/>
- <pf:variables/>
- <!-- Required for popup menus -->
- <cp:flyoutControl/>
- <!-- Required for rendering selection context values as a table -->
- <s:selectionContextRenderer/>
- <xsl:template match="/root">
- <xsl:variable name="browserTitle">
- <xts:string id="GOTO_PAGE"></xts:string>
- </xsl:variable>
- <!-- Initialize this variable to use it later on in the forms that we submit to goto page when user click on a drill path or view target parameter mapping (runDrillPath request)-->
- <xsl:variable name="routingServerGroup">
- <xsl:choose>
- <xsl:when test="string(/root/env/param[@name='ui.routingServerGroup'])!=''">
- <xsl:value-of select="/root/env/param[@name='ui.routingServerGroup']"/>
- </xsl:when>
- <xsl:otherwise></xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <!-- Initialize mobile variable -->
- <xsl:variable name="mobileLaunch">
- <xsl:choose>
- <xsl:when test="/root/env/param[@name='mobileLaunch']">
- <xsl:value-of select="/root/env/param[@name='mobileLaunch']"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text/>false<xsl:text/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:text disable-output-escaping='yes'><!DOCTYPE html></xsl:text>
- <dp:page longTitle="$browserTitle">
- <dp:meta>
- <pf:meta/>
- </dp:meta>
- <dp:script>
- <!-- Help system -->
- <!-- If user has DrillThroughAssistantCapability help link goes to a different location -->
- <xsl:choose>
- <xsl:when test="($hasDrillThroughAssistantCapability)">
- <pf:help context="HID_DRILL_THROUGH_DEBUG"/>
- </xsl:when>
- <xsl:otherwise>
- <pf:help context="HID_DRILL_THROUGH_GOTO"/>
- </xsl:otherwise>
- </xsl:choose>
- <script language="javascript">
- <xsl:attribute name="src"><xsl:value-of select="$webcontent"/>/<xsl:value-of select="$app"/>/js/list.js<xsl:text/></xsl:attribute>
- </script>
- <xsl:if test="$mobileLaunch='true'">
- <script language="javascript">
- <xsl:attribute name="src"><xsl:value-of select="$gateway"/>/mobileService/mobile_interface.js<xsl:text/></xsl:attribute>
- </script>
- </xsl:if>
- <script language="JavaScript">
- function onClickDrillThrough(drillType, drillPath, executionParameters, context, selectionContext, useDynamicFilter, mobileLaunch, drillPath_form, dfextpdf)
- {
- var rsGoToHandler = window.opener && window.opener.rsGoToHandler && typeof window.opener.rsGoToHandler == 'function' ? window.opener.rsGoToHandler : null;
- if (drillType == 'authoredDrillthru' && rsGoToHandler)
- {
- <!-- Pass authored drill processing to opener window which should be the classic viewer under the cvContentView perspective -->
- var idx = drillPath.indexOf('authoredDrill.request=');
- if (idx >= 0) {
- <!-- Extract the value of the authoredDrill.request parameter -->
- var request = drillPath.substring(idx).split('=')[1].split('&')[0];
- <!-- Decode value including + (which javascript does not handle) -->
- rsGoToHandler(drillType, decodeURIComponent(request.replace(/\+/g, ' ')));
- }
- window.close();
- return;
- }
- //Use authoring perspective to handle the drill through request if available
- if (dfextpdf == '1' && parent !=this && parent.Application && typeof parent.Application.LaunchDrillTargetFromGoto2 =='function')
- {
- if (drillPath.indexOf('authoredDrill.request=') != -1)
- {
- var v_aParam = drillPath.substring(drillPath.indexOf('authoredDrill.request=')+1).split('=');
- parent.Application.LaunchDrillTargetFromGoto2(decodeURIComponent(v_aParam[1]));
- return;
- }
- }
-
- if (drillType == 'modeledDrillThroughPath')
- {
- document.pform.drillPath.value = drillPath;
- document.pform.executionParameters.value = executionParameters;
- document.pform.context.value = context;
- document.pform.drillType.value = drillType;
- document.pform.selectionContext.value = selectionContext;
- document.pform.useDynamicFilter.value = useDynamicFilter; //if parameter is empty, use the option specified on the drill path object.
- if (rsGoToHandler) {
- rsGoToHandler(drillType, document.pform);
- window.close();
- return;
- }
- document.pform.submit();
- }
- else
- {
- if (drillPath_form && drillPath_form != '')
- {
- if (mobileLaunch == 'true')
- {
- mobAPI.passFormFieldsToMobile(document.forms[drillPath_form]);
- }
- else
- {
- document.forms[drillPath_form].submit();
- }
- }
- else
- {
- window.location.href = drillPath;
- }
- }
- }
- <!-- @TODO: sprint9 Until we have a wizard2.xts, we have to set dynamic filtering in goto2! -->
- <!-- This function is called from a temporary menu item "Run with Dynamic Filter". Its identical to -->
- <!-- onClickDrillThrough except it sets the useDynamicFilter switch to true -->
- function dynamicFilter(drillType, drillPath, executionParameters, context, selectionContext, mobileLaunch, drillPath_form)
- {
- if (drillType == 'modeledDrillThroughPath') {
- document.pform.drillPath.value = drillPath;
- document.pform.executionParameters.value = executionParameters;
- document.pform.context.value = context;
- document.pform.drillType.value = drillType;
- document.pform.selectionContext.value = selectionContext;
- document.pform.useDynamicFilter.value = 'true';
- document.pform.submit();
- }
- else
- {
- if (drillPath_form && drillPath_form != '')
- {
- if (mobileLaunch == 'true')
- {
- mobAPI.passFormFieldsToMobile(document.forms[drillPath_form]);
- }
- else
- {
- document.forms[drillPath_form].submit();
- }
- }
- else
- {
- window.location.href = drillPath;
- }
- }
- }
- function onClose() {
- <xsl:choose>
- <xsl:when test="$mobileLaunch='true'">
- mobAPI.cancel();
- </xsl:when>
- <xsl:otherwise>
- if (window.opener != null) {
- window.close();
- }
- </xsl:otherwise>
- </xsl:choose>
- }
- </script>
-
- <!--Include a JS file for implementation of popup menus -->
- <script language="javascript" src="{$webcontent}/{$app}/js/CCflyoutMenu.js"></script>
-
- <xsl:if test="($hasDrillThroughAssistantCapability)">
- <script language="javascript">
- //The showHideIDArray is used to toggle the status of various shown/hidden panes in the debug area.
- var showHideIDArray = new Array();
- showHideIDArray['idDebugInfo'] = false;
- showHideIDArray['idDebugSelectionContextAdvanced'] = false;
-
- //toggle a debug pane
- function showHideDebugPane(id)
- {
- var oShowHideElement = document.getElementById(id);
- if (showHideIDArray[id] == true)
- {
- oShowHideElement.style.display = 'none';
- showHideIDArray[id] = false;
- if(document.getElementById(id+'Arrow')){
- document.getElementById(id+'Arrow').src ="<xsl:value-of select="xtsext:javascriptencode($skin_root)"/>/prompting/images/prompt_option_expand.gif";
- }
- }
- else
- {
- oShowHideElement.style.display = 'block';
- showHideIDArray[id] = true;
- if(document.getElementById(id+'Arrow')){
- document.getElementById(id+'Arrow').src ="<xsl:value-of select="xtsext:javascriptencode($skin_root)"/>/prompting/images/prompt_option_collapse.gif";
- }
- }
- }
-
- // Invoke to show a mapping info of a selected target
-
- function showTargetInfo(drillType, drillPath, drillPathName, executionParameters, context, selectionContext, drillPath_form)
- {
- var oForm = document.forms['f'];
- document.f.drillPath.value = drillPath;
- document.f.drillPathName.value = drillPathName; <!--add drillpath name.-->
- document.f.executionParameters.value = executionParameters;
- document.f.context.value = context;
- document.f.drillType.value = drillType;
- document.f.selectionContext.value = selectionContext;
- document.getElementById('targetIframe').style.display = "inline";
- document.getElementById('targetIframe').style.overflow= "auto";
- document.getElementById('targetIframe').focus();
- document.f.submit();
- }
- </script>
- </xsl:if>
-
- </dp:script>
- <form name="pform" method="post" action="{$gateway}?b_action=xts.run&m={$app}/goto2.xts">
- <input name="drillPath" type="hidden" value=""/>
- <input name="executionParameters" type="hidden" value=""/>
- <input name="mobileLaunch" type="hidden" value="{$mobileLaunch}" />
- <input name="context" type="hidden" value=""/>
- <input name="redirect" type="hidden" value=""/>
- <input name="drillType" type="hidden" value=""/>
- <input name="selectionContext" type="hidden" value=""/>
- <input name="useDynamicFilter" type="hidden" value=""/>
- <!-- pass the routing serverGroup to be used by runDrillPath request -->
- <xsl:if test="$routingServerGroup!=''">
- <input name="ui.routingServerGroup" type="hidden" value="{$routingServerGroup}"/>
- </xsl:if>
- </form>
- <xsl:variable name="theobj" select="/root//bus:result/bus:details/*[local-name()='item']"/>
- <dp:header>
- <dp:title>
- <xsl:value-of select="$browserTitle"/>
- </dp:title>
- <dp:close>
- <a href="javascript:onClose()">
- <dp:closeMarker/>
- </a>
- </dp:close>
- </dp:header>
- <lyt:layout style="1">
- <lyt:section>
- <xsl:choose>
- <xsl:when test="/root//*[local-name() = 'Envelope']/*[local-name() = 'Body']//*[local-name() = 'status'] = 'working' or /root//*[local-name() = 'Envelope']/*[local-name() = 'Body']//*[local-name() = 'status'] = 'stillWorking'">
- <div align="center" class="objectNoneFound"> <!-- TODO -->
- <br/><br/>
- <table width="100" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td valign="middle">
- <img src="{$brand_images}progress.gif" width="48" height="48" border="0" name="progress" align="top"/>
- </td>
- <td width="20"> </td>
- <td class="tabletext">
- <xts:string id="GOTO_LOADING"/><br/><br/>
- </td>
- </tr>
- </table>
- <br/><br/><br/><br/>
- </div>
- </xsl:when>
- <xsl:otherwise>
- <xsl:choose> <!-- Begin: this drillthrough has targets or not -->
- <!-- Handle the case when there are no targets -->
- <!-- @TODO: sprint9 This condition should be reviewed (need to remove paths and rework actions) -->
- <xsl:when test="not(
- (/root/response//*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*[local-name()='item'] != '') or
- ($theobj/*[local-name()='paths'] and $theobj/*[local-name()='paths'] != '') or
- ($theobj/*[local-name()='actions'] and $theobj/*[local-name()='actions'] != '') or
- (/root/drillthruContext/authoredDrillthru and /root/drillthruContext/authoredDrillthru != '') or
- (/root/*[local-name()='DirectActionArray']/*[local-name()='array'] != '') or
- (/root/*[local-name()='URLArray']/*[local-name()='array'] != '') or
- (/root/*[local-name()='FormArray']/*[local-name()='array'] != '')
- ) or (/root/*[local-name()='error']/*[local-name()='badParams'])">
- <dp:list>
- <dp:section>
- <dp:text nospace="nospace" tdClass="formLabel"><xts:string id="GOTO_AVAILABLE_LINKS"/></dp:text>
- <dp:text width="100%"/>
- </dp:section>
- </dp:list>
- <cp:table width="100%">
- <cp:tableContent>
- <cp:columnContent align="center" height="165px;">
- <dp:list valign="middle">
- <xsl:choose> <!-- Begin: CAF Error or none found -->
- <xsl:when test="/root/*[local-name()='error']/*[local-name()='badParams']">
- <dp:section class="objectNoneFound"><xts:string id="GOTO_CAF_ERROR_FOUND"/></dp:section>
- </xsl:when>
- <xsl:otherwise>
- <dp:section class="objectNoneFound"><xts:string id="GOTO_NO_ITEMS_FOUND"/></dp:section>
- </xsl:otherwise>
- </xsl:choose> <!-- End: CAF Error or none found -->
- </dp:list>
- </cp:columnContent>
- </cp:tableContent>
- </cp:table>
- </xsl:when>
- <xsl:otherwise>
- <!-- Render the target entries in this order: authored, modeled drill paths, modeled drill actions -->
- <dp:list>
- <dp:section>
- <dp:text nospace="nospace" tdClass="formLabel"><xts:string id="GOTO_AVAILABLE_LINKS"/></dp:text>
- </dp:section>
- </dp:list>
- <div name="drillpathlinks" id="drillpathlinksid" style="padding-top: 10px;">
- <xsl:text/><!-- Render authored Drillthrough entries --><xsl:text/>
- <xsl:text/><table width="100%" cellspacing="0" cellpadding="2" border="0" class="cctable">
- <thead id="AuthoredDrillthroughEntriesHeader">
- <tr class="tableHeader">
- <th id="reportType" width="16" valign="center" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px;" class="tableTitle"></th>
- <th id="reportName" width="50%" valign="center" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px; text-align: left;" class="tableTitle" scope="col"><span class="tableHeaderDivider"><img width="1" height="10" src="{$webcontent}/images/space.gif" alt=""/></span>
- <xts:string id="GOTO_NAME"/>
- </th>
- <th id="targetReport" width="50%" valign="center" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px; text-align: left;" class="tableTitle" scope="col"><span class="tableHeaderDivider"><img width="1" height="10" src="{$webcontent}/images/space.gif" alt=""/></span>
- <xts:string id="GOTO_TARGET_REPORT"/>
- </th>
- </tr>
- </thead>
- <tbody>
- <!--
- // TODO: sprint4-WO2374 (details)
- -->
- <!-- render custom urls -->
- <xsl:if test="/root/*[local-name()='URLArray']/*[local-name()='array'] != ''">
- <xsl:for-each select="/root/*[local-name()='URLArray']/*[local-name()='array']">
- <tr style="height: 1px;">
- <td headers="reportType" nowrap="" height="10" class="tabletext"><img src="{*[local-name()='icon']}" border="0" scope="row" alt="{*[local-name()='name']}"/></td>
- <td headers="reportName" width="50%" nowrap="" height="10" class="tabletext">
- <a href="{*[local-name()='url']}">
- <!-- Enforce the Base Text Direction (BTD) by calling the xtsext:enforceBTD Java method -->
- <xsl:value-of select="xtsext:enforceBTD(string(*[local-name()='name']), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
- </a>
- </td>
- <td headers="targetReport" width="50%" nowrap="" height="10" class="tabletext">
- <xsl:value-of select="xtsext:enforceBTD(string(*[local-name()='description']), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
- </td>
- </tr>
- </xsl:for-each>
- </xsl:if>
- <!--
- // TODO: sprint4-WO2374 (details)
- -->
- <!-- render custom forms -->
- <xsl:if test="/root/*[local-name()='FormArray']/*[local-name()='array'] != ''">
- <xsl:for-each select="/root/*[local-name()='FormArray']/*[local-name()='array']">
- <xsl:variable name="formId" select="concat('f', generate-id(.))"/>
- <tr style="height: 1px;">
- <td headers="reportType" nowrap="" height="10" class="tabletext"><img src="{*[local-name()='icon']}" border="0" scope="row" alt="{*[local-name()='name']}"/></td>
- <td headers="reportName" style="padding-left: 2px;" width="50%" nowrap="" height="10" class="tabletext">
- <a href="javascript:document.forms['{$formId}'].submit()">
- <xsl:value-of select="xtsext:enforceBTD(string(*[local-name()='name']), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
- </a>
- </td>
- <td headers="targetReport" width="50%" nowrap="" height="10" class="tabletext">
- <xsl:value-of select="xtsext:enforceBTD(string(*[local-name()='description']), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
- </td>
- </tr>
- <form name="{$formId}" action="{*[local-name()='fAction']}" method="{*[local-name()='fMethod']}" target="{*[local-name()='fTarget']}">
- <xsl:for-each select="./*[local-name()='fElements']">
- <input type="hidden" name="{*[local-name()='fName']}" value="{*[local-name()='fValue']}"/>
- </xsl:for-each>
- </form>
- </xsl:for-each>
- </xsl:if>
-
- <!--
- // TODO: sprint3-WO2374 (details)
- // Render dynamic drill through from PowerPlay -->
- <xsl:if test="/root/*[local-name()='DirectActionArray']/*[local-name()='array'] != ''">
- <xsl:for-each select="/root/*[local-name()='DirectActionArray']/*[local-name()='array']">
- <tr style="height: 1px;">
- <td headers="reportType" nowrap="" height="10" class="tabletext"><img src="{$webRoot}/qs/images/filter.gif" border="0" scope="row" alt="{*[local-name()='name']}"/></td>
- <td headers="reportName" style="padding-left: 2px;" width="50%" nowrap="" height="10" class="tabletext">
- <a href="javascript:document.forms['fDrill{position()}'].submit()">
- <xsl:value-of select="xtsext:enforceBTD(string(*[local-name()='name']), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
- </a>
- </td>
- <td headers="targetReport" width="50%" nowrap="" height="10" class="tabletext">Dynamic Filter</td>
- </tr>
- <form name="fDrill{position()}" method="post">
- <input type="hidden" name="b_action" value="cognosViewer"/>
- <input type="hidden" name="ui.action" value="run"/>
- <input type="hidden" name="ui.object" value="{*[local-name()='targetReport']}"/>
- <input type="hidden" name="ui.name" value="{*[local-name()='name']}"/>
- <input type="hidden" name="run.prompt" value="false"/>
- <input type="hidden" name="specification.editSpecification" value="{xtsdrillext:convertPPFilterToC8FilterSpec(*[local-name()='filterPredicate'])}"/>
- </form>
- </xsl:for-each>
- </xsl:if>
-
- <!-- Render authored drill throughs -->
- <xsl:if test="/root/drillthruContext/authoredDrillthru and /root/drillthruContext/authoredDrillthru != ''">
- <xsl:for-each select="/root/drillthruContext/authoredDrillthru/context/member">
- <xsl:variable name="searchPath">
- <xsl:value-of select="./drillThroughSearchPath"/>
- </xsl:variable>
- <xsl:variable name="tooltip">
- <xsl:value-of select="/root/*[local-name()='authoredDrillThroughDetails']/*/*[local-name()='queryReply'][./*/*[local-name()='searchPath']=$searchPath]/*/*[local-name()='defaultScreenTip']"/>
- </xsl:variable>
- <xsl:variable name="drillPath"><xsl:value-of select="data"/></xsl:variable>
- <xsl:variable name="drillPath_form">
- <xsl:value-of select="concat('drillPath_form_authored', string(position()))"/>
- </xsl:variable>
- <xsl:variable name="idBlockName">id<xsl:value-of select="name"/></xsl:variable>
- <script language="javascript">
- //The showHideIDArray is used to toggle the status of various shown/hidden panes in the debug area.
- showHideIDArray['<xsl:value-of select="$idBlockName"/>'] = false;
- </script>
-
- <tr style="height: 1px;">
- <td headers="reportType" nowrap="" height="10" class="tabletext" scope="row">
- <xsl:choose>
- <xsl:when test="./drillThroughAction='execute' or ./drillThroughAction='run' or ./drillThroughAction='reportView'">
- <xsl:choose>
- <xsl:when test="./*[local-name()='drillThroughFormat'] != ''">
- <xsl:call-template name="pick-icon">
- <xsl:with-param name="outputType" select="./*[local-name()='drillThroughFormat']"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="pick-icon">
- <xsl:with-param name="outputType" select="/root/user/param[@name='format']"/>
- </xsl:call-template>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:if test="./drillThroughAction='execute' or ./drillThroughAction='run'">
- <img width="12" height="16" src="{$webRoot}/ps/portal/images/action_run.gif"><xsl:attribute name="alt"><xts:string id="DEBUG_RUN"/></xsl:attribute></img>
- </xsl:if>
- </xsl:when>
- <xsl:when test="./drillThroughAction='editAnalysis'">
- <img width="16" height="16" src="{$webRoot}/ps/portal/images/icon_ps_analysis.gif"><xsl:attribute name="alt"><xts:string id="IDS_OBJ_ANALYSIS"/></xsl:attribute></img>
- </xsl:when>
- <xsl:when test="./drillThroughAction='editQuery'">
- <img width="16" height="16" src="{$webRoot}/ps/portal/images/icon_qs_query.gif"><xsl:attribute name="alt"><xts:string id="IDS_OBJ_QUERY"/></xsl:attribute></img>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="pick-icon">
- <xsl:with-param name="outputType" select="/root/user/param[@name='format']"/>
- </xsl:call-template>
- </xsl:otherwise>
- </xsl:choose>
- </td>
- <td headers="reportName" style="padding-left: 2px;" width="50%" nowrap="" height="10" class="tabletext">
- <!-- Generate the form for the entry -->
- <xsl:variable name="action" select="substring-before($drillPath, '?')"/>
- <xsl:variable name="arguments" select="substring-after($drillPath, '?')"/>
- <form name="{$drillPath_form}" method="post" style="display:none">
- <xsl:attribute name="action"><xsl:value-of select="$action"/></xsl:attribute>
- <xsl:call-template name="getToPostConversion">
- <xsl:with-param name="arguments">
- <xsl:value-of select="$arguments"/>
- </xsl:with-param>
- </xsl:call-template>
- </form>
- <a>
- <xsl:attribute name="href">#</xsl:attribute>
- <xsl:attribute name="onclick">javascript:onClickDrillThrough('authoredDrillthru', '<xsl:value-of select="xtsext:javascriptencode($drillPath)"/>', '', '', '','','<xsl:value-of select="$mobileLaunch"/>', '<xsl:value-of select="$drillPath_form"/>', '<xsl:value-of select="/root/env/param[@name='dfextpdf']"/>')</xsl:attribute>
- <xsl:attribute name="title">
- <xsl:value-of select="xtsext:enforceBTD(string(name), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
- <xsl:choose>
- <xsl:when test="$is-ui-rtl">
- <xsl:text>‏ - </xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text>‎ - </xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:value-of select="xtsext:enforceBTD($tooltip, $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
- </xsl:attribute>
- <xsl:value-of select="xtsext:enforceBTD(string(name), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
- </a>
- <!-- put an "expander" beside each authored drill through for rendering debug source information -->
- <xsl:if test="($hasDrillThroughAssistantCapability)">
- <span>
- <xsl:attribute name="onclick">javascript:showHideDebugPane('<xsl:value-of select="$idBlockName"/>')</xsl:attribute>
- <!--A href="#"><xts:string id="DEBUG_AUTHORED_DRILL_THROUGH"/></A-->
- <IMG border="0" src="{$webRoot}/common/images/spacer.gif" width="3" height="1" alt=""/>
- <IMG id="{$idBlockName}Arrow" border="0" src="{$skin_root}/prompting/images/prompt_option_expand.gif"><xsl:attribute name="alt"><xts:string id="IDS_ADM_EXPAND_TOOLTIP"/></xsl:attribute></IMG>
- </span>
- </xsl:if>
- </td>
- <!--Renders authored drill target path -->
- <td headers="targetReport" width="50%" nowrap="" height="10" class="tabletext">
- <!--Tests if targets is hidden-->
- <xsl:if test=" not(/root/*[local-name()='authoredDrillThroughDetails']/*/*[local-name()='queryReply'][./*/*[local-name()='searchPath']=$searchPath]/*/*[local-name()='hidden']) or /root/*[local-name()='authoredDrillThroughDetails']/*/*[local-name()='queryReply'][./*/*[local-name()='searchPath']=$searchPath]/*/*[local-name()='hidden']='false'">
- <xsl:for-each select="/root/*[local-name()='authoredDrillThroughDetails']/*/*[local-name()='queryReply'][./*/*[local-name()='searchPath']=$searchPath][1]/*/*[local-name()='ancestors']/*[local-name()='ancestorInfo']">
- <xsl:value-of select="xtsext:enforceBTD(string(*[local-name()='title']), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
- <xsl:choose>
- <xsl:when test="$is-ui-rtl=true()"> ‏> </xsl:when><!-- RLM -->
- <xsl:otherwise> ‎> </xsl:otherwise><!-- LRM -->
- </xsl:choose>
- </xsl:for-each>
- <xsl:value-of select="xtsext:enforceBTD(string(/root/*[local-name()='authoredDrillThroughDetails']/*/*[local-name()='queryReply'][./*/*[local-name()='searchPath']=$searchPath]/*/*[local-name()='defaultName']), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
- </xsl:if>
- </td>
- <!--End of Render Authored Drill target path -->
- </tr>
- <!--RenderAuthoredDrillThroughDetails: Provide authored Drill through debug info -->
- <xsl:if test="($hasDrillThroughAssistantCapability) and /root/env/param[@name='authoredDrillthru'] and /root/env/param[@name='authoredDrillthru'] != ''">
- <xsl:variable name="authoredDrillData"><xsl:value-of select="xtsext:urldecode(*[local-name()='data'])" disable-output-escaping="yes"/></xsl:variable>
- <xsl:variable name="authoredDrillRequest"><xsl:value-of select="substring-after(xtsext:urldecode(*[local-name()='data']), 'authoredDrillRequest')"/></xsl:variable>
- <xsl:variable name="authoredDrillName"><xsl:value-of select="name"/></xsl:variable>
-
- <tr>
- <!--216715 comment 1 -->
- <!--For defect https://bajazz05.canlab.ibm.com:9750/ccm/resource/itemName/com.ibm.team.workitem.WorkItem/216715 -->
- <!-- Set an explicit height so the browser render engine will try to honour a the minimum height for the row. This defect -->
- <!-- involves setting a height for cc table in default.css modified by the customer. The browsers by default set the heights -->
- <!-- of the rows to fill up the height of the table. So we wind up with big spaces between the rows if there are a small number -->
- <!-- of rows in the table. To combat this, set the height of each row explicitly and then add a hidden row at the end that does NOT -->
- <!-- set a default row height. The browser renderer then uses this invisible row at the bottom of the table to take up the remaining -->
- <!-- height in the table. This technique is similar to the fix for "189822: PI84588 WRONG LOOK" made in the Presentation Service (ps) -->
- <!-- made in Aug\Sept 2017. -->
- <td colspan="6" height="1">
- <table id="{$idBlockName}" style="display:none">
- <!--xsl:for-each select="/root/*[local-name()='drillthruContext']/*[local-name()='authoredDrillthru']/*[local-name()='context']/*[local-name()='member']"-->
- <tr>
- <td valign="top">
- <table>
- <tr>
- <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_AUTHORED_DRILL_THROUGH"/></td>
- <td colspan="2" nowrap="" height="10" class="tabletext"><xsl:value-of select="name"/></td>
- </tr>
- <tr>
- <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_TARGET_SEARCH_PATH"/></td>
- <td nowrap="" height="10" class="tabletext"><xsl:value-of select="*[local-name()='drillThroughSearchPath']"/></td>
- </tr>
- <tr>
- <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_ACTION"/></td>
- <td nowrap="" height="10" class="tabletext"><xsl:value-of select="*[local-name()='drillThroughAction']"/></td>
- </tr>
- <tr>
- <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_FORMAT"/></td>
- <td nowrap="" height="10" class="tabletext"><xsl:value-of select="*[local-name()='drillThroughFormat']"/></td>
- </tr>
- </table>
- </td>
- <td colspan="4" class="tabletext">
- <!-- currently reads: Passed Source Values: -->
- <!-- -->
- <!--For defect https://bajazz05.canlab.ibm.com:9750/ccm/resource/itemName/com.ibm.team.workitem.WorkItem/216715 -->
- <!-- This table used to use the cctable style. For defect 216715 the cutomer modified the cctable style in a default.css. -->
- <!-- Among other things, the customer added an explicit height to cctable. The 500px height made this table unusable. -->
- <!-- This table is meant to expand under its corresponding 'goto' link. The existing cctable defintions in all skins define a -->
- <!-- border and set a white background color. This table disables the border (border="0"). So the only thing used from -->
- <!-- the default cctable was the setting for the background colour. So, remove the cctable class and add the white background -->
- <!-- fixes the problem of this sub table being not displaying properly if a height is set -->
- <table cellspacing="0" cellpadding="2" border="0" bgcolor="#ffffffff">
- <thead id="PassedSourceValuesHeader">
- <tr class="tableHeader">
- <!-- Column: item name -->
- <td width="20%" valign="center" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px;" class="tableTitle">
- <table cellspacing="0" cellpadding="0" border="0">
- <tbody><tr><td valign="top" nowrap="" class="tableTitle"><xts:string id="DEBUG_TARGET_PARAMETER_NAME"/></td></tr></tbody>
- </table>
- </td>
- <td width="1" height="15">
- <table cellspacing="0" cellpadding="0" border="0">
- <tbody><tr><td class="tableHeaderDivider"><img width="1" height="15" src="{$webcontent}/images/space.gif" alt=""/></td></tr></tbody>
- </table>
- </td>
- <!-- Column: display value -->
- <td width="20%" valign="center" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px;" class="tableTitle">
- <table cellspacing="0" cellpadding="0" border="0">
- <tbody><tr><td valign="top" nowrap="" class="tableTitle"><xts:string id="DEBUG_DISPLAY"/></td></tr></tbody>
- </table>
- </td>
- <td width="1" height="15">
- <table cellspacing="0" cellpadding="0" border="0">
- <tbody><tr><td class="tableHeaderDivider"><img width="1" height="15" src="{$webcontent}/images/space.gif" alt=""/></td></tr></tbody>
- </table>
- </td>
- <!-- Column: use value -->
- <td width="60%" valign="center" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px;" class="tableTitle">
- <table cellspacing="0" cellpadding="0" border="0">
- <tbody><tr><td valign="top" nowrap="" class="tableTitle" align="left"><xts:string id="DEBUG_SOURCE_VALUE"/></td></tr></tbody>
- </table>
- </td>
- </tr>
- </thead>
-
- <xsl:for-each select="../paramNodeTree">
- <xsl:if test="@drillThruName=$authoredDrillName">
- <tr>
- <td width="20%" height="10" class="tabletext" valign="top">
- <xsl:value-of select="./parm/@name"/>
- </td>
- <td></td>
- <!-- display value -->
- <td width="20%" height="10" class="tabletext" valign="top">
- <xsl:value-of select="./selectChoices/selectOption/@displayValue"/>
- </td>
- <td></td>
- <!-- use value -->
- <td witdh="60%" height="10" class="tabletext" valign="top">
- <xsl:value-of select="./selectChoices/selectOption/@useValue"/>
- </td>
-
- </tr>
- </xsl:if>
- </xsl:for-each>
- </table>
- </td>
- </tr>
- <!--/xsl:for-each-->
- </table>
- </td>
- </tr>
- </xsl:if>
- <!-- RenderAuthoredDrillThroughDetails -->
- </xsl:for-each>
-
- <!-- https://bajazz05.canlab.ibm.com:9750/ccm/resource/itemName/com.ibm.team.workitem.WorkItem/216715 -->
- <!-- A comment above describes this change. (There are multiple comments for this defect. The element below -->
- <!-- corresponsd to '216715 comment 1'. When an explicit height is set on a table, the browser renderer will -->
- <!-- distribute the height of the table by increasing the height of each row. To combat this default behaviour -->
- <!-- a minimum height for each row of 1px is set and a hidden filler row with no height specified is added at the -->
- <!-- bottom of the table. The element below is the hidden filler row. -->
- <tr role="presentation" aria-hidden="true">
- <td/>
- </tr>
- </xsl:if>
- <!-- add in model-based drill through rendering code here -->
- <xsl:if test="/root/response//*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*[local-name()='item'][@*[local-name()='type']='bus:asynchDetailDrillThroughTarget']">
- <xsl:variable name="context">
- <xsl:if test="/root/drillthruContext/modeledDrillthru/context">
- <xsl:call-template name="serialize-xml">
- <xsl:with-param name="node-set" select="/root/drillthruContext/modeledDrillthru/context/*/child::*"/>
- </xsl:call-template>
- </xsl:if>
- </xsl:variable>
- <xsl:variable name="contextEnc">
- <xsl:if test="/root/drillthruContext/modeledDrillthru/context">
- <xsl:value-of select="xtsext:web64encode(string($context), true())"/>
- </xsl:if>
- </xsl:variable>
- <!-- Define a variable containing the Selection Context as an XMLEncoded string -->
-
- <xsl:variable name="SelectionContextRoot">
- <xsl:value-of select="/root/selectionContext"/>
- </xsl:variable>
-
- <xsl:variable name="executionParameters">
- <xsl:if test="/root/drillthruContext/executionParameters">
- <xsl:call-template name="serialize-xml">
- <xsl:with-param name="node-set" select="/root/drillthruContext/executionParameters/*/child::*"/>
- </xsl:call-template>
- </xsl:if>
- </xsl:variable>
- <xsl:variable name="executionParametersEnc">
- <xsl:if test="/root/drillthruContext/executionParameters">
- <xsl:value-of select="xtsext:web64encode(string($executionParameters), true())"/>
- </xsl:if>
- </xsl:variable>
- <xsl:for-each select="/root/response//*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*[local-name()='item'][@*[local-name()='type']='bus:asynchDetailDrillThroughTarget']">
- <xsl:variable name="searchPath">
- <xsl:value-of select="./*[local-name()='target']"/>
- </xsl:variable>
- <!-- RSAOMDrillThroughTarget will return the following date item properties, such as "action", "drillPathName", "drillPathScreenTip", "drillPathSearchPath","recipients","target", "targetIconURI"(target report output format icon), "targetName"(target report name) -->
- <xsl:variable name="action_plus_drillPathSearchPath">
- <xsl:value-of select="./*[local-name()='action']"/>
- </xsl:variable>
- <xsl:variable name="drillPathSearchPath">
- <xsl:value-of select="./*[local-name()='drillPathSearchPath']"/>
- </xsl:variable>
- <xsl:variable name="drillPathName">
- <xsl:value-of select="./*[local-name()='drillPathName']"/>
- </xsl:variable>
- <xsl:variable name="tooltip">
- <xsl:value-of select="./*[local-name()='drillPathScreenTip']"/>
- </xsl:variable>
- <tr style="height: 1px;">
- <td headers="reportType" nowrap="" height="10" class="tabletext">
- <xsl:variable name="mdAction">
- <xsl:value-of select="./*[local-name()='action']"/>
- </xsl:variable>
- <xsl:variable name="mdIcon">
- <xsl:value-of select="./*[local-name()='targetIconURI']"/>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="$mdIcon!=''">
- <img width="16" height="16" src="{$webRoot}/ps/portal/images/{$mdIcon}" alt="{$drillPathName}"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="pick-icon">
- <xsl:with-param name="outputType" select="/root/user/param[@name='format']"/>
- </xsl:call-template>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:if test="$mdAction='run' or $mdAction='execute'">
- <img width="12" height="16" src="{$webRoot}/ps/portal/images/action_run.gif"><xsl:attribute name="alt"><xts:string id="DEBUG_RUN"/></xsl:attribute></img>
- </xsl:if>
- </td>
-
- <!-- Add popup menus to allow a user to display mapping info for the selceted target
- todo: craete string file in drill depot to add new strings.
- -->
-
- <!-- Unique ids are required to create multiple menus -->
-
- <!-- popup menu ids-->
- <xsl:variable name="menuId" select="concat('Menu', generate-id(.))"/>
- <xsl:variable name="menuSpanId" select="concat('MenuSpan', generate-id(.))"/>
- <!-- menu item ids -->
- <xsl:variable name="menuRunId" select="concat('Run', generate-id(.))"/>
- <xsl:variable name="menuDebugId" select="concat('Debug', generate-id(.))"/>
- <xsl:variable name="menuRunWithDFId" select="concat('DynamicFilter', generate-id(.))"/>
-
-
- <!-- Add a link to a target and dropdown arrow for a popup menu-->
- <td headers="reportName" style="padding-left: 2px;" nowrap="" height="10" class="tabletext">
- <!-- Define a menu with 2 items Run and debug-->
- <xsl:variable name="contactMenu">
- <flyout id="{$menuId}">
- <label><xts:string encode="javascript" id="IDS_DRIL_MENU_LABEL"><xts:param name="drillName"><xsl:value-of select="xtsext:enforceBTD(string(./*[local-name()='drillPathName']), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/></xts:param></xts:string></label>
- <items>
- <item id="{$menuRunId}">
- <!-- Note: as long as "run with dynamic filter" is available on the menu, run should mean do NOT dynamic filter -->
- <!-- IF it is removed, then "run" should probably mean run with whatever dynamic filter setting is on the drill path object -->
- <text><xts:string id="DEBUG_RUN"/></text>
- <action>onClickDrillThrough('modeledDrillThroughPath', '<xsl:value-of select="xtsext:web64encode(string($drillPathSearchPath), true())"/>', '<xsl:value-of select="$executionParametersEnc"/>', '<xsl:value-of select="$contextEnc"/>', '<xsl:value-of select="xtsext:javascriptencode($SelectionContextRoot)"/>', 'false', '<xsl:value-of select="$mobileLaunch"/>');
- </action>
- </item>
- <item id="{$menuDebugId}">
- <text><xts:string id="DEBUG_DEBUG"/></text>
- <action>javascript:showTargetInfo('modeledDrillThroughPath', '<xsl:value-of select="xtsext:web64encode(string($drillPathSearchPath), true())"/>', '<xsl:value-of select="$drillPathName"/>','<xsl:value-of select="$executionParametersEnc"/>', '<xsl:value-of select="$contextEnc"/>', '<xsl:value-of select="xtsext:javascriptencode($SelectionContextRoot)"/>');</action>
- </item>
- <!-- We (PM, UI and DEV) have decided to show "Run with Dynamic Filter" for RS and QS targets -->
- <!-- Todo:Add targetClass to the object model and use it to determine the type of a target -->
- <xsl:if test="contains($searchPath,'/report[') or contains($searchPath,'/query[')">
- <item id="{$menuRunWithDFId}">
- <text><xts:string id="DEBUG_RUN_DYNAMIC_FILTER"/></text>
- <action>dynamicFilter('modeledDrillThroughPath', '<xsl:value-of select="xtsext:web64encode(string($drillPathSearchPath), true())"/>', '<xsl:value-of select="$executionParametersEnc"/>', '<xsl:value-of select="$contextEnc"/>', '<xsl:value-of select="xtsext:javascriptencode($SelectionContextRoot)"/>');
- </action>
- </item>
- </xsl:if>
- </items>
-
- </flyout>
- </xsl:variable>
- <!-- Display a link to drill to the target directly-->
- <a>
- <xsl:attribute name="href">#</xsl:attribute>
- <xsl:attribute name="onclick">javascript:onClickDrillThrough('modeledDrillThroughPath', '<xsl:value-of select="xtsext:web64encode(string($drillPathSearchPath), true())"/>', '<xsl:value-of select="$executionParametersEnc"/>', '<xsl:value-of select="$contextEnc"/>', '<xsl:value-of select="xtsext:javascriptencode($SelectionContextRoot)"/>','','<xsl:value-of select="$mobileLaunch"/>')</xsl:attribute>
- <xsl:attribute name="title">
- <xsl:value-of select="xtsext:enforceBTD(string(./*[local-name()='drillPathName']), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
- <xsl:choose>
- <xsl:when test="$is-ui-rtl">
- <xsl:text>‏ - </xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text>‎ - </xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:value-of select="xtsext:enforceBTD($tooltip, $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
- </xsl:attribute>
- <xsl:value-of select="xtsext:enforceBTD(string(./*[local-name()='drillPathName']), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
- </a>
- <!-- A dropdown arrow to invoke drill through assistant. It is only available when a user has Capability to run the tool-->
- <xsl:if test="($hasDrillThroughAssistantCapability)">
- <a border="0" role="button" aria-haspopup="true">
- <xsl:attribute name="href">#</xsl:attribute>
- <xsl:attribute name="onclick">
- <xsl:text>return CCPopupMenu.dropDown(event,0,0,'</xsl:text>
- <xsl:value-of select="$menuId"/>
- <xsl:text>');</xsl:text>
- </xsl:attribute>
-
- <img border="0" name="contactMenu_imgFlyControl" src="{$skin_shared_images}dropdown_arrow.gif">
- <xsl:attribute name="alt">
- <xts:string id="IDS_DRIL_MENU_TOOLTIP" encode="html"><xts:param name="drillName"><xsl:value-of select="xtsext:enforceBTD(string(./*[local-name()='drillPathName']), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/></xts:param></xts:string>
- </xsl:attribute>
- </img>
- </a>
- </xsl:if>
- <!-- Display menus and add z-index to make sure it is on the top-->
- <div id="{$menuSpanId}" style="z-index:1; position: relative;">
- </div>
-
- <!--Call to create menus -->
- <xsl:call-template name="renderPopup">
- <xsl:with-param name="flyoutXML">
- <xsl:copy-of select="$contactMenu"/>
- </xsl:with-param>
- <xsl:with-param name="controlID"><xsl:value-of select="$menuSpanId"/></xsl:with-param>
- </xsl:call-template>
- <!-- end popup -->
-
- </td>
- <!-- renders target path-->
- <td headers="targetReport" width="50%" nowrap="" height="10" class="tabletext">
- <!-- Only shows the target path if the target is not hidden -->
- <xsl:if test="not(./*[local-name()='targetHidden']) or ./*[local-name()='targetHidden']='false'">
- <xsl:for-each select="./*[local-name()='targetAncestorNames']/*[local-name()='item']">
- <xsl:value-of select="xtsext:enforceBTD(string(.), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
- <xsl:choose>
- <xsl:when test="$is-ui-rtl=true()"> ‏> </xsl:when><!-- RLM -->
- <xsl:otherwise> ‎> </xsl:otherwise><!-- LRM -->
- </xsl:choose>
- </xsl:for-each>
- <xsl:value-of select="xtsext:enforceBTD(string(./*[local-name()='targetName']), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
- </xsl:if>
- </td>
- </tr>
- </xsl:for-each>
- </xsl:if>
- <!-- Render Drillthrough actions entries - URI | HTML -->
- <xsl:if test="/root/response//*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*[local-name()='item'][@*[local-name()='type']='bus:asynchDetailDrillThroughTargetURI']">
- <xsl:for-each select="/root/response//*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*[local-name()='item'][@*[local-name()='type']='bus:asynchDetailDrillThroughTargetURI']">
- <!--
- <xsl:variable name="uri" select="translate(normalize-space(string(bus:uri)), 'HTML','html')"/>
- <xsl:variable name="isurl" select="not(starts-with($uri,'<') or contains($uri,'<html>'))"/>
- -->
- <xsl:variable name="isuri" select="true()"/>
- <tr style="height: 1px;">
- <td headers="reportType" nowrap="" height="10" class="tabletext">
- <img width="16" height="16" src="{$webRoot}/rv/images/icon_ms_analysis_action.gif"/>
- </td>
- <xsl:choose>
- <xsl:when test="$isuri">
- <!--xsl:variable name="actionURI" select="string(bus:uri)"/-->
- <xsl:variable name="actionURI">
- <xsl:value-of select="string(./*[local-name()='targetURI'])"/>
- </xsl:variable>
- <xsl:variable name="drillPath_form">
- <xsl:if test="string-length($actionURI) > 2048">
- <xsl:value-of select="concat('drillPath_form_action', string(position()))"/>
- </xsl:if>
- </xsl:variable>
- <td headers="reportName" style="padding-left: 2px;" width="50%" nowrap="" height="10" class="tabletext">
- <!-- Generate the form for the entry -->
- <xsl:if test="string-length($actionURI) > 2048">
- <xsl:variable name="action" select="substring-before($actionURI, '?')"/>
- <xsl:variable name="arguments" select="substring-after($actionURI, '?')"/>
- <form name="{$drillPath_form}" method="post">
- <xsl:attribute name="action">
- <xsl:value-of select="$action"/>
- </xsl:attribute>
- <xsl:call-template name="getToPostConversion">
- <xsl:with-param name="arguments">
- <xsl:value-of select="$arguments"/>
- </xsl:with-param>
- </xsl:call-template>
- </form>
- </xsl:if>
- <a>
- <xsl:attribute name="href">#</xsl:attribute>
- <xsl:attribute name="onclick">javascript:onClickDrillThrough('modeledDrillThroughAction', '<xsl:value-of select="xtsext:javascriptencode(string($actionURI))"/>', '', '', '','<xsl:value-of select="$mobileLaunch"/>','<xsl:value-of select="$drillPath_form"/>')</xsl:attribute>
- <xsl:attribute name="title">
- <xsl:value-of select="xtsext:enforceBTD(string(./*[local-name()='drillPathName']), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
- </xsl:attribute>
- <xsl:value-of select="xtsext:enforceBTD(string(./*[local-name()='drillPathName']), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
- </a>
- </td>
- </xsl:when>
- <xsl:otherwise>
- <xsl:variable name="actionHTML" select="bus:uri"/>
- <script language="JavaScript">
- var html_<xsl:value-of select="position()"/> = '<xsl:value-of select="xtsext:javascriptencode(xtsext:xmldecode($actionHTML))"/>';
- function run_<xsl:value-of select="position()"/>() {
- document.write(html_<xsl:value-of select="position()"/>);
- document.close();
- }
- </script>
- <td headers="reportName" style="padding-left: 2px;" width="50%" nowrap="" height="10" class="tabletext">
- <a>
- <xsl:attribute name="href">javascript:run_<xsl:value-of select="position()"/>()</xsl:attribute>
- <xsl:value-of select="xtsext:enforceBTD(string(bus:name), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
- </a>
- </td>
- </xsl:otherwise>
- </xsl:choose>
- <td headers="targetReport" width="50%" nowrap="" height="10" class="tabletext">
- <xsl:text> - </xsl:text>
- </td>
- </tr>
- </xsl:for-each>
- </xsl:if>
- </tbody>
- </table>
- </div>
- </xsl:otherwise>
- </xsl:choose> <!-- End: this drillthrough has targets or not -->
-
- <!-- DRILL THROUGH DEBUGGING (DRILL THROUGH ASSISTANT) -->
- <!-- Provide debug info for source, the info sent to GOTO page from various sources (Studios, Viewer and test page ...)
- There are 4 types of drill through: custom URL, dynamic filtering, authered and model based.
- We only allow a user to see these info when he has capability to run Drill Through Assistant.
- -->
- <xsl:if test="($hasDrillThroughAssistantCapability)">
- <!--Display a link to show/hide source info -->
- <div style="margin-top: 5px; text-align:right;" class="formText" >
- <A href="#" onClick="showHideDebugPane('idDebugInfo')">
- <xsl:text/><xts:string id="DEBUG_SOURCE_INFORMATION"/><xsl:text/>
- <IMG border="0" src="{$webRoot}/common/images/spacer.gif" width="3" height="1" alt=""/>
- <IMG id="idDebugInfoArrow" border="0" src="{$skin_root}/prompting/images/prompt_option_expand.gif"><xsl:attribute name="alt"><xts:string id="IDS_ADM_EXPAND_TOOLTIP"/></xsl:attribute></IMG>
- </A>
- </div>
-
- <!-- Show debug info for custom URL, dynamic filter, authored and model based -->
- <div id="idDebugInfo" style="display:none">
- <xsl:variable name="isCustomURL" select="/root/*[local-name()='URLArray']/*[local-name()='array'] != ''"/>
-
- <xsl:choose>
- <xsl:when test="$isCustomURL">
- <span style="text-align: left; padding-left: 2px; padding-top: 2px;" class="tabletext formLabel"><xts:string id="DEBUG_CUSTOM_URL"/></span>
- </xsl:when>
- <xsl:otherwise>
- <span style="text-align: left; padding-left: 2px; padding-top: 2px;" class="tableHeader tableTitle"><xts:string id="DEBUG_SOURCE_PARAMETERS"/></span>
- </xsl:otherwise>
- </xsl:choose>
-
- <table role="presentation">
- <!-- Provide debug info custom urls -->
- <xsl:if test="$isCustomURL">
- <xsl:for-each select="/root/*[local-name()='URLArray']/*[local-name()='array']">
- <tr >
- <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_NAME"/></td>
- <td nowrap="" height="10" class="tabletext"><xsl:value-of select="*[local-name()='name']"/></td>
- </tr>
- <tr >
- <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_DESCRIPTION"/></td>
- <td nowrap="" height="10" class="tabletext"><xsl:value-of select="*[local-name()='description']"/></td>
- </tr>
- <tr>
- <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_URL"/></td>
- <td nowrap="" height="10" class="tabletext"><xsl:value-of select="*[local-name()='url']"/></td>
- </tr>
- </xsl:for-each>
- </xsl:if>
- <!--Provide authored Drill through debug info -->
- <!-- RenderAuthoredDrillThroughDetails -->
- <!-- NOTE: Authored Drill Through Details are rendered with the corresponding drill through link.... -->
- <!--OBSOLETE or TEST PAGE??: Provides debug information for the dynamic filtering from PowerPlay 8's direct action array.... -->
- <xsl:if test="/root/*[local-name()='DirectActionArray']/*[local-name()='array'] != ''">
- <tr>
- <td colspan="2" nowrap="" height="10" class="formLabel">
- <xts:string id="DEBUG_DYNAMIC_FILTER"/></td>
- </tr>
- <xsl:for-each select="/root/*[local-name()='DirectActionArray']/*[local-name()='array']">
- <tr >
- <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_ACTION"/></td>
- <td nowrap="" height="10" class="tabletext"><xsl:value-of select="*[local-name()='action']"/></td>
- </tr>
- <tr>
- <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_TARGET_REPORT_NAME"/></td>
- <td nowrap="" height="10" class="tabletext"><xsl:value-of select="*[local-name()='name']"/></td>
- </tr>
- <tr>
- <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_TARGET_SEARCH_PATH"/></td>
- <td nowrap="" height="10" class="tabletext"><xsl:value-of select="*[local-name()='targetReport']"/></td>
- </tr>
- <tr>
- <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_S7_FILTER_PREDICATE"/></td>
- <td nowrap="" height="10" class="tabletext"><xsl:value-of select="*[local-name()='filterPredicate']"/></td>
- </tr>
- <tr>
- <td nowrap="" height="10" class="tabletext" valign="top"><xts:string id="DEBUG_COGNOS8_FILTER_SPECIFICATION"/></td>
- <td height="10" class="tabletext" valign="top"><form><label for="filterSpecification"></label><textarea id="filterSpecification" rows="10" cols="80"><xsl:value-of select="xtsext:xmlencode(xtsdrillext:convertPPFilterToC8FilterSpec(*[local-name()='filterPredicate']))" disable-output-escaping="yes"/></textarea></form></td>
- </tr>
- </xsl:for-each>
- </xsl:if>
- <!-- Provide debug information for package drill through for PowerPlay Studio -->
- <!-- The following info are provided
- Context type: Where the request is originated from. It is always PowerPlay Studio.
- Encoding:The current encoding PowerPlayStudio is rendering in.
- Model path:A model path in Base64 encoded form ?
- Data source name:A data source name.
- Relational predicate filters: Relational filters defined in an array of predicate filters.
- OLAP predicate filters:OLAP filters defined in an array of predicate filters.
- -->
-
- <xsl:if test="/root/env/param[@name='drillContext'] and /root/env/param[@name='drillContext'] != ''">
- <tr>
- <td colspan="2" nowrap="" height="10" class="formLabel">
- <!-- currently reads: "Package-based Drill-through access:" -->
- <xts:string id="DEBUG_PACKAGE_BASED_DRILL_THROUGH"/></td>
- </tr>
- <!-- if the converter produced something, we should show the input to the converter -->
- <xsl:for-each select="/root/*[local-name()='converterResponse']/*[local-name()='Response']/*[local-name()='ConverterInput']/*[local-name()='array']">
- <tr>
- <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_CONTEXT_TYPE"/></td>
- <td nowrap="" height="10" class="tabletext"><xsl:value-of select="(*[local-name()='contextType'])"/></td>
- </tr>
- <tr>
- <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_ENCODING"/></td>
- <td nowrap="" height="10" class="tabletext"><xsl:value-of select="*[local-name()='encoding']"/></td>
- </tr>
- <tr>
- <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_MODEL_PATH"/></td>
- <td nowrap="" height="10" class="tabletext"><xsl:value-of select="*[local-name()='modelPath']"/></td>
- </tr>
- <tr>
- <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_DATA_SOURCE_NAME"/></td>
- <td nowrap="" height="10" class="tabletext"><xsl:value-of select="*[local-name()='dataSourceName']"/></td>
- </tr>
- <tr>
- <td nowrap="" height="10" class="tabletext" valign="top"><xts:string id="DEBUG_RELATIONAL_PREDICATE_FILTERS"/></td>
- <td width="100%" height="10" class="tabletext" valign="top"><textarea rows="4" cols="80"><xsl:value-of select="(*[local-name()='predicateFilters']/*[local-name()='relational'])" disable-output-escaping="yes"/></textarea></td>
- </tr>
- <tr>
- <td nowrap="" height="10" class="tabletext" valign="top"><xts:string id="DEBUG_OLAP_PREDICATE_FILTERS"/></td>
- <td width="100%" height="10" class="tabletext" valign="top"><textarea rows="4" cols="80"><xsl:value-of select="(*[local-name()='predicateFilters']/*[local-name()='olap'])" disable-output-escaping="yes"/></textarea></td>
- </tr>
- </xsl:for-each>
- </xsl:if>
-
- <!-- Provide package based drill through debug info -->
- <!-- currently reads: Package-based Drill-through access: -->
- <!-- Use new condition since to show the UI since we don't pass the old variables anymore -->
- <xsl:if test="/root/selectionContext and /root/selectionContext != ''">
- <!-- Since we show this label for all debugs for Abacab as well with the same condition we comment out this one for now -->
- <!-- TODO: Specify what specific information we get in other drill through types to show different debug UI for them -->
- <tr>
- <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_PACKAGE_SEARCH_PATH"/>
- <!-- Pick up the package search path from packageBase -->
- <xsl:value-of select="/root/*[local-name()='packageBase']/*[local-name()='queryResponse']/*[local-name()='model']/*[local-name()='parent']/*[local-name()='package']/*[local-name()='searchPath']"/>
- </td>
- </tr>
- </xsl:if>
- </table>
- <!-- create a table for selection context and source parameters sent to the Goto page-->
- <!-- Use new condition since to show the UI since we don't pass the old variables anymore -->
- <xsl:if test="/root/env/param[@name='drillContext']">
- <!-- -->
- <!--For defect https://bajazz05.canlab.ibm.com:9750/ccm/resource/itemName/com.ibm.team.workitem.WorkItem/216715 -->
- <!-- This table used to use the cctable style. For defect 216715 the cutomer modified the cctable style in a default.css. -->
- <!-- Among other things, the customer added an explicit height to cctable. The 500px height made this table unusable. -->
- <!-- This table is meant to expand under its corresponding 'goto' link. The existing cctable defintions in all skins define a -->
- <!-- border and set a white background color. This table disables the border (border="0"). So the only thing used from -->
- <!-- the default cctable was the setting for the background colour. So, remove the cctable class and add the white background -->
- <!-- fixes the problem of this sub table being not displaying properly if a height is set -->
- <table width="100%" cellspacing="0" cellpadding="2" border="0" role="presentation" bgcolor="#ffffff">
- <tbody id="DebugSelectionContextHeader">
- <tr class="tableHeader">
- <td width="30%" valign="center" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px;" class="tableTitle">
- <table cellspacing="0" cellpadding="0" border="0" role="presentation">
- <tbody>
- <tr>
- <td valign="top" nowrap="" class="tableTitle">
- <xts:string id="DEBUG_SELECTION_CONTEXT"/>
- </td>
- </tr>
- </tbody>
- </table>
- </td>
- </tr>
- </tbody>
-
- <!-- Formatted Selection Context Parameters: create a table for selection context and source parameters that sent to Goto page-->
- <!-- render as an embedded table inside the selection context table -->
- <tbody>
- <tr>
- <td>
- <!-- -->
- <!--For defect https://bajazz05.canlab.ibm.com:9750/ccm/resource/itemName/com.ibm.team.workitem.WorkItem/216715 -->
- <!-- This table used to use the cctable style. For defect 216715 the cutomer modified the cctable style in a default.css. -->
- <!-- Among other things, the customer added an explicit height to cctable. The 500px height made this table unusable. -->
- <!-- This table is meant to expand under its corresponding 'goto' link. The existing cctable defintions in all skins define a -->
- <!-- border and set a white background color. This table disables the border (border="0"). So the only thing used from -->
- <!-- the default cctable was the setting for the background colour. So, remove the cctable class and add the white background -->
- <!-- fixes the problem of this sub table being not displaying properly if a height is set -->
- <table cellspacing="0" cellpadding="2" border="0" bgcolor="#ffffff">
- <thead id="FormatSelectionContextParametersHeader">
- <tr class="tableHeader">
- <!-- Column: item name -->
- <th id="itemName" width="30%" valign="center" align="left" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px;" class="tableTitle">
- <xts:string id="DEBUG_ITEM_NAME"/>
- </th>
- <!-- Column: display value -->
- <th id="itemDisplayValue" width="30%" valign="center" align="left" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px;" class="tableTitle">
- <span class="tableHeaderDivider">
- <img width="1" height="10" src="{$webcontent}/images/space.gif" alt=""/>
- </span>
- <xts:string id="DEBUG_DISPLAY"/>
- </th>
- <!-- Column: use value -->
- <th id="itemUseValue" width="70%" valign="center" align="left" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px;" class="tableTitle">
- <span class="tableHeaderDivider">
- <img width="1" height="10" src="{$webcontent}/images/space.gif" alt=""/>
- </span>
- <xts:string id="DEBUG_USE"/>
- </th>
- </tr>
- </thead>
-
- <!-- fill in the table body -->
- <!-- Since the powerplay output path is different with others, we need to check it -->
- <xsl:choose>
- <xsl:when test="/root/selectionContextNodeTree/Response/ConverterInput/array/contextType = 'PowerPlayStudio'">
- <xsl:call-template name="selectionContextRenderer_powerplay"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="selectionContextRenderer"/>
- </xsl:otherwise>
- </xsl:choose>
- </table>
- </td>
- </tr>
- </tbody>
- <tbody>
- <!-- raw Selection Context ("More") -->
- <!--Display a link to show/hide raw selection context -->
- <tr align="right">
- <td class="formText">
- <A href="#" onClick="showHideDebugPane('idDebugSelectionContextAdvanced')" role="button">
- <xsl:text/><xts:string id="DEBUG_MORE"/><xsl:text/>
- <IMG border="0" src="{$webRoot}/common/images/spacer.gif" width="3" height="1" alt=""/>
- <IMG id="idDebugSelectionContextAdvancedArrow" border="0" src="{$skin_root}/prompting/images/prompt_option_expand.gif"><xsl:attribute name="alt"><xts:string id="IDS_ADM_SECTION_EXPAND"/></xsl:attribute></IMG>
- </A>
- </td>
- </tr>
-
- <tr id="idDebugSelectionContextAdvanced" style="display:none">
- <!-- dump out the raw selection context (when user chooses "More") -->
- <td>
- <table role="presentation">
- <!-- When there's converter input, the environment variable 'drillContext' contains what pp8 sends us (we identify it by its "JSON poison token") -->
- <xsl:variable name="pp8PredicatePoisonToken">while(1);/*</xsl:variable>
- <xsl:if test="starts-with(/root/env/param[@name='drillContext'], $pp8PredicatePoisonToken)">
- <tr>
- <td valign="top" nowrap="" height="10" class="tabletext">
- <!-- Remove the 'poison token' prior to displaying the JSON they pass us -->
- <dp:description><xsl:value-of select="substring-after(/root/env/param[@name='drillContext'], $pp8PredicatePoisonToken)"/></dp:description>
- </td>
- </tr>
- </xsl:if>
- <tr>
- <td valign="top" nowrap="" height="10" class="tabletext">
- <!-- selection context is always placed under the selectionContext node (whether passed through the converter or not). -->
- <dp:description><xsl:value-of select="/root/selectionContext"/></dp:description>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- <!-- End of raw selection context -->
- </tbody>
- </table>
-
- </xsl:if>
- <!-- Selection Context Parameters end -->
-
- <!-- Source Parameters: This section shows the parameters passed by source reports (if any) -->
- <!-- This condition is used to create the source parameters table if required -->
- <xsl:if test="count(/root/*[local-name()='drillthruContext']/*[local-name()='executionParameters']/*[local-name()='parameters']/*[local-name()='item']//*[local-name()='display']) > 0">
- <br/>
- <span class="tabletext">
- <xts:string id="DEBUG_SOURCE_REPORT_PARAMETERS"/>
- </span>
- <!-- -->
- <!--For defect https://bajazz05.canlab.ibm.com:9750/ccm/resource/itemName/com.ibm.team.workitem.WorkItem/216715 -->
- <!-- This table used to use the cctable style. For defect 216715 the cutomer modified the cctable style in a default.css. -->
- <!-- Among other things, the customer added an explicit height to cctable. The 500px height made this table unusable. -->
- <!-- This table is meant to expand under its corresponding 'goto' link. The existing cctable defintions in all skins define a -->
- <!-- border and set a white background color. This table disables the border (border="0"). So the only thing used from -->
- <!-- the default cctable was the setting for the background colour. So, remove the cctable class and add the white background -->
- <!-- fixes the problem of this sub table being not displaying properly if a height is set -->
- <table width="100%" cellspacing="0" cellpadding="2" border="0" bgcolor="#ffffffff">
- <thead id="SourceParametersHeader">
- <tr class="tableHeader">
- <td width="30%" valign="center" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px;" class="tableTitle">
- <table cellspacing="0" cellpadding="0" border="0">
- <tbody>
- <tr>
- <td valign="top" nowrap="" class="tableTitle">
- <xts:string id="DEBUG_PARAMETER_NAME"/>
- </td>
- </tr>
- </tbody>
- </table>
- </td>
- <td width="30%" valign="center" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px;" class="tableTitle">
- <table cellspacing="0" cellpadding="0" border="0">
- <tbody>
- <tr>
- <td valign="top" nowrap="" class="tableTitle">
- <xts:string id="DEBUG_DISPLAY"/>
- </td>
- </tr>
- </tbody>
- </table>
- </td>
- <td width="70%" valign="center" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px;" class="tableTitle">
- <table cellspacing="0" cellpadding="0" border="0">
- <tbody>
- <tr>
- <td valign="top" nowrap="" class="tableTitle">
- <xts:string id="DEBUG_USE"/>
- </td>
- </tr>
- </tbody>
- </table>
- </td>
- </tr>
- </thead>
-
- <!-- To handle cases with multiple parameters in source report -->
- <xsl:for-each select="/root/*[local-name()='drillthruContext']/*[local-name()='executionParameters']/*[local-name()='parameters']/*[local-name()='item']">
- <!-- This condition is used To prevent showing credentials in the UI -->
- <xsl:if test="not(contains(*[local-name()='name'],'credential'))">
-
- <tr>
- <!-- Source parameter name -->
- <td valign="top" nowrap="" height="10" class="tabletext"><xsl:value-of select="xtsext:enforceBTD(*[local-name()='name'], $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/></td>
-
- <!-- we can have multiple values for one parameter -->
- <xsl:for-each select="/*[local-name()='value']/*[local-name()='item']"/>
-
- <!-- Source parameter display -->
- <td nowrap="" height="10" class="tabletext">
- <xsl:for-each select="*[local-name()='value']/*[local-name()='item']">
- <xsl:value-of select="xtsext:enforceBTD(*[local-name()='display'], $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
-
- <!-- Start of handling in range parameters - Display value -->
- <!-- Check to see if we have range type parameters -->
- <xsl:if test="*[local-name()='start']!='' or *[local-name()='end']!=''">
-
- <!-- check to see if we have the start range-->
- <xsl:choose>
- <xsl:when test="*[local-name()='start']!=''">
- <xsl:value-of select="xtsext:enforceBTD(*[local-name()='start']/*[local-name()='display'], $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
- </xsl:when>
- <xsl:otherwise>
- <!-- TODO: This provides an empty line for unbounded start
- which needs to be tested after server returns a response
- for such cases-->
- <label>--</label>
- </xsl:otherwise>
- </xsl:choose>
-
- <br/>
-
- <!-- Check to see if we have the end range-->
- <xsl:choose>
- <xsl:when test="*[local-name()='end']!=''">
- <xsl:value-of select="xtsext:enforceBTD(*[local-name()='end']/*[local-name()='display'], $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
- </xsl:when>
- <xsl:otherwise>
- <!-- TODO: This provides an empty line for unbounded start
- which needs to be tested after server returns a response
- for such cases-->
- <label>--</label>
- </xsl:otherwise>
- </xsl:choose>
-
- </xsl:if>
- <!-- End of handling range parameters - Display Value -->
-
-
- <br/>
- </xsl:for-each>
- </td>
- <td nowrap="" height="10" class="tabletext">
-
- <!-- Source paramtere use -->
- <xsl:for-each select="*[local-name()='value']/*[local-name()='item']">
- <xsl:value-of select="xtsext:enforceBTD(*[local-name()='use'], $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
-
- <!-- Start of handling in range parameters - Use value -->
- <!-- Check to see if we have range type parameters -->
- <xsl:if test="*[local-name()='start']!='' or *[local-name()='end']!=''">
-
- <!-- check to see if we have the start range-->
- <xsl:choose>
- <xsl:when test="*[local-name()='start']!=''">
- <xsl:value-of select="xtsext:enforceBTD(*[local-name()='start']/*[local-name()='use'], $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
- </xsl:when>
- <xsl:otherwise>
- <!-- TODO: This provides an empty line for unbounded start
- which needs to be tested after server returns a response
- for such cases-->
- <label>--</label>
- </xsl:otherwise>
- </xsl:choose>
-
- <br/>
-
- <!-- Check to see if we have the end range-->
- <xsl:choose>
- <xsl:when test="*[local-name()='end']!=''">
- <xsl:value-of select="xtsext:enforceBTD(*[local-name()='end']/*[local-name()='use'], $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
- </xsl:when>
- <xsl:otherwise>
- <!-- TODO: This provides an empty line for unbounded start
- which needs to be tested after server returns a response
- for such cases-->
- <label>--</label>
- </xsl:otherwise>
- </xsl:choose>
-
- </xsl:if>
- <!-- End of handling range parameters - Use Value -->
-
- <br/>
- </xsl:for-each>
- </td>
- </tr>
- </xsl:if>
- </xsl:for-each>
- </table>
- </xsl:if>
- <!-- End of source parameters -->
-
-
- </div>
- <!-- End passed source values -->
-
- <!-- Used to invoke target mapping info pane -->
- <form name="f" method="post" action="{$gateway}?b_action=xts.run&m={$app}/goto2.xts" target="mapping">
- <input id="drillPath" name="drillPath" type="hidden" value=""/>
- <input id="drillPathName" name="drillPathName" type="hidden" value=""/>
- <input id="executionParameters" name="executionParameters" type="hidden" value=""/>
- <input id="mobileLaunch" name="mobileLaunch" type="hidden" value="" />
- <input id="context" name="context" type="hidden" value=""/>
- <input id="debugTarget" name="debugTarget" type="hidden" value=""/>
- <input id="drillType" name="drillType" type="hidden" value=""/>
- <input id="selectionContext" name="selectionContext" type="hidden" value=""/>
- <!-- pass the routing serverGroup to be used by runDrillPath request -->
- <xsl:if test="$routingServerGroup!=''">
- <label for="ui.routingServerGroup"></label>
- <input id="ui.routingServerGroup" name="ui.routingServerGroup" type="hidden" value="{$routingServerGroup}"/>
- </xsl:if>
- </form>
-
- <!-- iFrame is used to display mapping info for a selected target-->
- <!-- iFrame display has been set to none and we make it visible on the run time and when we call it. -->
- <iframe src="{$webRoot}/common/blank.html" id="targetIframe" style="display: none;" name="mapping" width="100%" height="350" scrolling="auto"
- marginwidth="0" marginheight="0" frameborder="0"><xsl:attribute name="title"><xts:string id="DEBUG_MAPPING_PARAMETERS"/></xsl:attribute></iframe>
-
- </xsl:if>
- <!-- END DRILL THROUGH DEBUGGING (DRILL THROUGH ASSISTANT) -->
-
- </xsl:otherwise>
- </xsl:choose>
- </lyt:section>
- </lyt:layout>
- <dp:footer>
- <df:button df:id="IDS_CANCEL" df:style="href" df:href="javascript:onClose()"/>
- </dp:footer>
- </dp:page>
- </xsl:template>
- <xsl:template name="pick-icon">
- <xsl:param name="outputType"/>
- <xsl:choose>
- <xsl:when test="$outputType='HTML' or $outputType='HTMLFragment'">
- <img width="16" height="16" src="{$webRoot}/ps/portal/images/icon_result_html.gif">
- <xsl:attribute name="alt"><xts:string id="IDS_PROP_FORMAT_HTML"/></xsl:attribute>
- </img>
- </xsl:when>
- <xsl:when test="$outputType='PDF'">
- <img width="16" height="16" src="{$webRoot}/ps/portal/images/icon_result_pdf.gif">
- <xsl:attribute name="alt"><xts:string id="IDS_PROP_FORMAT_PDF"/></xsl:attribute>
- </img>
- </xsl:when>
- <xsl:when test="$outputType='XML'">
- <img width="16" height="16" src="{$webRoot}/ps/portal/images/icon_result_xml.gif">
- <xsl:attribute name="alt"><xts:string id="IDS_PROP_FORMAT_XML"/></xsl:attribute>
- </img>
- </xsl:when>
- <xsl:when test="$outputType='CSV'">
- <img width="16" height="16" src="{$webRoot}/ps/portal/images/icon_result_csv.gif">
- <xsl:attribute name="alt"><xts:string id="IDS_PROP_FORMAT_CSV"/></xsl:attribute>
- </img>
- </xsl:when>
- <xsl:when test="$outputType='singleXLS'">
- <img width="16" height="16" src="{$webRoot}/ps/portal/images/icon_result_excel_single.gif">
- <xsl:attribute name="alt"><xts:string id="IDS_PROP_FORMAT_SINGLE_XLS"/></xsl:attribute>
- </img>
- </xsl:when>
- <xsl:when test="$outputType='XLS'">
- <img width="16" height="16" src="{$webRoot}/ps/portal/images/icon_result_excel.gif">
- <xsl:attribute name="alt"><xts:string id="IDS_PROP_FORMAT_XLS"/></xsl:attribute>
- </img>
- </xsl:when>
- <xsl:when test="$outputType='XLWA'">
- <img width="16" height="16" src="{$webRoot}/ps/portal/images/icon_result_excel_web_arch.gif">
- <xsl:attribute name="alt"><xts:string id="IDS_PROP_FORMAT_XLWA"/></xsl:attribute>
- </img>
- </xsl:when>
- <xsl:when test="$outputType='spreadsheetML'">
- <img width="16" height="16" src="{$webRoot}/ps/portal/images/icon_result_excel_2007.gif">
- <xsl:attribute name="alt"><xts:string id="IDS_PROP_FORMAT_SPREADSHEETML"/></xsl:attribute>
- </img>
- </xsl:when>
- </xsl:choose>
- </xsl:template>
- <pf:serialize-xml/>
- <gp:getToPostConversion/>
- </xsl:stylesheet>
- </xts:block>
- <!-- BLOCK: runDrillPath -->
- <!-- PURPOSE: To prepare the selected drill target for execution, the drill path object is "run" to -->
- <!-- calculate the target parameter values, determine the target action (edit, run) etc. -->
- <xts:block id="runDrillPath" processor="XSLT" type="exec" dependency="secondary-request handleDirectLaunch" mandatory="false"
- condition=".[(/root/env/param[@name='redirect'] or /root/env/param[@name='debugTarget']) and /root/env/param[@name='drillType']='modeledDrillThroughPath' and
- not(string(/root/env/param[@name='ui.action'])='wait')]" nodelist="env, header, http, cookies, drillPath, drillthruContext, selectionContext, converterResponse, response">
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
- xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
- xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
- xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
- xmlns:rns1="http://developer.cognos.com/schemas/reportService/1"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
- xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:key name="env-param" match="/root/env/param" use="@name"/>
- <xsl:template match="/root">
- <xsl:variable name="drillPath">
- <xsl:choose>
- <xsl:when test="/root/env/param[@name='directLaunch']='true'">
- <xsl:value-of select="/root/*[local-name()='response']/*/*[local-name()='Body']/*/*/*[local-name()='details']/*[local-name()='item'][@*[local-name()='type']='bus:asynchDetailDrillThroughTarget']/*[local-name()='drillPathSearchPath']"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="xtsext:web64decode(/root/env/param[@name='drillPath'], true())"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:variable name="context">
- <xsl:value-of select="xtsext:web64decode(/root/env/param[@name='context'], true())" disable-output-escaping="yes"/>
- </xsl:variable>
- <xsl:variable name="executionParameters">
- <xsl:value-of select="xtsext:web64decode(/root/env/param[@name='executionParameters'], true())" disable-output-escaping="yes"/>
- </xsl:variable>
- <xsl:if test="$drillPath and $drillPath != ''">
- <xts:sequence>
- <xts:append select="/root">
- <drillPath><xsl:value-of select="$drillPath"/></drillPath>
- </xts:append>
- <xts:delete select="/root/*[local-name()='response']"/>
- <xts:append select="/root">
- <response>
- <send:request provider="warp" option="xml-multipart" outputHeader="true" responseEnvelope="true" soapAction="http://www.ibm.com/xmlns/prod/cognos/reportService/201610/">
- <!-- getDrillThroughTargetParameterValues has been replaced by run(drillpath)-->
- <run xmlns="http://developer.cognos.com/schemas/reportService/1">
- <objectPath xsi:type="bus:searchPathSingleObject"><xsl:value-of select="$drillPath"/></objectPath>
- <!-- source context values are now part of the selection context run option -->
- <parameterValues SOAP-ENC:arrayType="bus:parameterValue[]" xsi:type="SOAP-ENC:Array">
- <xsl:choose>
- <xsl:when test="/root/env/param[@name='directLaunch']='true'">
- <xsl:copy-of select="/root/*[local-name()='drillthruContext']/*[local-name()='executionParameters']/*/*"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:copy-of select="$executionParameters"/>
- </xsl:otherwise>
- </xsl:choose>
- </parameterValues>
- <options xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:option[]">
- <!-- Pass in the selectionContext as an option -->
- <item xsi:type="bus:drillThroughOptionXMLEncodedXML">
- <bus:name xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xsi:type="bus:drillThroughOptionEnum">selectionContext</bus:name>
- <bus:value xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xsi:type="bus:xmlEncodedXML">
- <!-- /root/env/selectionContext is set only if launched from the render block. (set by showTargetInfo or OnClickDrillThrough javascript functions) -->
- <!-- As a result, when we're doing directLaunch we have use the original selectionContextNode.) -->
- <xsl:choose>
- <xsl:when test="/root/env/param[@name='directLaunch']='true'">
- <xsl:value-of select="/root/selectionContext"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="xtsext:xmlencode(/root/env/param[@name='selectionContext'])" disable-output-escaping="yes"/>
- </xsl:otherwise>
- </xsl:choose>
- </bus:value>
- </item>
- <!--Add option of xslURL to sa.xsl that is required by RSVP to properly generate a correct prompt page -->
- <item xsi:type="bus:runOptionAnyURI">
- <bus:name xsi:type="bus:runOptionEnum">xslURL</bus:name>
- <bus:value xsi:type="xsd:string">sa.xsl</bus:value>
- </item>
- <xsl:if test="/root/env/param[@name='useDynamicFilter'] and /root/env/param[@name='useDynamicFilter'] != ''">
- <item xmlns="" xsi:type="bus:drillThroughOptionBoolean">
- <bus:name xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xsi:type="bus:drillThroughOptionEnum">useEditSpecification</bus:name>
- <xsl:choose>
- <xsl:when test="(/root/env/param[@name='useDynamicFilter']='true')">
- <bus:value xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xsi:type="xs:boolean">true</bus:value>
- </xsl:when>
- <xsl:otherwise>
- <bus:value xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xsi:type="xs:boolean">false</bus:value>
- </xsl:otherwise>
- </xsl:choose>
- </item>
- </xsl:if>
- </options>
- </run>
- </send:request>
- </response>
- </xts:append>
- <xts:delete select="/root/*[local-name()='resultStatus']"/>
- <xts:append>
- <resultStatus>
- <xts:queryNode select="/root//*[local-name()='Envelope']/*[local-name()='Body']/*/*[local-name()='result']/*[local-name()='status']"/>
- </resultStatus>
- </xts:append>
- </xts:sequence>
- </xsl:if>
- </xsl:template>
- <pf:serialize-xml/>
- </xsl:stylesheet>
- </xts:block>
- <!-- BLOCK: runDrillPath_output -->
- <!-- PURPOSE: Return SOAP response of the run drill path command -->
- <!-- When cv.drillServiceOnly=true, the SOAP response of the run drill path command is returned instead of an HTML page. -->
- <xts:block id="runDrillPath_output" mode="output" processor="XSLT" type="exec" mimeType="text/xml" mandatory="false"
- dependency="runDrillPath"
- condition=".[/root/env/param[@name='cv.drillServiceOnly'] and /root/env/param[@name='drillType']='modeledDrillThroughPath'] " nodelist="env, header, http, response, cookies,user,system">
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/framework.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/layout.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/controls/framework.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/controls/presentation.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/presentation.xsl"/>
- <xts:logicsheet path="logicsheets/validation.xslt"/>
- <xts:logicsheet path="logicsheets/presentation/touch_up.xslt"/>
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
- xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
- xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
- xmlns:rns1="http://developer.cognos.com/schemas/reportService/1"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
- xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
- xmlns:dp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/presentation/"
- xmlns:lyt="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/layout/"
- xmlns:df="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/framework/"
- xmlns:cf="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/framework/"
- xmlns:cp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/presentation/"
- xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no" omit-xml-declaration="yes"/>
- <xsl:template match="/">
- <xsl:copy-of select="/root/response/*"/>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <xts:block id="polling_runDrillPath_request" mode="output" processor="XSLT" type="exec" mimeType="text/html" mandatory="false"
- dependency="runDrillPath"
- condition=".[not(/root/env/param[@name='cv.drillServiceOnly']) and (/root/env/param[@name='redirect'] or /root/env/param[@name='debugTarget']) and /root/env/param[@name='drillType']='modeledDrillThroughPath' and
- (/root/resultStatus = 'working' or /root/resultStatus = 'stillWorking')] " nodelist="env, header, http, response, cookies,user,system"> <!-- user and system nodes are required when a request takes a long time to process. ("working"/" still working is returned as a response) -->
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/framework.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/layout.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/controls/framework.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/controls/presentation.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/presentation.xsl"/>
- <xts:logicsheet path="logicsheets/validation.xslt"/>
- <xts:logicsheet path="logicsheets/presentation/touch_up.xslt"/>
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
- xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
- xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
- xmlns:rns1="http://developer.cognos.com/schemas/reportService/1"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
- xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
- xmlns:dp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/presentation/"
- xmlns:lyt="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/layout/"
- xmlns:df="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/framework/"
- xmlns:cf="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/framework/"
- xmlns:cp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/presentation/"
- xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no" omit-xml-declaration="yes"/>
- <pf:variables/>
- <pf:serialize-xml/>
- <xsl:template match="/">
- <xsl:variable name="contextid">
- <xsl:value-of select="xtsext:cafaction(concat('get_contextid_setcomponent_es_setpassportid_', $passport), '')"/>
- </xsl:variable>
- <xsl:variable name="tracking">
- <xsl:for-each select="/root//*[local-name() = 'Envelope']/*[local-name() = 'Header']/*[local-name() = 'biBusHeader']/*[local-name() = 'tracking']/*[local-name() = 'conversationContext']">
- <xsl:variable name="markup-track">
- <xsl:call-template name="serialize-xml">
- <xsl:with-param name="node-set" select="."/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:value-of select="string($markup-track)"/>
- </xsl:for-each>
- </xsl:variable>
- <xsl:variable name="conversation">
- <xsl:call-template name="serialize-xml">
- <xsl:with-param name="node-set" select="/root//*[local-name() = 'Envelope']/*[local-name() = 'Body']/*/*/*[local-name() = 'primaryRequest']/*"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:variable name="lang">
- <xsl:choose>
- <xsl:when test="/root/env/param[@name='contentLocale']">
- <xsl:value-of select="string(/root/*[local-name()='contentLocale'])"/>
- </xsl:when>
- <xsl:when test="/root/env/param[@name='lang']">
- <xsl:value-of select="string(/root/*[local-name()='lang'])"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text/>en<xsl:text/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:text disable-output-escaping='yes'><!DOCTYPE html></xsl:text>
- <html>
- <xsl:attribute name="lang"><xsl:value-of select="$lang"/></xsl:attribute>
- <!-- CSSs requird to use format properly -->
- <link rel="stylesheet" type="text/css" href="{$skin_root}/portal/default.css"/>
- <link rel="stylesheet" type="text/css" href="{$skin_root}/qs/RVReport.css"/>
- <body>
- <table id="workingStatus" cellspacing="0" cellpadding="0" width="100%" height="100%" align="center" valign="middle">
- <tr>
- <td width="100%" height="100%" align="center" valign="middle">
- <table align="center" cellspacing="0" cellpadding="0" style="vertical-align:middle; border:1px outset;" class="busyBody">
- <tr>
- <td rowspan="2">
- <img src="{$brand_images}progress.gif" style="margin:5px;" width="48" height="48" name="progress"/>
- </td>
- <td nowrap="nowrap">
- <span class="busyUpdatingStr">
- <xts:string id="GOTO_WORKING"/>
- </span>
- </td>
- </tr>
- <tr>
- <td nowrap="nowrap">
- <span class="busyUpdatingStr">
- <xts:string id="RV_PLEASE_WAIT"/>
- </span>
- </td>
- </tr>
- <tr>
- <td style="height:7px;" colspan="2"></td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- <form name="formWarpRequest" id="formWarpRequest" method="POST" action="{$gateway}" style="margin:0px;height:100%;">
- <input type="hidden" name="drillPath">
- <xsl:attribute name="value">
- <xsl:choose>
- <xsl:when test="/root/env/param[@name='directLaunch']='true'">
- <xsl:value-of select="/root/*[local-name()='drillPath']"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="/root/env/param[@name='drillPath']"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:attribute>
- </input>
- <input type="hidden" name="context">
- <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='context']"/></xsl:attribute>
- </input>
- <input type="hidden" name="drillType">
- <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='drillType']"/></xsl:attribute>
- </input>
- <input type="hidden" name="selectionContext">
- <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='selectionContext']"/></xsl:attribute>
- </input>
- <input type="hidden" name="redirect"/>
- <input type="hidden" name="mobileLaunch" />
- <input type="hidden" name="ui.action" value="wait"/>
- <input type="hidden" name="m" value="portal/goto2.xts"/>
- <input type="hidden" name="b_action" value="xts.run"/>
- <input type="hidden" name="inlineSpec" value=""/>
- <input type="hidden" name="conversation">
- <xsl:attribute name="value"><xsl:value-of select="xtsext:cafaction(concat('sign_wrap_setpassportid_', $passport), xtsext:web64encode(string($conversation), true()))"/></xsl:attribute>
- </input>
- <input type="hidden" name="tracking">
- <xsl:attribute name="value"><xsl:value-of select="xtsext:cafaction(concat('sign_wrap_setpassportid_', $passport), xtsext:web64encode(string($tracking), true()))"/></xsl:attribute>
- </input>
- <xsl:if test="/root/env/param[@name='directLaunch']='true'">
- <input type="hidden" name="directLaunch" value="true"/>
- </xsl:if>
- <xsl:if test="/root/env/param[@name='debugTarget']">
- <input type="hidden" name="debugTarget" value="true"/>
- </xsl:if>
- <xsl:if test="$contextid!=''">
- <input type="hidden" name="cafcontextid">
- <xsl:attribute name="value"><xsl:value-of select="$contextid"/></xsl:attribute>
- </input>
- </xsl:if>
- </form>
- </body>
- <script language="javascript">
- document.formWarpRequest.submit();
- if (document.progress)
- setTimeout('document.progress.src="<xsl:value-of select="xtsext:javascriptencode(string($brand_images))"/>progress.gif"', 1);
- </script>
- </html>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <xts:block id="getDrillPathTarget" processor="XSLT" type="exec" dependency="runDrillPath" mandatory="false">
- condition=".[not(/root/env/param[@name='cv.drillServiceOnly']) and (/root/env/param[@name='redirect'] or /root/env/param[@name='debugTarget']) and /root/env/param[@name='drillType']='modeledDrillThroughPath' and
- (/root/resultStatus = 'complete' or /root/resultStatus = 'conversationComplete')]">
- <!-- PURPOSE: Make a CM request on the target object (eg: REPORT). -->
- <xts:logicsheet path="logicsheets/cm-logic.xsl"/>
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
- xmlns:cml="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/cml/1/"
- xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
- xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
- xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
- xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/">
- <!-- Asynch: The response could be a runResponse or waitResponse with conversationComplete status -->
- <xsl:variable name="target_path">
- <xsl:value-of select="/root/*[local-name()='response']/*[local-name()='Envelope']/*[local-name()='Body']/*/*[local-name()='result']/*[local-name()='details']/*/*[local-name()='target']"/>
- </xsl:variable>
- <xsl:if test="$target_path and $target_path != ''">
- <xts:sequence>
- <xts:append>
- <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
- <send:request provider="cm">
- <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
- <cm:query xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
- <cm:search>
- <xsl:value-of select="$target_path"/>
- </cm:search>
- <cm:properties>
- <cm:property name="defaultName"/>
- <cm:property name="action"/>
- <cm:property name="defaultOutputFormat"/>
- <cm:property name="defaultPortalAction"/>
- <cm:property name="permissions"/>
- <cm:property name="base"/>
- <cm:property name="searchPath"/>
- <cm:property name="format"/>
- <cm:property name="disabled"/>
- </cm:properties>
- <options xsi:type="xsd:queryOptions">
- <refProps xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="cm:refProp[]">
- <item xsi:type="cm:refProp">
- <refPropName xsi:type="cm:propEnum">base</refPropName>
- <properties xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="cm:propEnum[]">
- <item xsi:type="cm:propEnum">searchPath</item>
- <item xsi:type="cm:propEnum">permissions</item>
- <item xsi:type="cm:propEnum">defaultOutputFormat</item>
- <item xsi:type="cm:propEnum">executionFormat</item>
- <item xsi:type="cm:propEnum">defaultPortalAction</item>
- <item xsi:type="cm:propEnum">disabled</item>
- <item xsi:type="cm:propEnum">storeID</item>
- </properties>
- </item>
- </refProps>
- </options>
- </cm:query>
- </xts:transform>
- </send:request>
- </xts:transform>
- </xts:append>
- </xts:sequence>
- </xsl:if>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <xts:block id="extractBookmark" processor="XSLT" type="exec" dependency="runDrillPath getOutput getDrillPathTarget" mandatory="false"
- condition=".[not(/root/env/param[@name='cv.drillServiceOnly']) and (/root/env/param[@name='redirect'] or /root/env/param[@name='debugTarget']) and /root/env/param[@name='drillType']='modeledDrillThroughPath' and
- (/root/resultStatus = 'complete' or /root/resultStatus = 'conversationComplete')]" nodelist="env, resultStatus, response">
- <!-- PURPOSE: To extract the bookmark from the cm response for the drill path object -->
- <!-- NOTE: This block should be modified/deprecated in IB74 when we're returning the drill path in the RSAOMDrillThroughTarget array -->
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/">
- <xts:sequence>
- <xsl:if test="/root//*[local-name()='Envelope']/*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*[local-name()='item']/*/*[local-name()='item']/*[local-name()='name']='_bookmarkItem'">
- <xts:append select="/root">
- <bookmarkRef>
- <xsl:value-of select="/root//*[local-name()='Envelope']/*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*[local-name()='item']/*/*[local-name()='item'][./*[local-name()='name']='_bookmarkItem']/*[local-name()='value']/*/*[local-name()='display']"/>
- </bookmarkRef>
- </xts:append>
- </xsl:if>
- <xts:delete select="/root//*[local-name()='Envelope']/*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*[local-name()='item']/*/*[local-name()='item'][./*[local-name()='name']='_bookmarkItem']"/>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <xts:block id="getTarget" processor="XSLT" type="exec" dependency="extractBookmark" mandatory="false"
- condition=".[(/root/env/param[@name='redirect'] or /root/env/param[@name='debugTarget']) and (/root/env/param[@name='drillType']='modeledDrillThroughPath' or /root/env/param[@name='modeledDrillthru'] ) and
- (/root/resultStatus = 'complete' or /root/resultStatus = 'conversationComplete')]">
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <xts:logicsheet path="logicsheets/cm-logic.xsl"/>
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
- xmlns:cml="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/cml/1/"
- xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
- xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
- xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
- xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
- xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
- xmlns:rns1="http://developer.cognos.com/schemas/reportService/1"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
- xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/">
- <xts:sequence>
- <!-- This is where target parameter values items are read from the response... -->
- <xsl:variable name="theobj" select="/root//*[local-name()='Envelope']/*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*[local-name()='item']/*[local-name()='parameters']"/>
- <xsl:if test="$theobj">
- <xsl:if test="/root/cm:queryResponse/cm:report or /root/cm:queryResponse/cm:reportView or /root/cm:queryResponse/cm:query or /root/cm:queryResponse/cm:analysis or /root/cm:queryResponse/cm:powerPlay8Report or /root/cm:queryResponse/cm:package">
- <xsl:variable name="targetParameterValues">
- <xsl:call-template name="serialize-xml">
- <xsl:with-param name="node-set" select="$theobj"/>
- </xsl:call-template>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="/root/*[local-name()='queryResponse']/*[local-name()='report']">
- <xts:append select="/root/*[local-name()='queryResponse']/*[local-name()='report']">
- <drillThroughTargetParameterValues>
- <xsl:value-of select="xtsext:web64encode(string($targetParameterValues), true())"/>
- </drillThroughTargetParameterValues>
- </xts:append>
- </xsl:when>
- <xsl:when test="/root/*[local-name()='queryResponse']/*[local-name()='reportView']">
- <xts:append select="/root/*[local-name()='queryResponse']/*[local-name()='reportView']">
- <drillThroughTargetParameterValues>
- <xsl:value-of select="xtsext:web64encode(string($targetParameterValues), true())"/>
- </drillThroughTargetParameterValues>
- </xts:append>
- </xsl:when>
- <xsl:when test="/root/*[local-name()='queryResponse']/*[local-name()='query']">
- <xts:append select="/root/*[local-name()='queryResponse']/*[local-name()='query']">
- <drillThroughTargetParameterValues>
- <xsl:value-of select="xtsext:web64encode(string($targetParameterValues), true())"/>
- </drillThroughTargetParameterValues>
- </xts:append>
- </xsl:when>
- <xsl:when test="/root/*[local-name()='queryResponse']/*[local-name()='analysis']">
- <xts:append select="/root/*[local-name()='queryResponse']/*[local-name()='analysis']">
- <drillThroughTargetParameterValues>
- <xsl:value-of select="$targetParameterValues"/>
- </drillThroughTargetParameterValues>
- </xts:append>
- </xsl:when>
- <!-- other stuff like pp8report or cube etc. does not use parameters -->
- </xsl:choose>
- </xsl:if>
- </xsl:if>
- </xts:sequence>
- </xsl:template>
- <pf:serialize-xml/>
- </xsl:stylesheet>
- </xts:block>
- <!-- Redirect to (launch) the target unless we're debugging
- and (/root/resultStatus = 'complete' or /root/resultStatus = 'conversationComplete')]">
- count(/root/*[local-name()='FormArray']/*[local-name()='array'])) = 1
- -->
- <xts:block id="redirect" mode="output" processor="XSLT" type="exec" mimeType="text/html" dependency="getTarget"
- condition=".[not(/root/env/param[@name='cv.drillServiceOnly']) and /root/env/param[@name='redirect'] and not(/root/env/param[@name='debugTarget']) and
- (count(/root/*[local-name()='FormArray']/*[local-name()='array']) =1 or /root/resultStatus = 'complete' or /root/resultStatus = 'conversationComplete')]">
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <xts:logicsheet path="logicsheets/permissions.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/main/framework.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/framework.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/layout.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/controls/framework.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/controls/presentation.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/presentation.xsl"/>
- <xts:logicsheet path="logicsheets/validation.xslt"/> <xts:logicsheet path="logicsheets/presentation/touch_up.xslt"/>
- <xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
- xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
- xmlns:drillxtsext="xalan://com.cognos.drill.ext.XTSExt"
- xmlns:lyt="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/layout/"
- xmlns:dp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/presentation/"
- xmlns:df="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/framework/"
- xmlns:cf="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/framework/"
- xmlns:cp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/presentation/"
- xmlns:mf="http://developer.cognos.com/schemas/xts/logicsheets/presentation/main/mf"
- xmlns:pm="http://developer.cognos.com/schemas/xts/pm"
- xmlns:bus="http://developer.cognos.com/schemas/bibus/3/">
- xmlns:xts="http://developer.cognos.com/schemas/xts/" exclude-result-prefixes="drillxtsext xsl cm pf xts xtsext lyt dp df cf cp">
- <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no" omit-xml-declaration="yes"/>
- <xsl:variable name="mname" select="'goto2.xts'"/>
- <mf:variables/>
- <pf:variables/>
- <xsl:template name="string-replace-all">
- <xsl:param name="text" />
- <xsl:param name="replace" />
- <xsl:param name="by" />
- <xsl:choose>
- <xsl:when test="contains($text, $replace)">
- <xsl:value-of select="substring-before($text,$replace)" />
- <xsl:value-of select="$by" />
- <xsl:call-template name="string-replace-all">
- <xsl:with-param name="text" select="substring-after($text,$replace)" />
- <xsl:with-param name="replace" select="$replace" />
- <xsl:with-param name="by" select="$by" />
- </xsl:call-template>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$text" />
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <xsl:template match="/root">
- <!-- Pick the editSpecification out of the run(drillPath) response... -->
- <!-- TODO: Investigate why directLaunch can avoid this block -->
- <xsl:variable name="theEditSpec" select="/root//*[local-name()='Envelope']/*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*/child::*[local-name()='options']/*[local-name()='item'][./*[local-name()='name']='editSpecification']/*[local-name()='value']"/>
- <xsl:variable name="ui.bookmark">
- <!-- url encode the bookmark string. Replace any spaces with '+' -->
- <xsl:value-of select="xtsext:urlencode(string(/root/*[local-name()='bookmarkRef']),'UTF-8','true')"/>
- </xsl:variable>
- <!-- Initialize mobile variable -->
- <xsl:variable name="mobileLaunch">
- <xsl:choose>
- <xsl:when test="/root/env/param[@name='mobileLaunch']">
- <xsl:value-of select="/root/env/param[@name='mobileLaunch']"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text/>false<xsl:text/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:variable name="selectionContext">
- <xsl:value-of select="/root/env/param[@name='selectionContext']"/>
- </xsl:variable>
- <xsl:variable name="drillType" select="/root/env/param[@name='drillType']"></xsl:variable>
- <xsl:variable name="launchurl">
- <xsl:choose>
- <xsl:when test="/root/cm:queryResponse/cm:report">
- <xsl:call-template name="build-url">
- <xsl:with-param name="report" select="/root/cm:queryResponse/cm:report"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:when test="/root/cm:queryResponse/cm:reportView">
- <xsl:call-template name="build-url">
- <xsl:with-param name="report" select="/root/cm:queryResponse/cm:reportView"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:when test="/root/cm:queryResponse/cm:query">
- <xsl:call-template name="build-url">
- <xsl:with-param name="report" select="/root/cm:queryResponse/cm:query"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:when test="/root/cm:queryResponse/cm:analysis">
- <xsl:call-template name="build-url">
- <xsl:with-param name="report" select="/root/cm:queryResponse/cm:analysis"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:when test="/root/cm:queryResponse/cm:powerPlay8Report">
- <xsl:variable name="defaultDrillAction">
- <xsl:value-of select="/root/*[local-name()='response']/*[local-name()='Envelope']/*[local-name()='Body']/*[local-name()='runResponse']/*[local-name()='result']/*[local-name()='details']/*[local-name()='item']/*[local-name()='action']"/>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="$defaultDrillAction='edit'">
- <xsl:variable name="drilltarget" select="/root/cm:queryResponse/cm:powerPlay8Report/*[local-name()='searchPath']"/>
- <xsl:value-of select="drillxtsext:generatePPStudioLaunchURL('edit',$drilltarget,$theEditSpec,'HTML')"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="build-url">
- <xsl:with-param name="report" select="/root/cm:queryResponse/cm:powerPlay8Report"/>
- </xsl:call-template>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <xsl:when test="/root/cm:queryResponse/cm:package">
- <xsl:variable name="drilltarget" select="/root/cm:queryResponse/cm:package/*[local-name()='searchPath']"/>
- <xsl:value-of select="drillxtsext:generatePPStudioLaunchURL('new',$drilltarget,$theEditSpec,'HTML')"/>
- </xsl:when>
- <xsl:when test="/root/cm:queryResponse/cm:powerPlay8ReportView">
- <xsl:call-template name="build-url">
- <xsl:with-param name="report" select="/root/cm:queryResponse/cm:powerPlay8ReportView"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:otherwise>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:variable name="lang">
- <xsl:choose>
- <xsl:when test="/root/env/param[@name='contentLocale']">
- <xsl:value-of select="string(/root/*[local-name()='contentLocale'])"/>
- </xsl:when>
- <xsl:when test="/root/env/param[@name='lang']">
- <xsl:value-of select="string(/root/*[local-name()='lang'])"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text/>en<xsl:text/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:text disable-output-escaping='yes'><!DOCTYPE html></xsl:text>
- <html>
- <xsl:attribute name="lang"><xsl:value-of select="$lang"/></xsl:attribute>
-
- <head>
- <xsl:if test="$mobileLaunch='true'">
- <script src="{$gateway}/mobileService/mobile_interface.js" type="text/javascript" />
- </xsl:if>
- <xsl:variable name="cmd-form" select="'pform'"/>
- <pf:launch/>
-
-
- <script language="javascript">
- var launchurl = "";
-
- function launchTargetCustomURL()
- {
- <xsl:if test="/root/*[local-name()='FormArray']/*[local-name()='array'] != ''">
- <xsl:for-each select="/root/*[local-name()='FormArray']/*[local-name()='array']">
- <xsl:variable name="formId" select="concat('f', generate-id(.))"/>
- <xsl:choose>
- <xsl:when test="$mobileLaunch='true'">
- mobAPI.passFormFieldsToMobile(document.forms['<xsl:value-of select="$formId"/>']);
- </xsl:when>
- <xsl:otherwise>
- document.forms['<xsl:value-of select="$formId"/>'].submit();
- </xsl:otherwise>
- </xsl:choose>
- </xsl:for-each>
- </xsl:if>
- }
- function launchTarget()
- {
- <xsl:choose>
- <xsl:when test="starts-with($launchurl, 'javascript:')">
- launchurl = "<xsl:value-of select="xtsext:javascriptencode($launchurl)"/>";
- </xsl:when>
- <xsl:otherwise>
- launchurl = "<xsl:value-of select="$launchurl"/>";
- </xsl:otherwise>
- </xsl:choose>
- if (launchurl.indexOf("javascript:") == 0)
- {
- <!-- temp code until portal adds support for ui.bookmark in the template gen-url -->
- <!-- All of this should be removed as soon as possible -->
- <xsl:variable name="launchPlusSemi1">
- <xsl:value-of select="$launchurl"></xsl:value-of><xsl:text>;</xsl:text>
- </xsl:variable>
-
- <xsl:variable name="launchPlusSemi">
- <xsl:choose>
- <xsl:when test="$mobileLaunch='true'">
- <xsl:call-template name="string-replace-all">
- <xsl:with-param name="text" select="$launchPlusSemi1" />
- <xsl:with-param name="replace" select="'cognosLaunch'" />
- <xsl:with-param name="by" select="'mobAPI.mobileLaunch'" />
- </xsl:call-template>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$launchPlusSemi1"></xsl:value-of>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <xsl:variable name="tempLaunchURL">
- <xsl:value-of select="substring-before($launchPlusSemi, ');')"/>
- <xsl:if test="$ui.bookmark != ''">
- <xsl:text>,'ui.bookmark','</xsl:text>
- <xsl:value-of select="xtsext:javascriptencode($ui.bookmark)"/>
- <xsl:text>'</xsl:text>
- </xsl:if>
- <xsl:if test="$theEditSpec != ''">
- <xsl:text>,'specification.editSpecification','</xsl:text>
- <xsl:value-of select="xtsext:javascriptencode($theEditSpec)"/>
- <xsl:text>'</xsl:text>
- </xsl:if>
- <!--add the checking to avoid generating an invalid javascript code-->
- <xsl:if test="$launchurl != ''">
- <xsl:text>);</xsl:text>
- </xsl:if>
- </xsl:variable>
- <xsl:value-of select="$tempLaunchURL"/>
- if (window.opener != null && launchurl.indexOf("javascript:cognosLaunchInWindow") != -1)
- {
- window.close();
- }
- }
- else
- {
- window.location.href = launchurl;
- }
- }
- </script>
- </head>
- <xsl:choose>
- <xsl:when test="$launchurl != ''">
- <body onload="launchTarget();"/>
- </xsl:when>
- <xsl:when test="count(/root/*[local-name()='FormArray']/*[local-name()='array']) =1 ">
- <body onload="launchTargetCustomURL();">
- <xsl:if test="/root/*[local-name()='FormArray']/*[local-name()='array'] != ''">
- <xsl:for-each select="/root/*[local-name()='FormArray']/*[local-name()='array']">
- <xsl:variable name="formId" select="concat('f', generate-id(.))"/>
- <form name="{$formId}" action="{*[local-name()='fAction']}" method="{*[local-name()='fMethod']}" target="{*[local-name()='fTarget']}">
- <xsl:for-each select="./*[local-name()='fElements']">
- <input type="hidden" name="{*[local-name()='fName']}" value="{*[local-name()='fValue']}"/>
- </xsl:for-each>
- </form>
- </xsl:for-each>
- </xsl:if>
- </body>
- </xsl:when>
- <xsl:otherwise>
-
- <script language="javascript">
- function onClose()
- {
- if (window.opener != null)
- {
- window.close();
- }
- }
- </script>
- <xsl:variable name="browserTitle">
- <xts:string id="GOTO_PAGE"></xts:string>
- </xsl:variable>
- <dp:page longTitle="$browserTitle">
- <dp:meta>
- <pf:meta/>
- </dp:meta>
- <dp:script>
-
-
- <script language="javascript">
- <xsl:attribute name="src"><xsl:value-of select="$webcontent"/>/<xsl:value-of select="$app"/>/js/list.js<xsl:text/></xsl:attribute>
- </script>
- </dp:script>
- <dp:header>
- <dp:title>
- <xsl:value-of select="$browserTitle"/>
- </dp:title>
- <dp:description>
- <xts:string id="GOTO_NO_PRIVILEGE"/>
- </dp:description>
- <dp:close>
- <a href="javascript:onClose()">
- <dp:closeMarker/>
- </a>
- </dp:close>
- </dp:header>
- <dp:footer>
- <df:button df:id="IDS_CLOSE" df:style="href" df:href="javascript:onClose()"/>
- </dp:footer>
- </dp:page>
- </xsl:otherwise>
- </xsl:choose>
- </html>
- </xsl:template>
- <xsl:template name="build-url">
- <xsl:param name="report" select="''"/>
- <xsl:apply-templates select="$report"/>
- </xsl:template>
- <xsl:template match="/root/cm:queryResponse/cm:report|/root/cm:queryResponse/cm:reportView|/root/cm:queryResponse/cm:query|/root/cm:queryResponse/cm:analysis|/root/cm:queryResponse/cm:powerPlay8Report|/root/cm:queryResponse/cm:powerPlay8ReportView|/root/cm:queryResponse/cm:package">
- <pm:permissions/>
- <xsl:variable name="defaultName" select="cm:defaultName"/>
- <xsl:variable name="class" select="cm:objectClass"/>
- <xsl:variable name="preferredAction">
- <!-- use the action from the drill path if it is available -->
- <xsl:choose>
- <xsl:when test="/root/cm:queryResponse/cm:drillPath/cm:action and /root/cm:queryResponse/cm:drillPath/cm:action != ''">
- <xsl:value-of select="/root/cm:queryResponse/cm:drillPath/cm:action"/>
- </xsl:when>
- <xsl:when test="/root//*[local-name()='Envelope']/*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*[local-name()='item']/*[local-name()='action'] and /root//*[local-name()='Envelope']/*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*[local-name()='item']/*[local-name()='action'] != ''">
- <xsl:value-of select="/root//*[local-name()='Envelope']/*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*[local-name()='item']/*[local-name()='action']"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="'viewOutput'"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:variable name="permissions" select="cm:permissions"/>
- <xsl:variable name="searchPath" select="cm:searchPath"/>
- <xsl:variable name="disabled" select="cm:disabled"/>
- <xsl:variable name="drillpath_output_format">
- <xsl:choose>
- <xsl:when test="string(/root//*[local-name()='Envelope']/*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*/child::*[local-name()='options']/*[local-name()='item' and *[local-name()='name' and . = 'outputFormat']]/*[local-name()='value']/*[local-name()='item']) != ''">
- <xsl:value-of select="string(/root//*[local-name()='Envelope']/*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*/child::*[local-name()='options']/*[local-name()='item' and *[local-name()='name' and . = 'outputFormat']]/*[local-name()='value']/*[local-name()='item'])"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$output_format"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
-
- <!-- If a prompt is defined in drillpath set it (true or false), otherwise set it to "none" as requested by portal team so gen-url will not include run.prompt as
- part of launchurl -->
-
- <xsl:variable name="drillpath_prompt">
- <xsl:choose>
- <xsl:when test="/root//*[local-name()='Envelope']/*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*/child::*[local-name()='options']/*[local-name()='item'][./*[local-name()='name'][.='prompt']]">
- <xsl:value-of select="/root//*[local-name()='Envelope']/*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*/child::*[local-name()='options']/*[local-name()='item'][./*[local-name()='name'][.='prompt']]/*[local-name()='value']"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="none"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <!--We pass target default output format as parameter. Output_format is empty when there is not saved output
- so we can use it to specify if we can set the action to view -->
- <xsl:variable name="action">
- <xsl:call-template name="calculate-action">
- <xsl:with-param name="class" select="$class"/>
- <xsl:with-param name="preferredAction" select="$preferredAction"/>
- <xsl:with-param name="output_format" select="$drillpath_output_format"/>
- <xsl:with-param name="DefaultOutputFormat" select="$output_format"/>
- <xsl:with-param name="canRead" select="$canRead"/>
- <xsl:with-param name="canExecute" select="$canExecute"/>
- <xsl:with-param name="canTraverse" select="$canTraverse"/>
- </xsl:call-template>
- </xsl:variable>
-
-
- <xsl:variable name="launchurl">
- <xsl:choose>
- <xsl:when test="/root/cm:queryResponse/cm:powerPlay8Report or /root/cm:queryResponse/cm:powerPlay8ReportView">
- <xsl:variable name="theEditSpec" select="/root//*[local-name()='Envelope']/*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*/child::*[local-name()='options']/*[local-name()='item'][./*[local-name()='name']='editSpecification']/*[local-name()='value']"/>
- <xsl:value-of select="drillxtsext:generatePPStudioLaunchURL($action,$searchPath,$theEditSpec,$drillpath_output_format)"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="gen-url">
- <xsl:with-param name="canExecute" select="$canExecute"/>
- <xsl:with-param name="canRead" select="$canRead"/>
- <xsl:with-param name="canTraverse" select="$canTraverse"/>
- <xsl:with-param name="output_format" select="$drillpath_output_format"/>
- <xsl:with-param name="class" select="$class"/>
- <xsl:with-param name="userInterfaces" select="false"/>
- <xsl:with-param name="action" select="$action"/>
- <xsl:with-param name="isDangling" select="false()"/>
- <xsl:with-param name="isContainer" select="false()"/>
- <xsl:with-param name="isIgnoreBackURL" select="true()"/>
- <xsl:with-param name="isDrillthruMode" select="true()"/>
- <xsl:with-param name="specifyRunOutputFormat" select="true()"/>
- <!--Add new param for run.prompt -->
- <xsl:with-param name="executionPrompt" select="$drillpath_prompt"/>
- </xsl:call-template>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:value-of select="$launchurl"/>
- </xsl:template>
- <xsl:template name="calculate-action">
- <xsl:param name="class" select="''"/>
- <xsl:param name="preferredAction" select="''"/>
- <xsl:param name="output_format" select="''"/>
- <xsl:param name="DefaultOutputFormat" select="''"/>
- <xsl:param name="canRead" select="false()"/>
- <xsl:param name="canExecute" select="false()"/>
- <xsl:param name="canTraverse" select="false()"/>
- <xsl:param name="userInterfaces" select="''"/>
- <xsl:variable name="action">
- <xsl:choose>
- <xsl:when test="contains(' analysis report query reportView powerPlay8Report powerPlay8ReportView package', concat(' ', $class, ' ' ))">
- <xsl:choose>
- <xsl:when test="$preferredAction='viewOutput' and ($canRead and $canTraverse)">
- <xsl:choose>
- <!--check DefaultOutputFormat to see if target has a saved output -->
- <xsl:when test="$output_format != '' and $DefaultOutputFormat!='' ">view</xsl:when>
- <xsl:when test="($class='powerPlay8Report') and ($canRead and $canExecute) and($output_format != ''or $DefaultOutputFormat!='' ) ">run</xsl:when>
- <xsl:when test="($class='query' or $class='analysis' or $class='powerPlay8Report') and ($canRead and $canExecute)">edit</xsl:when>
- <xsl:when test="$canRead and $canExecute">run</xsl:when>
- </xsl:choose>
- </xsl:when>
- <xsl:when test="$preferredAction='run' and ($canRead and $canExecute)">run</xsl:when>
- <xsl:when test="$preferredAction='edit' and ($canRead and $canExecute)">
- <xsl:choose>
- <xsl:when test="$userCanUseQS and ($browser='ie' or $browser='moz')">edit</xsl:when> <!-- query object -->
- <xsl:when test="$userCanUseRS and $browser='ie' ">edit</xsl:when> <!-- report object-->
- <xsl:when test="$userCanUseANS">edit</xsl:when> <!--analysis object -->
- </xsl:choose>
- </xsl:when>
- <!-- this is the fall back if action was not set for report and report view: view, run (wouldn't get to edit) -->
- <!-- but for query and anlaysis: view, edit and run -->
- <xsl:when test="$output_format != '' and ($canRead and $canTraverse)">view</xsl:when>
- <xsl:when test="$class='query' and $canRead and $canExecute and $userCanUseQS and ($browser='ie' or $browser='moz')">edit</xsl:when> <!-- query object -->
- <xsl:when test="$class='analysis' and $canRead and $canExecute and $userCanUseANS">edit</xsl:when> <!--analysis object -->
- <xsl:when test="$class='powerPlay8Report' and $canRead and $canExecute">edit</xsl:when> <!--powerplay8report -->
- <xsl:when test="$canRead and $canExecute">run</xsl:when><!-- report object-->
- </xsl:choose>
- </xsl:when>
- <xsl:when test="contains(' package ', concat(' ', $class, ' ' ))">
- <xsl:if test="$userInterfaces='metricStudio'">
- <xsl:choose>
- <xsl:when test="($preferredAction='view') and $canTraverse">view</xsl:when>
- <xsl:when test="($preferredAction='run' or $preferredAction='') and ($canRead and $canExecute) and $userCanUseMetricsManager">run</xsl:when>
- </xsl:choose>
- </xsl:if>
- </xsl:when>
- </xsl:choose>
- </xsl:variable>
- <xsl:value-of select="$action"/>
- </xsl:template>
- <pf:gen-icon/>
- <pf:gen-url/>
- </xsl:stylesheet>
- </xts:block>
-
- <!--Add a new block to obtain mapping and target info from a selected target and display the mapping info for debugging purpose.
- This info becomes available only when a user has the capability to run the debug assistant.
- -->
-
- <xts:block id="debugTarget" mode="output" processor="XSLT" type="exec" mimeType="text/html" dependency="getTarget"
- condition=".[/root/env/param[@name='debugTarget'] and not(/root/*[local-name()='response']/*[local-name()='Envelope']/*[local-name()='Body']/*/*[local-name()='result']/*[local-name()='details']/*[local-name()='item'][@*[local-name()='type']='bus:asynchDetailReportStatus']/*[local-name()='status']='prompting') and
- (/root/resultStatus = 'complete' or /root/resultStatus = 'conversationComplete')]">
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <xts:logicsheet path="logicsheets/permissions.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/main/framework.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/framework.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/layout.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/controls/framework.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/controls/presentation.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/presentation.xsl"/>
- <xts:logicsheet path="logicsheets/validation.xslt"/>
- <xts:logicsheet path="logicsheets/presentation/touch_up.xslt"/>
- <xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
- xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
- xmlns:lyt="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/layout/"
- xmlns:dp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/presentation/"
- xmlns:df="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/framework/"
- xmlns:cf="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/framework/"
- xmlns:cp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/presentation/"
- xmlns:mf="http://developer.cognos.com/schemas/xts/logicsheets/presentation/main/mf"
- xmlns:pm="http://developer.cognos.com/schemas/xts/pm"
- xmlns:bus="http://developer.cognos.com/schemas/bibus/3/">
- xmlns:xts="http://developer.cognos.com/schemas/xts/" exclude-result-prefixes="xsl cm pf xts xtsext lyt dp df cf cp">
-
- <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no" omit-xml-declaration="yes"/>
- <xsl:variable name="mname" select="'goto2.xts'"/>
- <mf:variables/>
- <pf:variables/>
- <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no"
- doctype-system="http://www.w3.org/TR/html4/strict.dtd"
- doctype-public="-//W3C//DTD HTML 3.2 Final//EN"
- />
- <xsl:template match="/root">
- <xsl:variable name="lang">
- <xsl:choose>
- <xsl:when test="/root/env/param[@name='contentLocale']">
- <xsl:value-of select="string(/root/*[local-name()='contentLocale'])"/>
- </xsl:when>
- <xsl:when test="/root/env/param[@name='lang']">
- <xsl:value-of select="string(/root/*[local-name()='lang'])"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text/>en<xsl:text/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:text disable-output-escaping='yes'><!DOCTYPE html></xsl:text>
- <html>
- <xsl:attribute name="lang"><xsl:value-of select="$lang"/></xsl:attribute>
-
- <head>
- <!-- CSSs requird to use format properly -->
- <link rel="stylesheet" type="text/css" href="{$skin_root}/portal/default.css"/>
- <link rel="stylesheet" type="text/css" href="{$skin_root}/qs/RVReport.css"/>
- <title><xts:string id="DEBUG_PARAMETER_MAPPING"/></title>
- </head>
- <body>
- <div>
- <table>
- <tr>
- <td colspan="2" nowrap="" height="10" class="formLabel">
- <xts:string id="DEBUG_PARAMETER_MAPPING"/></td>
- </tr>
- <tr>
- <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_DRILL_THROUGH_DEFINITION"/></td>
- <td class="formText">
- <xsl:choose>
- <xsl:when test="/root/env/param[@name='drillPathName'] and /root/env/param[@name='drillPathName'] != ''">
- <xsl:value-of select="xtsext:enforceBTD((/root/env/param[@name='drillPathName']), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:for-each select="/root/*[local-name()='queryResponse'][1]/*[local-name()='drillPath']">
- <xsl:value-of select="xtsext:enforceBTD(./*[local-name()='defaultName'], $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
- </xsl:for-each>
- </xsl:otherwise>
- </xsl:choose>
- </td>
- </tr>
- <tr>
- <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_MAPPING_PARAMETERS"/></td>
- </tr>
- </table>
- <!-- create a table for mapping parameters -->
- <!-- -->
- <!--For defect https://bajazz05.canlab.ibm.com:9750/ccm/resource/itemName/com.ibm.team.workitem.WorkItem/216715 -->
- <!-- This table used to use the cctable style. For defect 216715 the cutomer modified the cctable style in a default.css. -->
- <!-- Among other things, the customer added an explicit height to cctable. The 500px height made this table unusable. -->
- <!-- This table is meant to expand under its corresponding 'goto' link. The existing cctable defintions in all skins define a -->
- <!-- border and set a white background color. This table disables the border (border="0"). So the only thing used from -->
- <!-- the default cctable was the setting for the background colour. So, remove the cctable class and add the white background -->
- <!-- fixes the problem of this sub table being not displaying properly if a height is set -->
- <table width="100%" cellspacing="0" cellpadding="3" border="0" bgcolor="#ffffffff">
- <thead id="MappingParametersHeader">
- <tr class="tableHeader">
-
- <!--Parameter name column header-->
- <td width="20%" valign="center" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px;" class="tableTitle">
- <table cellspacing="0" cellpadding="0" border="0">
- <tbody>
- <tr>
- <td valign="top" nowrap="" class="tableTitle">
- <xts:string id="DEBUG_PARAMETER_NAME"/>
- </td>
- </tr>
- </tbody>
- </table>
- </td>
-
- <!--Parameter Display column header-->
- <td width="1" height="15">
- <table cellspacing="0" cellpadding="0" border="0">
- <tbody>
- <tr>
- <td class="tableHeaderDivider">
- <img width="1" height="15" src="{$webcontent}/images/space.gif" alt=""/>
- </td>
- </tr>
- </tbody>
- </table>
- </td>
- <td width="20%" valign="center" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px;" class="tableTitle">
- <table cellspacing="0" cellpadding="0" border="0">
- <tbody>
- <tr>
- <td valign="top" nowrap="" class="tableTitle">
- <xts:string id="DEBUG_DISPLAY"/>
- </td>
- </tr>
- </tbody>
- </table>
- </td>
- <!--Parameter use column header-->
- <td width="1" height="15">
- <table cellspacing="0" cellpadding="0" border="0">
- <tbody>
- <tr>
- <td class="tableHeaderDivider">
- <img width="1" height="15" src="{$webcontent}/images/space.gif" alt=""/>
- </td>
- </tr>
- </tbody>
- </table>
- </td>
- <td width="60%" valign="center" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px;" class="tableTitle">
- <table cellspacing="0" cellpadding="0" border="0">
- <tbody>
- <tr>
- <td valign="top" nowrap="" class="tableTitle">
- <xts:string id="DEBUG_USE"/>
- </td>
- </tr>
- </tbody>
- </table>
- </td>
-
- </tr>
- </thead>
- <!-- Take the parameters returned in the response from the run of a drillpath (or a wait) and show them as "Mapped Target Parameters" -->
- <xsl:for-each select="/root/*[local-name()='response']/*[local-name()='Envelope']/*[local-name()='Body']/*/*[local-name()='result']/*[local-name()='details']/*[local-name()='item']/*[local-name()='parameters']/*[local-name()='item']">
- <!-- To prevent showing credentials in the UI -->
- <xsl:if test="not(contains(*[local-name()='name'],'credential'))">
- <tr>
- <!--Parameter name column rows-->
-
- <td nowrap="" valign="top" height="10" class="tabletext"><xsl:value-of select="xtsext:enforceBTD(*[local-name()='name'], $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/></td>
-
- <!--Parameter display column rows-->
- <td nowrap="" height="10" class="tabletext">
- <xsl:for-each select="*[local-name()='value']/*[local-name()='item']">
-
- <xsl:value-of select="xtsext:enforceBTD(*[local-name()='display'], $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
-
- <!-- Start of handling in range parameters - Display value -->
- <!-- Check to see if we have range type parameters -->
- <xsl:if test="*[local-name()='start']!='' or *[local-name()='end']!=''">
-
- <!-- check to see if we have the start range-->
- <xsl:choose>
- <xsl:when test="*[local-name()='start']!=''">
- <xsl:value-of select="xtsext:enforceBTD(*[local-name()='start']/*[local-name()='display'], $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
- </xsl:when>
- <xsl:otherwise>
- <!-- TODO: This provides an empty line for unbounded start
- which needs to be tested after server returns a response
- for such cases-->
- <label>--</label>
- </xsl:otherwise>
- </xsl:choose>
-
- <br/>
-
- <!-- Check to see if we have the end range-->
- <xsl:choose>
- <xsl:when test="*[local-name()='end']!=''">
- <xsl:value-of select="xtsext:enforceBTD(*[local-name()='end']/*[local-name()='display'], $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
- </xsl:when>
- <xsl:otherwise>
- <!-- TODO: This provides an empty line for unbounded start
- which needs to be tested after server returns a response
- for such cases-->
- <label>--</label>
- </xsl:otherwise>
- </xsl:choose>
-
- </xsl:if>
- <!-- End of handling range parameters - Display Value -->
-
- <br />
- </xsl:for-each>
- </td>
-
- <!--Parameter use column rows-->
- <td></td>
- <td nowrap="" height="10" class="tabletext">
- <xsl:for-each select="*[local-name()='value']/*[local-name()='item']">
-
- <xsl:value-of select="xtsext:enforceBTD(*[local-name()='use'], $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
-
- <!--
- Start of handling in_range parameters - Use value.
- Currently this is only related to dates when
- drill through from OLAP to relational.
- Because it is only OLAP date that can be
- a range.
-
- In addition it also shows up if we have in_range
- parameter both in source and target
-
- TODO: DTP does not return any information on unbounded starts
- or end and return the same response for all target
- parameters. This needs to be fixed in DTP -->
-
- <!-- Check to see if we have range type parameters -->
- <xsl:if test="*[local-name()='start']!='' or *[local-name()='end']!=''">
-
- <!-- check to see if we have the start range-->
- <xsl:choose>
- <xsl:when test="*[local-name()='start']!=''">
- <xsl:value-of select="xtsext:enforceBTD(*[local-name()='start']/*[local-name()='use'], $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
- </xsl:when>
- <xsl:otherwise>
- <!-- TODO: This provides an empty line for unbounded start
- which needs to be tested after server returns a response
- for such cases-->
- <label>--</label>
- </xsl:otherwise>
- </xsl:choose>
-
- <br/>
-
- <!-- Check to see if we have the end range-->
- <xsl:choose>
- <xsl:when test="*[local-name()='end']!=''">
- <xsl:value-of select="xtsext:enforceBTD(*[local-name()='end']/*[local-name()='use'], $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
- </xsl:when>
- <xsl:otherwise>
- <!-- TODO: This provides an empty line for unbounded start
- which needs to be tested after server returns a response
- for such cases-->
- <label>--</label>
- </xsl:otherwise>
- </xsl:choose>
-
- </xsl:if>
- <!-- End of handling range parameters -->
-
- <br/>
- </xsl:for-each>
- </td>
- </tr>
- </xsl:if>
- </xsl:for-each>
- </table>
- <!--end mapping parameter table-->
-
- <!-- Start of edit specification table -->
- <xsl:for-each select="/root//*[local-name()='Envelope']/*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*/child::*[local-name()='options']/*[local-name()='item'][./*[local-name()='name']='editSpecification']/*[local-name()='value']">
- <br/>
- <!-- -->
- <!--For defect https://bajazz05.canlab.ibm.com:9750/ccm/resource/itemName/com.ibm.team.workitem.WorkItem/216715 -->
- <!-- This table used to use the cctable style. For defect 216715 the cutomer modified the cctable style in a default.css. -->
- <!-- Among other things, the customer added an explicit height to cctable. The 500px height made this table unusable. -->
- <!-- This table is meant to expand under its corresponding 'goto' link. The existing cctable defintions in all skins define a -->
- <!-- border and set a white background color. This table disables the border (border="0"). So the only thing used from -->
- <!-- the default cctable was the setting for the background colour. So, remove the cctable class and add the white background -->
- <!-- fixes the problem of this sub table being not displaying properly if a height is set -->
- <table width="100%" cellspacing="0" cellpadding="2" border="0" bgcolor="#ffffffff">
- <thead id="EditSpecificationHeader">
- <tr class="tableHeader">
- <td width="30%" valign="center" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px;" class="tableTitle">
- <table cellspacing="0" cellpadding="0" border="0">
- <tbody>
- <tr>
- <td valign="top" nowrap="" class="tableTitle">
- <xts:string id="DEBUG_EDIT_SPECIFICAION"/>
- </td>
- </tr>
- </tbody>
- </table>
- </td>
- </tr>
- </thead>
- <tr>
- <td valign="top" nowrap="" height="10" class="tabletext">
- <!-- dump out the selection context -->
- <!-- TODO: come up with proper formating for selection context -->
- <dp:description>
- <xsl:value-of select="/root//*[local-name()='Envelope']/*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*/child::*[local-name()='options']/*[local-name()='item'][./*[local-name()='name']='editSpecification']/*[local-name()='value']"/>
- </dp:description>
- </td>
- </tr>
- </table>
- </xsl:for-each>
-
- <!-- End of edit specification table -->
-
- </div>
- </body>
- </html>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!-- Debug -->
- <!-- ============================================================================= -->
- <xts:block id="debug" dependency="render" condition=".[/root/session/param[@name='debug'] = '1' ]" type="exec" mode="output" processor="XSLT" mandatory="false" mimeType="text/html">
- <xts:logicsheet path="logicsheets/debuglogic.xslt"/>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dbg="http://developer.cognos.com/schemas/xts/logicsheets/xslt/debug/" exclude-result-prefixes="dbg">
- <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no"/>
- <dbg:templates/>
- <xsl:template match="/">
- <dbg:dumpxml select="/root"/>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- </xts:morphlet>
|