goto2.xts 233 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. *****************************************************************
  4. ** Licensed Materials - Property of IBM
  5. **
  6. ** IBM Cognos Products: drill
  7. **
  8. ** (C) Copyright IBM Corp. 2001, 2019
  9. **
  10. ** US Government Users Restricted Rights - Use, duplication or
  11. ** disclosure restricted by GSA ADP Schedule Contract with
  12. ** IBM Corp.
  13. *****************************************************************
  14. -->
  15. <!--
  16. Copyright (C) 2008 Cognos ULC, an IBM Company. All rights reserved.
  17. Cognos (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated).
  18. -->
  19. <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">
  20. <!-- BLOCK: decodeInputContextParams -->
  21. <!-- PURPOSE: decode the parameters that has been sent to the GoTo page -->
  22. <!-- condition: runs when we have drillContext or authoredDrillthru-->
  23. <!-- appends: decoded executionParameters to the environment variables-->
  24. <!-- @executionParameters: includes the value of the source parameters and credentials -->
  25. <xts:block id="decodeInputContextParams" processor="XSLT" type="exec" dependency="" mandatory="false"
  26. condition=".[/root/env/param[@name='drillContext']] or /root/env/param[@name='authoredDrillthru']" nodelist="env">
  27. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  28. <xsl:stylesheet version="1.0"
  29. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  30. xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/"
  31. xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
  32. xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  33. xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
  34. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  35. xmlns:xs="http://www.w3.org/2001/XMLSchema"
  36. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  37. xmlns:bus="http://developer.cognos.com/schemas/bibus/3/">
  38. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  39. <xsl:template match="/root">
  40. <xts:sequence>
  41. <xsl:if test="string(/root/env/param[@name='ui.action'])='forward' or string(/root/env/param[@name='ui.action'])='back'">
  42. <xts:append>
  43. <PromptValues>
  44. <xsl:for-each select="/root/env/param[starts-with(@name, 'p_')]">
  45. <xsl:if test=". != ''">
  46. <PromptValue name="{substring-after(@name,'_')}">
  47. <xsl:value-of select="." disable-output-escaping="yes"/>
  48. </PromptValue>
  49. </xsl:if>
  50. </xsl:for-each>
  51. </PromptValues>
  52. </xts:append>
  53. </xsl:if>
  54. <xts:append>
  55. <drillthruContext>
  56. <!-- This is used to decode the authored drill thru info that are passed to the goto page -->
  57. <xsl:if test="/root/env/param[@name='authoredDrillthru'] and /root/env/param[@name='authoredDrillthru'] != ''">
  58. <authoredDrillthru>
  59. <!--<xsl:value-of select="xtsext:web64decode(/root/env/param[@name='authoredDrillthru'], true())" disable-output-escaping="yes"/>-->
  60. <xsl:value-of select="/root/env/param[@name='authoredDrillthru']" disable-output-escaping="yes"/>
  61. </authoredDrillthru>
  62. </xsl:if>
  63. <!-- execution parameters are only available for modeled drill-through -->
  64. <xsl:choose>
  65. <xsl:when test="/root/env/param[@name='executionParameters'] and /root/env/param[@name='executionParameters'] != ''">
  66. <executionParameters>
  67. <!--<xsl:value-of select="xtsext:web64decode(/root/env/param[@name='executionParameters'], true())" disable-output-escaping="yes"/>-->
  68. <xsl:value-of select="/root/env/param[@name='executionParameters']" disable-output-escaping="yes"/>
  69. </executionParameters>
  70. </xsl:when>
  71. <xsl:when test="/root/env/param[@name='encExecutionParameters'] and /root/env/param[@name='encExecutionParameters'] != ''">
  72. <executionParameters>
  73. <xsl:choose>
  74. <xsl:when test="substring(normalize-space(/root/env/param[@name='encExecutionParameters']),1,1) = '&lt;'">
  75. <xsl:value-of select="xtsext:web64decode(/root/env/param[@name='encExecutionParameters'], true())" disable-output-escaping="yes"/>
  76. </xsl:when>
  77. <xsl:otherwise>
  78. <xsl:value-of select="xtsext:web64decode(xtsext:cafaction('sign_unwrap', string(/root/env/param[@name='encExecutionParameters'])), true())" disable-output-escaping="yes"/>
  79. </xsl:otherwise>
  80. </xsl:choose>
  81. </executionParameters>
  82. </xsl:when>
  83. </xsl:choose>
  84. </drillthruContext>
  85. </xts:append>
  86. </xts:sequence>
  87. </xsl:template>
  88. </xsl:stylesheet>
  89. </xts:block>
  90. <!--
  91. // TODO: sprint3-WO2374 (details)
  92. -->
  93. <!-- JSON conversion of parameter values -->
  94. <xts:block id="convertURL" mode="interpret" processor="XSLT" type="exec" madatory="false" nodelist="env,error">
  95. <xsl:stylesheet version="1.0"
  96. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  97. xmlns:xtsext="xalan://com.cognos.drill.ext.XTSExt">
  98. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  99. <xsl:template match="/root">
  100. <xsl:if test="not(/root/*[local-name()='error']/*[local-name()='badParams'])">
  101. <xsl:if test="/root/env/param[@name='customURL'] and /root/env/param[@name='customURL'] != ''">
  102. <xts:sequence>
  103. <xts:append>
  104. <xsl:value-of select="xtsext:convertJSONToURL(string(/root/env/param[@name='customURL']),string('true'))" disable-output-escaping="yes"/>
  105. </xts:append>
  106. </xts:sequence>
  107. </xsl:if>
  108. </xsl:if>
  109. </xsl:template>
  110. </xsl:stylesheet>
  111. </xts:block>
  112. <!--
  113. // TODO: sprint3-WO2374 (details)
  114. -->
  115. <!-- JSON conversion of parameter values -->
  116. <xts:block id="convertForm" mode="interpret" processor="XSLT" type="exec" madatory="false" nodelist="env">
  117. <xsl:stylesheet version="1.0"
  118. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  119. xmlns:xtsext="xalan://com.cognos.drill.ext.XTSExt">
  120. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  121. <xsl:template match="/root">
  122. <xsl:if test="not(/root/*[local-name()='error']/*[local-name()='badParams'])">
  123. <xsl:if test="/root/env/param[@name='customForm'] and /root/env/param[@name='customForm'] != ''">
  124. <xts:sequence>
  125. <xts:append>
  126. <xsl:value-of select="xtsext:convertJSONToForm(string(/root/env/param[@name='customForm']),string('true'))" disable-output-escaping="yes"/>
  127. </xts:append>
  128. </xts:sequence>
  129. </xsl:if>
  130. </xsl:if>
  131. </xsl:template>
  132. </xsl:stylesheet>
  133. </xts:block>
  134. <!--
  135. // TODO: sprint3-WO2374 (details)
  136. // the choice to use the direct action should come as part of the drill through path (WO 2400)
  137. process directAction: take the directAction parameter and convert into an xml array.
  138. This is used during rendering - see the render block
  139. TODO: fix this code up
  140. -->
  141. <xts:block id="convertDirectAction" mode="interpret" processor="XSLT" type="exec" madatory="false" nodelist="env">
  142. <xsl:stylesheet version="1.0"
  143. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  144. xmlns:xtsext="xalan://com.cognos.drill.ext.XTSExt">
  145. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  146. <xsl:template match="/root">
  147. <xsl:if test="/root/env/param[@name='directAction'] and /root/env/param[@name='directAction'] != ''">
  148. <xts:sequence>
  149. <xts:append>
  150. <xsl:value-of select="xtsext:convertDirectAction(string(/root/env/param[@name='directAction']),string('true'))" disable-output-escaping="yes"/>
  151. </xts:append>
  152. </xts:sequence>
  153. </xsl:if>
  154. </xsl:template>
  155. </xsl:stylesheet>
  156. </xts:block>
  157. <!-- BLOCK: drillContextVar_to_SelectionContext_or_Converter -->
  158. <!-- PURPOSE: process the drillContext as passed in on the first call to cognosLaunch -->
  159. <!-- For PP8: prepare a PP8 drillContext for the converter: The converter will produce a selection context -->
  160. <!-- From selection context library: The selection context is passed directly, save the xml encoded selection context as an XML node tree under /root/selectionContext -->
  161. <xts:block id="drillContextVar_to_SelectionContext_or_Converter" mode="interpret" processor="XSLT" type="exec" madatory="false" nodelist="env">
  162. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xtsext="xalan://com.cognos.drill.ext.XTSExt">
  163. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  164. <xsl:template match="/root">
  165. <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'] != '')">
  166. <xts:sequence>
  167. <xts:append select="/root">
  168. <xsl:choose>
  169. <!-- case 1: produce a selection context under the root node -->
  170. <xsl:when test="/root/env/param[@name='selectionContext'] and /root/env/param[@name='selectionContext'] != ''">
  171. <selectionContext>
  172. <xsl:value-of select="/root/env/param[@name='selectionContext']"/>
  173. </selectionContext>
  174. <selectionContextNodeTree>
  175. <xsl:value-of select="/root/env/param[@name='selectionContext']" disable-output-escaping="yes"/>
  176. </selectionContextNodeTree>
  177. </xsl:when>
  178. <!-- case 1: produce a selection context under the root node -->
  179. <xsl:when test="starts-with(/root/env/param[@name='drillContext'], '&lt;s:selection')">
  180. <selectionContext>
  181. <xsl:value-of select="/root/env/param[@name='drillContext']"/>
  182. </selectionContext>
  183. <selectionContextNodeTree>
  184. <xsl:value-of select="/root/env/param[@name='drillContext']" disable-output-escaping="yes"/>
  185. </selectionContextNodeTree>
  186. </xsl:when>
  187. <!-- case 2: prepare the drill context for the converter (input is expanded under root node ConverterInput -->
  188. <xsl:otherwise>
  189. <ConverterInput>
  190. <xsl:value-of select="xtsext:convertJSONToDrillContext(string(/root/env/param[@name='drillContext']),string('true'))" disable-output-escaping="no"/>
  191. </ConverterInput>
  192. <ConverterInputNodeTree>
  193. <xsl:value-of select="xtsext:convertJSONToDrillContext(string(/root/env/param[@name='drillContext']),string('true'))" disable-output-escaping="yes"/>
  194. </ConverterInputNodeTree>
  195. </xsl:otherwise>
  196. </xsl:choose>
  197. </xts:append>
  198. </xts:sequence>
  199. </xsl:if>
  200. </xsl:template>
  201. </xsl:stylesheet>
  202. </xts:block>
  203. <!-- BLOCK: packageBase -->
  204. <!-- PURPOSE: locate the package associated with a passed in model search path -->
  205. <!-- For PP8: when PP8 passes a drill context, we need to expand it simply to get the model search path -->
  206. <!-- The FindDrillThroughPaths requires a package path , se we need to talk to CM to get the package path from the model path -->
  207. <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'])]">
  208. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  209. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  210. <xsl:template match="/root">
  211. <xts:sequence>
  212. <xts:append select="/root">
  213. <packageBase>
  214. <xsl:variable name="modelPath">
  215. <xsl:choose>
  216. <xsl:when test="/root/env/param[@name='modelPath']">
  217. <xsl:value-of select="/root/env/param[@name='modelPath']"/>
  218. </xsl:when>
  219. <xsl:otherwise>
  220. <xsl:value-of select="/root/*[local-name()='ConverterInputNodeTree']/*[local-name()='array']/*[local-name()='modelPath']"/>
  221. </xsl:otherwise>
  222. </xsl:choose>
  223. </xsl:variable>
  224. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  225. <xts:request href="bus://dispatcher" protocol="BUS" responseEnvelope="true" soapAction="http://www.ibm.com/xmlns/prod/cognos/contentManagerService/201610/" outputHeader="true">
  226. <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">
  227. <SOAP-ENV:Header>
  228. <!--xts:queryNode select="/root/header/bus:biBusHeader"/-->
  229. <xts:queryNode select="/root/header/*[local-name()='biBusHeader']"/>
  230. </SOAP-ENV:Header>
  231. <SOAP-ENV:Body>
  232. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  233. <cm:query xmlns:cm="http://developer.cognos.com/schemas/bibus/3/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  234. <cm:search>
  235. <xsl:value-of select="$modelPath"/>
  236. </cm:search>
  237. <properties xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="cm:propEnum[1]">
  238. <item xsi:type="cm:propEnum">parent</item>
  239. </properties>
  240. </cm:query>
  241. </xts:transform>
  242. </SOAP-ENV:Body>
  243. </SOAP-ENV:Envelope>
  244. </xts:request>
  245. </xts:transform>
  246. </packageBase>
  247. </xts:append>
  248. </xts:sequence>
  249. </xsl:template>
  250. </xsl:stylesheet>
  251. </xts:block>
  252. <!--
  253. ===============================================================================================
  254. get-object - if this is the first time in and it is a saved report/query, collect some information about the report/query
  255. Also create a new env parameter that is a copy of the url for re-execute.
  256. ===============================================================================================
  257. -->
  258. <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">
  259. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  260. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
  261. xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/"
  262. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt">
  263. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  264. <xsl:template match="/root">
  265. <xts:sequence>
  266. <xts:append>
  267. <source>
  268. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  269. <send:request provider="cm">
  270. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  271. <cm:query xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
  272. <cm:search>
  273. <xsl:value-of select="/root/env/param[@name='ui.object']"/>
  274. </cm:search>
  275. <cm:properties>
  276. <cm:property name="defaultName"/>
  277. <cm:property name="searchPath"/>
  278. <cm:property name="base"/>
  279. <cm:property name="ancestors"/>
  280. <cm:property name="searchPathForURL"/>
  281. <cm:property name="routingServerGroup"/>
  282. <cm:property name="metadataModelPackage"/>
  283. <cm:property name="metadataModel"/>
  284. </cm:properties>
  285. <cm:options schemaInfo="true">
  286. <cm:refProps>
  287. <cm:refProp refPropName="base">
  288. <cm:properties>
  289. <cm:property name="searchPath"/>
  290. <cm:property name="permissions"/>
  291. </cm:properties>
  292. </cm:refProp>
  293. </cm:refProps>
  294. </cm:options>
  295. </cm:query>
  296. </xts:transform>
  297. </send:request>
  298. </xts:transform>
  299. </source>
  300. </xts:append>
  301. </xts:sequence>
  302. </xsl:template>
  303. </xsl:stylesheet>
  304. </xts:block>
  305. <xts:block id="secondary-request" processor="XSLT" type="exec" dependency="decodeInputContextParams" mandatory="false"
  306. 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">
  307. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  308. <xts:logicsheet path="prompting/soaplogic.xsl"/>
  309. <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/"
  310. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  311. xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  312. xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
  313. xmlns:rns1="http://developer.cognos.com/schemas/reportService/1"
  314. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  315. xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
  316. xmlns:xs="http://www.w3.org/2001/XMLSchema"
  317. xmlns:sl="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/prmt/soaplogic/">
  318. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  319. <xsl:key name="env-param" match="/root/env/param" use="@name"/>
  320. <sl:soaplogic/>
  321. <xsl:template match="/root">
  322. <xsl:variable name="method">
  323. <xsl:value-of select="/root/env/param[@name='ui.action']"/>
  324. </xsl:variable>
  325. <xts:sequence>
  326. <xts:append select="/root">
  327. <response>
  328. <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">
  329. <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">
  330. <SOAP-ENV:Header>
  331. <bus:biBusHeader xsi:type="bus:biBusHeader">
  332. <bus:tracking>
  333. <xsl:value-of select="xtsext:web64decode(xtsext:cafaction('sign_unwrap', string(key('env-param','tracking'))), true())" disable-output-escaping="yes"/>
  334. </bus:tracking>
  335. <xsl:copy-of select="/root/header/bus:biBusHeader/*[local-name()!='tracking']"/>
  336. </bus:biBusHeader>
  337. </SOAP-ENV:Header>
  338. <SOAP-ENV:Body>
  339. <xsl:element name="{$method}" namespace="http://developer.cognos.com/schemas/reportService/1">
  340. <bus:conversation xsi:type="bus:asynchRequest" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  341. <xsl:choose>
  342. <xsl:when test="$method='wait'">
  343. <xsl:attribute name="xsi:nil">true</xsl:attribute>
  344. </xsl:when>
  345. <xsl:otherwise>
  346. <xsl:value-of select="xtsext:web64decode(xtsext:cafaction('sign_unwrap', string(key('env-param', 'conversation'))), true())" disable-output-escaping="yes"/>
  347. </xsl:otherwise>
  348. </xsl:choose>
  349. </bus:conversation>
  350. <xsl:call-template name="SetParameters"/>
  351. <bus:options xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:option[]" xmlns:bus="http://developer.cognos.com/schemas/bibus/3/">
  352. </bus:options>
  353. </xsl:element>
  354. </SOAP-ENV:Body>
  355. </SOAP-ENV:Envelope>
  356. </xts:request>
  357. </response>
  358. </xts:append>
  359. <xts:append>
  360. <resultStatus>
  361. <xts:queryNode select="/root//*[local-name()='Envelope']/*[local-name()='Body']/*/*[local-name()='result']/*[local-name()='status']"/>
  362. </resultStatus>
  363. </xts:append>
  364. </xts:sequence>
  365. </xsl:template>
  366. </xsl:stylesheet>
  367. </xts:block>
  368. <!-- BLOCK: getRoutingServerContent -->
  369. <!-- PURPOSE: gets package routingServerGroup information of the source-->
  370. <!-- OUTPUT: ui.routingServerGroup : Used to spefiy the server we have to pass our requests to -->
  371. <!-- We should have this value before sending find request to get the drill path list. In addition, it is also used in runConverter method-->
  372. <!-- 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 -->
  373. <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">
  374. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  375. <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">
  376. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  377. <xsl:key name="env-param" match="/root/env/param" use="@name"/>
  378. <xsl:template match="/">
  379. <xsl:choose>
  380. <xsl:when test="/root/env/param[@name='ui.routingServerGroup']">
  381. </xsl:when>
  382. <xsl:when test="/root/env/param[@name='routingServerGroup']">
  383. <xts:sequence>
  384. <xts:append select="/root/env">
  385. <param name="ui.routingServerGroup">
  386. <xsl:value-of select="/root/env/param[@name='routingServerGroup']"/>
  387. </param>
  388. </xts:append>
  389. </xts:sequence>
  390. </xsl:when>
  391. <xsl:otherwise>
  392. <xsl:variable name="objpath">
  393. <xsl:choose>
  394. <xsl:when test="string(/root/env/param[@name='objpath'])!=''">
  395. <xsl:value-of select="/root/env/param[@name='objpath']"/>
  396. </xsl:when>
  397. <xsl:otherwise>
  398. <xsl:value-of select="/root/packageBase//*[local-name()='parent']//*[local-name()='searchPath']"/>
  399. </xsl:otherwise>
  400. </xsl:choose>
  401. </xsl:variable>
  402. <xts:sequence>
  403. <xts:append>
  404. <routing>
  405. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  406. <send:request provider="cm">
  407. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  408. <cm:query>
  409. <cm:search>
  410. <xsl:value-of select="$objpath"/>
  411. </cm:search>
  412. <cm:properties>
  413. <cm:property name="searchPath"/>
  414. <cm:property name="routingServerGroup"/>
  415. </cm:properties>
  416. </cm:query>
  417. </xts:transform>
  418. </send:request>
  419. </xts:transform>
  420. </routing>
  421. </xts:append>
  422. <xts:append select="/root/env">
  423. <param name="ui.routingServerGroup">
  424. <xts:queryValue select="/root/routing/*[local-name()='queryResponse']/*/*[local-name()='routingServerGroup']"/>
  425. </param>
  426. <param name="routingServerGroup">
  427. <xts:queryValue select="/root/routing/*[local-name()='queryResponse']/*/*[local-name()='routingServerGroup']"/>
  428. </param>
  429. </xts:append>
  430. <xts:delete select="/root/routing"/>
  431. </xts:sequence>
  432. </xsl:otherwise>
  433. </xsl:choose>
  434. </xsl:template>
  435. </xsl:stylesheet>
  436. </xts:block>
  437. <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
  438. 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')]">
  439. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  440. <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">
  441. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  442. <xsl:key name="env-param" match="/root/env/param" use="@name"/>
  443. <xsl:template match="/root">
  444. <xts:sequence>
  445. <xts:append select="/root">
  446. <response>
  447. <send:request provider="warp" option="xml-multipart" outputHeader="true" responseEnvelope="true" soapAction="http://www.ibm.com/xmlns/prod/cognos/reportService/201610/">
  448. <convertDrillThroughContext xmlns="http://developer.cognos.com/schemas/reportService/1">
  449. <inputContext xsi:type="bus:xmlEncodedXML">
  450. <xsl:value-of select="/root/*[local-name()='ConverterInput']"/>
  451. </inputContext>
  452. <parameterValues SOAP-ENC:arrayType="bus:parameterValue[]" xsi:type="SOAP-ENC:Array">
  453. <!-- credential parameters (NOTE: extractCredential (in drillthrough.xslt) isn't valid (or necessary) for selection context. Its expecting parameters under sourceContextValues tag!) -->
  454. <xsl:copy-of select="*[local-name()='drillthruContext']/*[local-name()='executionParameters']/*[local-name()='parameters']/child::*"/>
  455. </parameterValues>
  456. <options xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:option[]">
  457. <item xmlns="" xsi:type="bus:drillThroughOptionBoolean">
  458. <bus:name xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xsi:type="bus:drillThroughOptionEnum">includeDataSourceActions</bus:name>
  459. <bus:value xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xsi:type="xs:boolean">true</bus:value>
  460. </item>
  461. <item xmlns="" xsi:type="bus:drillThroughOptionBoolean">
  462. <bus:name xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xsi:type="bus:drillThroughOptionEnum">includeDrillThroughPaths</bus:name>
  463. <bus:value xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xsi:type="xs:boolean">true</bus:value>
  464. </item>
  465. <item xsi:type="bus:runOptionString">
  466. <bus:name xsi:type="bus:runOptionEnum">promptFormat</bus:name>
  467. <bus:value xsi:type="xsd:string">HTMLFragment</bus:value>
  468. </item>
  469. <item xsi:type="bus:runOptionAnyURI">
  470. <bus:name xsi:type="bus:runOptionEnum">xslURL</bus:name>
  471. <bus:value xsi:type="xsd:string">sa.xsl</bus:value>
  472. </item>
  473. </options>
  474. </convertDrillThroughContext>
  475. </send:request>
  476. </response>
  477. </xts:append>
  478. </xts:sequence>
  479. </xsl:template>
  480. </xsl:stylesheet>
  481. </xts:block>
  482. <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
  483. (/root//*[local-name() = 'Envelope']/*[local-name() = 'Body']//*[local-name() = 'status'] = 'working' or
  484. /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) -->
  485. <xts:logicsheet path="logicsheets/portal.xsl"/>
  486. <xts:logicsheet path="logicsheets/presentation/dialog/framework.xsl"/>
  487. <xts:logicsheet path="logicsheets/presentation/layout.xsl"/>
  488. <xts:logicsheet path="logicsheets/presentation/controls/framework.xsl"/>
  489. <xts:logicsheet path="logicsheets/presentation/controls/presentation.xsl"/>
  490. <xts:logicsheet path="logicsheets/presentation/dialog/presentation.xsl"/>
  491. <xts:logicsheet path="logicsheets/validation.xslt"/>
  492. <xts:logicsheet path="logicsheets/presentation/touch_up.xslt"/>
  493. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  494. <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">
  495. <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no"/>
  496. <pf:variables/>
  497. <pf:serialize-xml/>
  498. <xsl:template match="/">
  499. <xsl:variable name="contextid">
  500. <xsl:value-of select="xtsext:cafaction(concat('get_contextid_setcomponent_es_setpassportid_', $passport), '')"/>
  501. </xsl:variable>
  502. <xsl:variable name="status">
  503. <xsl:value-of select="string(/root//*[local-name() = 'Envelope']/*[local-name() = 'Body']//*[local-name() = 'status'])"/>
  504. </xsl:variable>
  505. <xsl:variable name="method">
  506. <xsl:choose>
  507. <xsl:when test="$status = 'working' or $status = 'stillWorking'">
  508. <xsl:value-of select="'wait'"/>
  509. </xsl:when>
  510. <xsl:otherwise>
  511. <xsl:value-of select="'wait'"/>
  512. </xsl:otherwise>
  513. </xsl:choose>
  514. </xsl:variable>
  515. <xsl:variable name="tracking">
  516. <xsl:for-each select="/root//*[local-name() = 'Envelope']/*[local-name() = 'Header']/*[local-name() = 'biBusHeader']/*[local-name() = 'tracking']/*[local-name() = 'conversationContext']">
  517. <xsl:variable name="markup-track">
  518. <xsl:call-template name="serialize-xml">
  519. <xsl:with-param name="node-set" select="."/>
  520. </xsl:call-template>
  521. </xsl:variable>
  522. <xsl:value-of select="string($markup-track)"/>
  523. </xsl:for-each>
  524. </xsl:variable>
  525. <xsl:variable name="conversation">
  526. <xsl:call-template name="serialize-xml">
  527. <xsl:with-param name="node-set" select="/root//*[local-name() = 'Envelope']/*[local-name() = 'Body']/*/*/*[local-name() = 'primaryRequest']/*"/>
  528. </xsl:call-template>
  529. </xsl:variable>
  530. <form name="formWarpRequest" id="formWarpRequest" method="POST" action="{$gateway}" style="margin:0px;height:100%;">
  531. <input type="hidden" name="ui.action">
  532. <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='ui.action']"/></xsl:attribute>
  533. </input>
  534. <input type="hidden" name="m" value="portal/goto2.xts"/>
  535. <input type="hidden" name="b_action" value="xts.run"/>
  536. <input type="hidden" name="inlineSpec" value=""/>
  537. <input type="hidden" name="conversation" value=""/>
  538. <input type="hidden" name="drillContext"><xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='drillContext']"/></xsl:attribute></input>
  539. <input type="hidden" name="tracking" value=""/>
  540. <input type="hidden" name="ref" value="{/root/env/param[@name='ref']}"/>
  541. <input type="hidden" name="modeledDrillthru">
  542. <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='modeledDrillthru']"/></xsl:attribute>
  543. </input>
  544. <input type="hidden" name="executionParameters">
  545. <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='executionParameters']"/></xsl:attribute>
  546. </input>
  547. <input type="hidden" name="mobileLaunch">
  548. <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='mobileLaunch']"/></xsl:attribute>
  549. </input>
  550. <input type="hidden" name="authoredDrillthru">
  551. <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='authoredDrillthru']"/></xsl:attribute>
  552. </input>
  553. <!-- 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 -->
  554. <xsl:if test="string(/root/env/param[@name='lang']) != ''">
  555. <input type="hidden" name="lang" value="{string(/root/env/param[@name='lang'])}"/>
  556. </xsl:if>
  557. <!--if customForm is passed, Add to a wait request -->
  558. <!--xsl:if test="string(/root/env/param[@name='customForm']) != ''"-->
  559. <input type="hidden" name="customForm"><xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='customForm']"/></xsl:attribute></input>
  560. <!--/xsl:if-->
  561. <xsl:if test="$contextid!=''">
  562. <input type="hidden" name="cafcontextid">
  563. <xsl:attribute name="value"><xsl:value-of select="$contextid"/></xsl:attribute>
  564. </input>
  565. </xsl:if>
  566. <input type="hidden" name="errURL">
  567. <xsl:variable name="gotoerror-url">
  568. <xsl:value-of select="$gateway"/>?b_action=xts.run&amp;m=portal/goto2.xts&amp;gotoerror<xsl:text/>
  569. </xsl:variable>
  570. <xsl:attribute name="value"><xsl:value-of select="$gotoerror-url"/></xsl:attribute>
  571. </input>
  572. <xsl:if test="/root/env/param[@name='directLaunch']='true'">
  573. <input type="hidden" name="directLaunch" value="true"/>
  574. </xsl:if>
  575. </form>
  576. <script language="javascript">
  577. var method = "<xsl:value-of select="$method"/>";
  578. var tracking = "<xsl:value-of select="xtsext:cafaction(concat('sign_wrap_setpassportid_', $passport), xtsext:web64encode(string($tracking), true()))"/>";
  579. var conversation = "<xsl:value-of select="xtsext:cafaction(concat('sign_wrap_setpassportid_', $passport), xtsext:web64encode(string($conversation), true()))"/>";
  580. document.formWarpRequest["ui.action"].value = method;
  581. document.formWarpRequest.tracking.value = tracking;
  582. document.formWarpRequest.conversation.value = conversation;
  583. document.formWarpRequest.submit();
  584. if (document.progress)
  585. setTimeout('document.progress.src="<xsl:value-of select="xtsext:javascriptencode(string($brand_images))"/>progress.gif"', 1);
  586. </script>
  587. </xsl:template>
  588. </xsl:stylesheet>
  589. </xts:block>
  590. <!-- BLOCK: saveSelectionContextFromConverter -->
  591. <!-- PURPOSE: Save the selection context as /root/selectionContext. -->
  592. <!-- TODO: Currently, the block also produces the parameter values for getDrillThroughPaths....this will soon be removed -->
  593. <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
  594. not(string(/root/env/param[@name='ui.action'])='back')]">
  595. <xts:logicsheet path="logicsheets/portal.xsl"/>
  596. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  597. <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">
  598. <pf:variables/>
  599. <pf:serialize-xml/>
  600. <xsl:template match="/root">
  601. <xts:sequence>
  602. <xts:append>
  603. <selectionContext>
  604. <xsl:value-of select="/root/response//*[local-name()='context']" disable-output-escaping="no"/>
  605. </selectionContext>
  606. <selectionContextNodeTree>
  607. <xsl:value-of select="/root/response//*[local-name()='context']" disable-output-escaping="yes"/>
  608. </selectionContextNodeTree>
  609. </xts:append>
  610. <!-- Save parameters for PowerPlay Studio as a source-->
  611. <xsl:if test="/root/response//*[local-name()='parameters']">
  612. <xts:append select="/root/drillthruContext">
  613. <executionParameters>
  614. <xsl:copy-of select="*[local-name()='response']//*[local-name()='parameters']"/>
  615. </executionParameters>
  616. </xts:append>
  617. </xsl:if>
  618. <xts:delete select="/root/*[local-name()='response']"/>
  619. <!-- There's a response, so clear the wait status -->
  620. <xsl:if test="/root/response//*[local-name()='context'] and string(/root/env/param[@name='ui.action'])='wait'">
  621. <xts:delete select="/root/env/param[@name='ui.action']"/>
  622. </xsl:if>
  623. </xts:sequence>
  624. </xsl:template>
  625. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  626. </xsl:stylesheet>
  627. </xts:block>
  628. <!--Added an additional condition to check drillContext as selection context-->
  629. <xts:block id="getContent" processor="XSLT" type="exec" dependency="getRoutingServerContent packageBase get-object decodeInputContextParams drillContextVar_to_SelectionContext_or_Converter saveSelectionContextFromConverter secondary-request" mandatory="false"
  630. condition=".[(/root/drillthruContext/*[local-name()='modeledDrillthru'] or root/env/param[@name='drillContext']!='' or root/env/param[@name='modeledDrillthru']) and
  631. 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">
  632. <xts:logicsheet path="logicsheets/portal.xsl"/>
  633. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  634. <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/"
  635. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  636. xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  637. xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
  638. xmlns:rns1="http://developer.cognos.com/schemas/reportService/1"
  639. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  640. xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
  641. xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
  642. xmlns:xs="http://www.w3.org/2001/XMLSchema">
  643. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  644. <xsl:key name="env-param" match="/root/env/param" use="@name"/>
  645. <pf:variables/>
  646. <pf:serialize-xml/>
  647. <xsl:template match="/root">
  648. <xts:sequence>
  649. <xts:append select="/root">
  650. <response>
  651. <send:request provider="warp" option="xml-multipart" outputHeader="true" responseEnvelope="true" soapAction="http://www.ibm.com/xmlns/prod/cognos/reportService/201610/">
  652. <!-- MARK: findDrillThroughPaths does not require the modeledDrillThrough context....it requires the selection Context option -->
  653. <!--xsl:variable name="context" select="drillthruContext/modeledDrillthru/context/*/child::*"/-->
  654. <xsl:variable name="objpath">
  655. <xsl:choose>
  656. <xsl:when test="string(/root/env/param[@name='objpath'])!=''">
  657. <xsl:value-of select="/root/env/param[@name='objpath']"/>
  658. </xsl:when>
  659. <xsl:when test="/root/packageBase//*[local-name()='parent']//*[local-name()='searchPath']!=''">
  660. <xsl:value-of select="/root/packageBase//*[local-name()='parent']//*[local-name()='searchPath']"/>
  661. </xsl:when>
  662. <xsl:when test="/root/source/*[local-name()='queryResponse']/*/*[local-name()='metadataModelPackage']/*/*[local-name()='searchPath']!=''">
  663. <xsl:value-of select="/root/source/*[local-name()='queryResponse']/*/*[local-name()='metadataModelPackage']/*/*[local-name()='searchPath']"/>
  664. </xsl:when>
  665. <xsl:when test="/root/source/*[local-name()='queryResponse']/*/*[local-name()='package']!=''">
  666. <xsl:value-of select="/root/source/*[local-name()='queryResponse']/*/*[local-name()='package']"/>
  667. </xsl:when>
  668. <xsl:when test="/root/packageBase/*[local-name()='queryResponse']/*/*[local-name()='package']!=''">
  669. <xsl:value-of select="/root/source/*[local-name()='queryResponse']/*/*[local-name()='package']"/>
  670. </xsl:when>
  671. <xsl:when test="/root/source/*[local-name()='queryResponse']/*/*[local-name()='ancestors']/*[local-name()='ancestorInfo'][./*[local-name()='objectClass']='package']/*[local-name()='searchPath']!=''">
  672. <xsl:value-of select="/root/source/*[local-name()='queryResponse']/*/*[local-name()='ancestors']/*[local-name()='ancestorInfo'][./*[local-name()='objectClass']='package']/*[local-name()='searchPath']"/>
  673. </xsl:when>
  674. </xsl:choose>
  675. </xsl:variable>
  676. <findDrillThroughPaths xmlns="http://developer.cognos.com/schemas/reportService/1">
  677. <objectPath xsi:type="bus:searchPathSingleObject"><xsl:value-of select="$objpath"/></objectPath>
  678. <!-- MARK: parameterValues are CREDENTIALS ONLY (see the selectionContext option for scoping parameters) -->
  679. <parameterValues SOAP-ENC:arrayType="bus:parameterValue[]" xsi:type="SOAP-ENC:Array">
  680. <!-- credential parameters (NOTE: extractCredential (in drillthrough.xslt) isn't valid (or necessary) for selection context. Its expecting parameters under sourceContextValues tag!) -->
  681. <!-- 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-->
  682. <xsl:copy-of select="/root/*[local-name()='drillthruContext']/*[local-name()='executionParameters']/*[local-name()='parameterValues']/child::*"/>
  683. <xsl:copy-of select="/root/*[local-name()='drillthruContext']/*[local-name()='executionParameters']/*[local-name()='parameters']/child::*"/>
  684. </parameterValues>
  685. <options xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:option[]">
  686. <!-- Pass in the selectionContext as an option -->
  687. <item xsi:type="bus:drillThroughOptionXMLEncodedXML">
  688. <bus:name xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xsi:type="bus:drillThroughOptionEnum">selectionContext</bus:name>
  689. <bus:value xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xsi:type="bus:xmlEncodedXML">
  690. <xsl:value-of select="/root/selectionContext"/>
  691. </bus:value>
  692. </item>
  693. <item xmlns="" xsi:type="bus:drillThroughOptionBoolean">
  694. <bus:name xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xsi:type="bus:drillThroughOptionEnum">includeDataSourceActions</bus:name>
  695. <bus:value xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xsi:type="xs:boolean">true</bus:value>
  696. </item>
  697. <item xmlns="" xsi:type="bus:drillThroughOptionBoolean">
  698. <bus:name xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xsi:type="bus:drillThroughOptionEnum">includeDrillThroughPaths</bus:name>
  699. <bus:value xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xsi:type="xs:boolean">true</bus:value>
  700. </item>
  701. <item xsi:type="bus:runOptionString">
  702. <bus:name xsi:type="bus:runOptionEnum">promptFormat</bus:name>
  703. <bus:value xsi:type="xsd:string">HTMLFragment</bus:value>
  704. </item>
  705. <item xsi:type="bus:runOptionAnyURI">
  706. <bus:name xsi:type="bus:runOptionEnum">xslURL</bus:name>
  707. <bus:value xsi:type="xsd:string">sa.xsl</bus:value>
  708. </item>
  709. </options>
  710. </findDrillThroughPaths>
  711. </send:request>
  712. </response>
  713. </xts:append>
  714. </xts:sequence>
  715. </xsl:template>
  716. </xsl:stylesheet>
  717. </xts:block>
  718. <xts:block id="getOutput" dependency="getContent secondary-request" type="exec" mode="interpret" processor="XSLT" mandatory="false"
  719. condition=".[/root//*[local-name()='Envelope']/*[local-name()='Body']/*//*[local-name() = 'status'] = 'responseReady']" nodelist="header, ,http, env, response, cookies">
  720. <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">
  721. <xsl:output method="xml"/>
  722. <xsl:key name="env-param" match="/root/env/param" use="@name"/>
  723. <xsl:template match="/root">
  724. <xts:sequence>
  725. <xts:append>
  726. <affinity>absolute</affinity>
  727. </xts:append>
  728. </xts:sequence>
  729. <xts:sequence>
  730. <xts:replace select="/root/response">
  731. <response>
  732. <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">
  733. <SOAP-ENV:Envelope>
  734. <SOAP-ENV:Header>
  735. <bus:biBusHeader xsi:type="bus:biBusHeader" xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  736. <bus:tracking>
  737. <xsl:copy-of select="/root//*[local-name() = 'Envelope']/*[local-name() = 'Header']/*[local-name() = 'biBusHeader']/*[local-name() = 'tracking']/*[local-name() = 'conversationContext']"/>
  738. </bus:tracking>
  739. <xsl:copy-of select="/root/header/bus:biBusHeader/*[local-name()!='tracking']"/>
  740. </bus:biBusHeader>
  741. </SOAP-ENV:Header>
  742. <SOAP-ENV:Body>
  743. <xsl:element name="getOutput" namespace="http://developer.cognos.com/schemas/reportService/1">
  744. <bus:conversation xsi:type="bus:asynchRequest" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:nil="true"/>
  745. <bus:parameterValues xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parameterValue[]" xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"/>
  746. <bus:options xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:option[]" xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"/>
  747. </xsl:element>
  748. </SOAP-ENV:Body>
  749. </SOAP-ENV:Envelope>
  750. </xts:request>
  751. </response>
  752. </xts:replace>
  753. </xts:sequence>
  754. </xsl:template>
  755. <xsl:template match="*">
  756. <xsl:copy>
  757. <xsl:copy-of select="@*"/>
  758. <xsl:apply-templates/>
  759. </xsl:copy>
  760. </xsl:template>
  761. </xsl:stylesheet>
  762. </xts:block>
  763. <xts:block id="polling_getDrillThroughPaths_request" mode="output" processor="XSLT" type="exec" mimeType="text/html" mandatory="false"
  764. dependency="render"
  765. condition=".[not(/root/env/param[@name='redirect']) and not(/root/env/param[@name='debugTarget']) and
  766. (/root//*[local-name() = 'Envelope']/*[local-name() = 'Body']//*[local-name() = 'status'] = 'working' or
  767. /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) -->
  768. <xts:logicsheet path="logicsheets/portal.xsl"/>
  769. <xts:logicsheet path="logicsheets/presentation/dialog/framework.xsl"/>
  770. <xts:logicsheet path="logicsheets/presentation/layout.xsl"/>
  771. <xts:logicsheet path="logicsheets/presentation/controls/framework.xsl"/>
  772. <xts:logicsheet path="logicsheets/presentation/controls/presentation.xsl"/>
  773. <xts:logicsheet path="logicsheets/presentation/dialog/presentation.xsl"/>
  774. <xts:logicsheet path="logicsheets/validation.xslt"/>
  775. <xts:logicsheet path="logicsheets/presentation/touch_up.xslt"/>
  776. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  777. <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/"
  778. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  779. xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  780. xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
  781. xmlns:rns1="http://developer.cognos.com/schemas/reportService/1"
  782. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  783. xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
  784. xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
  785. xmlns:dp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/presentation/"
  786. xmlns:lyt="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/layout/"
  787. xmlns:df="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/framework/"
  788. xmlns:cf="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/framework/"
  789. xmlns:cp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/presentation/"
  790. xmlns:xs="http://www.w3.org/2001/XMLSchema">
  791. <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no"/>
  792. <pf:variables/>
  793. <pf:serialize-xml/>
  794. <xsl:template match="/">
  795. <xsl:variable name="contextid">
  796. <xsl:value-of select="xtsext:cafaction(concat('get_contextid_setcomponent_es_setpassportid_', $passport), '')"/>
  797. </xsl:variable>
  798. <xsl:variable name="status">
  799. <xsl:value-of select="string(/root//*[local-name() = 'Envelope']/*[local-name() = 'Body']//*[local-name() = 'status'])"/>
  800. </xsl:variable>
  801. <xsl:variable name="method">
  802. <xsl:choose>
  803. <xsl:when test="$status = 'working' or $status = 'stillWorking'">
  804. <xsl:value-of select="'wait'"/>
  805. </xsl:when>
  806. <xsl:otherwise>
  807. <xsl:value-of select="'wait'"/>
  808. </xsl:otherwise>
  809. </xsl:choose>
  810. </xsl:variable>
  811. <xsl:variable name="tracking">
  812. <xsl:for-each select="/root//*[local-name() = 'Envelope']/*[local-name() = 'Header']/*[local-name() = 'biBusHeader']/*[local-name() = 'tracking']/*[local-name() = 'conversationContext']">
  813. <xsl:variable name="markup-track">
  814. <xsl:call-template name="serialize-xml">
  815. <xsl:with-param name="node-set" select="."/>
  816. </xsl:call-template>
  817. </xsl:variable>
  818. <xsl:value-of select="string($markup-track)"/>
  819. </xsl:for-each>
  820. </xsl:variable>
  821. <xsl:variable name="conversation">
  822. <xsl:call-template name="serialize-xml">
  823. <xsl:with-param name="node-set" select="/root//*[local-name() = 'Envelope']/*[local-name() = 'Body']/*/*/*[local-name() = 'primaryRequest']/*"/>
  824. </xsl:call-template>
  825. </xsl:variable>
  826. <form name="formWarpRequest" id="formWarpRequest" method="POST" action="{$gateway}" style="margin:0px;height:100%;">
  827. <input type="hidden" name="ui.action">
  828. <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='ui.action']"/></xsl:attribute>
  829. </input>
  830. <input type="hidden" name="m" value="portal/goto2.xts"/>
  831. <input type="hidden" name="b_action" value="xts.run"/>
  832. <input type="hidden" name="inlineSpec" value=""/>
  833. <input type="hidden" name="conversation" value=""/>
  834. <input type="hidden" name="tracking" value=""/>
  835. <input type="hidden" name="ref" value="{/root/env/param[@name='ref']}"/>
  836. <input type="hidden" name="modeledDrillthru"><xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='modeledDrillthru']"/></xsl:attribute></input>
  837. <xsl:choose>
  838. <xsl:when test="/root/env/param[@name='executionParameters'] and /root/env/param[@name='executionParameters'] != ''">
  839. <input type="hidden" name="executionParameters">
  840. <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='executionParameters']"/></xsl:attribute>
  841. </input>
  842. </xsl:when>
  843. <xsl:when test="/root/env/param[@name='encExecutionParameters'] and /root/env/param[@name='encExecutionParameters'] != ''">
  844. <input type="hidden" name="encExecutionParameters">
  845. <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='encExecutionParameters']"/></xsl:attribute>
  846. </input>
  847. </xsl:when>
  848. </xsl:choose>
  849. <xsl:if test="/root/env/param[@name='mobileLaunch'] and /root/env/param[@name='mobileLaunch'] != ''">
  850. <input type="hidden" name="mobileLaunch">
  851. <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='mobileLaunch']"/></xsl:attribute>
  852. </input>
  853. </xsl:if>
  854. <input type="hidden" name="drillContext"><xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='drillContext']"/></xsl:attribute></input>
  855. <input type="hidden" name="selectionContext"><xsl:attribute name="value"><xsl:value-of select="/root/selectionContext"/></xsl:attribute></input>
  856. <input type="hidden" name="authoredDrillthru">
  857. <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='authoredDrillthru']"/></xsl:attribute>
  858. </input>
  859. <!-- 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 -->
  860. <xsl:if test="string(/root/env/param[@name='lang']) != ''">
  861. <input type="hidden" name="lang" value="{string(/root/env/param[@name='lang'])}"/>
  862. </xsl:if>
  863. <xsl:if test="$contextid!=''">
  864. <input type="hidden" name="cafcontextid">
  865. <xsl:attribute name="value"><xsl:value-of select="$contextid"/></xsl:attribute>
  866. </input>
  867. </xsl:if>
  868. <input type="hidden" name="errURL">
  869. <xsl:variable name="gotoerror-url">
  870. <xsl:value-of select="$gateway"/>?b_action=xts.run&amp;m=portal/goto2.xts&amp;gotoerror<xsl:text/>
  871. </xsl:variable>
  872. <xsl:attribute name="value"><xsl:value-of select="$gotoerror-url"/></xsl:attribute>
  873. </input>
  874. <xsl:if test="/root/env/param[@name='directLaunch']='true'">
  875. <input type="hidden" name="directLaunch" value="true"/>
  876. </xsl:if>
  877. </form>
  878. <script language="javascript">
  879. var method = "<xsl:value-of select="$method"/>";
  880. var tracking = "<xsl:value-of select="xtsext:cafaction(concat('sign_wrap_setpassportid_', $passport), xtsext:web64encode(string($tracking), true()))"/>";
  881. var conversation = "<xsl:value-of select="xtsext:cafaction(concat('sign_wrap_setpassportid_', $passport), xtsext:web64encode(string($conversation), true()))"/>";
  882. document.formWarpRequest["ui.action"].value = method;
  883. document.formWarpRequest.tracking.value = tracking;
  884. document.formWarpRequest.conversation.value = conversation;
  885. document.formWarpRequest.submit();
  886. setTimeout('document.progress.src="<xsl:value-of select="xtsext:javascriptencode(string($brand_images))"/>progress.gif"', 1);
  887. </script>
  888. </xsl:template>
  889. </xsl:stylesheet>
  890. </xts:block>
  891. <xts:block id="gotoerror" mode="output" processor="XSLT" type="exec" mimeType="text/html" mandatory="false"
  892. condition=".[/root/env/param[@name='gotoerror']]" nodelist="env">
  893. <xts:logicsheet path="logicsheets/portal.xsl"/>
  894. <xts:logicsheet path="logicsheets/presentation/dialog/framework.xsl"/>
  895. <xts:logicsheet path="logicsheets/presentation/layout.xsl"/>
  896. <xts:logicsheet path="logicsheets/presentation/controls/framework.xsl"/>
  897. <xts:logicsheet path="logicsheets/presentation/controls/presentation.xsl"/>
  898. <xts:logicsheet path="logicsheets/presentation/dialog/presentation.xsl"/>
  899. <xts:logicsheet path="logicsheets/validation.xslt"/>
  900. <xts:logicsheet path="logicsheets/presentation/touch_up.xslt"/>
  901. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  902. <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/"
  903. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  904. xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  905. xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
  906. xmlns:rns1="http://developer.cognos.com/schemas/reportService/1"
  907. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  908. xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
  909. xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
  910. xmlns:dp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/presentation/"
  911. xmlns:lyt="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/layout/"
  912. xmlns:df="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/framework/"
  913. xmlns:cf="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/framework/"
  914. xmlns:cp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/presentation/"
  915. xmlns:xs="http://www.w3.org/2001/XMLSchema">
  916. <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no" omit-xml-declaration="yes"/>
  917. <xsl:template match="/">
  918. <xsl:text disable-output-escaping='yes'>&lt;!DOCTYPE html></xsl:text>
  919. <html>
  920. <head>
  921. <script language="javascript">
  922. function onClose() {
  923. if (window.opener != null) {
  924. window.close();
  925. }
  926. }
  927. </script>
  928. </head>
  929. <body onload="javascript:onClose();"/>
  930. </html>
  931. </xsl:template>
  932. </xsl:stylesheet>
  933. </xts:block>
  934. <xts:block id="getTargets" processor="XSLT" type="exec" dependency="getContent getOutput" mandatory="false"
  935. 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">
  936. <xts:logicsheet path="logicsheets/cm-logic.xsl"/>
  937. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  938. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
  939. xmlns:cml="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/cml/1/"
  940. xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
  941. xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
  942. xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/">
  943. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  944. <xsl:template match="/">
  945. <!-- @TODO sprint9: This block will soon be completely removed, however; the shell has been left for dependency purposes. -->
  946. </xsl:template>
  947. </xsl:stylesheet>
  948. </xts:block>
  949. <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">
  950. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  951. 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">
  952. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  953. <xsl:template match="/root">
  954. <xts:sequence>
  955. <xts:append select="/root/env">
  956. <param name="redirect"/>
  957. <param name="drillType">modeledDrillThroughPath</param>
  958. </xts:append>
  959. <xts:delete select="/root/env/param[@name='method']"/>
  960. <!-- there was a response so clear any wait status -->
  961. <xts:delete select="/root/env/param[@name='ui.action']"/>
  962. </xts:sequence>
  963. </xsl:template>
  964. </xsl:stylesheet>
  965. </xts:block>
  966. <!-- This block is used to handle prompts generated from both source and target.-->
  967. <xts:block id="prompt-page" mode="output" processor="XSLT" type="exec" mimeType="text/html" dependency="getContent getOutput getTargets runDrillPath"
  968. 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">
  969. <xts:logicsheet path="logicsheets/portal.xsl"/>
  970. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
  971. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  972. xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
  973. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt">
  974. <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no" omit-xml-declaration="yes"/>
  975. <pf:variables/>
  976. <xsl:template match="/root">
  977. <xsl:variable name="markup-tracking">
  978. <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"/>
  979. </xsl:variable>
  980. <xsl:variable name="markup-conversation">
  981. <xsl:apply-templates select="/root/*[local-name()='response']/*[local-name()='Envelope']/*[local-name()='Body']/*/*/*[local-name()='primaryRequest']/*" mode="markup"/>
  982. </xsl:variable>
  983. <xsl:variable name="contextid">
  984. <xsl:value-of select="xtsext:cafaction(concat('get_contextid_setcomponent_es_setpassportid_', $passport), '')"/>
  985. </xsl:variable>
  986. <xsl:variable name="lang">
  987. <xsl:choose>
  988. <xsl:when test="/root/env/param[@name='contentLocale']">
  989. <xsl:value-of select="string(/root/*[local-name()='contentLocale'])"/>
  990. </xsl:when>
  991. <xsl:when test="/root/env/param[@name='lang']">
  992. <xsl:value-of select="string(/root/*[local-name()='lang'])"/>
  993. </xsl:when>
  994. <xsl:otherwise>
  995. <xsl:text/>en<xsl:text/>
  996. </xsl:otherwise>
  997. </xsl:choose>
  998. </xsl:variable>
  999. <xsl:text disable-output-escaping='yes'>&lt;!DOCTYPE html></xsl:text>
  1000. <html>
  1001. <xsl:attribute name="lang"><xsl:value-of select="$lang"/></xsl:attribute>
  1002. <head>
  1003. <link rel="stylesheet" type="text/css" href="{$skin_root}/portal/default.css"/>
  1004. <link rel="stylesheet" type="text/css" href="{$skin_root}/qs/RVReport.css"/>
  1005. <script type="text/javascript">
  1006. function cancel() {
  1007. if (window.opener != null) {
  1008. window.close();
  1009. }
  1010. }
  1011. </script>
  1012. </head>
  1013. <body topmargin="3" bottommargin="0" marginheight="3" rightmargin="5" leftmargin="5" marginwidth="3" style="overflow:auto">
  1014. <form action="{$gateway}" name="formWarpRequest" id="formWarpRequest" method="post" style="height:100%;margin:0px">
  1015. <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"/>
  1016. <input type="hidden" name="b_action" value="xts.run"/>
  1017. <input type="hidden" name="m" value="portal/goto2.xts"/>
  1018. <input type="hidden" name="ui.action" value=""/>
  1019. <input type="hidden" name="run.prompt" value=""/>
  1020. <input type="hidden" name="conversation">
  1021. <xsl:attribute name="value">
  1022. <xsl:value-of select="xtsext:cafaction(concat('sign_wrap_setpassportid_', $passport), xtsext:web64encode(string($markup-conversation), true()))"/>
  1023. </xsl:attribute>
  1024. </input>
  1025. <input type="hidden" name="tracking">
  1026. <xsl:attribute name="value">
  1027. <xsl:value-of select="xtsext:cafaction(concat('sign_wrap_setpassportid_', $passport), xtsext:web64encode(string($markup-tracking), true()))"/>
  1028. </xsl:attribute>
  1029. </input>
  1030. <input type="hidden" name="inlineSpec" value=""/>
  1031. <input type="hidden" name="ref" value="{/root/env/param[@name='ref']}"/>
  1032. <input type="hidden" name="modeledDrillthru"><xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='modeledDrillthru']"/></xsl:attribute></input>
  1033. <xsl:choose>
  1034. <xsl:when test="/root/env/param[@name='executionParameters'] and /root/env/param[@name='executionParameters'] != ''">
  1035. <input type="hidden" name="executionParameters">
  1036. <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='executionParameters']"/></xsl:attribute>
  1037. </input>
  1038. </xsl:when>
  1039. <xsl:when test="/root/env/param[@name='encExecutionParameters'] and /root/env/param[@name='encExecutionParameters'] != ''">
  1040. <input type="hidden" name="encExecutionParameters">
  1041. <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='encExecutionParameters']"/></xsl:attribute>
  1042. </input>
  1043. </xsl:when>
  1044. <xsl:when test="/root/env/param[@name='mobileLaunch'] and /root/env/param[@name='mobileLaunch'] != ''">
  1045. <input type="hidden" name="mobileLaunch">
  1046. <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='mobileLaunch']"/></xsl:attribute>
  1047. </input>
  1048. </xsl:when>
  1049. </xsl:choose>
  1050. <input type="hidden" name="authoredDrillthru">
  1051. <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='authoredDrillthru']"/></xsl:attribute>
  1052. </input>
  1053. <!-- added an object path that is required by forward request -->
  1054. <input type="hidden" name="objpath" value="{/root/packageBase//*[local-name()='parent']//*[local-name()='searchPath']}"/>
  1055. <!-- 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 -->
  1056. <xsl:if test="$lang != ''">
  1057. <input type="hidden" name="lang">
  1058. <xsl:attribute name="value"><xsl:value-of select="$lang"/></xsl:attribute>
  1059. </input>
  1060. </xsl:if>
  1061. <!-- Added debugTarget or redirect that is required by forward (run) request -->
  1062. <xsl:if test="(/root/env/param[@name='debugTarget'])">
  1063. <input type="hidden" name="debugTarget" value="{string(/root/env/param[@name='debugTarget'])}"/>
  1064. </xsl:if>
  1065. <xsl:if test="(/root/env/param[@name='redirect'])">
  1066. <input type="hidden" name="redirect" value="{string(/root/env/param[@name='redirect'])}"/>
  1067. </xsl:if>
  1068. <xsl:if test="(/root/env/param[@name='mobileLaunch'])">
  1069. <input type="hidden" name="mobileLaunch" value="{string(/root/env/param[@name='mobileLaunch'])}"/>
  1070. </xsl:if>
  1071. <xsl:if test="$contextid!=''">
  1072. <input type="hidden" name="cafcontextid">
  1073. <xsl:attribute name="value"><xsl:value-of select="$contextid"/></xsl:attribute>
  1074. </input>
  1075. </xsl:if>
  1076. <input type="hidden" name="errURL">
  1077. <xsl:variable name="gotoerror-url">
  1078. <xsl:value-of select="$gateway"/>?b_action=xts.run&amp;m=portal/goto2.xts&amp;gotoerror<xsl:text/>
  1079. </xsl:variable>
  1080. <xsl:attribute name="value"><xsl:value-of select="$gotoerror-url"/></xsl:attribute>
  1081. </input>
  1082. <xsl:if test="/root/env/param[@name='directLaunch']='true'">
  1083. <input type="hidden" name="directLaunch" value="true"/>
  1084. </xsl:if>
  1085. </form>
  1086. </body>
  1087. </html>
  1088. </xsl:template>
  1089. <pf:serialize-xml/>
  1090. </xsl:stylesheet>
  1091. </xts:block>
  1092. <!-- 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 -->
  1093. <xts:block id="getAuthoredDrillThroughDetails1" mode="interpret" type="exec" processor="XSLT" mandatory="false" condition=".[root/drillthruContext/authoredDrillthru]" dependency="decodeInputContextParams">
  1094. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  1095. xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
  1096. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  1097. xmlns:xts="http://developer.cognos.com/schemas/xts/"
  1098. xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
  1099. xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  1100. xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
  1101. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  1102. exclude-result-prefixes="xsl cm xts xtsext">
  1103. <xsl:template match="/root">
  1104. <!-- Handle the authored drills, get there info -->
  1105. <xts:sequence>
  1106. <xts:append select="/root">
  1107. <authoredDrillThroughDetails>
  1108. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  1109. <xts:request href="bus://dispatcher" protocol="BUS" responseEnvelope="true" soapAction="http://www.ibm.com/xmlns/prod/cognos/contentManagerService/201610/" outputHeader="true">
  1110. <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">
  1111. <SOAP-ENV:Header>
  1112. <xsl:copy-of select="/root/header/bus:biBusHeader"/>
  1113. </SOAP-ENV:Header>
  1114. <SOAP-ENV:Body>
  1115. <cm:query xmlns:cm="http://developer.cognos.com/schemas/bibus/3/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1116. <cm:requests>
  1117. <xsl:for-each select="/root/drillthruContext/authoredDrillthru/context/member">
  1118. <!-- Step 1 of extracting member data for debugging -->
  1119. <!-- While processing members, pick the "authoredDrillRequest URL parameter out of the decoded data for each member. -->
  1120. <!-- Save memberData parallel to the member block -->
  1121. <xts:append select="/root/drillthruContext/authoredDrillthru/context'">
  1122. <memberData>
  1123. <name><xsl:value-of select="./*[local-name()='name']"/></name>
  1124. <xsl:value-of select="substring-after(xtsext:urldecode(./*[local-name()='data']), 'authoredDrill.request=')" disable-output-escaping="yes"/>
  1125. </memberData>
  1126. </xts:append>
  1127. <cm:request>
  1128. <xsl:variable name="currentName">
  1129. <xsl:value-of select="name"/>
  1130. </xsl:variable>
  1131. <search>
  1132. <xsl:value-of select="./drillThroughSearchPath"/>
  1133. </search>
  1134. <properties xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="cm:propEnum[]">
  1135. <item xsi:type="cm:propEnum">defaultScreenTip</item>
  1136. <item xsi:type="cm:propEnum">objectClass</item>
  1137. <item xsi:type="cm:propEnum">defaultName</item>
  1138. <item xsi:type="cm:propEnum">ancestors</item>
  1139. <item xsi:type="cm:propEnum">searchPath</item>
  1140. <!--added to be able to find out if a target is hidden -->
  1141. <item xsi:type="cm:propEnum">hidden</item>
  1142. </properties>
  1143. </cm:request>
  1144. </xsl:for-each>
  1145. </cm:requests>
  1146. </cm:query>
  1147. </SOAP-ENV:Body>
  1148. </SOAP-ENV:Envelope>
  1149. </xts:request>
  1150. </xts:transform>
  1151. </authoredDrillThroughDetails>
  1152. </xts:append>
  1153. </xts:sequence>
  1154. </xsl:template>
  1155. </xsl:stylesheet>
  1156. </xts:block>
  1157. <!-- PURPOSE: Step 2 of extracting authored drill parameter details for debugging. -->
  1158. <!-- For each element in memberData, produce a node tree of the authored drill source parameter assignments -->
  1159. <!-- TODO: add hasDrillThroughDebugCapability condition to this block for efficiency -->
  1160. <xts:block id="getAuthoredDrillThroughDetails" mode="interpret" type="exec" processor="XSLT" mandatory="false" condition=".[root/drillthruContext/authoredDrillthru]" dependency="getAuthoredDrillThroughDetails1">
  1161. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  1162. xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
  1163. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  1164. xmlns:xts="http://developer.cognos.com/schemas/xts/"
  1165. xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
  1166. xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  1167. xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
  1168. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  1169. exclude-result-prefixes="xsl cm xts xtsext">
  1170. <xsl:template match="/root/drillthruContext/authoredDrillthru/context/memberData/authoredDrillRequest/drillParameters">
  1171. <!-- Handle the authored drills, get there info -->
  1172. <xts:sequence>
  1173. <xsl:for-each select="./*[local-name()='param']">
  1174. <xts:append select="/root/drillthruContext/authoredDrillthru/context">
  1175. <paramNodeTree>
  1176. <xsl:attribute name="drillThruName"><xsl:value-of select="../../../name"/></xsl:attribute>
  1177. <parm name="{substring-after(@name,'_')}"/>
  1178. <xsl:value-of select="." disable-output-escaping="yes"/>
  1179. </paramNodeTree>
  1180. </xts:append>
  1181. </xsl:for-each>
  1182. </xts:sequence>
  1183. </xsl:template>
  1184. </xsl:stylesheet>
  1185. </xts:block>
  1186. <!-- TODO: PERF: Get rid of this block to cut down on the number of CM queries -->
  1187. <!-- @TODO: sprint9: This block (and its cm calls) will soon be removed...ancestry information is returned in the RSAOMDrillThroughTarget array -->
  1188. <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">
  1189. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  1190. xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
  1191. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  1192. xmlns:xts="http://developer.cognos.com/schemas/xts/"
  1193. xmlns:bus="http://developer.cognos.cmo/schemas/bibus/3/"
  1194. xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  1195. xmlns:SOAP-ENC="http://scheams.xmlsoap.org/soap/encoding/"
  1196. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  1197. exclude-result-prefixes="xsl cm xts xtsext">
  1198. <xsl:template match="/root">
  1199. <xts:sequence>
  1200. <xts:append select="/root">
  1201. <modelDrillThroughTargetDetails>
  1202. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  1203. <xts:request href="bus://dispatcher" protocol="BUS" responseEnvelope="true" soapAction="http://www.ibm.com/xmlns/prod/cognos/contentManagerService/201610/" outputHeader="true">
  1204. <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">
  1205. <SOAP-ENV:Header>
  1206. <xsl:copy-of select="/root/header/bus:biBusHeader"/>
  1207. </SOAP-ENV:Header>
  1208. <SOAP-ENV:Body>
  1209. <xsl:if test="/root/response//*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*[local-name()='item']!=''">
  1210. <cm:query xmlns:cm="http://developer.cognos.com/schemas/bibus/3/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  1211. <cm:requests>
  1212. <!-- The input to this block is now taken directly from RSAOMDetailDrillThroughTarget...no CM calls! -->
  1213. <!--xsl:for-each select="/root/*[local-name()='queryResponse']/*[local-name()='queryReply']"-->
  1214. <xsl:for-each select="/root/response//*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*[local-name()='item']">
  1215. <xsl:variable name="searchPath">
  1216. <xsl:value-of select="./*[local-name()='target']"/>
  1217. </xsl:variable>
  1218. <xsl:if test="$searchPath != ''">
  1219. <cm:request>
  1220. <!-- Not used??? xsl:variable name="targetReportName">
  1221. <xsl:value-of select="./*/*[local-name()='target']/*/*[local-name()='defaultName']"/>
  1222. </xsl:variable-->
  1223. <search>
  1224. <xsl:value-of select="xtsext:urldecode($searchPath)"/>
  1225. </search>
  1226. <properties xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="cm:propEnum[]">
  1227. <item xsi:type="cm:propEnum">ancestors</item>
  1228. <item xsi:type="cm:propEnum">executionFormat</item>
  1229. <item xsi:type="cm:propEnum">searchPath</item>
  1230. </properties>
  1231. </cm:request>
  1232. </xsl:if>
  1233. </xsl:for-each>
  1234. </cm:requests>
  1235. </cm:query>
  1236. </xsl:if>
  1237. </SOAP-ENV:Body>
  1238. </SOAP-ENV:Envelope>
  1239. </xts:request>
  1240. </xts:transform>
  1241. </modelDrillThroughTargetDetails>
  1242. </xts:append>
  1243. </xts:sequence>
  1244. </xsl:template>
  1245. </xsl:stylesheet>
  1246. </xts:block>
  1247. <xts:block id="render" mode="output" processor="XSLT" type="exec" mimeType="text/html"
  1248. dependency="getContent getOutput handleDirectLaunch getAuthoredDrillThroughDetails getModelDrillThroughDetails convertURL convertForm convertDirectAction drillContextVar_to_SelectionContext_or_Converter"
  1249. 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')]">
  1250. <xts:logicsheet path="logicsheets/portal.xsl"/>
  1251. <xts:logicsheet path="logicsheets/presentation/dialog/framework.xsl"/>
  1252. <xts:logicsheet path="logicsheets/presentation/layout.xsl"/>
  1253. <xts:logicsheet path="logicsheets/presentation/controls/framework.xsl"/>
  1254. <xts:logicsheet path="logicsheets/presentation/controls/presentation.xsl"/>
  1255. <xts:logicsheet path="logicsheets/presentation/dialog/presentation.xsl"/>
  1256. <xts:logicsheet path="logicsheets/presentation/selectionContextRenderer.xsl"/>
  1257. <xts:logicsheet path="portal/get2post.xsl"/>
  1258. <xts:logicsheet path="logicsheets/validation.xslt"/>
  1259. <xts:logicsheet path="logicsheets/presentation/touch_up.xslt"/>
  1260. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  1261. xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
  1262. xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
  1263. xmlns:s="http://developer.cognos.com/schemas/selection/1/"
  1264. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  1265. xmlns:lyt="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/layout/"
  1266. xmlns:dp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/presentation/"
  1267. xmlns:gp="http://developer.cognos.com/schemas/xts/gp"
  1268. xmlns:df="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/framework/"
  1269. xmlns:cf="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/framework/"
  1270. xmlns:cp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/presentation/"
  1271. xmlns:xts="http://developer.cognos.com/schemas/xts/"
  1272. xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
  1273. xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  1274. xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
  1275. xmlns:rns1="http://developer.cognos.com/schemas/reportService/1"
  1276. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  1277. xmlns:xtsdrillext="xalan://com.cognos.drill.ext.XTSExt"
  1278. exclude-result-prefixes="xsl cm pf xts xtsext lyt dp df cf cp">
  1279. <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no" omit-xml-declaration="yes"/>
  1280. <xsl:variable name="mname" select="'goto2.xts'"/>
  1281. <pf:variables/>
  1282. <!-- Required for popup menus -->
  1283. <cp:flyoutControl/>
  1284. <!-- Required for rendering selection context values as a table -->
  1285. <s:selectionContextRenderer/>
  1286. <xsl:template match="/root">
  1287. <xsl:variable name="browserTitle">
  1288. <xts:string id="GOTO_PAGE"></xts:string>
  1289. </xsl:variable>
  1290. <!-- 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)-->
  1291. <xsl:variable name="routingServerGroup">
  1292. <xsl:choose>
  1293. <xsl:when test="string(/root/env/param[@name='ui.routingServerGroup'])!=''">
  1294. <xsl:value-of select="/root/env/param[@name='ui.routingServerGroup']"/>
  1295. </xsl:when>
  1296. <xsl:otherwise></xsl:otherwise>
  1297. </xsl:choose>
  1298. </xsl:variable>
  1299. <!-- Initialize mobile variable -->
  1300. <xsl:variable name="mobileLaunch">
  1301. <xsl:choose>
  1302. <xsl:when test="/root/env/param[@name='mobileLaunch']">
  1303. <xsl:value-of select="/root/env/param[@name='mobileLaunch']"/>
  1304. </xsl:when>
  1305. <xsl:otherwise>
  1306. <xsl:text/>false<xsl:text/>
  1307. </xsl:otherwise>
  1308. </xsl:choose>
  1309. </xsl:variable>
  1310. <xsl:text disable-output-escaping='yes'>&lt;!DOCTYPE html></xsl:text>
  1311. <dp:page longTitle="$browserTitle">
  1312. <dp:meta>
  1313. <pf:meta/>
  1314. </dp:meta>
  1315. <dp:script>
  1316. <!-- Help system -->
  1317. <!-- If user has DrillThroughAssistantCapability help link goes to a different location -->
  1318. <xsl:choose>
  1319. <xsl:when test="($hasDrillThroughAssistantCapability)">
  1320. <pf:help context="HID_DRILL_THROUGH_DEBUG"/>
  1321. </xsl:when>
  1322. <xsl:otherwise>
  1323. <pf:help context="HID_DRILL_THROUGH_GOTO"/>
  1324. </xsl:otherwise>
  1325. </xsl:choose>
  1326. <script language="javascript">
  1327. <xsl:attribute name="src"><xsl:value-of select="$webcontent"/>/<xsl:value-of select="$app"/>/js/list.js<xsl:text/></xsl:attribute>
  1328. </script>
  1329. <xsl:if test="$mobileLaunch='true'">
  1330. <script language="javascript">
  1331. <xsl:attribute name="src"><xsl:value-of select="$gateway"/>/mobileService/mobile_interface.js<xsl:text/></xsl:attribute>
  1332. </script>
  1333. </xsl:if>
  1334. <script language="JavaScript">
  1335. function onClickDrillThrough(drillType, drillPath, executionParameters, context, selectionContext, useDynamicFilter, mobileLaunch, drillPath_form, dfextpdf)
  1336. {
  1337. var rsGoToHandler = window.opener &amp;&amp; window.opener.rsGoToHandler &amp;&amp; typeof window.opener.rsGoToHandler == 'function' ? window.opener.rsGoToHandler : null;
  1338. if (drillType == 'authoredDrillthru' &amp;&amp; rsGoToHandler)
  1339. {
  1340. <!-- Pass authored drill processing to opener window which should be the classic viewer under the cvContentView perspective -->
  1341. var idx = drillPath.indexOf('authoredDrill.request=');
  1342. if (idx >= 0) {
  1343. <!-- Extract the value of the authoredDrill.request parameter -->
  1344. var request = drillPath.substring(idx).split('=')[1].split('&amp;')[0];
  1345. <!-- Decode value including + (which javascript does not handle) -->
  1346. rsGoToHandler(drillType, decodeURIComponent(request.replace(/\+/g, ' ')));
  1347. }
  1348. window.close();
  1349. return;
  1350. }
  1351. //Use authoring perspective to handle the drill through request if available
  1352. if (dfextpdf == '1' &amp;&amp; parent !=this &amp;&amp; parent.Application &amp;&amp; typeof parent.Application.LaunchDrillTargetFromGoto2 =='function')
  1353. {
  1354. if (drillPath.indexOf('authoredDrill.request=') != -1)
  1355. {
  1356. var v_aParam = drillPath.substring(drillPath.indexOf('authoredDrill.request=')+1).split('=');
  1357. parent.Application.LaunchDrillTargetFromGoto2(decodeURIComponent(v_aParam[1]));
  1358. return;
  1359. }
  1360. }
  1361. if (drillType == 'modeledDrillThroughPath')
  1362. {
  1363. document.pform.drillPath.value = drillPath;
  1364. document.pform.executionParameters.value = executionParameters;
  1365. document.pform.context.value = context;
  1366. document.pform.drillType.value = drillType;
  1367. document.pform.selectionContext.value = selectionContext;
  1368. document.pform.useDynamicFilter.value = useDynamicFilter; //if parameter is empty, use the option specified on the drill path object.
  1369. if (rsGoToHandler) {
  1370. rsGoToHandler(drillType, document.pform);
  1371. window.close();
  1372. return;
  1373. }
  1374. document.pform.submit();
  1375. }
  1376. else
  1377. {
  1378. if (drillPath_form &amp;&amp; drillPath_form != '')
  1379. {
  1380. if (mobileLaunch == 'true')
  1381. {
  1382. mobAPI.passFormFieldsToMobile(document.forms[drillPath_form]);
  1383. }
  1384. else
  1385. {
  1386. document.forms[drillPath_form].submit();
  1387. }
  1388. }
  1389. else
  1390. {
  1391. window.location.href = drillPath;
  1392. }
  1393. }
  1394. }
  1395. <!-- @TODO: sprint9 Until we have a wizard2.xts, we have to set dynamic filtering in goto2! -->
  1396. <!-- This function is called from a temporary menu item "Run with Dynamic Filter". Its identical to -->
  1397. <!-- onClickDrillThrough except it sets the useDynamicFilter switch to true -->
  1398. function dynamicFilter(drillType, drillPath, executionParameters, context, selectionContext, mobileLaunch, drillPath_form)
  1399. {
  1400. if (drillType == 'modeledDrillThroughPath') {
  1401. document.pform.drillPath.value = drillPath;
  1402. document.pform.executionParameters.value = executionParameters;
  1403. document.pform.context.value = context;
  1404. document.pform.drillType.value = drillType;
  1405. document.pform.selectionContext.value = selectionContext;
  1406. document.pform.useDynamicFilter.value = 'true';
  1407. document.pform.submit();
  1408. }
  1409. else
  1410. {
  1411. if (drillPath_form &amp;&amp; drillPath_form != '')
  1412. {
  1413. if (mobileLaunch == 'true')
  1414. {
  1415. mobAPI.passFormFieldsToMobile(document.forms[drillPath_form]);
  1416. }
  1417. else
  1418. {
  1419. document.forms[drillPath_form].submit();
  1420. }
  1421. }
  1422. else
  1423. {
  1424. window.location.href = drillPath;
  1425. }
  1426. }
  1427. }
  1428. function onClose() {
  1429. <xsl:choose>
  1430. <xsl:when test="$mobileLaunch='true'">
  1431. mobAPI.cancel();
  1432. </xsl:when>
  1433. <xsl:otherwise>
  1434. if (window.opener != null) {
  1435. window.close();
  1436. }
  1437. </xsl:otherwise>
  1438. </xsl:choose>
  1439. }
  1440. </script>
  1441. <!--Include a JS file for implementation of popup menus -->
  1442. <script language="javascript" src="{$webcontent}/{$app}/js/CCflyoutMenu.js"></script>
  1443. <xsl:if test="($hasDrillThroughAssistantCapability)">
  1444. <script language="javascript">
  1445. //The showHideIDArray is used to toggle the status of various shown/hidden panes in the debug area.
  1446. var showHideIDArray = new Array();
  1447. showHideIDArray['idDebugInfo'] = false;
  1448. showHideIDArray['idDebugSelectionContextAdvanced'] = false;
  1449. //toggle a debug pane
  1450. function showHideDebugPane(id)
  1451. {
  1452. var oShowHideElement = document.getElementById(id);
  1453. if (showHideIDArray[id] == true)
  1454. {
  1455. oShowHideElement.style.display = 'none';
  1456. showHideIDArray[id] = false;
  1457. if(document.getElementById(id+'Arrow')){
  1458. document.getElementById(id+'Arrow').src ="<xsl:value-of select="xtsext:javascriptencode($skin_root)"/>/prompting/images/prompt_option_expand.gif";
  1459. }
  1460. }
  1461. else
  1462. {
  1463. oShowHideElement.style.display = 'block';
  1464. showHideIDArray[id] = true;
  1465. if(document.getElementById(id+'Arrow')){
  1466. document.getElementById(id+'Arrow').src ="<xsl:value-of select="xtsext:javascriptencode($skin_root)"/>/prompting/images/prompt_option_collapse.gif";
  1467. }
  1468. }
  1469. }
  1470. // Invoke to show a mapping info of a selected target
  1471. function showTargetInfo(drillType, drillPath, drillPathName, executionParameters, context, selectionContext, drillPath_form)
  1472. {
  1473. var oForm = document.forms['f'];
  1474. document.f.drillPath.value = drillPath;
  1475. document.f.drillPathName.value = drillPathName; <!--add drillpath name.-->
  1476. document.f.executionParameters.value = executionParameters;
  1477. document.f.context.value = context;
  1478. document.f.drillType.value = drillType;
  1479. document.f.selectionContext.value = selectionContext;
  1480. document.getElementById('targetIframe').style.display = "inline";
  1481. document.getElementById('targetIframe').style.overflow= "auto";
  1482. document.getElementById('targetIframe').focus();
  1483. document.f.submit();
  1484. }
  1485. </script>
  1486. </xsl:if>
  1487. </dp:script>
  1488. <form name="pform" method="post" action="{$gateway}?b_action=xts.run&amp;m={$app}/goto2.xts">
  1489. <input name="drillPath" type="hidden" value=""/>
  1490. <input name="executionParameters" type="hidden" value=""/>
  1491. <input name="mobileLaunch" type="hidden" value="{$mobileLaunch}" />
  1492. <input name="context" type="hidden" value=""/>
  1493. <input name="redirect" type="hidden" value=""/>
  1494. <input name="drillType" type="hidden" value=""/>
  1495. <input name="selectionContext" type="hidden" value=""/>
  1496. <input name="useDynamicFilter" type="hidden" value=""/>
  1497. <!-- pass the routing serverGroup to be used by runDrillPath request -->
  1498. <xsl:if test="$routingServerGroup!=''">
  1499. <input name="ui.routingServerGroup" type="hidden" value="{$routingServerGroup}"/>
  1500. </xsl:if>
  1501. </form>
  1502. <xsl:variable name="theobj" select="/root//bus:result/bus:details/*[local-name()='item']"/>
  1503. <dp:header>
  1504. <dp:title>
  1505. <xsl:value-of select="$browserTitle"/>
  1506. </dp:title>
  1507. <dp:close>
  1508. <a href="javascript:onClose()">
  1509. <dp:closeMarker/>
  1510. </a>
  1511. </dp:close>
  1512. </dp:header>
  1513. <lyt:layout style="1">
  1514. <lyt:section>
  1515. <xsl:choose>
  1516. <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'">
  1517. <div align="center" class="objectNoneFound"> <!-- TODO -->
  1518. <br/><br/>
  1519. <table width="100" border="0" cellpadding="0" cellspacing="0">
  1520. <tr>
  1521. <td valign="middle">
  1522. <img src="{$brand_images}progress.gif" width="48" height="48" border="0" name="progress" align="top"/>
  1523. </td>
  1524. <td width="20">&#160;</td>
  1525. <td class="tabletext">
  1526. <xts:string id="GOTO_LOADING"/><br/><br/>
  1527. </td>
  1528. </tr>
  1529. </table>
  1530. <br/><br/><br/><br/>
  1531. </div>
  1532. </xsl:when>
  1533. <xsl:otherwise>
  1534. <xsl:choose> <!-- Begin: this drillthrough has targets or not -->
  1535. <!-- Handle the case when there are no targets -->
  1536. <!-- @TODO: sprint9 This condition should be reviewed (need to remove paths and rework actions) -->
  1537. <xsl:when test="not(
  1538. (/root/response//*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*[local-name()='item'] != '') or
  1539. ($theobj/*[local-name()='paths'] and $theobj/*[local-name()='paths'] != '') or
  1540. ($theobj/*[local-name()='actions'] and $theobj/*[local-name()='actions'] != '') or
  1541. (/root/drillthruContext/authoredDrillthru and /root/drillthruContext/authoredDrillthru != '') or
  1542. (/root/*[local-name()='DirectActionArray']/*[local-name()='array'] != '') or
  1543. (/root/*[local-name()='URLArray']/*[local-name()='array'] != '') or
  1544. (/root/*[local-name()='FormArray']/*[local-name()='array'] != '')
  1545. ) or (/root/*[local-name()='error']/*[local-name()='badParams'])">
  1546. <dp:list>
  1547. <dp:section>
  1548. <dp:text nospace="nospace" tdClass="formLabel"><xts:string id="GOTO_AVAILABLE_LINKS"/></dp:text>
  1549. <dp:text width="100%"/>
  1550. </dp:section>
  1551. </dp:list>
  1552. <cp:table width="100%">
  1553. <cp:tableContent>
  1554. <cp:columnContent align="center" height="165px;">
  1555. <dp:list valign="middle">
  1556. <xsl:choose> <!-- Begin: CAF Error or none found -->
  1557. <xsl:when test="/root/*[local-name()='error']/*[local-name()='badParams']">
  1558. <dp:section class="objectNoneFound"><xts:string id="GOTO_CAF_ERROR_FOUND"/></dp:section>
  1559. </xsl:when>
  1560. <xsl:otherwise>
  1561. <dp:section class="objectNoneFound"><xts:string id="GOTO_NO_ITEMS_FOUND"/></dp:section>
  1562. </xsl:otherwise>
  1563. </xsl:choose> <!-- End: CAF Error or none found -->
  1564. </dp:list>
  1565. </cp:columnContent>
  1566. </cp:tableContent>
  1567. </cp:table>
  1568. </xsl:when>
  1569. <xsl:otherwise>
  1570. <!-- Render the target entries in this order: authored, modeled drill paths, modeled drill actions -->
  1571. <dp:list>
  1572. <dp:section>
  1573. <dp:text nospace="nospace" tdClass="formLabel"><xts:string id="GOTO_AVAILABLE_LINKS"/></dp:text>
  1574. </dp:section>
  1575. </dp:list>
  1576. <div name="drillpathlinks" id="drillpathlinksid" style="padding-top: 10px;">
  1577. <xsl:text/><!-- Render authored Drillthrough entries --><xsl:text/>
  1578. <xsl:text/><table width="100%" cellspacing="0" cellpadding="2" border="0" class="cctable">
  1579. <thead id="AuthoredDrillthroughEntriesHeader">
  1580. <tr class="tableHeader">
  1581. <th id="reportType" width="16" valign="center" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px;" class="tableTitle"></th>
  1582. <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>
  1583. <xts:string id="GOTO_NAME"/>
  1584. </th>
  1585. <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>
  1586. <xts:string id="GOTO_TARGET_REPORT"/>
  1587. </th>
  1588. </tr>
  1589. </thead>
  1590. <tbody>
  1591. <!--
  1592. // TODO: sprint4-WO2374 (details)
  1593. -->
  1594. <!-- render custom urls -->
  1595. <xsl:if test="/root/*[local-name()='URLArray']/*[local-name()='array'] != ''">
  1596. <xsl:for-each select="/root/*[local-name()='URLArray']/*[local-name()='array']">
  1597. <tr style="height: 1px;">
  1598. <td headers="reportType" nowrap="" height="10" class="tabletext"><img src="{*[local-name()='icon']}" border="0" scope="row" alt="{*[local-name()='name']}"/></td>
  1599. <td headers="reportName" width="50%" nowrap="" height="10" class="tabletext">
  1600. <a href="{*[local-name()='url']}">
  1601. <!-- Enforce the Base Text Direction (BTD) by calling the xtsext:enforceBTD Java method -->
  1602. <xsl:value-of select="xtsext:enforceBTD(string(*[local-name()='name']), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  1603. </a>
  1604. </td>
  1605. <td headers="targetReport" width="50%" nowrap="" height="10" class="tabletext">
  1606. <xsl:value-of select="xtsext:enforceBTD(string(*[local-name()='description']), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  1607. </td>
  1608. </tr>
  1609. </xsl:for-each>
  1610. </xsl:if>
  1611. <!--
  1612. // TODO: sprint4-WO2374 (details)
  1613. -->
  1614. <!-- render custom forms -->
  1615. <xsl:if test="/root/*[local-name()='FormArray']/*[local-name()='array'] != ''">
  1616. <xsl:for-each select="/root/*[local-name()='FormArray']/*[local-name()='array']">
  1617. <xsl:variable name="formId" select="concat('f', generate-id(.))"/>
  1618. <tr style="height: 1px;">
  1619. <td headers="reportType" nowrap="" height="10" class="tabletext"><img src="{*[local-name()='icon']}" border="0" scope="row" alt="{*[local-name()='name']}"/></td>
  1620. <td headers="reportName" style="padding-left: 2px;" width="50%" nowrap="" height="10" class="tabletext">
  1621. <a href="javascript:document.forms['{$formId}'].submit()">
  1622. <xsl:value-of select="xtsext:enforceBTD(string(*[local-name()='name']), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  1623. </a>
  1624. </td>
  1625. <td headers="targetReport" width="50%" nowrap="" height="10" class="tabletext">
  1626. <xsl:value-of select="xtsext:enforceBTD(string(*[local-name()='description']), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  1627. </td>
  1628. </tr>
  1629. <form name="{$formId}" action="{*[local-name()='fAction']}" method="{*[local-name()='fMethod']}" target="{*[local-name()='fTarget']}">
  1630. <xsl:for-each select="./*[local-name()='fElements']">
  1631. <input type="hidden" name="{*[local-name()='fName']}" value="{*[local-name()='fValue']}"/>
  1632. </xsl:for-each>
  1633. </form>
  1634. </xsl:for-each>
  1635. </xsl:if>
  1636. <!--
  1637. // TODO: sprint3-WO2374 (details)
  1638. // Render dynamic drill through from PowerPlay -->
  1639. <xsl:if test="/root/*[local-name()='DirectActionArray']/*[local-name()='array'] != ''">
  1640. <xsl:for-each select="/root/*[local-name()='DirectActionArray']/*[local-name()='array']">
  1641. <tr style="height: 1px;">
  1642. <td headers="reportType" nowrap="" height="10" class="tabletext"><img src="{$webRoot}/qs/images/filter.gif" border="0" scope="row" alt="{*[local-name()='name']}"/></td>
  1643. <td headers="reportName" style="padding-left: 2px;" width="50%" nowrap="" height="10" class="tabletext">
  1644. <a href="javascript:document.forms['fDrill{position()}'].submit()">
  1645. <xsl:value-of select="xtsext:enforceBTD(string(*[local-name()='name']), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  1646. </a>
  1647. </td>
  1648. <td headers="targetReport" width="50%" nowrap="" height="10" class="tabletext">Dynamic Filter</td>
  1649. </tr>
  1650. <form name="fDrill{position()}" method="post">
  1651. <input type="hidden" name="b_action" value="cognosViewer"/>
  1652. <input type="hidden" name="ui.action" value="run"/>
  1653. <input type="hidden" name="ui.object" value="{*[local-name()='targetReport']}"/>
  1654. <input type="hidden" name="ui.name" value="{*[local-name()='name']}"/>
  1655. <input type="hidden" name="run.prompt" value="false"/>
  1656. <input type="hidden" name="specification.editSpecification" value="{xtsdrillext:convertPPFilterToC8FilterSpec(*[local-name()='filterPredicate'])}"/>
  1657. </form>
  1658. </xsl:for-each>
  1659. </xsl:if>
  1660. <!-- Render authored drill throughs -->
  1661. <xsl:if test="/root/drillthruContext/authoredDrillthru and /root/drillthruContext/authoredDrillthru != ''">
  1662. <xsl:for-each select="/root/drillthruContext/authoredDrillthru/context/member">
  1663. <xsl:variable name="searchPath">
  1664. <xsl:value-of select="./drillThroughSearchPath"/>
  1665. </xsl:variable>
  1666. <xsl:variable name="tooltip">
  1667. <xsl:value-of select="/root/*[local-name()='authoredDrillThroughDetails']/*/*[local-name()='queryReply'][./*/*[local-name()='searchPath']=$searchPath]/*/*[local-name()='defaultScreenTip']"/>
  1668. </xsl:variable>
  1669. <xsl:variable name="drillPath"><xsl:value-of select="data"/></xsl:variable>
  1670. <xsl:variable name="drillPath_form">
  1671. <xsl:value-of select="concat('drillPath_form_authored', string(position()))"/>
  1672. </xsl:variable>
  1673. <xsl:variable name="idBlockName">id<xsl:value-of select="name"/></xsl:variable>
  1674. <script language="javascript">
  1675. //The showHideIDArray is used to toggle the status of various shown/hidden panes in the debug area.
  1676. showHideIDArray['<xsl:value-of select="$idBlockName"/>'] = false;
  1677. </script>
  1678. <tr style="height: 1px;">
  1679. <td headers="reportType" nowrap="" height="10" class="tabletext" scope="row">
  1680. <xsl:choose>
  1681. <xsl:when test="./drillThroughAction='execute' or ./drillThroughAction='run' or ./drillThroughAction='reportView'">
  1682. <xsl:choose>
  1683. <xsl:when test="./*[local-name()='drillThroughFormat'] != ''">
  1684. <xsl:call-template name="pick-icon">
  1685. <xsl:with-param name="outputType" select="./*[local-name()='drillThroughFormat']"/>
  1686. </xsl:call-template>
  1687. </xsl:when>
  1688. <xsl:otherwise>
  1689. <xsl:call-template name="pick-icon">
  1690. <xsl:with-param name="outputType" select="/root/user/param[@name='format']"/>
  1691. </xsl:call-template>
  1692. </xsl:otherwise>
  1693. </xsl:choose>
  1694. <xsl:if test="./drillThroughAction='execute' or ./drillThroughAction='run'">
  1695. <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>
  1696. </xsl:if>
  1697. </xsl:when>
  1698. <xsl:when test="./drillThroughAction='editAnalysis'">
  1699. <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>
  1700. </xsl:when>
  1701. <xsl:when test="./drillThroughAction='editQuery'">
  1702. <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>
  1703. </xsl:when>
  1704. <xsl:otherwise>
  1705. <xsl:call-template name="pick-icon">
  1706. <xsl:with-param name="outputType" select="/root/user/param[@name='format']"/>
  1707. </xsl:call-template>
  1708. </xsl:otherwise>
  1709. </xsl:choose>
  1710. </td>
  1711. <td headers="reportName" style="padding-left: 2px;" width="50%" nowrap="" height="10" class="tabletext">
  1712. <!-- Generate the form for the entry -->
  1713. <xsl:variable name="action" select="substring-before($drillPath, '?')"/>
  1714. <xsl:variable name="arguments" select="substring-after($drillPath, '?')"/>
  1715. <form name="{$drillPath_form}" method="post" style="display:none">
  1716. <xsl:attribute name="action"><xsl:value-of select="$action"/></xsl:attribute>
  1717. <xsl:call-template name="getToPostConversion">
  1718. <xsl:with-param name="arguments">
  1719. <xsl:value-of select="$arguments"/>
  1720. </xsl:with-param>
  1721. </xsl:call-template>
  1722. </form>
  1723. <a>
  1724. <xsl:attribute name="href">#</xsl:attribute>
  1725. <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>
  1726. <xsl:attribute name="title">
  1727. <xsl:value-of select="xtsext:enforceBTD(string(name), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  1728. <xsl:choose>
  1729. <xsl:when test="$is-ui-rtl">
  1730. <xsl:text>&#8207; - </xsl:text>
  1731. </xsl:when>
  1732. <xsl:otherwise>
  1733. <xsl:text>&#8206; - </xsl:text>
  1734. </xsl:otherwise>
  1735. </xsl:choose>
  1736. <xsl:value-of select="xtsext:enforceBTD($tooltip, $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  1737. </xsl:attribute>
  1738. <xsl:value-of select="xtsext:enforceBTD(string(name), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  1739. </a>
  1740. <!-- put an "expander" beside each authored drill through for rendering debug source information -->
  1741. <xsl:if test="($hasDrillThroughAssistantCapability)">
  1742. <span>
  1743. <xsl:attribute name="onclick">javascript:showHideDebugPane('<xsl:value-of select="$idBlockName"/>')</xsl:attribute>
  1744. <!--A href="#"><xts:string id="DEBUG_AUTHORED_DRILL_THROUGH"/></A-->
  1745. <IMG border="0" src="{$webRoot}/common/images/spacer.gif" width="3" height="1" alt=""/>
  1746. <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>
  1747. </span>
  1748. </xsl:if>
  1749. </td>
  1750. <!--Renders authored drill target path -->
  1751. <td headers="targetReport" width="50%" nowrap="" height="10" class="tabletext">
  1752. <!--Tests if targets is hidden-->
  1753. <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'">
  1754. <xsl:for-each select="/root/*[local-name()='authoredDrillThroughDetails']/*/*[local-name()='queryReply'][./*/*[local-name()='searchPath']=$searchPath][1]/*/*[local-name()='ancestors']/*[local-name()='ancestorInfo']">
  1755. <xsl:value-of select="xtsext:enforceBTD(string(*[local-name()='title']), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  1756. <xsl:choose>
  1757. <xsl:when test="$is-ui-rtl=true()"> &#8207;&gt; </xsl:when><!-- RLM -->
  1758. <xsl:otherwise> &#8206;&gt; </xsl:otherwise><!-- LRM -->
  1759. </xsl:choose>
  1760. </xsl:for-each>
  1761. <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'))"/>
  1762. </xsl:if>
  1763. </td>
  1764. <!--End of Render Authored Drill target path -->
  1765. </tr>
  1766. <!--RenderAuthoredDrillThroughDetails: Provide authored Drill through debug info -->
  1767. <xsl:if test="($hasDrillThroughAssistantCapability) and /root/env/param[@name='authoredDrillthru'] and /root/env/param[@name='authoredDrillthru'] != ''">
  1768. <xsl:variable name="authoredDrillData"><xsl:value-of select="xtsext:urldecode(*[local-name()='data'])" disable-output-escaping="yes"/></xsl:variable>
  1769. <xsl:variable name="authoredDrillRequest"><xsl:value-of select="substring-after(xtsext:urldecode(*[local-name()='data']), 'authoredDrillRequest')"/></xsl:variable>
  1770. <xsl:variable name="authoredDrillName"><xsl:value-of select="name"/></xsl:variable>
  1771. <tr>
  1772. <!--216715 comment 1 -->
  1773. <!--For defect https://bajazz05.canlab.ibm.com:9750/ccm/resource/itemName/com.ibm.team.workitem.WorkItem/216715 -->
  1774. <!-- Set an explicit height so the browser render engine will try to honour a the minimum height for the row. This defect -->
  1775. <!-- involves setting a height for cc table in default.css modified by the customer. The browsers by default set the heights -->
  1776. <!-- 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 -->
  1777. <!-- 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 -->
  1778. <!-- set a default row height. The browser renderer then uses this invisible row at the bottom of the table to take up the remaining -->
  1779. <!-- height in the table. This technique is similar to the fix for "189822: PI84588 WRONG LOOK" made in the Presentation Service (ps) -->
  1780. <!-- made in Aug\Sept 2017. -->
  1781. <td colspan="6" height="1">
  1782. <table id="{$idBlockName}" style="display:none">
  1783. <!--xsl:for-each select="/root/*[local-name()='drillthruContext']/*[local-name()='authoredDrillthru']/*[local-name()='context']/*[local-name()='member']"-->
  1784. <tr>
  1785. <td valign="top">
  1786. <table>
  1787. <tr>
  1788. <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_AUTHORED_DRILL_THROUGH"/></td>
  1789. <td colspan="2" nowrap="" height="10" class="tabletext"><xsl:value-of select="name"/></td>
  1790. </tr>
  1791. <tr>
  1792. <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_TARGET_SEARCH_PATH"/></td>
  1793. <td nowrap="" height="10" class="tabletext"><xsl:value-of select="*[local-name()='drillThroughSearchPath']"/></td>
  1794. </tr>
  1795. <tr>
  1796. <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_ACTION"/></td>
  1797. <td nowrap="" height="10" class="tabletext"><xsl:value-of select="*[local-name()='drillThroughAction']"/></td>
  1798. </tr>
  1799. <tr>
  1800. <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_FORMAT"/></td>
  1801. <td nowrap="" height="10" class="tabletext"><xsl:value-of select="*[local-name()='drillThroughFormat']"/></td>
  1802. </tr>
  1803. </table>
  1804. </td>
  1805. <td colspan="4" class="tabletext">
  1806. <!-- currently reads: Passed Source Values: -->
  1807. <!-- -->
  1808. <!--For defect https://bajazz05.canlab.ibm.com:9750/ccm/resource/itemName/com.ibm.team.workitem.WorkItem/216715 -->
  1809. <!-- This table used to use the cctable style. For defect 216715 the cutomer modified the cctable style in a default.css. -->
  1810. <!-- Among other things, the customer added an explicit height to cctable. The 500px height made this table unusable. -->
  1811. <!-- This table is meant to expand under its corresponding 'goto' link. The existing cctable defintions in all skins define a -->
  1812. <!-- border and set a white background color. This table disables the border (border="0"). So the only thing used from -->
  1813. <!-- the default cctable was the setting for the background colour. So, remove the cctable class and add the white background -->
  1814. <!-- fixes the problem of this sub table being not displaying properly if a height is set -->
  1815. <table cellspacing="0" cellpadding="2" border="0" bgcolor="#ffffffff">
  1816. <thead id="PassedSourceValuesHeader">
  1817. <tr class="tableHeader">
  1818. <!-- Column: item name -->
  1819. <td width="20%" valign="center" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px;" class="tableTitle">
  1820. <table cellspacing="0" cellpadding="0" border="0">
  1821. <tbody><tr><td valign="top" nowrap="" class="tableTitle"><xts:string id="DEBUG_TARGET_PARAMETER_NAME"/></td></tr></tbody>
  1822. </table>
  1823. </td>
  1824. <td width="1" height="15">
  1825. <table cellspacing="0" cellpadding="0" border="0">
  1826. <tbody><tr><td class="tableHeaderDivider"><img width="1" height="15" src="{$webcontent}/images/space.gif" alt=""/></td></tr></tbody>
  1827. </table>
  1828. </td>
  1829. <!-- Column: display value -->
  1830. <td width="20%" valign="center" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px;" class="tableTitle">
  1831. <table cellspacing="0" cellpadding="0" border="0">
  1832. <tbody><tr><td valign="top" nowrap="" class="tableTitle"><xts:string id="DEBUG_DISPLAY"/></td></tr></tbody>
  1833. </table>
  1834. </td>
  1835. <td width="1" height="15">
  1836. <table cellspacing="0" cellpadding="0" border="0">
  1837. <tbody><tr><td class="tableHeaderDivider"><img width="1" height="15" src="{$webcontent}/images/space.gif" alt=""/></td></tr></tbody>
  1838. </table>
  1839. </td>
  1840. <!-- Column: use value -->
  1841. <td width="60%" valign="center" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px;" class="tableTitle">
  1842. <table cellspacing="0" cellpadding="0" border="0">
  1843. <tbody><tr><td valign="top" nowrap="" class="tableTitle" align="left"><xts:string id="DEBUG_SOURCE_VALUE"/></td></tr></tbody>
  1844. </table>
  1845. </td>
  1846. </tr>
  1847. </thead>
  1848. <xsl:for-each select="../paramNodeTree">
  1849. <xsl:if test="@drillThruName=$authoredDrillName">
  1850. <tr>
  1851. <td width="20%" height="10" class="tabletext" valign="top">
  1852. <xsl:value-of select="./parm/@name"/>
  1853. </td>
  1854. <td></td>
  1855. <!-- display value -->
  1856. <td width="20%" height="10" class="tabletext" valign="top">
  1857. <xsl:value-of select="./selectChoices/selectOption/@displayValue"/>
  1858. </td>
  1859. <td></td>
  1860. <!-- use value -->
  1861. <td witdh="60%" height="10" class="tabletext" valign="top">
  1862. <xsl:value-of select="./selectChoices/selectOption/@useValue"/>
  1863. </td>
  1864. </tr>
  1865. </xsl:if>
  1866. </xsl:for-each>
  1867. </table>
  1868. </td>
  1869. </tr>
  1870. <!--/xsl:for-each-->
  1871. </table>
  1872. </td>
  1873. </tr>
  1874. </xsl:if>
  1875. <!-- RenderAuthoredDrillThroughDetails -->
  1876. </xsl:for-each>
  1877. <!-- https://bajazz05.canlab.ibm.com:9750/ccm/resource/itemName/com.ibm.team.workitem.WorkItem/216715 -->
  1878. <!-- A comment above describes this change. (There are multiple comments for this defect. The element below -->
  1879. <!-- corresponsd to '216715 comment 1'. When an explicit height is set on a table, the browser renderer will -->
  1880. <!-- distribute the height of the table by increasing the height of each row. To combat this default behaviour -->
  1881. <!-- a minimum height for each row of 1px is set and a hidden filler row with no height specified is added at the -->
  1882. <!-- bottom of the table. The element below is the hidden filler row. -->
  1883. <tr role="presentation" aria-hidden="true">
  1884. <td/>
  1885. </tr>
  1886. </xsl:if>
  1887. <!-- add in model-based drill through rendering code here -->
  1888. <xsl:if test="/root/response//*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*[local-name()='item'][@*[local-name()='type']='bus:asynchDetailDrillThroughTarget']">
  1889. <xsl:variable name="context">
  1890. <xsl:if test="/root/drillthruContext/modeledDrillthru/context">
  1891. <xsl:call-template name="serialize-xml">
  1892. <xsl:with-param name="node-set" select="/root/drillthruContext/modeledDrillthru/context/*/child::*"/>
  1893. </xsl:call-template>
  1894. </xsl:if>
  1895. </xsl:variable>
  1896. <xsl:variable name="contextEnc">
  1897. <xsl:if test="/root/drillthruContext/modeledDrillthru/context">
  1898. <xsl:value-of select="xtsext:web64encode(string($context), true())"/>
  1899. </xsl:if>
  1900. </xsl:variable>
  1901. <!-- Define a variable containing the Selection Context as an XMLEncoded string -->
  1902. <xsl:variable name="SelectionContextRoot">
  1903. <xsl:value-of select="/root/selectionContext"/>
  1904. </xsl:variable>
  1905. <xsl:variable name="executionParameters">
  1906. <xsl:if test="/root/drillthruContext/executionParameters">
  1907. <xsl:call-template name="serialize-xml">
  1908. <xsl:with-param name="node-set" select="/root/drillthruContext/executionParameters/*/child::*"/>
  1909. </xsl:call-template>
  1910. </xsl:if>
  1911. </xsl:variable>
  1912. <xsl:variable name="executionParametersEnc">
  1913. <xsl:if test="/root/drillthruContext/executionParameters">
  1914. <xsl:value-of select="xtsext:web64encode(string($executionParameters), true())"/>
  1915. </xsl:if>
  1916. </xsl:variable>
  1917. <xsl:for-each select="/root/response//*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*[local-name()='item'][@*[local-name()='type']='bus:asynchDetailDrillThroughTarget']">
  1918. <xsl:variable name="searchPath">
  1919. <xsl:value-of select="./*[local-name()='target']"/>
  1920. </xsl:variable>
  1921. <!-- 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) -->
  1922. <xsl:variable name="action_plus_drillPathSearchPath">
  1923. <xsl:value-of select="./*[local-name()='action']"/>
  1924. </xsl:variable>
  1925. <xsl:variable name="drillPathSearchPath">
  1926. <xsl:value-of select="./*[local-name()='drillPathSearchPath']"/>
  1927. </xsl:variable>
  1928. <xsl:variable name="drillPathName">
  1929. <xsl:value-of select="./*[local-name()='drillPathName']"/>
  1930. </xsl:variable>
  1931. <xsl:variable name="tooltip">
  1932. <xsl:value-of select="./*[local-name()='drillPathScreenTip']"/>
  1933. </xsl:variable>
  1934. <tr style="height: 1px;">
  1935. <td headers="reportType" nowrap="" height="10" class="tabletext">
  1936. <xsl:variable name="mdAction">
  1937. <xsl:value-of select="./*[local-name()='action']"/>
  1938. </xsl:variable>
  1939. <xsl:variable name="mdIcon">
  1940. <xsl:value-of select="./*[local-name()='targetIconURI']"/>
  1941. </xsl:variable>
  1942. <xsl:choose>
  1943. <xsl:when test="$mdIcon!=''">
  1944. <img width="16" height="16" src="{$webRoot}/ps/portal/images/{$mdIcon}" alt="{$drillPathName}"/>
  1945. </xsl:when>
  1946. <xsl:otherwise>
  1947. <xsl:call-template name="pick-icon">
  1948. <xsl:with-param name="outputType" select="/root/user/param[@name='format']"/>
  1949. </xsl:call-template>
  1950. </xsl:otherwise>
  1951. </xsl:choose>
  1952. <xsl:if test="$mdAction='run' or $mdAction='execute'">
  1953. <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>
  1954. </xsl:if>
  1955. </td>
  1956. <!-- Add popup menus to allow a user to display mapping info for the selceted target
  1957. todo: craete string file in drill depot to add new strings.
  1958. -->
  1959. <!-- Unique ids are required to create multiple menus -->
  1960. <!-- popup menu ids-->
  1961. <xsl:variable name="menuId" select="concat('Menu', generate-id(.))"/>
  1962. <xsl:variable name="menuSpanId" select="concat('MenuSpan', generate-id(.))"/>
  1963. <!-- menu item ids -->
  1964. <xsl:variable name="menuRunId" select="concat('Run', generate-id(.))"/>
  1965. <xsl:variable name="menuDebugId" select="concat('Debug', generate-id(.))"/>
  1966. <xsl:variable name="menuRunWithDFId" select="concat('DynamicFilter', generate-id(.))"/>
  1967. <!-- Add a link to a target and dropdown arrow for a popup menu-->
  1968. <td headers="reportName" style="padding-left: 2px;" nowrap="" height="10" class="tabletext">
  1969. <!-- Define a menu with 2 items Run and debug-->
  1970. <xsl:variable name="contactMenu">
  1971. <flyout id="{$menuId}">
  1972. <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>
  1973. <items>
  1974. <item id="{$menuRunId}">
  1975. <!-- Note: as long as "run with dynamic filter" is available on the menu, run should mean do NOT dynamic filter -->
  1976. <!-- IF it is removed, then "run" should probably mean run with whatever dynamic filter setting is on the drill path object -->
  1977. <text><xts:string id="DEBUG_RUN"/></text>
  1978. <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"/>');
  1979. </action>
  1980. </item>
  1981. <item id="{$menuDebugId}">
  1982. <text><xts:string id="DEBUG_DEBUG"/></text>
  1983. <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>
  1984. </item>
  1985. <!-- We (PM, UI and DEV) have decided to show "Run with Dynamic Filter" for RS and QS targets -->
  1986. <!-- Todo:Add targetClass to the object model and use it to determine the type of a target -->
  1987. <xsl:if test="contains($searchPath,'/report[') or contains($searchPath,'/query[')">
  1988. <item id="{$menuRunWithDFId}">
  1989. <text><xts:string id="DEBUG_RUN_DYNAMIC_FILTER"/></text>
  1990. <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)"/>');
  1991. </action>
  1992. </item>
  1993. </xsl:if>
  1994. </items>
  1995. </flyout>
  1996. </xsl:variable>
  1997. <!-- Display a link to drill to the target directly-->
  1998. <a>
  1999. <xsl:attribute name="href">#</xsl:attribute>
  2000. <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>
  2001. <xsl:attribute name="title">
  2002. <xsl:value-of select="xtsext:enforceBTD(string(./*[local-name()='drillPathName']), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  2003. <xsl:choose>
  2004. <xsl:when test="$is-ui-rtl">
  2005. <xsl:text>&#8207; - </xsl:text>
  2006. </xsl:when>
  2007. <xsl:otherwise>
  2008. <xsl:text>&#8206; - </xsl:text>
  2009. </xsl:otherwise>
  2010. </xsl:choose>
  2011. <xsl:value-of select="xtsext:enforceBTD($tooltip, $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  2012. </xsl:attribute>
  2013. <xsl:value-of select="xtsext:enforceBTD(string(./*[local-name()='drillPathName']), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  2014. </a>
  2015. <!-- A dropdown arrow to invoke drill through assistant. It is only available when a user has Capability to run the tool-->
  2016. <xsl:if test="($hasDrillThroughAssistantCapability)">
  2017. <a border="0" role="button" aria-haspopup="true">
  2018. <xsl:attribute name="href">#</xsl:attribute>
  2019. <xsl:attribute name="onclick">
  2020. <xsl:text>return CCPopupMenu.dropDown(event,0,0,'</xsl:text>
  2021. <xsl:value-of select="$menuId"/>
  2022. <xsl:text>');</xsl:text>
  2023. </xsl:attribute>
  2024. <img border="0" name="contactMenu_imgFlyControl" src="{$skin_shared_images}dropdown_arrow.gif">
  2025. <xsl:attribute name="alt">
  2026. <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>
  2027. </xsl:attribute>
  2028. </img>
  2029. </a>
  2030. </xsl:if>
  2031. <!-- Display menus and add z-index to make sure it is on the top-->
  2032. <div id="{$menuSpanId}" style="z-index:1; position: relative;">
  2033. </div>
  2034. <!--Call to create menus -->
  2035. <xsl:call-template name="renderPopup">
  2036. <xsl:with-param name="flyoutXML">
  2037. <xsl:copy-of select="$contactMenu"/>
  2038. </xsl:with-param>
  2039. <xsl:with-param name="controlID"><xsl:value-of select="$menuSpanId"/></xsl:with-param>
  2040. </xsl:call-template>
  2041. <!-- end popup -->
  2042. </td>
  2043. <!-- renders target path-->
  2044. <td headers="targetReport" width="50%" nowrap="" height="10" class="tabletext">
  2045. <!-- Only shows the target path if the target is not hidden -->
  2046. <xsl:if test="not(./*[local-name()='targetHidden']) or ./*[local-name()='targetHidden']='false'">
  2047. <xsl:for-each select="./*[local-name()='targetAncestorNames']/*[local-name()='item']">
  2048. <xsl:value-of select="xtsext:enforceBTD(string(.), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  2049. <xsl:choose>
  2050. <xsl:when test="$is-ui-rtl=true()"> &#8207;&gt; </xsl:when><!-- RLM -->
  2051. <xsl:otherwise> &#8206;&gt; </xsl:otherwise><!-- LRM -->
  2052. </xsl:choose>
  2053. </xsl:for-each>
  2054. <xsl:value-of select="xtsext:enforceBTD(string(./*[local-name()='targetName']), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  2055. </xsl:if>
  2056. </td>
  2057. </tr>
  2058. </xsl:for-each>
  2059. </xsl:if>
  2060. <!-- Render Drillthrough actions entries - URI | HTML -->
  2061. <xsl:if test="/root/response//*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*[local-name()='item'][@*[local-name()='type']='bus:asynchDetailDrillThroughTargetURI']">
  2062. <xsl:for-each select="/root/response//*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*[local-name()='item'][@*[local-name()='type']='bus:asynchDetailDrillThroughTargetURI']">
  2063. <!--
  2064. <xsl:variable name="uri" select="translate(normalize-space(string(bus:uri)), 'HTML','html')"/>
  2065. <xsl:variable name="isurl" select="not(starts-with($uri,'&lt;') or contains($uri,'&lt;html&gt;'))"/>
  2066. -->
  2067. <xsl:variable name="isuri" select="true()"/>
  2068. <tr style="height: 1px;">
  2069. <td headers="reportType" nowrap="" height="10" class="tabletext">
  2070. <img width="16" height="16" src="{$webRoot}/rv/images/icon_ms_analysis_action.gif"/>
  2071. </td>
  2072. <xsl:choose>
  2073. <xsl:when test="$isuri">
  2074. <!--xsl:variable name="actionURI" select="string(bus:uri)"/-->
  2075. <xsl:variable name="actionURI">
  2076. <xsl:value-of select="string(./*[local-name()='targetURI'])"/>
  2077. </xsl:variable>
  2078. <xsl:variable name="drillPath_form">
  2079. <xsl:if test="string-length($actionURI) &gt; 2048">
  2080. <xsl:value-of select="concat('drillPath_form_action', string(position()))"/>
  2081. </xsl:if>
  2082. </xsl:variable>
  2083. <td headers="reportName" style="padding-left: 2px;" width="50%" nowrap="" height="10" class="tabletext">
  2084. <!-- Generate the form for the entry -->
  2085. <xsl:if test="string-length($actionURI) &gt; 2048">
  2086. <xsl:variable name="action" select="substring-before($actionURI, '?')"/>
  2087. <xsl:variable name="arguments" select="substring-after($actionURI, '?')"/>
  2088. <form name="{$drillPath_form}" method="post">
  2089. <xsl:attribute name="action">
  2090. <xsl:value-of select="$action"/>
  2091. </xsl:attribute>
  2092. <xsl:call-template name="getToPostConversion">
  2093. <xsl:with-param name="arguments">
  2094. <xsl:value-of select="$arguments"/>
  2095. </xsl:with-param>
  2096. </xsl:call-template>
  2097. </form>
  2098. </xsl:if>
  2099. <a>
  2100. <xsl:attribute name="href">#</xsl:attribute>
  2101. <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>
  2102. <xsl:attribute name="title">
  2103. <xsl:value-of select="xtsext:enforceBTD(string(./*[local-name()='drillPathName']), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  2104. </xsl:attribute>
  2105. <xsl:value-of select="xtsext:enforceBTD(string(./*[local-name()='drillPathName']), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  2106. </a>
  2107. </td>
  2108. </xsl:when>
  2109. <xsl:otherwise>
  2110. <xsl:variable name="actionHTML" select="bus:uri"/>
  2111. <script language="JavaScript">
  2112. var html_<xsl:value-of select="position()"/> = '<xsl:value-of select="xtsext:javascriptencode(xtsext:xmldecode($actionHTML))"/>';
  2113. function run_<xsl:value-of select="position()"/>() {
  2114. document.write(html_<xsl:value-of select="position()"/>);
  2115. document.close();
  2116. }
  2117. </script>
  2118. <td headers="reportName" style="padding-left: 2px;" width="50%" nowrap="" height="10" class="tabletext">
  2119. <a>
  2120. <xsl:attribute name="href">javascript:run_<xsl:value-of select="position()"/>()</xsl:attribute>
  2121. <xsl:value-of select="xtsext:enforceBTD(string(bus:name), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  2122. </a>
  2123. </td>
  2124. </xsl:otherwise>
  2125. </xsl:choose>
  2126. <td headers="targetReport" width="50%" nowrap="" height="10" class="tabletext">
  2127. <xsl:text> - </xsl:text>
  2128. </td>
  2129. </tr>
  2130. </xsl:for-each>
  2131. </xsl:if>
  2132. </tbody>
  2133. </table>
  2134. </div>
  2135. </xsl:otherwise>
  2136. </xsl:choose> <!-- End: this drillthrough has targets or not -->
  2137. <!-- DRILL THROUGH DEBUGGING (DRILL THROUGH ASSISTANT) -->
  2138. <!-- Provide debug info for source, the info sent to GOTO page from various sources (Studios, Viewer and test page ...)
  2139. There are 4 types of drill through: custom URL, dynamic filtering, authered and model based.
  2140. We only allow a user to see these info when he has capability to run Drill Through Assistant.
  2141. -->
  2142. <xsl:if test="($hasDrillThroughAssistantCapability)">
  2143. <!--Display a link to show/hide source info -->
  2144. <div style="margin-top: 5px; text-align:right;" class="formText" >
  2145. <A href="#" onClick="showHideDebugPane('idDebugInfo')">
  2146. <xsl:text/><xts:string id="DEBUG_SOURCE_INFORMATION"/><xsl:text/>
  2147. <IMG border="0" src="{$webRoot}/common/images/spacer.gif" width="3" height="1" alt=""/>
  2148. <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>
  2149. </A>
  2150. </div>
  2151. <!-- Show debug info for custom URL, dynamic filter, authored and model based -->
  2152. <div id="idDebugInfo" style="display:none">
  2153. <xsl:variable name="isCustomURL" select="/root/*[local-name()='URLArray']/*[local-name()='array'] != ''"/>
  2154. <xsl:choose>
  2155. <xsl:when test="$isCustomURL">
  2156. <span style="text-align: left; padding-left: 2px; padding-top: 2px;" class="tabletext formLabel"><xts:string id="DEBUG_CUSTOM_URL"/></span>
  2157. </xsl:when>
  2158. <xsl:otherwise>
  2159. <span style="text-align: left; padding-left: 2px; padding-top: 2px;" class="tableHeader tableTitle"><xts:string id="DEBUG_SOURCE_PARAMETERS"/></span>
  2160. </xsl:otherwise>
  2161. </xsl:choose>
  2162. <table role="presentation">
  2163. <!-- Provide debug info custom urls -->
  2164. <xsl:if test="$isCustomURL">
  2165. <xsl:for-each select="/root/*[local-name()='URLArray']/*[local-name()='array']">
  2166. <tr >
  2167. <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_NAME"/></td>
  2168. <td nowrap="" height="10" class="tabletext"><xsl:value-of select="*[local-name()='name']"/></td>
  2169. </tr>
  2170. <tr >
  2171. <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_DESCRIPTION"/></td>
  2172. <td nowrap="" height="10" class="tabletext"><xsl:value-of select="*[local-name()='description']"/></td>
  2173. </tr>
  2174. <tr>
  2175. <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_URL"/></td>
  2176. <td nowrap="" height="10" class="tabletext"><xsl:value-of select="*[local-name()='url']"/></td>
  2177. </tr>
  2178. </xsl:for-each>
  2179. </xsl:if>
  2180. <!--Provide authored Drill through debug info -->
  2181. <!-- RenderAuthoredDrillThroughDetails -->
  2182. <!-- NOTE: Authored Drill Through Details are rendered with the corresponding drill through link.... -->
  2183. <!--OBSOLETE or TEST PAGE??: Provides debug information for the dynamic filtering from PowerPlay 8's direct action array.... -->
  2184. <xsl:if test="/root/*[local-name()='DirectActionArray']/*[local-name()='array'] != ''">
  2185. <tr>
  2186. <td colspan="2" nowrap="" height="10" class="formLabel">
  2187. <xts:string id="DEBUG_DYNAMIC_FILTER"/></td>
  2188. </tr>
  2189. <xsl:for-each select="/root/*[local-name()='DirectActionArray']/*[local-name()='array']">
  2190. <tr >
  2191. <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_ACTION"/></td>
  2192. <td nowrap="" height="10" class="tabletext"><xsl:value-of select="*[local-name()='action']"/></td>
  2193. </tr>
  2194. <tr>
  2195. <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_TARGET_REPORT_NAME"/></td>
  2196. <td nowrap="" height="10" class="tabletext"><xsl:value-of select="*[local-name()='name']"/></td>
  2197. </tr>
  2198. <tr>
  2199. <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_TARGET_SEARCH_PATH"/></td>
  2200. <td nowrap="" height="10" class="tabletext"><xsl:value-of select="*[local-name()='targetReport']"/></td>
  2201. </tr>
  2202. <tr>
  2203. <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_S7_FILTER_PREDICATE"/></td>
  2204. <td nowrap="" height="10" class="tabletext"><xsl:value-of select="*[local-name()='filterPredicate']"/></td>
  2205. </tr>
  2206. <tr>
  2207. <td nowrap="" height="10" class="tabletext" valign="top"><xts:string id="DEBUG_COGNOS8_FILTER_SPECIFICATION"/></td>
  2208. <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>
  2209. </tr>
  2210. </xsl:for-each>
  2211. </xsl:if>
  2212. <!-- Provide debug information for package drill through for PowerPlay Studio -->
  2213. <!-- The following info are provided
  2214. Context type: Where the request is originated from. It is always PowerPlay Studio.
  2215. Encoding:The current encoding PowerPlayStudio is rendering in.
  2216. Model path:A model path in Base64 encoded form ?
  2217. Data source name:A data source name.
  2218. Relational predicate filters: Relational filters defined in an array of predicate filters.
  2219. OLAP predicate filters:OLAP filters defined in an array of predicate filters.
  2220. -->
  2221. <xsl:if test="/root/env/param[@name='drillContext'] and /root/env/param[@name='drillContext'] != ''">
  2222. <tr>
  2223. <td colspan="2" nowrap="" height="10" class="formLabel">
  2224. <!-- currently reads: "Package-based Drill-through access:" -->
  2225. <xts:string id="DEBUG_PACKAGE_BASED_DRILL_THROUGH"/></td>
  2226. </tr>
  2227. <!-- if the converter produced something, we should show the input to the converter -->
  2228. <xsl:for-each select="/root/*[local-name()='converterResponse']/*[local-name()='Response']/*[local-name()='ConverterInput']/*[local-name()='array']">
  2229. <tr>
  2230. <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_CONTEXT_TYPE"/></td>
  2231. <td nowrap="" height="10" class="tabletext"><xsl:value-of select="(*[local-name()='contextType'])"/></td>
  2232. </tr>
  2233. <tr>
  2234. <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_ENCODING"/></td>
  2235. <td nowrap="" height="10" class="tabletext"><xsl:value-of select="*[local-name()='encoding']"/></td>
  2236. </tr>
  2237. <tr>
  2238. <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_MODEL_PATH"/></td>
  2239. <td nowrap="" height="10" class="tabletext"><xsl:value-of select="*[local-name()='modelPath']"/></td>
  2240. </tr>
  2241. <tr>
  2242. <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_DATA_SOURCE_NAME"/></td>
  2243. <td nowrap="" height="10" class="tabletext"><xsl:value-of select="*[local-name()='dataSourceName']"/></td>
  2244. </tr>
  2245. <tr>
  2246. <td nowrap="" height="10" class="tabletext" valign="top"><xts:string id="DEBUG_RELATIONAL_PREDICATE_FILTERS"/></td>
  2247. <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>
  2248. </tr>
  2249. <tr>
  2250. <td nowrap="" height="10" class="tabletext" valign="top"><xts:string id="DEBUG_OLAP_PREDICATE_FILTERS"/></td>
  2251. <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>
  2252. </tr>
  2253. </xsl:for-each>
  2254. </xsl:if>
  2255. <!-- Provide package based drill through debug info -->
  2256. <!-- currently reads: Package-based Drill-through access: -->
  2257. <!-- Use new condition since to show the UI since we don't pass the old variables anymore -->
  2258. <xsl:if test="/root/selectionContext and /root/selectionContext != ''">
  2259. <!-- Since we show this label for all debugs for Abacab as well with the same condition we comment out this one for now -->
  2260. <!-- TODO: Specify what specific information we get in other drill through types to show different debug UI for them -->
  2261. <tr>
  2262. <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_PACKAGE_SEARCH_PATH"/>
  2263. <!-- Pick up the package search path from packageBase -->
  2264. <xsl:value-of select="/root/*[local-name()='packageBase']/*[local-name()='queryResponse']/*[local-name()='model']/*[local-name()='parent']/*[local-name()='package']/*[local-name()='searchPath']"/>
  2265. </td>
  2266. </tr>
  2267. </xsl:if>
  2268. </table>
  2269. <!-- create a table for selection context and source parameters sent to the Goto page-->
  2270. <!-- Use new condition since to show the UI since we don't pass the old variables anymore -->
  2271. <xsl:if test="/root/env/param[@name='drillContext']">
  2272. <!-- -->
  2273. <!--For defect https://bajazz05.canlab.ibm.com:9750/ccm/resource/itemName/com.ibm.team.workitem.WorkItem/216715 -->
  2274. <!-- This table used to use the cctable style. For defect 216715 the cutomer modified the cctable style in a default.css. -->
  2275. <!-- Among other things, the customer added an explicit height to cctable. The 500px height made this table unusable. -->
  2276. <!-- This table is meant to expand under its corresponding 'goto' link. The existing cctable defintions in all skins define a -->
  2277. <!-- border and set a white background color. This table disables the border (border="0"). So the only thing used from -->
  2278. <!-- the default cctable was the setting for the background colour. So, remove the cctable class and add the white background -->
  2279. <!-- fixes the problem of this sub table being not displaying properly if a height is set -->
  2280. <table width="100%" cellspacing="0" cellpadding="2" border="0" role="presentation" bgcolor="#ffffff">
  2281. <tbody id="DebugSelectionContextHeader">
  2282. <tr class="tableHeader">
  2283. <td width="30%" valign="center" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px;" class="tableTitle">
  2284. <table cellspacing="0" cellpadding="0" border="0" role="presentation">
  2285. <tbody>
  2286. <tr>
  2287. <td valign="top" nowrap="" class="tableTitle">
  2288. <xts:string id="DEBUG_SELECTION_CONTEXT"/>
  2289. </td>
  2290. </tr>
  2291. </tbody>
  2292. </table>
  2293. </td>
  2294. </tr>
  2295. </tbody>
  2296. <!-- Formatted Selection Context Parameters: create a table for selection context and source parameters that sent to Goto page-->
  2297. <!-- render as an embedded table inside the selection context table -->
  2298. <tbody>
  2299. <tr>
  2300. <td>
  2301. <!-- -->
  2302. <!--For defect https://bajazz05.canlab.ibm.com:9750/ccm/resource/itemName/com.ibm.team.workitem.WorkItem/216715 -->
  2303. <!-- This table used to use the cctable style. For defect 216715 the cutomer modified the cctable style in a default.css. -->
  2304. <!-- Among other things, the customer added an explicit height to cctable. The 500px height made this table unusable. -->
  2305. <!-- This table is meant to expand under its corresponding 'goto' link. The existing cctable defintions in all skins define a -->
  2306. <!-- border and set a white background color. This table disables the border (border="0"). So the only thing used from -->
  2307. <!-- the default cctable was the setting for the background colour. So, remove the cctable class and add the white background -->
  2308. <!-- fixes the problem of this sub table being not displaying properly if a height is set -->
  2309. <table cellspacing="0" cellpadding="2" border="0" bgcolor="#ffffff">
  2310. <thead id="FormatSelectionContextParametersHeader">
  2311. <tr class="tableHeader">
  2312. <!-- Column: item name -->
  2313. <th id="itemName" width="30%" valign="center" align="left" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px;" class="tableTitle">
  2314. <xts:string id="DEBUG_ITEM_NAME"/>
  2315. </th>
  2316. <!-- Column: display value -->
  2317. <th id="itemDisplayValue" width="30%" valign="center" align="left" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px;" class="tableTitle">
  2318. <span class="tableHeaderDivider">
  2319. <img width="1" height="10" src="{$webcontent}/images/space.gif" alt=""/>
  2320. </span>
  2321. <xts:string id="DEBUG_DISPLAY"/>
  2322. </th>
  2323. <!-- Column: use value -->
  2324. <th id="itemUseValue" width="70%" valign="center" align="left" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px;" class="tableTitle">
  2325. <span class="tableHeaderDivider">
  2326. <img width="1" height="10" src="{$webcontent}/images/space.gif" alt=""/>
  2327. </span>
  2328. <xts:string id="DEBUG_USE"/>
  2329. </th>
  2330. </tr>
  2331. </thead>
  2332. <!-- fill in the table body -->
  2333. <!-- Since the powerplay output path is different with others, we need to check it -->
  2334. <xsl:choose>
  2335. <xsl:when test="/root/selectionContextNodeTree/Response/ConverterInput/array/contextType = 'PowerPlayStudio'">
  2336. <xsl:call-template name="selectionContextRenderer_powerplay"/>
  2337. </xsl:when>
  2338. <xsl:otherwise>
  2339. <xsl:call-template name="selectionContextRenderer"/>
  2340. </xsl:otherwise>
  2341. </xsl:choose>
  2342. </table>
  2343. </td>
  2344. </tr>
  2345. </tbody>
  2346. <tbody>
  2347. <!-- raw Selection Context ("More") -->
  2348. <!--Display a link to show/hide raw selection context -->
  2349. <tr align="right">
  2350. <td class="formText">
  2351. <A href="#" onClick="showHideDebugPane('idDebugSelectionContextAdvanced')" role="button">
  2352. <xsl:text/><xts:string id="DEBUG_MORE"/><xsl:text/>
  2353. <IMG border="0" src="{$webRoot}/common/images/spacer.gif" width="3" height="1" alt=""/>
  2354. <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>
  2355. </A>
  2356. </td>
  2357. </tr>
  2358. <tr id="idDebugSelectionContextAdvanced" style="display:none">
  2359. <!-- dump out the raw selection context (when user chooses "More") -->
  2360. <td>
  2361. <table role="presentation">
  2362. <!-- When there's converter input, the environment variable 'drillContext' contains what pp8 sends us (we identify it by its "JSON poison token") -->
  2363. <xsl:variable name="pp8PredicatePoisonToken">while(1);/*</xsl:variable>
  2364. <xsl:if test="starts-with(/root/env/param[@name='drillContext'], $pp8PredicatePoisonToken)">
  2365. <tr>
  2366. <td valign="top" nowrap="" height="10" class="tabletext">
  2367. <!-- Remove the 'poison token' prior to displaying the JSON they pass us -->
  2368. <dp:description><xsl:value-of select="substring-after(/root/env/param[@name='drillContext'], $pp8PredicatePoisonToken)"/></dp:description>
  2369. </td>
  2370. </tr>
  2371. </xsl:if>
  2372. <tr>
  2373. <td valign="top" nowrap="" height="10" class="tabletext">
  2374. <!-- selection context is always placed under the selectionContext node (whether passed through the converter or not). -->
  2375. <dp:description><xsl:value-of select="/root/selectionContext"/></dp:description>
  2376. </td>
  2377. </tr>
  2378. </table>
  2379. </td>
  2380. </tr>
  2381. <!-- End of raw selection context -->
  2382. </tbody>
  2383. </table>
  2384. </xsl:if>
  2385. <!-- Selection Context Parameters end -->
  2386. <!-- Source Parameters: This section shows the parameters passed by source reports (if any) -->
  2387. <!-- This condition is used to create the source parameters table if required -->
  2388. <xsl:if test="count(/root/*[local-name()='drillthruContext']/*[local-name()='executionParameters']/*[local-name()='parameters']/*[local-name()='item']//*[local-name()='display']) > 0">
  2389. <br/>
  2390. <span class="tabletext">
  2391. <xts:string id="DEBUG_SOURCE_REPORT_PARAMETERS"/>
  2392. </span>
  2393. <!-- -->
  2394. <!--For defect https://bajazz05.canlab.ibm.com:9750/ccm/resource/itemName/com.ibm.team.workitem.WorkItem/216715 -->
  2395. <!-- This table used to use the cctable style. For defect 216715 the cutomer modified the cctable style in a default.css. -->
  2396. <!-- Among other things, the customer added an explicit height to cctable. The 500px height made this table unusable. -->
  2397. <!-- This table is meant to expand under its corresponding 'goto' link. The existing cctable defintions in all skins define a -->
  2398. <!-- border and set a white background color. This table disables the border (border="0"). So the only thing used from -->
  2399. <!-- the default cctable was the setting for the background colour. So, remove the cctable class and add the white background -->
  2400. <!-- fixes the problem of this sub table being not displaying properly if a height is set -->
  2401. <table width="100%" cellspacing="0" cellpadding="2" border="0" bgcolor="#ffffffff">
  2402. <thead id="SourceParametersHeader">
  2403. <tr class="tableHeader">
  2404. <td width="30%" valign="center" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px;" class="tableTitle">
  2405. <table cellspacing="0" cellpadding="0" border="0">
  2406. <tbody>
  2407. <tr>
  2408. <td valign="top" nowrap="" class="tableTitle">
  2409. <xts:string id="DEBUG_PARAMETER_NAME"/>
  2410. </td>
  2411. </tr>
  2412. </tbody>
  2413. </table>
  2414. </td>
  2415. <td width="30%" valign="center" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px;" class="tableTitle">
  2416. <table cellspacing="0" cellpadding="0" border="0">
  2417. <tbody>
  2418. <tr>
  2419. <td valign="top" nowrap="" class="tableTitle">
  2420. <xts:string id="DEBUG_DISPLAY"/>
  2421. </td>
  2422. </tr>
  2423. </tbody>
  2424. </table>
  2425. </td>
  2426. <td width="70%" valign="center" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px;" class="tableTitle">
  2427. <table cellspacing="0" cellpadding="0" border="0">
  2428. <tbody>
  2429. <tr>
  2430. <td valign="top" nowrap="" class="tableTitle">
  2431. <xts:string id="DEBUG_USE"/>
  2432. </td>
  2433. </tr>
  2434. </tbody>
  2435. </table>
  2436. </td>
  2437. </tr>
  2438. </thead>
  2439. <!-- To handle cases with multiple parameters in source report -->
  2440. <xsl:for-each select="/root/*[local-name()='drillthruContext']/*[local-name()='executionParameters']/*[local-name()='parameters']/*[local-name()='item']">
  2441. <!-- This condition is used To prevent showing credentials in the UI -->
  2442. <xsl:if test="not(contains(*[local-name()='name'],'credential'))">
  2443. <tr>
  2444. <!-- Source parameter name -->
  2445. <td valign="top" nowrap="" height="10" class="tabletext"><xsl:value-of select="xtsext:enforceBTD(*[local-name()='name'], $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/></td>
  2446. <!-- we can have multiple values for one parameter -->
  2447. <xsl:for-each select="/*[local-name()='value']/*[local-name()='item']"/>
  2448. <!-- Source parameter display -->
  2449. <td nowrap="" height="10" class="tabletext">
  2450. <xsl:for-each select="*[local-name()='value']/*[local-name()='item']">
  2451. <xsl:value-of select="xtsext:enforceBTD(*[local-name()='display'], $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  2452. <!-- Start of handling in range parameters - Display value -->
  2453. <!-- Check to see if we have range type parameters -->
  2454. <xsl:if test="*[local-name()='start']!='' or *[local-name()='end']!=''">
  2455. <!-- check to see if we have the start range-->
  2456. <xsl:choose>
  2457. <xsl:when test="*[local-name()='start']!=''">
  2458. <xsl:value-of select="xtsext:enforceBTD(*[local-name()='start']/*[local-name()='display'], $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  2459. </xsl:when>
  2460. <xsl:otherwise>
  2461. <!-- TODO: This provides an empty line for unbounded start
  2462. which needs to be tested after server returns a response
  2463. for such cases-->
  2464. <label>--</label>
  2465. </xsl:otherwise>
  2466. </xsl:choose>
  2467. <br/>
  2468. <!-- Check to see if we have the end range-->
  2469. <xsl:choose>
  2470. <xsl:when test="*[local-name()='end']!=''">
  2471. <xsl:value-of select="xtsext:enforceBTD(*[local-name()='end']/*[local-name()='display'], $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  2472. </xsl:when>
  2473. <xsl:otherwise>
  2474. <!-- TODO: This provides an empty line for unbounded start
  2475. which needs to be tested after server returns a response
  2476. for such cases-->
  2477. <label>--</label>
  2478. </xsl:otherwise>
  2479. </xsl:choose>
  2480. </xsl:if>
  2481. <!-- End of handling range parameters - Display Value -->
  2482. <br/>
  2483. </xsl:for-each>
  2484. </td>
  2485. <td nowrap="" height="10" class="tabletext">
  2486. <!-- Source paramtere use -->
  2487. <xsl:for-each select="*[local-name()='value']/*[local-name()='item']">
  2488. <xsl:value-of select="xtsext:enforceBTD(*[local-name()='use'], $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  2489. <!-- Start of handling in range parameters - Use value -->
  2490. <!-- Check to see if we have range type parameters -->
  2491. <xsl:if test="*[local-name()='start']!='' or *[local-name()='end']!=''">
  2492. <!-- check to see if we have the start range-->
  2493. <xsl:choose>
  2494. <xsl:when test="*[local-name()='start']!=''">
  2495. <xsl:value-of select="xtsext:enforceBTD(*[local-name()='start']/*[local-name()='use'], $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  2496. </xsl:when>
  2497. <xsl:otherwise>
  2498. <!-- TODO: This provides an empty line for unbounded start
  2499. which needs to be tested after server returns a response
  2500. for such cases-->
  2501. <label>--</label>
  2502. </xsl:otherwise>
  2503. </xsl:choose>
  2504. <br/>
  2505. <!-- Check to see if we have the end range-->
  2506. <xsl:choose>
  2507. <xsl:when test="*[local-name()='end']!=''">
  2508. <xsl:value-of select="xtsext:enforceBTD(*[local-name()='end']/*[local-name()='use'], $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  2509. </xsl:when>
  2510. <xsl:otherwise>
  2511. <!-- TODO: This provides an empty line for unbounded start
  2512. which needs to be tested after server returns a response
  2513. for such cases-->
  2514. <label>--</label>
  2515. </xsl:otherwise>
  2516. </xsl:choose>
  2517. </xsl:if>
  2518. <!-- End of handling range parameters - Use Value -->
  2519. <br/>
  2520. </xsl:for-each>
  2521. </td>
  2522. </tr>
  2523. </xsl:if>
  2524. </xsl:for-each>
  2525. </table>
  2526. </xsl:if>
  2527. <!-- End of source parameters -->
  2528. </div>
  2529. <!-- End passed source values -->
  2530. <!-- Used to invoke target mapping info pane -->
  2531. <form name="f" method="post" action="{$gateway}?b_action=xts.run&amp;m={$app}/goto2.xts" target="mapping">
  2532. <input id="drillPath" name="drillPath" type="hidden" value=""/>
  2533. <input id="drillPathName" name="drillPathName" type="hidden" value=""/>
  2534. <input id="executionParameters" name="executionParameters" type="hidden" value=""/>
  2535. <input id="mobileLaunch" name="mobileLaunch" type="hidden" value="" />
  2536. <input id="context" name="context" type="hidden" value=""/>
  2537. <input id="debugTarget" name="debugTarget" type="hidden" value=""/>
  2538. <input id="drillType" name="drillType" type="hidden" value=""/>
  2539. <input id="selectionContext" name="selectionContext" type="hidden" value=""/>
  2540. <!-- pass the routing serverGroup to be used by runDrillPath request -->
  2541. <xsl:if test="$routingServerGroup!=''">
  2542. <label for="ui.routingServerGroup"></label>
  2543. <input id="ui.routingServerGroup" name="ui.routingServerGroup" type="hidden" value="{$routingServerGroup}"/>
  2544. </xsl:if>
  2545. </form>
  2546. <!-- iFrame is used to display mapping info for a selected target-->
  2547. <!-- iFrame display has been set to none and we make it visible on the run time and when we call it. -->
  2548. <iframe src="{$webRoot}/common/blank.html" id="targetIframe" style="display: none;" name="mapping" width="100%" height="350" scrolling="auto"
  2549. marginwidth="0" marginheight="0" frameborder="0"><xsl:attribute name="title"><xts:string id="DEBUG_MAPPING_PARAMETERS"/></xsl:attribute></iframe>
  2550. </xsl:if>
  2551. <!-- END DRILL THROUGH DEBUGGING (DRILL THROUGH ASSISTANT) -->
  2552. </xsl:otherwise>
  2553. </xsl:choose>
  2554. </lyt:section>
  2555. </lyt:layout>
  2556. <dp:footer>
  2557. <df:button df:id="IDS_CANCEL" df:style="href" df:href="javascript:onClose()"/>
  2558. </dp:footer>
  2559. </dp:page>
  2560. </xsl:template>
  2561. <xsl:template name="pick-icon">
  2562. <xsl:param name="outputType"/>
  2563. <xsl:choose>
  2564. <xsl:when test="$outputType='HTML' or $outputType='HTMLFragment'">
  2565. <img width="16" height="16" src="{$webRoot}/ps/portal/images/icon_result_html.gif">
  2566. <xsl:attribute name="alt"><xts:string id="IDS_PROP_FORMAT_HTML"/></xsl:attribute>
  2567. </img>
  2568. </xsl:when>
  2569. <xsl:when test="$outputType='PDF'">
  2570. <img width="16" height="16" src="{$webRoot}/ps/portal/images/icon_result_pdf.gif">
  2571. <xsl:attribute name="alt"><xts:string id="IDS_PROP_FORMAT_PDF"/></xsl:attribute>
  2572. </img>
  2573. </xsl:when>
  2574. <xsl:when test="$outputType='XML'">
  2575. <img width="16" height="16" src="{$webRoot}/ps/portal/images/icon_result_xml.gif">
  2576. <xsl:attribute name="alt"><xts:string id="IDS_PROP_FORMAT_XML"/></xsl:attribute>
  2577. </img>
  2578. </xsl:when>
  2579. <xsl:when test="$outputType='CSV'">
  2580. <img width="16" height="16" src="{$webRoot}/ps/portal/images/icon_result_csv.gif">
  2581. <xsl:attribute name="alt"><xts:string id="IDS_PROP_FORMAT_CSV"/></xsl:attribute>
  2582. </img>
  2583. </xsl:when>
  2584. <xsl:when test="$outputType='singleXLS'">
  2585. <img width="16" height="16" src="{$webRoot}/ps/portal/images/icon_result_excel_single.gif">
  2586. <xsl:attribute name="alt"><xts:string id="IDS_PROP_FORMAT_SINGLE_XLS"/></xsl:attribute>
  2587. </img>
  2588. </xsl:when>
  2589. <xsl:when test="$outputType='XLS'">
  2590. <img width="16" height="16" src="{$webRoot}/ps/portal/images/icon_result_excel.gif">
  2591. <xsl:attribute name="alt"><xts:string id="IDS_PROP_FORMAT_XLS"/></xsl:attribute>
  2592. </img>
  2593. </xsl:when>
  2594. <xsl:when test="$outputType='XLWA'">
  2595. <img width="16" height="16" src="{$webRoot}/ps/portal/images/icon_result_excel_web_arch.gif">
  2596. <xsl:attribute name="alt"><xts:string id="IDS_PROP_FORMAT_XLWA"/></xsl:attribute>
  2597. </img>
  2598. </xsl:when>
  2599. <xsl:when test="$outputType='spreadsheetML'">
  2600. <img width="16" height="16" src="{$webRoot}/ps/portal/images/icon_result_excel_2007.gif">
  2601. <xsl:attribute name="alt"><xts:string id="IDS_PROP_FORMAT_SPREADSHEETML"/></xsl:attribute>
  2602. </img>
  2603. </xsl:when>
  2604. </xsl:choose>
  2605. </xsl:template>
  2606. <pf:serialize-xml/>
  2607. <gp:getToPostConversion/>
  2608. </xsl:stylesheet>
  2609. </xts:block>
  2610. <!-- BLOCK: runDrillPath -->
  2611. <!-- PURPOSE: To prepare the selected drill target for execution, the drill path object is "run" to -->
  2612. <!-- calculate the target parameter values, determine the target action (edit, run) etc. -->
  2613. <xts:block id="runDrillPath" processor="XSLT" type="exec" dependency="secondary-request handleDirectLaunch" mandatory="false"
  2614. condition=".[(/root/env/param[@name='redirect'] or /root/env/param[@name='debugTarget']) and /root/env/param[@name='drillType']='modeledDrillThroughPath' and
  2615. not(string(/root/env/param[@name='ui.action'])='wait')]" nodelist="env, header, http, cookies, drillPath, drillthruContext, selectionContext, converterResponse, response">
  2616. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  2617. <xts:logicsheet path="logicsheets/portal.xsl"/>
  2618. <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/"
  2619. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  2620. xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
  2621. xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  2622. xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
  2623. xmlns:rns1="http://developer.cognos.com/schemas/reportService/1"
  2624. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2625. xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
  2626. xmlns:xs="http://www.w3.org/2001/XMLSchema">
  2627. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  2628. <xsl:key name="env-param" match="/root/env/param" use="@name"/>
  2629. <xsl:template match="/root">
  2630. <xsl:variable name="drillPath">
  2631. <xsl:choose>
  2632. <xsl:when test="/root/env/param[@name='directLaunch']='true'">
  2633. <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']"/>
  2634. </xsl:when>
  2635. <xsl:otherwise>
  2636. <xsl:value-of select="xtsext:web64decode(/root/env/param[@name='drillPath'], true())"/>
  2637. </xsl:otherwise>
  2638. </xsl:choose>
  2639. </xsl:variable>
  2640. <xsl:variable name="context">
  2641. <xsl:value-of select="xtsext:web64decode(/root/env/param[@name='context'], true())" disable-output-escaping="yes"/>
  2642. </xsl:variable>
  2643. <xsl:variable name="executionParameters">
  2644. <xsl:value-of select="xtsext:web64decode(/root/env/param[@name='executionParameters'], true())" disable-output-escaping="yes"/>
  2645. </xsl:variable>
  2646. <xsl:if test="$drillPath and $drillPath != ''">
  2647. <xts:sequence>
  2648. <xts:append select="/root">
  2649. <drillPath><xsl:value-of select="$drillPath"/></drillPath>
  2650. </xts:append>
  2651. <xts:delete select="/root/*[local-name()='response']"/>
  2652. <xts:append select="/root">
  2653. <response>
  2654. <send:request provider="warp" option="xml-multipart" outputHeader="true" responseEnvelope="true" soapAction="http://www.ibm.com/xmlns/prod/cognos/reportService/201610/">
  2655. <!-- getDrillThroughTargetParameterValues has been replaced by run(drillpath)-->
  2656. <run xmlns="http://developer.cognos.com/schemas/reportService/1">
  2657. <objectPath xsi:type="bus:searchPathSingleObject"><xsl:value-of select="$drillPath"/></objectPath>
  2658. <!-- source context values are now part of the selection context run option -->
  2659. <parameterValues SOAP-ENC:arrayType="bus:parameterValue[]" xsi:type="SOAP-ENC:Array">
  2660. <xsl:choose>
  2661. <xsl:when test="/root/env/param[@name='directLaunch']='true'">
  2662. <xsl:copy-of select="/root/*[local-name()='drillthruContext']/*[local-name()='executionParameters']/*/*"/>
  2663. </xsl:when>
  2664. <xsl:otherwise>
  2665. <xsl:copy-of select="$executionParameters"/>
  2666. </xsl:otherwise>
  2667. </xsl:choose>
  2668. </parameterValues>
  2669. <options xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:option[]">
  2670. <!-- Pass in the selectionContext as an option -->
  2671. <item xsi:type="bus:drillThroughOptionXMLEncodedXML">
  2672. <bus:name xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xsi:type="bus:drillThroughOptionEnum">selectionContext</bus:name>
  2673. <bus:value xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xsi:type="bus:xmlEncodedXML">
  2674. <!-- /root/env/selectionContext is set only if launched from the render block. (set by showTargetInfo or OnClickDrillThrough javascript functions) -->
  2675. <!-- As a result, when we're doing directLaunch we have use the original selectionContextNode.) -->
  2676. <xsl:choose>
  2677. <xsl:when test="/root/env/param[@name='directLaunch']='true'">
  2678. <xsl:value-of select="/root/selectionContext"/>
  2679. </xsl:when>
  2680. <xsl:otherwise>
  2681. <xsl:value-of select="xtsext:xmlencode(/root/env/param[@name='selectionContext'])" disable-output-escaping="yes"/>
  2682. </xsl:otherwise>
  2683. </xsl:choose>
  2684. </bus:value>
  2685. </item>
  2686. <!--Add option of xslURL to sa.xsl that is required by RSVP to properly generate a correct prompt page -->
  2687. <item xsi:type="bus:runOptionAnyURI">
  2688. <bus:name xsi:type="bus:runOptionEnum">xslURL</bus:name>
  2689. <bus:value xsi:type="xsd:string">sa.xsl</bus:value>
  2690. </item>
  2691. <xsl:if test="/root/env/param[@name='useDynamicFilter'] and /root/env/param[@name='useDynamicFilter'] != ''">
  2692. <item xmlns="" xsi:type="bus:drillThroughOptionBoolean">
  2693. <bus:name xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xsi:type="bus:drillThroughOptionEnum">useEditSpecification</bus:name>
  2694. <xsl:choose>
  2695. <xsl:when test="(/root/env/param[@name='useDynamicFilter']='true')">
  2696. <bus:value xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xsi:type="xs:boolean">true</bus:value>
  2697. </xsl:when>
  2698. <xsl:otherwise>
  2699. <bus:value xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xsi:type="xs:boolean">false</bus:value>
  2700. </xsl:otherwise>
  2701. </xsl:choose>
  2702. </item>
  2703. </xsl:if>
  2704. </options>
  2705. </run>
  2706. </send:request>
  2707. </response>
  2708. </xts:append>
  2709. <xts:delete select="/root/*[local-name()='resultStatus']"/>
  2710. <xts:append>
  2711. <resultStatus>
  2712. <xts:queryNode select="/root//*[local-name()='Envelope']/*[local-name()='Body']/*/*[local-name()='result']/*[local-name()='status']"/>
  2713. </resultStatus>
  2714. </xts:append>
  2715. </xts:sequence>
  2716. </xsl:if>
  2717. </xsl:template>
  2718. <pf:serialize-xml/>
  2719. </xsl:stylesheet>
  2720. </xts:block>
  2721. <!-- BLOCK: runDrillPath_output -->
  2722. <!-- PURPOSE: Return SOAP response of the run drill path command -->
  2723. <!-- When cv.drillServiceOnly=true, the SOAP response of the run drill path command is returned instead of an HTML page. -->
  2724. <xts:block id="runDrillPath_output" mode="output" processor="XSLT" type="exec" mimeType="text/xml" mandatory="false"
  2725. dependency="runDrillPath"
  2726. condition=".[/root/env/param[@name='cv.drillServiceOnly'] and /root/env/param[@name='drillType']='modeledDrillThroughPath'] " nodelist="env, header, http, response, cookies,user,system">
  2727. <xts:logicsheet path="logicsheets/portal.xsl"/>
  2728. <xts:logicsheet path="logicsheets/presentation/dialog/framework.xsl"/>
  2729. <xts:logicsheet path="logicsheets/presentation/layout.xsl"/>
  2730. <xts:logicsheet path="logicsheets/presentation/controls/framework.xsl"/>
  2731. <xts:logicsheet path="logicsheets/presentation/controls/presentation.xsl"/>
  2732. <xts:logicsheet path="logicsheets/presentation/dialog/presentation.xsl"/>
  2733. <xts:logicsheet path="logicsheets/validation.xslt"/>
  2734. <xts:logicsheet path="logicsheets/presentation/touch_up.xslt"/>
  2735. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  2736. <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/"
  2737. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  2738. xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  2739. xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
  2740. xmlns:rns1="http://developer.cognos.com/schemas/reportService/1"
  2741. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2742. xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
  2743. xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
  2744. xmlns:dp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/presentation/"
  2745. xmlns:lyt="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/layout/"
  2746. xmlns:df="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/framework/"
  2747. xmlns:cf="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/framework/"
  2748. xmlns:cp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/presentation/"
  2749. xmlns:xs="http://www.w3.org/2001/XMLSchema">
  2750. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no" omit-xml-declaration="yes"/>
  2751. <xsl:template match="/">
  2752. <xsl:copy-of select="/root/response/*"/>
  2753. </xsl:template>
  2754. </xsl:stylesheet>
  2755. </xts:block>
  2756. <xts:block id="polling_runDrillPath_request" mode="output" processor="XSLT" type="exec" mimeType="text/html" mandatory="false"
  2757. dependency="runDrillPath"
  2758. 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
  2759. (/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) -->
  2760. <xts:logicsheet path="logicsheets/portal.xsl"/>
  2761. <xts:logicsheet path="logicsheets/presentation/dialog/framework.xsl"/>
  2762. <xts:logicsheet path="logicsheets/presentation/layout.xsl"/>
  2763. <xts:logicsheet path="logicsheets/presentation/controls/framework.xsl"/>
  2764. <xts:logicsheet path="logicsheets/presentation/controls/presentation.xsl"/>
  2765. <xts:logicsheet path="logicsheets/presentation/dialog/presentation.xsl"/>
  2766. <xts:logicsheet path="logicsheets/validation.xslt"/>
  2767. <xts:logicsheet path="logicsheets/presentation/touch_up.xslt"/>
  2768. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  2769. <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/"
  2770. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  2771. xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  2772. xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
  2773. xmlns:rns1="http://developer.cognos.com/schemas/reportService/1"
  2774. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2775. xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
  2776. xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
  2777. xmlns:dp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/presentation/"
  2778. xmlns:lyt="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/layout/"
  2779. xmlns:df="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/framework/"
  2780. xmlns:cf="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/framework/"
  2781. xmlns:cp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/presentation/"
  2782. xmlns:xs="http://www.w3.org/2001/XMLSchema">
  2783. <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no" omit-xml-declaration="yes"/>
  2784. <pf:variables/>
  2785. <pf:serialize-xml/>
  2786. <xsl:template match="/">
  2787. <xsl:variable name="contextid">
  2788. <xsl:value-of select="xtsext:cafaction(concat('get_contextid_setcomponent_es_setpassportid_', $passport), '')"/>
  2789. </xsl:variable>
  2790. <xsl:variable name="tracking">
  2791. <xsl:for-each select="/root//*[local-name() = 'Envelope']/*[local-name() = 'Header']/*[local-name() = 'biBusHeader']/*[local-name() = 'tracking']/*[local-name() = 'conversationContext']">
  2792. <xsl:variable name="markup-track">
  2793. <xsl:call-template name="serialize-xml">
  2794. <xsl:with-param name="node-set" select="."/>
  2795. </xsl:call-template>
  2796. </xsl:variable>
  2797. <xsl:value-of select="string($markup-track)"/>
  2798. </xsl:for-each>
  2799. </xsl:variable>
  2800. <xsl:variable name="conversation">
  2801. <xsl:call-template name="serialize-xml">
  2802. <xsl:with-param name="node-set" select="/root//*[local-name() = 'Envelope']/*[local-name() = 'Body']/*/*/*[local-name() = 'primaryRequest']/*"/>
  2803. </xsl:call-template>
  2804. </xsl:variable>
  2805. <xsl:variable name="lang">
  2806. <xsl:choose>
  2807. <xsl:when test="/root/env/param[@name='contentLocale']">
  2808. <xsl:value-of select="string(/root/*[local-name()='contentLocale'])"/>
  2809. </xsl:when>
  2810. <xsl:when test="/root/env/param[@name='lang']">
  2811. <xsl:value-of select="string(/root/*[local-name()='lang'])"/>
  2812. </xsl:when>
  2813. <xsl:otherwise>
  2814. <xsl:text/>en<xsl:text/>
  2815. </xsl:otherwise>
  2816. </xsl:choose>
  2817. </xsl:variable>
  2818. <xsl:text disable-output-escaping='yes'>&lt;!DOCTYPE html></xsl:text>
  2819. <html>
  2820. <xsl:attribute name="lang"><xsl:value-of select="$lang"/></xsl:attribute>
  2821. <!-- CSSs requird to use format properly -->
  2822. <link rel="stylesheet" type="text/css" href="{$skin_root}/portal/default.css"/>
  2823. <link rel="stylesheet" type="text/css" href="{$skin_root}/qs/RVReport.css"/>
  2824. <body>
  2825. <table id="workingStatus" cellspacing="0" cellpadding="0" width="100%" height="100%" align="center" valign="middle">
  2826. <tr>
  2827. <td width="100%" height="100%" align="center" valign="middle">
  2828. <table align="center" cellspacing="0" cellpadding="0" style="vertical-align:middle; border:1px outset;" class="busyBody">
  2829. <tr>
  2830. <td rowspan="2">
  2831. <img src="{$brand_images}progress.gif" style="margin:5px;" width="48" height="48" name="progress"/>
  2832. </td>
  2833. <td nowrap="nowrap">
  2834. <span class="busyUpdatingStr">
  2835. <xts:string id="GOTO_WORKING"/>
  2836. </span>
  2837. </td>
  2838. </tr>
  2839. <tr>
  2840. <td nowrap="nowrap">
  2841. <span class="busyUpdatingStr">
  2842. <xts:string id="RV_PLEASE_WAIT"/>
  2843. </span>
  2844. </td>
  2845. </tr>
  2846. <tr>
  2847. <td style="height:7px;" colspan="2"></td>
  2848. </tr>
  2849. </table>
  2850. </td>
  2851. </tr>
  2852. </table>
  2853. <form name="formWarpRequest" id="formWarpRequest" method="POST" action="{$gateway}" style="margin:0px;height:100%;">
  2854. <input type="hidden" name="drillPath">
  2855. <xsl:attribute name="value">
  2856. <xsl:choose>
  2857. <xsl:when test="/root/env/param[@name='directLaunch']='true'">
  2858. <xsl:value-of select="/root/*[local-name()='drillPath']"/>
  2859. </xsl:when>
  2860. <xsl:otherwise>
  2861. <xsl:value-of select="/root/env/param[@name='drillPath']"/>
  2862. </xsl:otherwise>
  2863. </xsl:choose>
  2864. </xsl:attribute>
  2865. </input>
  2866. <input type="hidden" name="context">
  2867. <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='context']"/></xsl:attribute>
  2868. </input>
  2869. <input type="hidden" name="drillType">
  2870. <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='drillType']"/></xsl:attribute>
  2871. </input>
  2872. <input type="hidden" name="selectionContext">
  2873. <xsl:attribute name="value"><xsl:value-of select="/root/env/param[@name='selectionContext']"/></xsl:attribute>
  2874. </input>
  2875. <input type="hidden" name="redirect"/>
  2876. <input type="hidden" name="mobileLaunch" />
  2877. <input type="hidden" name="ui.action" value="wait"/>
  2878. <input type="hidden" name="m" value="portal/goto2.xts"/>
  2879. <input type="hidden" name="b_action" value="xts.run"/>
  2880. <input type="hidden" name="inlineSpec" value=""/>
  2881. <input type="hidden" name="conversation">
  2882. <xsl:attribute name="value"><xsl:value-of select="xtsext:cafaction(concat('sign_wrap_setpassportid_', $passport), xtsext:web64encode(string($conversation), true()))"/></xsl:attribute>
  2883. </input>
  2884. <input type="hidden" name="tracking">
  2885. <xsl:attribute name="value"><xsl:value-of select="xtsext:cafaction(concat('sign_wrap_setpassportid_', $passport), xtsext:web64encode(string($tracking), true()))"/></xsl:attribute>
  2886. </input>
  2887. <xsl:if test="/root/env/param[@name='directLaunch']='true'">
  2888. <input type="hidden" name="directLaunch" value="true"/>
  2889. </xsl:if>
  2890. <xsl:if test="/root/env/param[@name='debugTarget']">
  2891. <input type="hidden" name="debugTarget" value="true"/>
  2892. </xsl:if>
  2893. <xsl:if test="$contextid!=''">
  2894. <input type="hidden" name="cafcontextid">
  2895. <xsl:attribute name="value"><xsl:value-of select="$contextid"/></xsl:attribute>
  2896. </input>
  2897. </xsl:if>
  2898. </form>
  2899. </body>
  2900. <script language="javascript">
  2901. document.formWarpRequest.submit();
  2902. if (document.progress)
  2903. setTimeout('document.progress.src="<xsl:value-of select="xtsext:javascriptencode(string($brand_images))"/>progress.gif"', 1);
  2904. </script>
  2905. </html>
  2906. </xsl:template>
  2907. </xsl:stylesheet>
  2908. </xts:block>
  2909. <xts:block id="getDrillPathTarget" processor="XSLT" type="exec" dependency="runDrillPath" mandatory="false">
  2910. 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
  2911. (/root/resultStatus = 'complete' or /root/resultStatus = 'conversationComplete')]">
  2912. <!-- PURPOSE: Make a CM request on the target object (eg: REPORT). -->
  2913. <xts:logicsheet path="logicsheets/cm-logic.xsl"/>
  2914. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  2915. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
  2916. xmlns:cml="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/cml/1/"
  2917. xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
  2918. xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
  2919. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2920. xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  2921. xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
  2922. xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/">
  2923. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  2924. <xsl:template match="/">
  2925. <!-- Asynch: The response could be a runResponse or waitResponse with conversationComplete status -->
  2926. <xsl:variable name="target_path">
  2927. <xsl:value-of select="/root/*[local-name()='response']/*[local-name()='Envelope']/*[local-name()='Body']/*/*[local-name()='result']/*[local-name()='details']/*/*[local-name()='target']"/>
  2928. </xsl:variable>
  2929. <xsl:if test="$target_path and $target_path != ''">
  2930. <xts:sequence>
  2931. <xts:append>
  2932. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  2933. <send:request provider="cm">
  2934. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  2935. <cm:query xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
  2936. <cm:search>
  2937. <xsl:value-of select="$target_path"/>
  2938. </cm:search>
  2939. <cm:properties>
  2940. <cm:property name="defaultName"/>
  2941. <cm:property name="action"/>
  2942. <cm:property name="defaultOutputFormat"/>
  2943. <cm:property name="defaultPortalAction"/>
  2944. <cm:property name="permissions"/>
  2945. <cm:property name="base"/>
  2946. <cm:property name="searchPath"/>
  2947. <cm:property name="format"/>
  2948. <cm:property name="disabled"/>
  2949. </cm:properties>
  2950. <options xsi:type="xsd:queryOptions">
  2951. <refProps xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="cm:refProp[]">
  2952. <item xsi:type="cm:refProp">
  2953. <refPropName xsi:type="cm:propEnum">base</refPropName>
  2954. <properties xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="cm:propEnum[]">
  2955. <item xsi:type="cm:propEnum">searchPath</item>
  2956. <item xsi:type="cm:propEnum">permissions</item>
  2957. <item xsi:type="cm:propEnum">defaultOutputFormat</item>
  2958. <item xsi:type="cm:propEnum">executionFormat</item>
  2959. <item xsi:type="cm:propEnum">defaultPortalAction</item>
  2960. <item xsi:type="cm:propEnum">disabled</item>
  2961. <item xsi:type="cm:propEnum">storeID</item>
  2962. </properties>
  2963. </item>
  2964. </refProps>
  2965. </options>
  2966. </cm:query>
  2967. </xts:transform>
  2968. </send:request>
  2969. </xts:transform>
  2970. </xts:append>
  2971. </xts:sequence>
  2972. </xsl:if>
  2973. </xsl:template>
  2974. </xsl:stylesheet>
  2975. </xts:block>
  2976. <xts:block id="extractBookmark" processor="XSLT" type="exec" dependency="runDrillPath getOutput getDrillPathTarget" mandatory="false"
  2977. 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
  2978. (/root/resultStatus = 'complete' or /root/resultStatus = 'conversationComplete')]" nodelist="env, resultStatus, response">
  2979. <!-- PURPOSE: To extract the bookmark from the cm response for the drill path object -->
  2980. <!-- NOTE: This block should be modified/deprecated in IB74 when we're returning the drill path in the RSAOMDrillThroughTarget array -->
  2981. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  2982. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  2983. <xsl:template match="/">
  2984. <xts:sequence>
  2985. <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'">
  2986. <xts:append select="/root">
  2987. <bookmarkRef>
  2988. <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']"/>
  2989. </bookmarkRef>
  2990. </xts:append>
  2991. </xsl:if>
  2992. <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']"/>
  2993. </xts:sequence>
  2994. </xsl:template>
  2995. </xsl:stylesheet>
  2996. </xts:block>
  2997. <xts:block id="getTarget" processor="XSLT" type="exec" dependency="extractBookmark" mandatory="false"
  2998. 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
  2999. (/root/resultStatus = 'complete' or /root/resultStatus = 'conversationComplete')]">
  3000. <xts:logicsheet path="logicsheets/portal.xsl"/>
  3001. <xts:logicsheet path="logicsheets/cm-logic.xsl"/>
  3002. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  3003. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
  3004. xmlns:cml="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/cml/1/"
  3005. xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
  3006. xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
  3007. xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
  3008. xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  3009. xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
  3010. xmlns:rns1="http://developer.cognos.com/schemas/reportService/1"
  3011. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3012. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  3013. xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/">
  3014. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  3015. <xsl:template match="/">
  3016. <xts:sequence>
  3017. <!-- This is where target parameter values items are read from the response... -->
  3018. <xsl:variable name="theobj" select="/root//*[local-name()='Envelope']/*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*[local-name()='item']/*[local-name()='parameters']"/>
  3019. <xsl:if test="$theobj">
  3020. <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">
  3021. <xsl:variable name="targetParameterValues">
  3022. <xsl:call-template name="serialize-xml">
  3023. <xsl:with-param name="node-set" select="$theobj"/>
  3024. </xsl:call-template>
  3025. </xsl:variable>
  3026. <xsl:choose>
  3027. <xsl:when test="/root/*[local-name()='queryResponse']/*[local-name()='report']">
  3028. <xts:append select="/root/*[local-name()='queryResponse']/*[local-name()='report']">
  3029. <drillThroughTargetParameterValues>
  3030. <xsl:value-of select="xtsext:web64encode(string($targetParameterValues), true())"/>
  3031. </drillThroughTargetParameterValues>
  3032. </xts:append>
  3033. </xsl:when>
  3034. <xsl:when test="/root/*[local-name()='queryResponse']/*[local-name()='reportView']">
  3035. <xts:append select="/root/*[local-name()='queryResponse']/*[local-name()='reportView']">
  3036. <drillThroughTargetParameterValues>
  3037. <xsl:value-of select="xtsext:web64encode(string($targetParameterValues), true())"/>
  3038. </drillThroughTargetParameterValues>
  3039. </xts:append>
  3040. </xsl:when>
  3041. <xsl:when test="/root/*[local-name()='queryResponse']/*[local-name()='query']">
  3042. <xts:append select="/root/*[local-name()='queryResponse']/*[local-name()='query']">
  3043. <drillThroughTargetParameterValues>
  3044. <xsl:value-of select="xtsext:web64encode(string($targetParameterValues), true())"/>
  3045. </drillThroughTargetParameterValues>
  3046. </xts:append>
  3047. </xsl:when>
  3048. <xsl:when test="/root/*[local-name()='queryResponse']/*[local-name()='analysis']">
  3049. <xts:append select="/root/*[local-name()='queryResponse']/*[local-name()='analysis']">
  3050. <drillThroughTargetParameterValues>
  3051. <xsl:value-of select="$targetParameterValues"/>
  3052. </drillThroughTargetParameterValues>
  3053. </xts:append>
  3054. </xsl:when>
  3055. <!-- other stuff like pp8report or cube etc. does not use parameters -->
  3056. </xsl:choose>
  3057. </xsl:if>
  3058. </xsl:if>
  3059. </xts:sequence>
  3060. </xsl:template>
  3061. <pf:serialize-xml/>
  3062. </xsl:stylesheet>
  3063. </xts:block>
  3064. <!-- Redirect to (launch) the target unless we're debugging
  3065. and (/root/resultStatus = 'complete' or /root/resultStatus = 'conversationComplete')]">
  3066. count(/root/*[local-name()='FormArray']/*[local-name()='array'])) = 1
  3067. -->
  3068. <xts:block id="redirect" mode="output" processor="XSLT" type="exec" mimeType="text/html" dependency="getTarget"
  3069. condition=".[not(/root/env/param[@name='cv.drillServiceOnly']) and /root/env/param[@name='redirect'] and not(/root/env/param[@name='debugTarget']) and
  3070. (count(/root/*[local-name()='FormArray']/*[local-name()='array']) =1 or /root/resultStatus = 'complete' or /root/resultStatus = 'conversationComplete')]">
  3071. <xts:logicsheet path="logicsheets/portal.xsl"/>
  3072. <xts:logicsheet path="logicsheets/permissions.xsl"/>
  3073. <xts:logicsheet path="logicsheets/presentation/main/framework.xsl"/>
  3074. <xts:logicsheet path="logicsheets/presentation/dialog/framework.xsl"/>
  3075. <xts:logicsheet path="logicsheets/presentation/layout.xsl"/>
  3076. <xts:logicsheet path="logicsheets/presentation/controls/framework.xsl"/>
  3077. <xts:logicsheet path="logicsheets/presentation/controls/presentation.xsl"/>
  3078. <xts:logicsheet path="logicsheets/presentation/dialog/presentation.xsl"/>
  3079. <xts:logicsheet path="logicsheets/validation.xslt"/> <xts:logicsheet path="logicsheets/presentation/touch_up.xslt"/>
  3080. <xsl:stylesheet version="1.0"
  3081. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  3082. xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
  3083. xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
  3084. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  3085. xmlns:drillxtsext="xalan://com.cognos.drill.ext.XTSExt"
  3086. xmlns:lyt="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/layout/"
  3087. xmlns:dp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/presentation/"
  3088. xmlns:df="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/framework/"
  3089. xmlns:cf="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/framework/"
  3090. xmlns:cp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/presentation/"
  3091. xmlns:mf="http://developer.cognos.com/schemas/xts/logicsheets/presentation/main/mf"
  3092. xmlns:pm="http://developer.cognos.com/schemas/xts/pm"
  3093. xmlns:bus="http://developer.cognos.com/schemas/bibus/3/">
  3094. xmlns:xts="http://developer.cognos.com/schemas/xts/" exclude-result-prefixes="drillxtsext xsl cm pf xts xtsext lyt dp df cf cp">
  3095. <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no" omit-xml-declaration="yes"/>
  3096. <xsl:variable name="mname" select="'goto2.xts'"/>
  3097. <mf:variables/>
  3098. <pf:variables/>
  3099. <xsl:template name="string-replace-all">
  3100. <xsl:param name="text" />
  3101. <xsl:param name="replace" />
  3102. <xsl:param name="by" />
  3103. <xsl:choose>
  3104. <xsl:when test="contains($text, $replace)">
  3105. <xsl:value-of select="substring-before($text,$replace)" />
  3106. <xsl:value-of select="$by" />
  3107. <xsl:call-template name="string-replace-all">
  3108. <xsl:with-param name="text" select="substring-after($text,$replace)" />
  3109. <xsl:with-param name="replace" select="$replace" />
  3110. <xsl:with-param name="by" select="$by" />
  3111. </xsl:call-template>
  3112. </xsl:when>
  3113. <xsl:otherwise>
  3114. <xsl:value-of select="$text" />
  3115. </xsl:otherwise>
  3116. </xsl:choose>
  3117. </xsl:template>
  3118. <xsl:template match="/root">
  3119. <!-- Pick the editSpecification out of the run(drillPath) response... -->
  3120. <!-- TODO: Investigate why directLaunch can avoid this block -->
  3121. <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']"/>
  3122. <xsl:variable name="ui.bookmark">
  3123. <!-- url encode the bookmark string. Replace any spaces with '+' -->
  3124. <xsl:value-of select="xtsext:urlencode(string(/root/*[local-name()='bookmarkRef']),'UTF-8','true')"/>
  3125. </xsl:variable>
  3126. <!-- Initialize mobile variable -->
  3127. <xsl:variable name="mobileLaunch">
  3128. <xsl:choose>
  3129. <xsl:when test="/root/env/param[@name='mobileLaunch']">
  3130. <xsl:value-of select="/root/env/param[@name='mobileLaunch']"/>
  3131. </xsl:when>
  3132. <xsl:otherwise>
  3133. <xsl:text/>false<xsl:text/>
  3134. </xsl:otherwise>
  3135. </xsl:choose>
  3136. </xsl:variable>
  3137. <xsl:variable name="selectionContext">
  3138. <xsl:value-of select="/root/env/param[@name='selectionContext']"/>
  3139. </xsl:variable>
  3140. <xsl:variable name="drillType" select="/root/env/param[@name='drillType']"></xsl:variable>
  3141. <xsl:variable name="launchurl">
  3142. <xsl:choose>
  3143. <xsl:when test="/root/cm:queryResponse/cm:report">
  3144. <xsl:call-template name="build-url">
  3145. <xsl:with-param name="report" select="/root/cm:queryResponse/cm:report"/>
  3146. </xsl:call-template>
  3147. </xsl:when>
  3148. <xsl:when test="/root/cm:queryResponse/cm:reportView">
  3149. <xsl:call-template name="build-url">
  3150. <xsl:with-param name="report" select="/root/cm:queryResponse/cm:reportView"/>
  3151. </xsl:call-template>
  3152. </xsl:when>
  3153. <xsl:when test="/root/cm:queryResponse/cm:query">
  3154. <xsl:call-template name="build-url">
  3155. <xsl:with-param name="report" select="/root/cm:queryResponse/cm:query"/>
  3156. </xsl:call-template>
  3157. </xsl:when>
  3158. <xsl:when test="/root/cm:queryResponse/cm:analysis">
  3159. <xsl:call-template name="build-url">
  3160. <xsl:with-param name="report" select="/root/cm:queryResponse/cm:analysis"/>
  3161. </xsl:call-template>
  3162. </xsl:when>
  3163. <xsl:when test="/root/cm:queryResponse/cm:powerPlay8Report">
  3164. <xsl:variable name="defaultDrillAction">
  3165. <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']"/>
  3166. </xsl:variable>
  3167. <xsl:choose>
  3168. <xsl:when test="$defaultDrillAction='edit'">
  3169. <xsl:variable name="drilltarget" select="/root/cm:queryResponse/cm:powerPlay8Report/*[local-name()='searchPath']"/>
  3170. <xsl:value-of select="drillxtsext:generatePPStudioLaunchURL('edit',$drilltarget,$theEditSpec,'HTML')"/>
  3171. </xsl:when>
  3172. <xsl:otherwise>
  3173. <xsl:call-template name="build-url">
  3174. <xsl:with-param name="report" select="/root/cm:queryResponse/cm:powerPlay8Report"/>
  3175. </xsl:call-template>
  3176. </xsl:otherwise>
  3177. </xsl:choose>
  3178. </xsl:when>
  3179. <xsl:when test="/root/cm:queryResponse/cm:package">
  3180. <xsl:variable name="drilltarget" select="/root/cm:queryResponse/cm:package/*[local-name()='searchPath']"/>
  3181. <xsl:value-of select="drillxtsext:generatePPStudioLaunchURL('new',$drilltarget,$theEditSpec,'HTML')"/>
  3182. </xsl:when>
  3183. <xsl:when test="/root/cm:queryResponse/cm:powerPlay8ReportView">
  3184. <xsl:call-template name="build-url">
  3185. <xsl:with-param name="report" select="/root/cm:queryResponse/cm:powerPlay8ReportView"/>
  3186. </xsl:call-template>
  3187. </xsl:when>
  3188. <xsl:otherwise>
  3189. </xsl:otherwise>
  3190. </xsl:choose>
  3191. </xsl:variable>
  3192. <xsl:variable name="lang">
  3193. <xsl:choose>
  3194. <xsl:when test="/root/env/param[@name='contentLocale']">
  3195. <xsl:value-of select="string(/root/*[local-name()='contentLocale'])"/>
  3196. </xsl:when>
  3197. <xsl:when test="/root/env/param[@name='lang']">
  3198. <xsl:value-of select="string(/root/*[local-name()='lang'])"/>
  3199. </xsl:when>
  3200. <xsl:otherwise>
  3201. <xsl:text/>en<xsl:text/>
  3202. </xsl:otherwise>
  3203. </xsl:choose>
  3204. </xsl:variable>
  3205. <xsl:text disable-output-escaping='yes'>&lt;!DOCTYPE html></xsl:text>
  3206. <html>
  3207. <xsl:attribute name="lang"><xsl:value-of select="$lang"/></xsl:attribute>
  3208. <head>
  3209. <xsl:if test="$mobileLaunch='true'">
  3210. <script src="{$gateway}/mobileService/mobile_interface.js" type="text/javascript" />
  3211. </xsl:if>
  3212. <xsl:variable name="cmd-form" select="'pform'"/>
  3213. <pf:launch/>
  3214. <script language="javascript">
  3215. var launchurl = "";
  3216. function launchTargetCustomURL()
  3217. {
  3218. <xsl:if test="/root/*[local-name()='FormArray']/*[local-name()='array'] != ''">
  3219. <xsl:for-each select="/root/*[local-name()='FormArray']/*[local-name()='array']">
  3220. <xsl:variable name="formId" select="concat('f', generate-id(.))"/>
  3221. <xsl:choose>
  3222. <xsl:when test="$mobileLaunch='true'">
  3223. mobAPI.passFormFieldsToMobile(document.forms['<xsl:value-of select="$formId"/>']);
  3224. </xsl:when>
  3225. <xsl:otherwise>
  3226. document.forms['<xsl:value-of select="$formId"/>'].submit();
  3227. </xsl:otherwise>
  3228. </xsl:choose>
  3229. </xsl:for-each>
  3230. </xsl:if>
  3231. }
  3232. function launchTarget()
  3233. {
  3234. <xsl:choose>
  3235. <xsl:when test="starts-with($launchurl, 'javascript:')">
  3236. launchurl = "<xsl:value-of select="xtsext:javascriptencode($launchurl)"/>";
  3237. </xsl:when>
  3238. <xsl:otherwise>
  3239. launchurl = "<xsl:value-of select="$launchurl"/>";
  3240. </xsl:otherwise>
  3241. </xsl:choose>
  3242. if (launchurl.indexOf("javascript:") == 0)
  3243. {
  3244. <!-- temp code until portal adds support for ui.bookmark in the template gen-url -->
  3245. <!-- All of this should be removed as soon as possible -->
  3246. <xsl:variable name="launchPlusSemi1">
  3247. <xsl:value-of select="$launchurl"></xsl:value-of><xsl:text>;</xsl:text>
  3248. </xsl:variable>
  3249. <xsl:variable name="launchPlusSemi">
  3250. <xsl:choose>
  3251. <xsl:when test="$mobileLaunch='true'">
  3252. <xsl:call-template name="string-replace-all">
  3253. <xsl:with-param name="text" select="$launchPlusSemi1" />
  3254. <xsl:with-param name="replace" select="'cognosLaunch'" />
  3255. <xsl:with-param name="by" select="'mobAPI.mobileLaunch'" />
  3256. </xsl:call-template>
  3257. </xsl:when>
  3258. <xsl:otherwise>
  3259. <xsl:value-of select="$launchPlusSemi1"></xsl:value-of>
  3260. </xsl:otherwise>
  3261. </xsl:choose>
  3262. </xsl:variable>
  3263. <xsl:variable name="tempLaunchURL">
  3264. <xsl:value-of select="substring-before($launchPlusSemi, ');')"/>
  3265. <xsl:if test="$ui.bookmark != ''">
  3266. <xsl:text>,&apos;ui.bookmark&apos;,&apos;</xsl:text>
  3267. <xsl:value-of select="xtsext:javascriptencode($ui.bookmark)"/>
  3268. <xsl:text>&apos;</xsl:text>
  3269. </xsl:if>
  3270. <xsl:if test="$theEditSpec != ''">
  3271. <xsl:text>,&apos;specification.editSpecification&apos;,&apos;</xsl:text>
  3272. <xsl:value-of select="xtsext:javascriptencode($theEditSpec)"/>
  3273. <xsl:text>&apos;</xsl:text>
  3274. </xsl:if>
  3275. <!--add the checking to avoid generating an invalid javascript code-->
  3276. <xsl:if test="$launchurl != ''">
  3277. <xsl:text>);</xsl:text>
  3278. </xsl:if>
  3279. </xsl:variable>
  3280. <xsl:value-of select="$tempLaunchURL"/>
  3281. if (window.opener != null &amp;&amp; launchurl.indexOf("javascript:cognosLaunchInWindow") != -1)
  3282. {
  3283. window.close();
  3284. }
  3285. }
  3286. else
  3287. {
  3288. window.location.href = launchurl;
  3289. }
  3290. }
  3291. </script>
  3292. </head>
  3293. <xsl:choose>
  3294. <xsl:when test="$launchurl != ''">
  3295. <body onload="launchTarget();"/>
  3296. </xsl:when>
  3297. <xsl:when test="count(/root/*[local-name()='FormArray']/*[local-name()='array']) =1 ">
  3298. <body onload="launchTargetCustomURL();">
  3299. <xsl:if test="/root/*[local-name()='FormArray']/*[local-name()='array'] != ''">
  3300. <xsl:for-each select="/root/*[local-name()='FormArray']/*[local-name()='array']">
  3301. <xsl:variable name="formId" select="concat('f', generate-id(.))"/>
  3302. <form name="{$formId}" action="{*[local-name()='fAction']}" method="{*[local-name()='fMethod']}" target="{*[local-name()='fTarget']}">
  3303. <xsl:for-each select="./*[local-name()='fElements']">
  3304. <input type="hidden" name="{*[local-name()='fName']}" value="{*[local-name()='fValue']}"/>
  3305. </xsl:for-each>
  3306. </form>
  3307. </xsl:for-each>
  3308. </xsl:if>
  3309. </body>
  3310. </xsl:when>
  3311. <xsl:otherwise>
  3312. <script language="javascript">
  3313. function onClose()
  3314. {
  3315. if (window.opener != null)
  3316. {
  3317. window.close();
  3318. }
  3319. }
  3320. </script>
  3321. <xsl:variable name="browserTitle">
  3322. <xts:string id="GOTO_PAGE"></xts:string>
  3323. </xsl:variable>
  3324. <dp:page longTitle="$browserTitle">
  3325. <dp:meta>
  3326. <pf:meta/>
  3327. </dp:meta>
  3328. <dp:script>
  3329. <script language="javascript">
  3330. <xsl:attribute name="src"><xsl:value-of select="$webcontent"/>/<xsl:value-of select="$app"/>/js/list.js<xsl:text/></xsl:attribute>
  3331. </script>
  3332. </dp:script>
  3333. <dp:header>
  3334. <dp:title>
  3335. <xsl:value-of select="$browserTitle"/>
  3336. </dp:title>
  3337. <dp:description>
  3338. <xts:string id="GOTO_NO_PRIVILEGE"/>
  3339. </dp:description>
  3340. <dp:close>
  3341. <a href="javascript:onClose()">
  3342. <dp:closeMarker/>
  3343. </a>
  3344. </dp:close>
  3345. </dp:header>
  3346. <dp:footer>
  3347. <df:button df:id="IDS_CLOSE" df:style="href" df:href="javascript:onClose()"/>
  3348. </dp:footer>
  3349. </dp:page>
  3350. </xsl:otherwise>
  3351. </xsl:choose>
  3352. </html>
  3353. </xsl:template>
  3354. <xsl:template name="build-url">
  3355. <xsl:param name="report" select="''"/>
  3356. <xsl:apply-templates select="$report"/>
  3357. </xsl:template>
  3358. <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">
  3359. <pm:permissions/>
  3360. <xsl:variable name="defaultName" select="cm:defaultName"/>
  3361. <xsl:variable name="class" select="cm:objectClass"/>
  3362. <xsl:variable name="preferredAction">
  3363. <!-- use the action from the drill path if it is available -->
  3364. <xsl:choose>
  3365. <xsl:when test="/root/cm:queryResponse/cm:drillPath/cm:action and /root/cm:queryResponse/cm:drillPath/cm:action != ''">
  3366. <xsl:value-of select="/root/cm:queryResponse/cm:drillPath/cm:action"/>
  3367. </xsl:when>
  3368. <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'] != ''">
  3369. <xsl:value-of select="/root//*[local-name()='Envelope']/*[local-name()='Body']//*[local-name()='result']/*[local-name()='details']/*[local-name()='item']/*[local-name()='action']"/>
  3370. </xsl:when>
  3371. <xsl:otherwise>
  3372. <xsl:value-of select="'viewOutput'"/>
  3373. </xsl:otherwise>
  3374. </xsl:choose>
  3375. </xsl:variable>
  3376. <xsl:variable name="permissions" select="cm:permissions"/>
  3377. <xsl:variable name="searchPath" select="cm:searchPath"/>
  3378. <xsl:variable name="disabled" select="cm:disabled"/>
  3379. <xsl:variable name="drillpath_output_format">
  3380. <xsl:choose>
  3381. <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']) != ''">
  3382. <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'])"/>
  3383. </xsl:when>
  3384. <xsl:otherwise>
  3385. <xsl:value-of select="$output_format"/>
  3386. </xsl:otherwise>
  3387. </xsl:choose>
  3388. </xsl:variable>
  3389. <!-- 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
  3390. part of launchurl -->
  3391. <xsl:variable name="drillpath_prompt">
  3392. <xsl:choose>
  3393. <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']]">
  3394. <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']"/>
  3395. </xsl:when>
  3396. <xsl:otherwise>
  3397. <xsl:value-of select="none"/>
  3398. </xsl:otherwise>
  3399. </xsl:choose>
  3400. </xsl:variable>
  3401. <!--We pass target default output format as parameter. Output_format is empty when there is not saved output
  3402. so we can use it to specify if we can set the action to view -->
  3403. <xsl:variable name="action">
  3404. <xsl:call-template name="calculate-action">
  3405. <xsl:with-param name="class" select="$class"/>
  3406. <xsl:with-param name="preferredAction" select="$preferredAction"/>
  3407. <xsl:with-param name="output_format" select="$drillpath_output_format"/>
  3408. <xsl:with-param name="DefaultOutputFormat" select="$output_format"/>
  3409. <xsl:with-param name="canRead" select="$canRead"/>
  3410. <xsl:with-param name="canExecute" select="$canExecute"/>
  3411. <xsl:with-param name="canTraverse" select="$canTraverse"/>
  3412. </xsl:call-template>
  3413. </xsl:variable>
  3414. <xsl:variable name="launchurl">
  3415. <xsl:choose>
  3416. <xsl:when test="/root/cm:queryResponse/cm:powerPlay8Report or /root/cm:queryResponse/cm:powerPlay8ReportView">
  3417. <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']"/>
  3418. <xsl:value-of select="drillxtsext:generatePPStudioLaunchURL($action,$searchPath,$theEditSpec,$drillpath_output_format)"/>
  3419. </xsl:when>
  3420. <xsl:otherwise>
  3421. <xsl:call-template name="gen-url">
  3422. <xsl:with-param name="canExecute" select="$canExecute"/>
  3423. <xsl:with-param name="canRead" select="$canRead"/>
  3424. <xsl:with-param name="canTraverse" select="$canTraverse"/>
  3425. <xsl:with-param name="output_format" select="$drillpath_output_format"/>
  3426. <xsl:with-param name="class" select="$class"/>
  3427. <xsl:with-param name="userInterfaces" select="false"/>
  3428. <xsl:with-param name="action" select="$action"/>
  3429. <xsl:with-param name="isDangling" select="false()"/>
  3430. <xsl:with-param name="isContainer" select="false()"/>
  3431. <xsl:with-param name="isIgnoreBackURL" select="true()"/>
  3432. <xsl:with-param name="isDrillthruMode" select="true()"/>
  3433. <xsl:with-param name="specifyRunOutputFormat" select="true()"/>
  3434. <!--Add new param for run.prompt -->
  3435. <xsl:with-param name="executionPrompt" select="$drillpath_prompt"/>
  3436. </xsl:call-template>
  3437. </xsl:otherwise>
  3438. </xsl:choose>
  3439. </xsl:variable>
  3440. <xsl:value-of select="$launchurl"/>
  3441. </xsl:template>
  3442. <xsl:template name="calculate-action">
  3443. <xsl:param name="class" select="''"/>
  3444. <xsl:param name="preferredAction" select="''"/>
  3445. <xsl:param name="output_format" select="''"/>
  3446. <xsl:param name="DefaultOutputFormat" select="''"/>
  3447. <xsl:param name="canRead" select="false()"/>
  3448. <xsl:param name="canExecute" select="false()"/>
  3449. <xsl:param name="canTraverse" select="false()"/>
  3450. <xsl:param name="userInterfaces" select="''"/>
  3451. <xsl:variable name="action">
  3452. <xsl:choose>
  3453. <xsl:when test="contains(' analysis report query reportView powerPlay8Report powerPlay8ReportView package', concat(' ', $class, ' ' ))">
  3454. <xsl:choose>
  3455. <xsl:when test="$preferredAction='viewOutput' and ($canRead and $canTraverse)">
  3456. <xsl:choose>
  3457. <!--check DefaultOutputFormat to see if target has a saved output -->
  3458. <xsl:when test="$output_format != '' and $DefaultOutputFormat!='' ">view</xsl:when>
  3459. <xsl:when test="($class='powerPlay8Report') and ($canRead and $canExecute) and($output_format != ''or $DefaultOutputFormat!='' ) ">run</xsl:when>
  3460. <xsl:when test="($class='query' or $class='analysis' or $class='powerPlay8Report') and ($canRead and $canExecute)">edit</xsl:when>
  3461. <xsl:when test="$canRead and $canExecute">run</xsl:when>
  3462. </xsl:choose>
  3463. </xsl:when>
  3464. <xsl:when test="$preferredAction='run' and ($canRead and $canExecute)">run</xsl:when>
  3465. <xsl:when test="$preferredAction='edit' and ($canRead and $canExecute)">
  3466. <xsl:choose>
  3467. <xsl:when test="$userCanUseQS and ($browser='ie' or $browser='moz')">edit</xsl:when> <!-- query object -->
  3468. <xsl:when test="$userCanUseRS and $browser='ie' ">edit</xsl:when> <!-- report object-->
  3469. <xsl:when test="$userCanUseANS">edit</xsl:when> <!--analysis object -->
  3470. </xsl:choose>
  3471. </xsl:when>
  3472. <!-- this is the fall back if action was not set for report and report view: view, run (wouldn't get to edit) -->
  3473. <!-- but for query and anlaysis: view, edit and run -->
  3474. <xsl:when test="$output_format != '' and ($canRead and $canTraverse)">view</xsl:when>
  3475. <xsl:when test="$class='query' and $canRead and $canExecute and $userCanUseQS and ($browser='ie' or $browser='moz')">edit</xsl:when> <!-- query object -->
  3476. <xsl:when test="$class='analysis' and $canRead and $canExecute and $userCanUseANS">edit</xsl:when> <!--analysis object -->
  3477. <xsl:when test="$class='powerPlay8Report' and $canRead and $canExecute">edit</xsl:when> <!--powerplay8report -->
  3478. <xsl:when test="$canRead and $canExecute">run</xsl:when><!-- report object-->
  3479. </xsl:choose>
  3480. </xsl:when>
  3481. <xsl:when test="contains(' package ', concat(' ', $class, ' ' ))">
  3482. <xsl:if test="$userInterfaces='metricStudio'">
  3483. <xsl:choose>
  3484. <xsl:when test="($preferredAction='view') and $canTraverse">view</xsl:when>
  3485. <xsl:when test="($preferredAction='run' or $preferredAction='') and ($canRead and $canExecute) and $userCanUseMetricsManager">run</xsl:when>
  3486. </xsl:choose>
  3487. </xsl:if>
  3488. </xsl:when>
  3489. </xsl:choose>
  3490. </xsl:variable>
  3491. <xsl:value-of select="$action"/>
  3492. </xsl:template>
  3493. <pf:gen-icon/>
  3494. <pf:gen-url/>
  3495. </xsl:stylesheet>
  3496. </xts:block>
  3497. <!--Add a new block to obtain mapping and target info from a selected target and display the mapping info for debugging purpose.
  3498. This info becomes available only when a user has the capability to run the debug assistant.
  3499. -->
  3500. <xts:block id="debugTarget" mode="output" processor="XSLT" type="exec" mimeType="text/html" dependency="getTarget"
  3501. 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
  3502. (/root/resultStatus = 'complete' or /root/resultStatus = 'conversationComplete')]">
  3503. <xts:logicsheet path="logicsheets/portal.xsl"/>
  3504. <xts:logicsheet path="logicsheets/permissions.xsl"/>
  3505. <xts:logicsheet path="logicsheets/presentation/main/framework.xsl"/>
  3506. <xts:logicsheet path="logicsheets/presentation/dialog/framework.xsl"/>
  3507. <xts:logicsheet path="logicsheets/presentation/layout.xsl"/>
  3508. <xts:logicsheet path="logicsheets/presentation/controls/framework.xsl"/>
  3509. <xts:logicsheet path="logicsheets/presentation/controls/presentation.xsl"/>
  3510. <xts:logicsheet path="logicsheets/presentation/dialog/presentation.xsl"/>
  3511. <xts:logicsheet path="logicsheets/validation.xslt"/>
  3512. <xts:logicsheet path="logicsheets/presentation/touch_up.xslt"/>
  3513. <xsl:stylesheet version="1.0"
  3514. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  3515. xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
  3516. xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
  3517. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  3518. xmlns:lyt="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/layout/"
  3519. xmlns:dp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/presentation/"
  3520. xmlns:df="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/framework/"
  3521. xmlns:cf="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/framework/"
  3522. xmlns:cp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/presentation/"
  3523. xmlns:mf="http://developer.cognos.com/schemas/xts/logicsheets/presentation/main/mf"
  3524. xmlns:pm="http://developer.cognos.com/schemas/xts/pm"
  3525. xmlns:bus="http://developer.cognos.com/schemas/bibus/3/">
  3526. xmlns:xts="http://developer.cognos.com/schemas/xts/" exclude-result-prefixes="xsl cm pf xts xtsext lyt dp df cf cp">
  3527. <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no" omit-xml-declaration="yes"/>
  3528. <xsl:variable name="mname" select="'goto2.xts'"/>
  3529. <mf:variables/>
  3530. <pf:variables/>
  3531. <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no"
  3532. doctype-system="http://www.w3.org/TR/html4/strict.dtd"
  3533. doctype-public="-//W3C//DTD HTML 3.2 Final//EN"
  3534. />
  3535. <xsl:template match="/root">
  3536. <xsl:variable name="lang">
  3537. <xsl:choose>
  3538. <xsl:when test="/root/env/param[@name='contentLocale']">
  3539. <xsl:value-of select="string(/root/*[local-name()='contentLocale'])"/>
  3540. </xsl:when>
  3541. <xsl:when test="/root/env/param[@name='lang']">
  3542. <xsl:value-of select="string(/root/*[local-name()='lang'])"/>
  3543. </xsl:when>
  3544. <xsl:otherwise>
  3545. <xsl:text/>en<xsl:text/>
  3546. </xsl:otherwise>
  3547. </xsl:choose>
  3548. </xsl:variable>
  3549. <xsl:text disable-output-escaping='yes'>&lt;!DOCTYPE html></xsl:text>
  3550. <html>
  3551. <xsl:attribute name="lang"><xsl:value-of select="$lang"/></xsl:attribute>
  3552. <head>
  3553. <!-- CSSs requird to use format properly -->
  3554. <link rel="stylesheet" type="text/css" href="{$skin_root}/portal/default.css"/>
  3555. <link rel="stylesheet" type="text/css" href="{$skin_root}/qs/RVReport.css"/>
  3556. <title><xts:string id="DEBUG_PARAMETER_MAPPING"/></title>
  3557. </head>
  3558. <body>
  3559. <div>
  3560. <table>
  3561. <tr>
  3562. <td colspan="2" nowrap="" height="10" class="formLabel">
  3563. <xts:string id="DEBUG_PARAMETER_MAPPING"/></td>
  3564. </tr>
  3565. <tr>
  3566. <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_DRILL_THROUGH_DEFINITION"/></td>
  3567. <td class="formText">
  3568. <xsl:choose>
  3569. <xsl:when test="/root/env/param[@name='drillPathName'] and /root/env/param[@name='drillPathName'] != ''">
  3570. <xsl:value-of select="xtsext:enforceBTD((/root/env/param[@name='drillPathName']), $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  3571. </xsl:when>
  3572. <xsl:otherwise>
  3573. <xsl:for-each select="/root/*[local-name()='queryResponse'][1]/*[local-name()='drillPath']">
  3574. <xsl:value-of select="xtsext:enforceBTD(./*[local-name()='defaultName'], $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  3575. </xsl:for-each>
  3576. </xsl:otherwise>
  3577. </xsl:choose>
  3578. </td>
  3579. </tr>
  3580. <tr>
  3581. <td nowrap="" height="10" class="tabletext"><xts:string id="DEBUG_MAPPING_PARAMETERS"/></td>
  3582. </tr>
  3583. </table>
  3584. <!-- create a table for mapping parameters -->
  3585. <!-- -->
  3586. <!--For defect https://bajazz05.canlab.ibm.com:9750/ccm/resource/itemName/com.ibm.team.workitem.WorkItem/216715 -->
  3587. <!-- This table used to use the cctable style. For defect 216715 the cutomer modified the cctable style in a default.css. -->
  3588. <!-- Among other things, the customer added an explicit height to cctable. The 500px height made this table unusable. -->
  3589. <!-- This table is meant to expand under its corresponding 'goto' link. The existing cctable defintions in all skins define a -->
  3590. <!-- border and set a white background color. This table disables the border (border="0"). So the only thing used from -->
  3591. <!-- the default cctable was the setting for the background colour. So, remove the cctable class and add the white background -->
  3592. <!-- fixes the problem of this sub table being not displaying properly if a height is set -->
  3593. <table width="100%" cellspacing="0" cellpadding="3" border="0" bgcolor="#ffffffff">
  3594. <thead id="MappingParametersHeader">
  3595. <tr class="tableHeader">
  3596. <!--Parameter name column header-->
  3597. <td width="20%" valign="center" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px;" class="tableTitle">
  3598. <table cellspacing="0" cellpadding="0" border="0">
  3599. <tbody>
  3600. <tr>
  3601. <td valign="top" nowrap="" class="tableTitle">
  3602. <xts:string id="DEBUG_PARAMETER_NAME"/>
  3603. </td>
  3604. </tr>
  3605. </tbody>
  3606. </table>
  3607. </td>
  3608. <!--Parameter Display column header-->
  3609. <td width="1" height="15">
  3610. <table cellspacing="0" cellpadding="0" border="0">
  3611. <tbody>
  3612. <tr>
  3613. <td class="tableHeaderDivider">
  3614. <img width="1" height="15" src="{$webcontent}/images/space.gif" alt=""/>
  3615. </td>
  3616. </tr>
  3617. </tbody>
  3618. </table>
  3619. </td>
  3620. <td width="20%" valign="center" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px;" class="tableTitle">
  3621. <table cellspacing="0" cellpadding="0" border="0">
  3622. <tbody>
  3623. <tr>
  3624. <td valign="top" nowrap="" class="tableTitle">
  3625. <xts:string id="DEBUG_DISPLAY"/>
  3626. </td>
  3627. </tr>
  3628. </tbody>
  3629. </table>
  3630. </td>
  3631. <!--Parameter use column header-->
  3632. <td width="1" height="15">
  3633. <table cellspacing="0" cellpadding="0" border="0">
  3634. <tbody>
  3635. <tr>
  3636. <td class="tableHeaderDivider">
  3637. <img width="1" height="15" src="{$webcontent}/images/space.gif" alt=""/>
  3638. </td>
  3639. </tr>
  3640. </tbody>
  3641. </table>
  3642. </td>
  3643. <td width="60%" valign="center" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px;" class="tableTitle">
  3644. <table cellspacing="0" cellpadding="0" border="0">
  3645. <tbody>
  3646. <tr>
  3647. <td valign="top" nowrap="" class="tableTitle">
  3648. <xts:string id="DEBUG_USE"/>
  3649. </td>
  3650. </tr>
  3651. </tbody>
  3652. </table>
  3653. </td>
  3654. </tr>
  3655. </thead>
  3656. <!-- Take the parameters returned in the response from the run of a drillpath (or a wait) and show them as "Mapped Target Parameters" -->
  3657. <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']">
  3658. <!-- To prevent showing credentials in the UI -->
  3659. <xsl:if test="not(contains(*[local-name()='name'],'credential'))">
  3660. <tr>
  3661. <!--Parameter name column rows-->
  3662. <td nowrap="" valign="top" height="10" class="tabletext"><xsl:value-of select="xtsext:enforceBTD(*[local-name()='name'], $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/></td>
  3663. <!--Parameter display column rows-->
  3664. <td nowrap="" height="10" class="tabletext">
  3665. <xsl:for-each select="*[local-name()='value']/*[local-name()='item']">
  3666. <xsl:value-of select="xtsext:enforceBTD(*[local-name()='display'], $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  3667. <!-- Start of handling in range parameters - Display value -->
  3668. <!-- Check to see if we have range type parameters -->
  3669. <xsl:if test="*[local-name()='start']!='' or *[local-name()='end']!=''">
  3670. <!-- check to see if we have the start range-->
  3671. <xsl:choose>
  3672. <xsl:when test="*[local-name()='start']!=''">
  3673. <xsl:value-of select="xtsext:enforceBTD(*[local-name()='start']/*[local-name()='display'], $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  3674. </xsl:when>
  3675. <xsl:otherwise>
  3676. <!-- TODO: This provides an empty line for unbounded start
  3677. which needs to be tested after server returns a response
  3678. for such cases-->
  3679. <label>--</label>
  3680. </xsl:otherwise>
  3681. </xsl:choose>
  3682. <br/>
  3683. <!-- Check to see if we have the end range-->
  3684. <xsl:choose>
  3685. <xsl:when test="*[local-name()='end']!=''">
  3686. <xsl:value-of select="xtsext:enforceBTD(*[local-name()='end']/*[local-name()='display'], $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  3687. </xsl:when>
  3688. <xsl:otherwise>
  3689. <!-- TODO: This provides an empty line for unbounded start
  3690. which needs to be tested after server returns a response
  3691. for such cases-->
  3692. <label>--</label>
  3693. </xsl:otherwise>
  3694. </xsl:choose>
  3695. </xsl:if>
  3696. <!-- End of handling range parameters - Display Value -->
  3697. <br />
  3698. </xsl:for-each>
  3699. </td>
  3700. <!--Parameter use column rows-->
  3701. <td></td>
  3702. <td nowrap="" height="10" class="tabletext">
  3703. <xsl:for-each select="*[local-name()='value']/*[local-name()='item']">
  3704. <xsl:value-of select="xtsext:enforceBTD(*[local-name()='use'], $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  3705. <!--
  3706. Start of handling in_range parameters - Use value.
  3707. Currently this is only related to dates when
  3708. drill through from OLAP to relational.
  3709. Because it is only OLAP date that can be
  3710. a range.
  3711. In addition it also shows up if we have in_range
  3712. parameter both in source and target
  3713. TODO: DTP does not return any information on unbounded starts
  3714. or end and return the same response for all target
  3715. parameters. This needs to be fixed in DTP -->
  3716. <!-- Check to see if we have range type parameters -->
  3717. <xsl:if test="*[local-name()='start']!='' or *[local-name()='end']!=''">
  3718. <!-- check to see if we have the start range-->
  3719. <xsl:choose>
  3720. <xsl:when test="*[local-name()='start']!=''">
  3721. <xsl:value-of select="xtsext:enforceBTD(*[local-name()='start']/*[local-name()='use'], $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  3722. </xsl:when>
  3723. <xsl:otherwise>
  3724. <!-- TODO: This provides an empty line for unbounded start
  3725. which needs to be tested after server returns a response
  3726. for such cases-->
  3727. <label>--</label>
  3728. </xsl:otherwise>
  3729. </xsl:choose>
  3730. <br/>
  3731. <!-- Check to see if we have the end range-->
  3732. <xsl:choose>
  3733. <xsl:when test="*[local-name()='end']!=''">
  3734. <xsl:value-of select="xtsext:enforceBTD(*[local-name()='end']/*[local-name()='use'], $baseTextDirection, $productLocale, boolean($isBidiEnabled='true'))"/>
  3735. </xsl:when>
  3736. <xsl:otherwise>
  3737. <!-- TODO: This provides an empty line for unbounded start
  3738. which needs to be tested after server returns a response
  3739. for such cases-->
  3740. <label>--</label>
  3741. </xsl:otherwise>
  3742. </xsl:choose>
  3743. </xsl:if>
  3744. <!-- End of handling range parameters -->
  3745. <br/>
  3746. </xsl:for-each>
  3747. </td>
  3748. </tr>
  3749. </xsl:if>
  3750. </xsl:for-each>
  3751. </table>
  3752. <!--end mapping parameter table-->
  3753. <!-- Start of edit specification table -->
  3754. <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']">
  3755. <br/>
  3756. <!-- -->
  3757. <!--For defect https://bajazz05.canlab.ibm.com:9750/ccm/resource/itemName/com.ibm.team.workitem.WorkItem/216715 -->
  3758. <!-- This table used to use the cctable style. For defect 216715 the cutomer modified the cctable style in a default.css. -->
  3759. <!-- Among other things, the customer added an explicit height to cctable. The 500px height made this table unusable. -->
  3760. <!-- This table is meant to expand under its corresponding 'goto' link. The existing cctable defintions in all skins define a -->
  3761. <!-- border and set a white background color. This table disables the border (border="0"). So the only thing used from -->
  3762. <!-- the default cctable was the setting for the background colour. So, remove the cctable class and add the white background -->
  3763. <!-- fixes the problem of this sub table being not displaying properly if a height is set -->
  3764. <table width="100%" cellspacing="0" cellpadding="2" border="0" bgcolor="#ffffffff">
  3765. <thead id="EditSpecificationHeader">
  3766. <tr class="tableHeader">
  3767. <td width="30%" valign="center" nowrap="" height="10" style="padding-left: 2px; padding-top: 2px;" class="tableTitle">
  3768. <table cellspacing="0" cellpadding="0" border="0">
  3769. <tbody>
  3770. <tr>
  3771. <td valign="top" nowrap="" class="tableTitle">
  3772. <xts:string id="DEBUG_EDIT_SPECIFICAION"/>
  3773. </td>
  3774. </tr>
  3775. </tbody>
  3776. </table>
  3777. </td>
  3778. </tr>
  3779. </thead>
  3780. <tr>
  3781. <td valign="top" nowrap="" height="10" class="tabletext">
  3782. <!-- dump out the selection context -->
  3783. <!-- TODO: come up with proper formating for selection context -->
  3784. <dp:description>
  3785. <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']"/>
  3786. </dp:description>
  3787. </td>
  3788. </tr>
  3789. </table>
  3790. </xsl:for-each>
  3791. <!-- End of edit specification table -->
  3792. </div>
  3793. </body>
  3794. </html>
  3795. </xsl:template>
  3796. </xsl:stylesheet>
  3797. </xts:block>
  3798. <!-- Debug -->
  3799. <!-- ============================================================================= -->
  3800. <xts:block id="debug" dependency="render" condition=".[/root/session/param[@name='debug'] = '1' ]" type="exec" mode="output" processor="XSLT" mandatory="false" mimeType="text/html">
  3801. <xts:logicsheet path="logicsheets/debuglogic.xslt"/>
  3802. <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">
  3803. <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no"/>
  3804. <dbg:templates/>
  3805. <xsl:template match="/">
  3806. <dbg:dumpxml select="/root"/>
  3807. </xsl:template>
  3808. </xsl:stylesheet>
  3809. </xts:block>
  3810. </xts:morphlet>