123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385 |
- /****************************************************************************************************************************
- Licensed Materials - Property of IBM
- BI and PM: QFW
- © Copyright IBM Corp. 2005, 2010
- US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- *****************************************************************************************************************************/
- var fso = null;
- function getFileSystemObject()
- {
- try
- {
- if( fso == null )
- fso = new ActiveXObject("Scripting.FileSystemObject");
-
- return fso;
- } catch (e) {
- return null;
- }
- }
- function executeXML( text, binFolder, fileName )
- {
- text = text.replace( /<[^> \/]+:/g, "<" );
- text = text.replace( /<\/[^> ]+:/g, "</" );
- text = text.replace( /(\<\/?)(validate)/g, "$1execute" );
- text = text.replace( /<queryFeedback[\S\s]*<\/queryFeedback>/g, "" );
- var fso = new ActiveXObject("Scripting.FileSystemObject");
- var s = fso.CreateTextFile( fileName + ".xml", true);
- s.WriteLine(text);
- s.Close();
- var myshell = new ActiveXObject( "WScript.shell" );
-
- myshell.CurrentDirectory = binFolder;
- myshell.run( "\"" + binFolder + "\\QFWTest.exe\" -rsxsl 2 -pagesize -1 -d \"" + binFolder + "\\..\\logs\\qfw\" \"" + fileName + ".xml\"" , 1, true );
- if( fso.FileExists(fileName + ".out") )
- {
- textFile = fso.OpenTextFile(fileName + ".out",1);
- var fileContents = textFile.ReadAll();
- textFile.Close();
- return fileContents;
- }
- }
- var xslObject = null;
- function getOutputFormattingXsl()
- {
- if( xslObject != null )
- return xslObject;
- var fileSystem = getFileSystemObject();
- xslFile = fileSystem.OpenTextFile( binFolder.innerText + "\\..\\templates\\qfw\\QFResultSetFormatting.xsl" ,1 );
- var xslFileContents = xslFile.ReadAll();
- xslFile.Close();
- xslObject = new ActiveXObject("Microsoft.XMLDOM");
- xslObject.async = false;
- xslObject.loadXML( xslFileContents );
- return xslObject;
- }
- function executeOnClick()
- {
- var fullXML = event.srcElement.parentElement;
- var xmlroot = null;
- var resultroot = null;
- var child = fullXML.firstChild;
- for( ; child != null; child = child.nextSibling )
- if( child.tagName == "DIV" )
- {
- if( xmlroot == null && child.className == 'e')
- xmlroot = child;
-
- if( child.className == "result" )
- resultroot = child;
- else
- child.style.display = "none";
- }
-
- if( resultroot != null )
- {
- resultroot.style.display = "block";
- return;
- }
- if( xmlroot == null )
- return;
- if( document.body.client != "CRN" )
- executeWithQFWTest( xmlroot, fullXML );
- else
- executeWithCRN( xmlroot, fullXML );
- }
- var v_sFrameId_Counter = 1;
- function executeWithCRN( xmlroot, fullXML )
- {
- var v_oFrame;
- var v_sFrameId;
-
- for( var i = 0; i < fullXML.childNodes.length; ++i )
- if( fullXML.childNodes[i].tagName == "IFRAME" )
- v_oFrame = fullXML.childNodes[i];
-
- if( !v_oFrame )
- {
- var v_sFrameId = "idResultView" + (v_sFrameId_Counter++);
- v_oFrame = document.createElement( "IFRAME" );
-
- fullXML.appendChild( v_oFrame );
- v_oFrame.outerHTML =
- '<IFRAME src="' + window.parent.G_HAL.F_GetFileURL('../hal/blank.htm') +
- '" name="' + v_sFrameId + '" id="' + v_sFrameId + '" frameBorder="no" style="border:none; display:block; width: 80%;"></IFRAME>';
-
- var v_sQueryText = extractV5CommandText( xmlroot, fullXML );
- var v_sReportSpec = window.parent.G_QanReportGenerator.F_convertQueryToReportSpec( v_sQueryText );
- window.parent.G_QanQueryExecution.F_submitReportViewRequest( v_sFrameId, document, v_sReportSpec );
- }
- else
- {
- v_oFrame.style.display = "block";
- }
- }
- window.adjustResultViewer = function(viewerWindow)
- {
- // alert( 'h='+ viewerWindow.document.getElementById( 'CVReportRS' ).offsetHeight + ';w=' + viewerWindow.document.body.scrollWidth );
- //debugger;
-
- var v_nViewerIframe = document.getElementById(viewerWindow.name);
-
- var v_nViewerElement = viewerWindow.document.getElementById( 'CVReportRS' );
- var v_viewerHeight = v_nViewerElement.offsetHeight;
- var v_nViewerToolbarElement = viewerWindow.document.getElementById( 'CVToolbarRS' );
- if( v_nViewerToolbarElement )
- v_viewerHeight += v_nViewerToolbarElement.offsetHeight;
- var v_nViewerNavElement = viewerWindow.document.getElementById( 'CVNavLinksRS' );
- if( v_nViewerNavElement )
- v_viewerHeight += v_nViewerNavElement.offsetHeight;
-
-
- v_nViewerIframe.style.height = v_viewerHeight + 5 + 'px';
- v_nViewerIframe.style.width = viewerWindow.document.body.scrollWidth + 5 + 'px';
- }
- function extractV5CommandText( xmlroot, fullXML )
- {
- var queryText = "";
- var rootElemName = xmlNodeName( xmlroot );
- if( rootElemName == 'command' || rootElemName == 'qs:command' )
- queryText = xmlroot.innerText;
- else
- {
- var connectElem;
- var queryElem = document.getElementById( fullXML.parentNode.objId );
- if( queryElem )
- connectElem = document.getElementById( queryElem.connectId + "_connect" );
- if( connectElem && connectElem.children.length >= 2 )
- {
- var connectionSpecElem = connectElem.firstChild;
- for( ; connectionSpecElem && connectionSpecElem.className != "e";
- connectionSpecElem = connectionSpecElem.nextSibling );
- if( !connectionSpecElem )
- formatXMLFromString( connectElem );
- for( connectionSpecElem = connectElem.firstChild;
- connectionSpecElem && connectionSpecElem.className != "e";
- connectionSpecElem = connectionSpecElem.nextSibling );
-
-
- queryText = "<command>" + ((connectionSpecElem)?connectionSpecElem.innerText:"") +
- xmlroot.innerText + "</command>";
- }
- else
- queryText = "<command>" + xmlroot.innerText + "</command>";
- }
- queryText = queryText.replace( /\<[^\> ]*:?parameters.*\>/, "<parameters xmlns:bus=\"http://developer.cognos.com/schemas/bibus/3/\" SOAP-ENC:arrayType=\"bus:parameterValue[2]\" 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\" xsi:type=\"SOAP-ENC:Array\">" );
- queryText = queryText.replace( /\<\/[^\> ]*:?parameters/, "</parameters" );
-
- queryText = queryText.replace( /\<qs:command/, "<command" );
- queryText = queryText.replace( /\<\/qs:command/, "</command" );
- queryText = queryText.replace( /rID="[^"]*"/g, "" );
-
- return queryText;
- }
- function executeWithQFWTest( xmlroot, fullXML )
- {
- var resultroot = document.createElement( "div" );
- fullXML.appendChild( resultroot );
- resultroot.innerText = " Procesing ... ";
- resultroot.className = "result";
- var thisdate = new Date();
- var fileName = binFolder.innerText + "\\..\\logs\\qfw\\qfwlog_temp_" + thisdate.getTime();
- var queryText = extractV5CommandText( xmlroot, fullXML );
-
- var resultContent =
- executeXML( queryText, binFolder.innerText, fileName );
- var xml = new ActiveXObject("Microsoft.XMLDOM")
- xml.async = false;
- if( xml.loadXML(resultContent) )
- {
- var htmlText = xml.transformNode( getOutputFormattingXsl() );
- resultroot.innerHTML = htmlText;
- }
- else
- {
- resultroot.innerHTML = "<pre></pre>";
- resultroot.firstChild.innerText = resultContent;
- }
- event.cancelBubble = true;
- }
- function executeSetProperties()
- {
- var propsElem = event.srcElement;
- var dsPwd = document.createElement( "span" );
- propsElem.appendChild( dsPwd );
- dsPwd.innerText = "Password";
- var dsPwd = document.createElement( "textArea" );
- propsElem.appendChild( dsPwd );
- dsPwd.rows = 1;
- dsPwd.cols = 20;
-
- }
- function mainMethodOnClick()
- {
- var methodElem = event.srcElement;
- for( ; methodElem != null && methodElem.className != "method";
- methodElem = methodElem.parentElement );
- if( methodElem == null )
- return;
- var children = methodElem.childNodes;
- for( i = 0; i < children.length; ++i )
- {
- if( children[i].className == "nesting" )
- {
- if( event.srcElement.innerText == '(-)' )
- {
- event.srcElement.innerText = '(+)';
- children[i].style.display ='none';
- }
- else
- {
- event.srcElement.innerText = '(-)';
- children[i].style.display ='block';
- }
- }
- }
- }
- var treeID = 1;
- function xmlFirstChild( xmlNode, nodeName )
- {
- var i = 0;
- for( ; i < xmlNode.childNodes.length; ++i )
- {
- if( xmlNode.childNodes[i].tagName == "DIV" && xmlNode.childNodes[i].className == "" )
- {
- xmlNode = xmlNode.childNodes[i];
- i = -1;
- continue;
- }
- if( xmlNode.childNodes[i].className == "e" &&
- ( nodeName == null || nodeName == xmlNodeName( xmlNode.childNodes[i] ) ) )
- return xmlNode.childNodes[i];
- }
- return null;
- }
- function xmlGetText( xmlNode )
- {
- var i = 0;
- for( ; i < xmlNode.childNodes.length; ++i )
- {
- if( xmlNode.childNodes[i].tagName == "DIV" && xmlNode.childNodes[i].className == "" )
- {
- xmlNode = xmlNode.childNodes[i];
- i = -1;
- continue;
- }
- if( xmlNode.childNodes[i].tagName == "B" && xmlNode.childNodes[i].className == "t" )
- {
- return xmlNode.childNodes[i].innerText;
- }
- }
- return "";
- }
- function xmlNextSibling( xmlNode, nodeName )
- {
- var xmlNode = xmlNode.nextSibling;
- for( ; xmlNode != null; xmlNode = xmlNode.nextSibling )
- {
- if( xmlNode.className == "e" &&
- ( nodeName == null || nodeName == xmlNodeName( xmlNode ) ) )
- {
- return xmlNode;
- }
- }
- return null;
- }
- function xmlParent( xmlNode )
- {
- for( ; xmlNode != null; xmlNode = xmlNode.parentElement )
- {
- if( xmlNode.className == "e" )
- return xmlNode;
- }
- return null;
- }
- function xmlNodeName( xmlNode )
- {
- var i = 0;
- for( ; i < xmlNode.childNodes.length; ++i )
- {
- if( xmlNode.childNodes[i].className == "c" )
- {
- xmlNode = xmlNode.childNodes[i];
- break;
- }
- }
-
- var elemContent = xmlNode.innerText;
- return elemContent.replace(/</,'').match(/[^\ >\/]*/)[0];
- }
- function xmlNodeAttribute( xmlNode, attributeName )
- {
- var i = 0;
- for( ; i < xmlNode.childNodes.length; ++i )
- {
- if( xmlNode.childNodes[i].className == "c" )
- {
- xmlNode = xmlNode.childNodes[i];
- break;
- }
- }
- elemContent = xmlNode.innerText;
-
- var v_reAttrExpr = new RegExp( ' ' + attributeName + '\=\"([^\"]*)\"' );
- var v_aAttrExprRes = elemContent.match( v_reAttrExpr );
- if( !v_aAttrExprRes )
- return "";
-
- return (v_aAttrExprRes[1])? v_aAttrExprRes[1]: "";
- }
- function isQSAPICommandType( elemName )
- {
- return ( elemName == "execute" ||
- elemName == "getParameters" ||
- elemName == "validate" ) ;
- }
- function getV5QuerySet( xmlNode )
- {
- var elemName = xmlNodeName( xmlNode );
- if( elemName == "querySet" )
- return xmlNode;
- if( isQSAPICommandType( elemName ) ||
- elemName == "source" ||
- elemName == "response" )
- {
- return xmlFirstChild( xmlNode, "querySet" );
- }
-
- if( elemName == "command" || elemName == "qs:command" )
- {
- var childNode = xmlFirstChild( xmlNode );
- for( ; childNode != null; childNode = xmlNextSibling( childNode ) )
- {
- elemName = xmlNodeName( childNode );
- if( isQSAPICommandType( elemName ) )
- {
- return xmlFirstChild( childNode, "querySet" );
- }
- }
- }
- }
- function unwindQuerySet( xmlNode, tree, parentIndex )
- {
- var xmlQuerySet = getV5QuerySet( xmlNode );
- if( xmlQuerySet == null )
- return false;
- var queryArray = new Array();
- var xmlQueries = xmlFirstChild( xmlQuerySet, "queries" );
- if( xmlQueries != null )
- {
- var xmlQuery = xmlFirstChild( xmlQueries, "query" );
- for( ; xmlQuery != null; xmlQuery = xmlNextSibling( xmlQuery, "query" ) )
- {
- queryArray[ xmlNodeAttribute( xmlQuery, "name" ) ] = xmlQuery;
- }
- xmlQuery = xmlFirstChild( xmlQueries, "providerQuery" );
- for( ; xmlQuery != null; xmlQuery = xmlNextSibling( xmlQuery, "providerQuery" ) )
- {
- unwindProviderQuery( xmlQuery, tree, parentIndex, queryArray );
- }
- }
- var xmlQRDs = xmlFirstChild( xmlQuerySet, "queryResultDefinitions" );
- if( xmlQRDs != null )
- {
- var xmlQRD = xmlFirstChild( xmlQRDs, "queryResultDefinition" );
- for( ; xmlQRD != null; xmlQRD = xmlNextSibling( xmlQRD, "queryResultDefinition" ) )
- {
- unwindQRD( xmlQRD, tree, parentIndex, queryArray );
- }
-
- }
-
- return true;
- }
- var treeLeafIdGen = 0;
- function unwindQRD( xmlQRD, tree, parentIndex, queryArray )
- {
- thisLeafId = treeLeafIdGen++;
- tree.add( thisLeafId, parentIndex,
- xmlNodeAttribute( xmlQRD, "name" ),
- null, null, "#FCFFD3", "QRD" );
-
- preserveId2XMLNodeMapping( thisLeafId, xmlQRD );
-
- unwindQueryRef( xmlQRD, tree, thisLeafId, queryArray );
- }
- function unwindQueryRef( xmlRef, tree, parentIndex, queryArray )
- {
- queryName = xmlNodeAttribute( xmlRef, "refQuery" );
- xmlQuery = queryArray[queryName];
- if( xmlQuery == null )
- return;
- unwindQuery( xmlQuery, tree, parentIndex, queryArray );
- }
- function unwindQuery( xmlQuery, tree, parentIndex, queryArray )
- {
- thisLeafId = treeLeafIdGen++;
- tree.add( thisLeafId, parentIndex,
- xmlNodeAttribute( xmlQuery, "name" ),
- null, null, "#E3E3D3", "Query" );
- xmlSource = xmlFirstChild( xmlQuery, "source" );
- if( xmlSource == null )
- return;
-
- preserveId2XMLNodeMapping( thisLeafId, xmlQuery );
- unwindSource( xmlSource, tree, thisLeafId, queryArray );
- }
- function unwindSource( xmlSource, tree, parentIndex, queryArray )
- {
- if( unwindQuerySet( xmlSource, tree, parentIndex ) )
- return;
- var childNode = xmlFirstChild( xmlSource );
-
- for( ; childNode != null; childNode = xmlNextSibling( childNode ) )
- {
- if( xmlNodeName( childNode ) == "queryRef" )
- unwindQueryRef( childNode, tree, parentIndex, queryArray );
- else if( xmlNodeName( childNode ) == "providerQuery" )
- unwindProviderQuery( childNode, tree, parentIndex, queryArray );
- else if( xmlNodeName( childNode ) == "queryOperation" ||
- xmlNodeName( childNode ) == "joinOperation" )
- unwindOperation( childNode, tree, parentIndex, queryArray );
- else if( xmlNodeName( childNode ) == "sqlQuery" ||
- xmlNodeName( childNode ) == "mdxQuery" )
- unwindNativeQuery( childNode, tree, parentIndex, queryArray );
- }
- }
- function providerQuery_GetPlanDetails( xmlPQuery )
- {
- var xmlPlans = xmlFirstChild( xmlPQuery, "plans" );
- if( !xmlPlans)
- return;
-
- var xmlPlan = xmlFirstChild( xmlPlans, "plan" );
- if( !xmlPlan )
- return;
-
- return xmlFirstChild( xmlPlan, "planDetails" );
- }
- function preserveId2XMLNodeMapping( thisLeafId, xmlPQuery )
- {
- if( !document.nodeId2XMLNode )
- document.nodeId2XMLNode = [];
-
- document.nodeId2XMLNode[ thisLeafId ] = xmlPQuery;
- }
- function createQueryPlanNode( xmlPQuery, tree, parentIndex )
- {
- var providerStr = xmlNodeAttribute( xmlPQuery, "provider" );
-
- var nodeText;
-
- if( providerStr == "CubeBuildProvider" )
- nodeText = "CUBE";
- else if( providerStr == "OlapQueryProvider" )
- nodeText = "MDX";
- else if( providerStr == "RelationalQueryProvider" )
- nodeText = "SQL";
- else
- {
- var xmlPlanDetails = providerQuery_GetPlanDetails( xmlPQuery );
- if( !xmlPlanDetails )
- return parentIndex;
- if( xmlFirstChild( xmlPlanDetails, "wrappedQuery" ) )
- nodeText = "MDX";
- else
- return parentIndex;
- }
-
- var thisLeafId = treeLeafIdGen++;
-
- tree.add( thisLeafId, parentIndex,
- xmlNodeAttribute( xmlPQuery, "name" ),
- null, null, "#A3E3E3", nodeText );
-
- preserveId2XMLNodeMapping( thisLeafId, xmlPQuery );
-
- return thisLeafId;
- }
- function unwindProviderQuery( xmlPQuery, tree, parentIndex, queryArray )
- {
- var thisLeafId;
-
- if( !tree.m_bQueryPlan )
- {
- thisLeafId = treeLeafIdGen++;
- tree.add( thisLeafId, parentIndex,
- xmlNodeAttribute( xmlPQuery, "name" ),
- null, null, "#A3E3E3", "providerQuery <div>[" + xmlNodeAttribute( xmlPQuery, "provider" ) + "]</div>" );
- }
- else
- {
- thisLeafId = createQueryPlanNode( xmlPQuery, tree, parentIndex );
- }
- preserveId2XMLNodeMapping( thisLeafId, xmlPQuery );
-
- xmlSource = xmlFirstChild( xmlPQuery, "source" );
- if( xmlSource == null )
- return;
-
- unwindSource( xmlSource, tree, thisLeafId, queryArray );
- }
- function unwindOperation( xmlOperation, tree, parentIndex, queryArray )
- {
- thisLeafId = treeLeafIdGen++;
- tree.add( thisLeafId, parentIndex, xmlNodeAttribute(xmlOperation, 'setOperation'),
- null, null, null, xmlNodeName(xmlOperation) );
- preserveId2XMLNodeMapping( thisLeafId, xmlOperation );
- xmlQueryRefs = xmlFirstChild( xmlOperation, "queryRefs" );
- if( xmlQueryRefs == null )
- return;
- unwindSource( xmlQueryRefs, tree, thisLeafId, queryArray );
- }
- function unwindJoin( xmlJoin, tree, parentIndex, queryArray )
- {
- thisLeafId = treeLeafIdGen++;
- tree.add( thisLeafId, parentIndex, xmlNodeName(xmlOperation) );
- xmlJoinOperands = xmlFirstChild( xmlJoin, "joinOperands" );
- if( xmlJoinOperands == null )
- return;
- preserveId2XMLNodeMapping( thisLeafId, xmlJoin );
- var xmlJoinOperand = xmlFirstChild( xmlJoinOperands );
- for( ; xmlJoinOperand != null; xmlJoinOperand = xmlNextSibling( xmlJoinOperand ) )
- unwindSource( xmlJoin, tree, thisLeafId, queryArray );
- }
- function unwindNativeQuery( xmlNativeQuery, tree, parentIndex, queryArray )
- {
- thisLeafId = treeLeafIdGen++;
- tree.add( thisLeafId, parentIndex, xmlNodeName(xmlNativeQuery) );
- preserveId2XMLNodeMapping( thisLeafId, xmlNativeQuery );
- }
- function buildQueryTree( fullXML, nodeInitializationFunc )
- {
- var treeNode = document.createElement( "div" );
- fullXML.insertBefore( treeNode, (fullXML.lastChild.className == "nodeDetails")? fullXML.lastChild: null );
-
- treeNode.className = "tree";
- treeNode.id = "tree_" + treeID;
- treeID++;
-
- var t = new LogTree( treeNode.id +'.t',treeNode);
- treeNode.t = t;
- t.config.nodeWidth = 60;
- t.config.nodeHeight = 40;
- t.config.levelMargin = 20;
- t.config.siblingMargin = 10;
- t.config.tempTreeContainer = tempTreeContainer;
- tempTreeContainer.parentElement.className = "tree";
- xmlRoot = xmlFirstChild( fullXML );
- nodeInitializationFunc( xmlRoot, t, -1 );
- t.container.onclick = queryPlan_onClick;
- t.container.onblur = queryPlan_onBlur;
-
- t.UpdateTree();
- var rootGroup = treeNode.childNodes[0];
- treeNode.style.height = rootGroup.style.posHeight + 3;
- treeNode.style.width = "100%";
- }
- var G_QueryPlan_activeNode;
- function queryPlan_getNodeContainer( planNode )
- {
- for( ; planNode && planNode.tagName != "roundrect"; planNode = planNode.parentElement );
- return planNode;
- }
- function queryPlan_treeContainer( planNode )
- {
- for( ; planNode && planNode.className != "fullXML"; planNode = planNode.parentElement );
- return planNode;
- }
- function queryPlan_getNodeDetailsArea( fullXML )
- {
- if( !fullXML.nodeDetailsArea )
- {
- var nodeDetailsArea = document.createElement( "DIV" );
- nodeDetailsArea.className = "nodeDetails";
- fullXML.appendChild( nodeDetailsArea );
-
-
- fullXML.nodeDetailsArea = nodeDetailsArea;
- }
-
- return fullXML.nodeDetailsArea;
- }
- function queryPlan_populateNodeDetailsTitle( nodeDetailsArea, planNode )
- {
- if( !nodeDetailsArea.titleDiv )
- {
- nodeDetailsArea.titleDiv = document.createElement( "DIV" );
- nodeDetailsArea.appendChild( nodeDetailsArea.titleDiv );
- nodeDetailsArea.titleDiv.className = "detailsTitle";
- }
- nodeDetailsArea.titleDiv.innerHTML = "";
-
- nodeDetailsArea.nodeNameB = document.createElement( "B" );
- nodeDetailsArea.titleDiv.appendChild( nodeDetailsArea.nodeNameB );
- nodeDetailsArea.nodeNameB.className = "detailsName";
-
- nodeDetailsArea.nodeNameB.innerText = planNode.firstChild.childNodes[0].innerText;
- }
- function queryPlan_getDetailsContentDiv( nodeDetailsArea )
- {
- if( !nodeDetailsArea.detailContextDiv )
- {
- nodeDetailsArea.detailContextDiv = document.createElement( "DIV" );
- nodeDetailsArea.appendChild( nodeDetailsArea.detailContextDiv );
- }
- return nodeDetailsArea.detailContextDiv;
- }
- function queryPlan_propertyOnClick()
- {
- var propertyNameU = event.srcElement;
- var nodeDetailsArea = propertyNameU.parentElement.parentElement;
- var contentDiv = queryPlan_getDetailsContentDiv( nodeDetailsArea );
- var propertyName = propertyNameU.innerText;
-
- for( var i = 0; i < contentDiv.childNodes.length; ++i )
- contentDiv.childNodes[i].style.display = "none";
-
- contentDiv.property2RenderedValue[propertyName].style.display = "block";
- }
- function queryPlan_populateNodeDetails_title( nodeDetailsArea, contentDiv, propertyName, renderedProperty )
- {
- renderedProperty.style.display = "none";
- contentDiv.appendChild( renderedProperty );
-
- if( !contentDiv.property2RenderedValue )
- contentDiv.property2RenderedValue = [];
- contentDiv.property2RenderedValue[propertyName] = renderedProperty;
-
- var propertyNameU = document.createElement( "U" );
- nodeDetailsArea.titleDiv.appendChild( propertyNameU );
- propertyNameU.innerText = propertyName;
- propertyNameU.onclick = queryPlan_propertyOnClick;
- }
- function queryPlan_populateNodeDetails_fromInfo( nodeDetailsArea, planNode, xmlPlanNode )
- {
- var initPropertyContent;
-
- var contentDiv = queryPlan_getDetailsContentDiv( nodeDetailsArea );
- var xmlInfoNode = xmlFirstChild( xmlPlanNode, "info" );
- if( xmlInfoNode )
- {
- var xmlInfoItemNode = xmlFirstChild( xmlInfoNode, "property" );
-
- for( ; xmlInfoItemNode != null; xmlInfoItemNode = xmlNextSibling( xmlInfoItemNode, "property" ) )
- {
- var propertyText = xmlGetText( xmlInfoItemNode );
- var propertyName = xmlNodeAttribute( xmlInfoItemNode, "name" );
- var renderedProperty = document.createElement( "DIV" );
- renderedProperty.innerText = propertyText;
- queryPlan_populateNodeDetails_title( nodeDetailsArea, contentDiv, propertyName, renderedProperty );
-
- if( !initPropertyContent )
- initPropertyContent = renderedProperty;
- }
- }
-
- return initPropertyContent;
- }
- function queryPlan_populateNodeDetails_xmlQuery( nodeDetailsArea, planNode, xmlQuery )
- {
- var nodeDiv = document.createElement( "DIV" );
- parentPlanDiv.appendChild( nodeDiv );
- nodeDiv.className = "items";
- nodeDiv.innerText = nodeName + ' "' + xmlNodeAttribute( xmlPlanNode, "Name" ) + '"';
- parentPlanDiv = nodeDiv;
- }
- function queryPlan_populateNodeDetails_fromXmlQueryNode( nodeDetailsArea, xmlQueryNode, parentQueryDiv )
- {
- var nodeName = xmlNodeName( xmlQueryNode );
- if( nodeName == "expression" ||
- nodeName == "filterExpression" )
- {
- var nodeDiv = document.createElement( "DIV" );
- parentQueryDiv.appendChild( nodeDiv );
- nodeDiv.className = "queryExpr";
- nodeDiv.innerText = xmlGetText( xmlQueryNode );
- return;
- }
- if( nodeName == "edge" ||
- nodeName == "valueSet" ||
- nodeName == "groupHeader" ||
- nodeName == "groupFooter" ||
- nodeName == "groupDetails" ||
- nodeName == "dataItemRef" ||
- nodeName == "dataItem" ||
- nodeName == "detailFilter" ||
- nodeName == "slicer" ||
- nodeName == "summaryFilter" )
- {
- var nodeDiv = document.createElement( "DIV" );
- parentQueryDiv.appendChild( nodeDiv );
- nodeDiv.className = "queryItem";
- nodeDiv.innerText = nodeName;
- var nameAttrValue;
-
- if( nodeName == "valueSet" || nodeName == "dataItemRef" )
- nameAttrValue = xmlNodeAttribute( xmlQueryNode, "refDataItem" ) ;
- else
- nameAttrValue = xmlNodeAttribute( xmlQueryNode, "name" ) ;
-
- if( nameAttrValue )
- nodeDiv.innerText += ' "' + nameAttrValue + '"';
-
- parentQueryDiv = nodeDiv;
- }
-
- if( nodeName == "source" )
- {
- return;
- }
-
- var xmlChild = xmlFirstChild( xmlQueryNode );
- for( ; xmlChild; xmlChild = xmlNextSibling( xmlChild ) )
- {
- queryPlan_populateNodeDetails_fromXmlQueryNode( nodeDetailsArea, xmlChild, parentQueryDiv );
- }
- }
- function queryPlan_populateNodeDetails_fromOriginal( nodeDetailsArea, planNode, xmlPlanNode )
- {
- var xmlOriginal = xmlFirstChild( xmlPlanNode, "original" );
- if( !xmlOriginal )
- {
- var xmlPlanDetails = providerQuery_GetPlanDetails( xmlPlanNode );
- xmlOriginal = xmlFirstChild( xmlPlanDetails, "wrappedQuery" );
- if( !xmlOriginal )
- return null;
- }
-
- var contentDiv = queryPlan_getDetailsContentDiv( nodeDetailsArea );
- var queryDetailsDiv = document.createElement( "DIV" );
- contentDiv.appendChild( queryDetailsDiv );
-
- queryPlan_populateNodeDetails_fromXmlQueryNode( nodeDetailsArea, xmlOriginal, queryDetailsDiv );
-
- queryPlan_populateNodeDetails_title( nodeDetailsArea, contentDiv, "query", queryDetailsDiv );
-
- return queryDetailsDiv;
- }
- function queryPlan_populateNodeDetails_fromCubeNode( nodeDetailsArea, xmlPlanNode, parentPlanDiv )
- {
- var nodeName = xmlNodeName( xmlPlanNode );
- if( nodeName == "Dimension" ||
- nodeName == "Hierarchy" ||
- nodeName == "LevelRef" ||
- nodeName == "Level" ||
- nodeName == "Measure" )
- {
- var nodeDiv = document.createElement( "DIV" );
- parentPlanDiv.appendChild( nodeDiv );
- nodeDiv.className = "cube";
- nodeDiv.innerText = nodeName + ' "' + xmlNodeAttribute( xmlPlanNode, "Name" ) + '"';
- parentPlanDiv = nodeDiv;
- }
-
- if( nodeName != "planDetails" &&
- nodeName != "Model" &&
- nodeName != "DimensionCollection" &&
- nodeName != "Dimension" &&
- nodeName != "HierarchyCollection" &&
- nodeName != "Hierarchy" &&
- nodeName != "HierarchyLevels" &&
- nodeName != "LevelCollection" &&
- nodeName != "MeasureCollection" )
- {
- return;
- }
-
- var xmlChild = xmlFirstChild( xmlPlanNode );
- for( ; xmlChild; xmlChild = xmlNextSibling( xmlChild ) )
- {
- queryPlan_populateNodeDetails_fromCubeNode( nodeDetailsArea, xmlChild, parentPlanDiv );
- }
- }
- function queryPlan_populateNodeDetails_fromCube( nodeDetailsArea, planNode, xmlPlanNode )
- {
- var xmlPlanDetails = providerQuery_GetPlanDetails( xmlPlanNode );
- var contentDiv = queryPlan_getDetailsContentDiv( nodeDetailsArea );
- var cubePlanDetailsDiv = document.createElement( "DIV" );
- contentDiv.appendChild( cubePlanDetailsDiv );
-
- queryPlan_populateNodeDetails_fromCubeNode( nodeDetailsArea, xmlPlanDetails, cubePlanDetailsDiv );
-
- return cubePlanDetailsDiv;
- }
- function queryPlan_populateNodeDetails( nodeDetailsArea, planNode )
- {
- queryPlan_populateNodeDetailsTitle( nodeDetailsArea, planNode );
- var contentDiv = queryPlan_getDetailsContentDiv( nodeDetailsArea );
- contentDiv.innerHTML = "";
- if( !document.nodeId2XMLNode )
- return;
-
- var xmlPlanNode = document.nodeId2XMLNode[ planNode.id ];
-
- if( !xmlPlanNode )
- return;
-
- var nodeName = xmlNodeName( xmlPlanNode );
- if( nodeName == "query" || nodeName == "queryResultDefinition" || nodeName == "queryOperation" )
- queryPlan_populateNodeDetails_v5Blocks( nodeDetailsArea, planNode, xmlPlanNode, nodeName );
- else
- queryPlan_populateNodeDetails_providerQueryBlocks( nodeDetailsArea, planNode, xmlPlanNode );
- }
- function queryPlan_populateNodeDetails_v5Blocks( nodeDetailsArea, planNode, xmlPlanNode, nodeName )
- {
- var contentDiv = queryPlan_getDetailsContentDiv( nodeDetailsArea );
- var queryDetailsDiv = document.createElement( "DIV" );
-
- contentDiv.appendChild( queryDetailsDiv );
-
- queryPlan_populateNodeDetails_fromXmlQueryNode( nodeDetailsArea, xmlPlanNode, queryDetailsDiv, nodeName );
-
- queryPlan_populateNodeDetails_title( nodeDetailsArea, contentDiv, nodeName, queryDetailsDiv );
-
- queryDetailsDiv.style.display = "block";
- return queryDetailsDiv;
- }
-
- function queryPlan_populateNodeDetails_providerQueryBlocks( nodeDetailsArea, planNode, xmlPlanNode )
- {
- var initPropertyContent = queryPlan_populateNodeDetails_fromInfo( nodeDetailsArea, planNode, xmlPlanNode );
- if( xmlNodeAttribute( xmlPlanNode, "provider" ) == "CubeBuildProvider" )
- initPropertyContent = queryPlan_populateNodeDetails_fromCube( nodeDetailsArea, planNode, xmlPlanNode );
- else
- {
- var propertyContent = queryPlan_populateNodeDetails_fromOriginal( nodeDetailsArea, planNode, xmlPlanNode );
- if( !initPropertyContent )
- initPropertyContent = propertyContent;
- }
-
- if( initPropertyContent )
- initPropertyContent.style.display = "block";
- }
- function queryPlan_onClick()
- {
-
- var planNode = queryPlan_getNodeContainer( event.srcElement );
- var fullXML = queryPlan_treeContainer( planNode );
- if( !fullXML )
- return;
-
- planNode.prevFillColorValue = planNode.fillColor.value;
- planNode.fillColor = "white";
-
- var nodeDetailsArea = queryPlan_getNodeDetailsArea( fullXML );
- queryPlan_populateNodeDetails( nodeDetailsArea, planNode );
- nodeDetailsArea.style.display = "block";
-
- if( G_QueryPlan_activeNode )
- queryPlan_onBlur();
-
- G_QueryPlan_activeNode = planNode;
- }
- function queryPlan_onBlur()
- {
- var planNode = G_QueryPlan_activeNode;
- planNode.fillColor = planNode.prevFillColorValue;
- }
- function unwindPlanQuerySet( xmlNode, tree, parentIndex )
- {
- tree.container.parentElement.className = "plan";
- tree.m_bQueryPlan = true;
- unwindQuerySet( xmlNode, tree, parentIndex );
- }
- function shortParameterOnClick()
- {
- }
- function adjustParameterHeaderState( fullXML, open )
- {
- //determine which parameter type it is
- var paramElem = fullXML.firstChild;
- for( ; paramElem != null; paramElem = paremElem.nextSibling )
- if( paramElem.className == "paramType" )
- break;
-
- if( paramElem == null )
- return;
- var paramType = paramElem.innerText.replace(/:\s*/, "" );
- //finds the methodHeader
- var headerElem = fullXML.parentElement.firstChild;
- for( ; headerElem != null; headerElem = headerElem .nextSibling )
- if( headerElem.className == "methodHeader" )
- break;
-
- if( headerElem == null )
- return;
- //finds the parameter in the methodHeader
- var paramToggleElem = headerElem.firstChild;
- for( ; paramToggleElem != null; paramToggleElem = paramToggleElem.nextSibling )
- if( paramToggleElem.tagName == "U" && paramToggleElem.innerText.indexOf( paramType ) == 0 )
- break;
-
- if( paramToggleElem == null )
- return;
-
- //changes the +/-
- paramToggleElem.previousSibling.innerText = (open)? "-": "+";
- }
- function adjustErrorHeaderState( fullXML, open )
- {
- var paramElem = fullXML.firstChild;
- for( ; paramElem != null; paramElem = paremElem.nextSibling )
- if( paramElem.className == "err")
- break;
- if( paramElem == null )
- return;
- var headerElem = fullXML.parentElement.firstChild;
- for( ; headerElem != null; headerElem = headerElem .nextSibling )
- if( headerElem.className == "methodHeader" )
- break;
- if( headerElem == null )
- return;
- var paramToggleElem = headerElem.firstChild;
- for( ; paramToggleElem != null; paramToggleElem = paramToggleElem.nextSibling )
- { if( paramToggleElem.tagName == "U" && paramToggleElem.innerText.indexOf( "error" ) == 0 )
- break;
- }
- if( paramToggleElem == null )
- return;
-
- paramToggleElem.previousSibling.innerText = (open)? "-": "+";
- }
- function openExecutionPlan( parent )
- {
- if( parent.tagName == "DIV" && parent.className == "fullXML" )
- {
- if( parent.childNodes.length >= 4 && parent.childNodes[3].tagName == "U" )
- {
- var fullXML = parent;
- fullXML.style.display = 'block';
- setParameterPresentation( "Plan", fullXML );
- }
- return;
- }
- var childNode = parent.firstChild;
- for( ; childNode != null; childNode = childNode.nextSibling )
- {
- openExecutionPlan( childNode, open );
- }
- }
- function allParametersFoldingCall(parent)
- {
- if( event.srcElement.innerText.indexOf( "Hide" ) == 0)
- {
- allParametersFolding( parent, false )
- event.srcElement.innerText = "Show query trees";
- }
- else
- {
- allParametersFolding( parent, true )
- event.srcElement.innerText = "Hide query trees";
- }
- }
- function showExecutionTree( parent )
- {
- window.parent.G_QanApp.F_CreateExecutionTrees();
- window.parent.G_QanApp.F_ShowExecutionTrees();
- }
- function allParametersFolding( parent, open )
- {
- if( parent.tagName == "DIV" && parent.className == "fullXML" )
- {
- if( parent.childNodes.length >= 3 && parent.childNodes[2].tagName == "U" )
- {
- if( open )
- {
- parent.style.display = 'block';
- setParameterPresentation( "Tree", parent );
- }
- else
- {
- parent.style.display = 'none';
- }
- adjustParameterHeaderState( parent, open );
- updateMethodInfoClass( parent.parentElement );
- }
- return;
- }
- var childNode = parent.firstChild;
- for( ; childNode != null; childNode = childNode.nextSibling )
- {
- allParametersFolding( childNode, open );
- if(childNode.nextSibling == null) break;
- }
- }
- function allErrorsFoldingCall(parent)
- {
- var numError = 0;
-
- if( event.srcElement.innerText.indexOf( "Hide" ) == 0)
- {
- numError = allErrorsFolding( parent, false, numError )
- event.srcElement.innerText = "Show all errors";
- }
- else
- {
- numError = allErrorsFolding( parent, true, numError )
- if(!numError)
- {
- alert("There are no errors to show in this log");
- event.srcElement.onclick = ""
- event.srcElement.style.color = "gray";
- return;
- }
- event.srcElement.innerText = "Hide all errors";
- }
- }
- function allErrorsFolding( parent, open, numError )
- {
- if( parent.tagName == "DIV" && parent.className == "fullXML" && parent.innerText.indexOf( "error" ) == 0)
- {
- if( parent.childNodes.length == 2 && parent.childNodes[1].tagName == "DIV" )
- {
- var fullXML = parent;
- if( open )
- {
- fullXML.style.display = 'block';
- setParameterPresentation( "XML", fullXML );
- }
- else
- fullXML.style.display = 'none';
-
- adjustErrorHeaderState( fullXML, open );
- updateMethodInfoClass( fullXML.parentElement );
- }
- numError++;
- return numError;
- }
-
- var childNode = parent.firstChild;
- for( ; childNode != null; childNode = childNode.nextSibling )
- {
- numError = allErrorsFolding( childNode, open, numError );
- }
-
- return numError;
- }
- function globalEventHandler()
- {
- if( event.srcElement == null )
- return;
- var parentElement = event.srcElement.parentElement;
- if( event.srcElement.tagName == "U" && parentElement != null )
- {
- if( parentElement.className == "fullXML" )
- {
- return changeParameterPresentation();
- }
- else if( parentElement.className == "logItemMenu" )
- {
- return changeLogItemPresentation();
- }
- }
-
- if( event.srcElement.tagName == "B" && event.srcElement.className == "paramType" &&
- parentElement != null && parentElement.className == "fullXML" )
- {
- return setSelectionOnXML( parentElement );
- }
-
- if( event.srcElement.className == "logItemHeader" ||
- parentElement != null && parentElement.className == "logItemHeader" )
- {
- return foldingLogItem();
- }
- }
- function foldingLogItem()
- {
- var v_spanLogItem = event.srcElement;
- if( v_spanLogItem.className != "logItemHeader" )
- v_spanLogItem = v_spanLogItem.parentElement;
-
- if( !v_spanLogItem )
- return;
- var v_divLogContainer = v_spanLogItem.parentElement;
- if( !v_divLogContainer )
- return;
-
- var v_img = v_spanLogItem.firstChild;
- if( !v_img )
- return;
-
- var v_bIsOpened = ( v_img.src.search(/show_area.gif$/) >= 0 );
-
- if( v_bIsOpened )
- v_img.src = v_img.src.replace( /show_area.gif$/, "hide_area.gif" );
- else
- v_img.src = v_img.src.replace( /hide_area.gif$/, "show_area.gif" );
-
- var v_divSibling = v_spanLogItem.nextSibling;
- for( ; v_divSibling; v_divSibling = v_divSibling.nextSibling )
- {
- v_divSibling.style.display = ( v_bIsOpened )? 'none': "block";
- }
-
- if( !v_bIsOpened )
- setLogItemPresentation( v_divLogContainer.presentation, v_divLogContainer );
- }
-
- function changeLogItemPresentation()
- {
- if( event.srcElement != null && event.srcElement.tagName != "U" )
- return;
- var v_sPresentationType = event.srcElement.innerText;
- var v_divLogItemMenu = event.srcElement.parentElement;
- var v_divLogItemContainer = v_divLogItemMenu.parentElement;
- setLogItemPresentation( v_sPresentationType, v_divLogItemContainer );
- }
- function setLogItemPresentation( v_sPresentationType, v_divLogItemContainer )
- {
- v_divLogItemContainer.presentation = v_sPresentationType;
- var v_bFoundPresentation = false;
-
- var v_divLogItemPresentation = v_divLogItemContainer.firstChild;
- for( ; v_divLogItemPresentation;
- v_divLogItemPresentation = v_divLogItemPresentation.nextSibling )
- {
- if( !v_divLogItemPresentation.presentation )
- continue;
-
- var v_bMatches = (v_divLogItemPresentation.presentation.indexOf(v_sPresentationType) >= 0 );
- v_divLogItemPresentation.style.display = ( v_bMatches )? "block": "none";
- v_bFoundPresentation |= ( v_divLogItemPresentation.presentation == v_sPresentationType );
- }
-
- if( !v_bFoundPresentation )
- window.parent.G_QanApp.F_ShowPresentation( v_sPresentationType, v_divLogItemContainer );
- }
-
- function changeParameterPresentation()
- {
- if( event.srcElement != null && event.srcElement.tagName != "U" )
- return;
- var presentationType = event.srcElement.innerText;
- var parent = event.srcElement.parentElement.parentElement;
- var fullXML = event.srcElement.parentElement;
- setParameterPresentation( presentationType, fullXML );
- }
- function setParameterPresentation( presentationType, fullXML )
- {
- var treeNode, xmlNode, planNode, resultNode;
- var parent = fullXML.parentElement;
-
- for( var i = 0; i < fullXML.childNodes.length; ++i )
- if( fullXML.childNodes[i].className == "e" )
- xmlNode = fullXML.childNodes[i];
- else
- if( fullXML.childNodes[i].className == "tree" )
- treeNode = fullXML.childNodes[i];
- else if( fullXML.childNodes[i].className == "plan" )
- planNode = fullXML.childNodes[i];
- else
- if( fullXML.childNodes[i].tagName == "DIV" ||
- fullXML.childNodes[i].tagName == "IFRAME" )
- {
- fullXML.childNodes[i].style.display = "none";
- }
-
- if( xmlNode == null )
- {
- formatXMLFromString( fullXML );
- for( var i = 0; i < fullXML.childNodes.length; ++i )
- if( fullXML.childNodes[i].className == "e" )
- xmlNode = fullXML.childNodes[i];
- }
- if( presentationType == "Tree" )
- {
- fullXML.presentation = "queryTree";
- if( treeNode )
- treeNode.style.display = "block";
- else
- buildQueryTree( fullXML, unwindQuerySet );
- if( xmlNode )
- xmlNode.style.display = "none";
- if( planNode )
- planNode.style.display = "none";
- if( resultNode )
- resultNode.style.display = "none";
- }
- else if( presentationType == "Plan" )
- {
- fullXML.presentation = "queryPlan";
- if( planNode )
- planNode.style.display = "block";
- else
- buildQueryTree( fullXML, unwindPlanQuerySet );
- if( xmlNode )
- xmlNode.style.display = "none";
- if( treeNode )
- treeNode.style.display = "none";
- }
- else
- {
- fullXML.presentation = "XML";
- if( treeNode )
- treeNode.style.display = "none";
- if( planNode )
- planNode.style.display = "none";
- if( xmlNode )
- {
- xmlNode.style.display = "block";
- }
- }
- }
- function longParameterFolding()
- {
- var paramType = event.srcElement.parentElement.innerText.split(" ")[0];
- var parent = event.srcElement.parentElement.parentElement.parentElement;
- var children = parent.childNodes;
- }
- function updateMethodInfoClass( methodInfo )
- {
- var open = false;
- var children = methodInfo.childNodes;
- for( i = 0; i < children.length; ++i )
- {
- if( children[i].className != "fullXML" )
- continue;
- if( children[i].style.display == "block" )
- {
- open = true;
- break;
- }
- }
-
- if( open && methodInfo.className == "methodInfo" )
- methodInfo.className = "methodInfoOpen";
- if( !open && methodInfo.className == "methodInfoOpen" )
- methodInfo.className = "methodInfo";
- }
- function parameterFolding()
- {
- var paramType = event.srcElement.innerText.split(" ")[0];
- var parent = event.srcElement.parentElement.parentElement;
- var plus = event.srcElement.previousSibling;
- var children = parent.childNodes;
- for( i = 0; i < children.length; ++i )
- {
- if( children[i].className != "fullXML" )
- continue;
- var fullXML = children[i];
- var firstTimeOpened = (children[i].style.display == '');
- var switchedToTreeView = false;
- if( fullXML.innerText.indexOf( paramType ) == 0)
- {
- if( fullXML.style.display == '' || fullXML.style.display == 'none' )
- {
- fullXML.style.display = 'block';
- plus.innerHTML = '-';
- if( firstTimeOpened )
- {
- var childNode = fullXML.firstChild;
- for( ; childNode != null; childNode = childNode.nextSibling )
- if( childNode.tagName == "U" )
- break;
-
- setParameterPresentation( (childNode)? "Tree": "XML", fullXML);
- switchedToTreeView = true;
- }
- }
- else
- {
- children[i].style.display = 'none';
- plus.innerHTML = '+';
- break;
- }
-
- break;
- }
- }
- updateMethodInfoClass( parent );
- event.cancelBubble = true;
- }
- function setSelectionOnXML( fullXML )
- {
- var range = document.selection.createRange();
- var xmlChildren = fullXML.children;
- for( j = 0; j < xmlChildren.length; ++j )
- {
- if( xmlChildren[j].tagName != 'DIV' )
- continue;
- range.moveToElementText( xmlChildren[j] );
- try{
- range.select();
- } catch (error) {};
- }
- }
- function toggleXmlContent()
- {
- var xmlLineTag;
- var xmlElemTag = event.srcElement;
- for( ; xmlElemTag; xmlElemTag = xmlElemTag.parentElement )
- {
- if( xmlElemTag.tagName == 'DIV' && xmlElemTag.className == 'c' )
- xmlLineTag = xmlElemTag;
- if( xmlElemTag.tagName == 'DIV' && xmlElemTag.className == 'e' )
- break;
- }
-
- if( !xmlElemTag )
- return;
-
- var xmlElemToHide;
-
- if( xmlLineTag )
- {
- var children = xmlElemTag.childNodes;
- for( i = 0; i < children.length; ++i )
- {
- if( children[i].tagName != 'DIV' || children[i].className != '' )
- continue;
-
- xmlElemToHide = children[i];
- if( xmlElemToHide.style.display == 'none' )
- {
- xmlElemToHide.style.display = 'block';
- xmlLineTag.innerHTML = xmlLineTag.innerHTML.replace( /<SPAN class=collapsed><\/SPAN>/, "" );
- }
- else
- {
- xmlElemToHide.style.display = 'none';
- xmlLineTag.innerHTML += '<SPAN class=collapsed></SPAN>';
- }
- break;
- }
- }
- else
- {
- xmlLineTag = xmlElemTag.children[0];
- if( !xmlLineTag || xmlLineTag.tagName != 'DIV' || xmlLineTag.children.length == 0 )
- return;
-
- xmlElemToHide = xmlLineTag.children[xmlLineTag.children.length - 1];
- if( !xmlElemToHide || xmlElemToHide.tagName != 'B' )
- return;
-
- if( xmlElemToHide.style.display == 'none' )
- {
- xmlElemToHide.style.display = 'inline';
- xmlLineTag.innerHTML = xmlLineTag.innerHTML.replace( /<SPAN class=collapsed><\/SPAN>/, "" );
- }
- else
- {
- xmlElemToHide.style.display = 'none';
- xmlLineTag.innerHTML = xmlLineTag.innerHTML.replace( /\>/, "><SPAN class=collapsed></SPAN>" );
- }
- }
- event.cancelBubble = true;
- return true;
- }
- function openPreferencesDialog()
- {
- window.parent.D_QanPreferencies.F_Show();
- }
- function allPreferencesFoldingCall( doc )
- {
- var rule;
- if (doc.styleSheets[0].rules)
- {
- rule = doc.styleSheets[0].rules;
- }
- else
- {
- alert("Stylesheet rules are unreadable. Preferences not available");
- event.srcElement.onclick = "";
- event.srcElement.style.color = "gray";
- return;
- }
-
- if( event.srcElement.innerText.indexOf( "Show" ) == 0)
- {
- setSelections(doc);
- allPreferencesFolding( rule, true )
- event.srcElement.innerText = "Hide preferences";
- }
- else
- {
- allPreferencesFolding( rule, false )
- if( event.srcElement.innerText.indexOf( "Hide" ) == 0)
- {
- event.srcElement.innerText = "Show preferences";
- }
- else
- {
- //find "Hide preferences" and rename with "Show preferences"
- var preferences = doc.body;
- for(var t=0; t < preferences.childNodes.length; t++)
- {
- if (preferences.childNodes[t].className == "menu")
- {
- preferences = preferences.childNodes[t];
- break;
- }
- }
- //HTML->Body->menu->preferences->[preferencesList]
- for(var t=0; t < preferences.childNodes.length; t++)
- {
- if (preferences.childNodes[t].className == "menuitem")
- {
- if( preferences.childNodes[t].innerText.indexOf( "Hide preferences" ) == 0)
- {
- preferences.childNodes[t].innerText = "Show preferences";
- return;
- }
- }
- }
- }
- }
- }
-
- function allPreferencesFolding( rule, open )
- {
-
- for (var i = 0; i < rule.length; i++)
- {
- if (rule[i].selectorText == ".preferences" )
- {
- if(open)
- rule[i].style.display="block";
- else
- rule[i].style.display="none";
- return;
- }
- }
- }
- function saveANDapplyPreferences( doc )
- {
- inputPreferences(doc);
- savePreferences(doc);
- applyPreferences(doc);
- }
- function loadANDapplyPreferences( doc )
- {
- loadPreferences(doc);
- applyPreferences(doc);
- }
- function applyPreferences( doc )
- {
- var rule;
- if (doc.styleSheets[0].rules)
- {
- rule = doc.styleSheets[0].rules;
- }
- else
- {
- alert("Stylesheet rules are unreadable. Preferences not available");
- event.srcElement.onclick = "";
- event.srcElement.style.color = "gray";
- return;
- }
-
- var fullXMLhit = false;
- var providersListTemp = [];
- providersListTemp = providersListTemp.concat(providersList);
- var highlightListTemp = [];
- highlightListTemp = highlightListTemp.concat(highlightList);
-
- for (var i = 0; i < rule.length; i++)
- { //changes the <style> to apply color scheme throughout log
- var selectorText = rule[i].selectorText;
- if(!selectorText) continue;
-
- switch (selectorText)
- {
- case ".nHL":
- rule[i].style.display = nHLdisplay;
- break;
- case ".nHLtimeStamp":
- rule[i].style.display = nHLtimeStamp;
- rule[i].style.color = dark;
- break;
- case ".timeStamp":
- rule[i].style.display = timeStamp;
- rule[i].style.color = dark;
- break;
-
- case ".methodHeader EM":
- case ".methodHeader SMALL":
- case ".preference":
- case ".tree":
- case ".action":
- rule[i].style.background = light;
- break;
- case ".methodInfoOpen":
- rule[i].style.background = medL;
- break;
- case ".providerName":
- rule[i].style.color = dark;
- break;
- case ".nodeDetails":
- rule[i].style.background = medL;
- break;
- case ".queryItem":
- case ".queryExpr":
- rule[i].style.background = light;
- break;
- case ".preferences":
- rule[i].style.color = dark;
- rule[i].style.background = medL;
- break;
- case ".fullXML":
- if (!fullXMLhit)
- {
- rule[i].style.background = light;
- fullXMLhit = true;
- }
- break;
- default:
- for (var j = 0; j < providersListTemp.length; j++)
- {
- if (selectorText == providersListTemp[j])
- {
- switch (highlightListTemp[0])
- {
- case undefined:
- break;
- case "none":
- rule[i].style.display = "";
- rule[i].style.background = "";
- break;
- case "hide":
- rule[i].style.display = "none";
- rule[i].style.background = "";
- break;
- default:
- rule[i].style.display = "";
- rule[i].style.background = colorLookup(highlightListTemp[0]);
- }
- providersListTemp.shift();
- highlightListTemp.shift();highlightListTemp
- }
- }
- }
- }
- }
- var usingCookie = false;
- var filename = "\\..\\templates\\qfw\\QF_Logging_preferences.css" //reset in load
- var timeStamp;
- var nHLtimeStamp;
- var nHLdisplay;
- var highlightList;
- var highlightColor;
- var providersList = [".QFS",
- ".CoordinationPlanner",
- ".RefinerProvider",
- ".ZeroSuppressProvider",
- ".MDOperationProvider",
- ".CubeBuildProvider",
- ".NoDataModeProvider",
- ".ReporterModeProvider",
- ".TabularFuncProvider",
- ".TabularOperationProvider",
- ".RelationalQueryProvider",
- ".OlapQueryProvider",
- ".PowerCubeODP",
- ".SAPBWODP",
- ".SAPBWODP2",
- ".MSAnalysisODP",
- ".MasterDetailProvider"]
- var light;
- var medL;
- var medD;
- var dark;
- function loadPreferences( doc )
- {
- if( doc.body.client == "CRN" )
- {
- usingCookie = true;
- }
- if(usingCookie)
- {
- timeStamp = manipulateCookie( doc, "timeStamp", "?" ) || manipulateCookie( doc, "timeStamp", "none" );
- nHLtimeStamp = manipulateCookie( doc, "nHLtimeStamp", "?" ) || manipulateCookie( doc, "nHLtimeStamp", "none" );
- nHLdisplay = manipulateCookie( doc, "minors", "?" ) || manipulateCookie( doc, "minors", "none" );
- highlightList = manipulateCookie( doc, "providers", "?" ) || ["none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none"];
- highlightColor = manipulateCookie( doc, "color", "?" ) || manipulateCookie( doc, "color", "blue" );
- colorScheme( highlightColor );
- }
- else
- {
- filename = doc.body.childNodes[0].innerText + filename; //gets binFolder and makes path for prefs file
- readPrefsCss();
- }
- }
- function inputPreferences( doc )
- {
- var nodeList = [];
- var parentEvent = event.srcElement.parentElement.childNodes; //HTML->Body->preferences->[preferenceList]
- for (var i = 0; i < parentEvent.length; i++)
- {
- if (parentEvent[i].id)
- {
- switch (parentEvent[i].id) //HTML->Body->preferences->preference
- {
- case "timestamp":
- if(usingCookie) manipulateCookie( doc, "timeStamp", "kill" );
- if(usingCookie) manipulateCookie( doc, "nHLtimeStamp", "kill" );
- //HTML->Body->menu->preferences->timeStamp->select->option->preferenceOption
- var preferences = parentEvent[i];
- for(var t=0; t < preferences.childNodes.length; t++)
- {
- if ( preferences.childNodes[t].innerText )
- {
- preferences = preferences.childNodes[t];
- break;
- }
- }
- for(var t=0; t < preferences.length; t++)
- {
- if( preferences[t].selected )
- {
- var temp = preferences[t].value.split(", ");
- timeStamp = temp[0];
- nHLtimeStamp = temp[1];
- break;
- }
- }
- break;
- case "minors":
- if(usingCookie) manipulateCookie( doc, "minors", "kill" );
- //HTML->Body->menu->preferences->minors->select->option->preferenceOption
- var preferences = parentEvent[i];
- for(var t=0; t < preferences.childNodes.length; t++)
- {
- if ( preferences.childNodes[t].innerText )
- {
- preferences = preferences.childNodes[t];
- break;
- }
- }
- for(var t=0; t < preferences.length; t++)
- {
- if( preferences[t].selected )
- {
- nHLdisplay = preferences[t].value
- break;
- }
- }
- break;
- case "providers":
- highlightList = []; //resets highlightList
- if(usingCookie) manipulateCookie( doc, "providers", "kill" );
- //HTML->Body->menu->preferences->providers->preferenceOption->select->option
- var preferences = parentEvent[i];
- for(var t=0; t < preferences.childNodes.length; t++)
- {
- if ( preferences.childNodes[t].innerText )
- {
- for(var s=0; s < preferences.childNodes[t].childNodes.length; s++)
- {
- if ( preferences.childNodes[t].childNodes[s].innerText )
- {
- for(var r=0; r < preferences.childNodes[t].childNodes[s].childNodes.length; r++)
- {
- if ( preferences.childNodes[t].childNodes[s].childNodes[r].innerText )
- {
- if( preferences.childNodes[t].childNodes[s].childNodes[r].selected )
- {
- highlightList.push( preferences.childNodes[t].childNodes[s].childNodes[r].value );
- break;
- }
- }
- }
- }
- }
- }
- }
- break;
- case "color":
- if(usingCookie) manipulateCookie( doc, "color", "kill" );
- //HTML->Body->menu->preferences->minors->select->option->preferenceOption
- var preferences = parentEvent[i];
- for(var t=0; t < preferences.childNodes.length; t++)
- {
- if ( preferences.childNodes[t].innerText )
- {
- preferences = preferences.childNodes[t];
- break;
- }
- }
- for(var t=0; t < preferences.length; t++)
- {
- if( preferences[t].selected )
- {
- highlightColor = preferences[t].value
- break;
- }
- }
- colorScheme( highlightColor );
- break;
- }
- }
- }
- }
- function savePreferences( doc )
- {
- if (usingCookie)
- {
- manipulateCookie( doc, "timeStamp", timeStamp);
- manipulateCookie( doc, "nHLtimeStamp", nHLtimeStamp );
- manipulateCookie( doc, "minors", nHLdisplay );
- manipulateCookie( doc, "providers", highlightList );
- manipulateCookie( doc, "color", highlightColor);
- }
- else
- {
- fso = getFileSystemObject();
-
- if( fso == null )
- {
- usingCookie = true;
- savePreferences( doc );
- return;
- }
-
- writePrefsCss();
-
- }
- }
- function manipulateCookie( doc, name, value )
- {
- if (value == "?")
- {//load
- if(name == "providers")
- {
- var cookieJar = doc.cookie.split(";");
- for (var i=0; i < cookieJar.length; i++)
- {
- if(cookieJar[i].indexOf(name) != -1)
- {
- var providers = cookieJar[i].substr( cookieJar[i].indexOf("=")+1, cookieJar[i].length ).split(",");
- return providers;
- }
- }
- return null;
- }
-
- var cookieJar = doc.cookie.split(";");
- for (var i=0; i < cookieJar.length; i++)
- {
- if(cookieJar[i].indexOf(name) != -1) return cookieJar[i].substr( cookieJar[i].indexOf("=")+1, cookieJar[i].length );
- }
- return null;
- }
- else if( value == "kill" )
- {//erase
- expiD = new Date();
- expiD.setTime( expiD.getTime() - 1 ); //makes expiry in the past, thus erasing the cookie
- doc.cookie = name + "=" + value + ";expires=" + expiD.toUTCString();
- return;
- }
- else
- {//save
- expiD = new Date();
- expiD.setTime( expiD.getTime() + 600000000 ); //adds one week to date
- doc.cookie = (name + "=" + value + ";expires=" + expiD.toUTCString() + ";path=/");
- return value;
- }
- }
- function writePrefsCss()
- {
- fso = getFileSystemObject();
-
- // modifies .css file
- var pref;
- pref = fso.CreateTextFile( filename , true);
- pref.WriteLine( value2Rule( 1, timeStamp ) );
- pref.WriteLine( value2Rule( 2, nHLtimeStamp ) );
- pref.WriteLine( value2Rule( 3, nHLdisplay ) );
- pref.WriteLine( value2Rule( 4, highlightList ) );
- pref.WriteLine( value2Rule( 5, highlightColor ) );
-
- pref.Close();
- }
- function value2Rule( ruleNum, text )
- {
- return ".rule" + ruleNum + " { background-image: url(" + text + ") }" ;
- }
- function readPrefsCss()
- {
- if( document.styleSheets.length < 4 || document.styleSheets[3].rules.length < 5)
- {
- //alert( "No preferences file found. Setting defaults" );
- setDefaults();
- return;
- }
-
- var v_cssPrefs = document.styleSheets[3];
-
- timeStamp = rule2Value( v_cssPrefs.rules[0] );
- nHLtimeStamp = rule2Value( v_cssPrefs.rules[1] );
- nHLdisplay = rule2Value( v_cssPrefs.rules[2] );
- highlightList = rule2Value( v_cssPrefs.rules[3] ).split(",");
- highlightColor = rule2Value( v_cssPrefs.rules[4] );
- colorScheme( highlightColor );
- }
- function rule2Value( cssRule )
- {
- return cssRule.style.backgroundImage.replace( /url\(/, "" ).replace( /\)/, "" );
- }
- function verifyPrefs(doc)
- {
- if(usingCookie)
- {
- alert( "Cookie:\n" + doc.cookie );
- return;
- }
-
- readPrefsCss();
-
- alert( filename + ":\n\n"
- + "timeStamp: " + timeStamp
- + "\nnHLtimeStamp: " + nHLtimeStamp
- + "\nnHLdisplay: " + nHLdisplay
- + "\nhighlightList: " + highlightList
- + "\nhighlightColor: " + highlightColor )
- }
- function setDefaults(doc)
- {
- if(usingCookie)
- {
- timeStamp = manipulateCookie( doc, "timeStamp", "none" );
- nHLtimeStamp = manipulateCookie( doc, "nHLtimeStamp", "none" );
- nHLdisplay = manipulateCookie( doc, "minors", "none" );
- highlightList = ["none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none"];
- highlightColor = manipulateCookie( doc, "color", "blue" );
- colorScheme( highlightColor );
- return;
- }
-
-
- timeStamp = "none";
- nHLtimeStamp = "none";
- nHLdisplay = "none";
- highlightList = ["none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none"];
- highlightColor = "blue";
- colorScheme( highlightColor );
- }
- function setSelections(doc)
- {
- //select proper options in preferences drop-down
- //HTML->Body->menu
- var preferences = doc.body;
- for(var t=0; t < preferences.childNodes.length; t++)
- {
- if (preferences.childNodes[t].className == "menu")
- {
- preferences = preferences.childNodes[t];
- break;
- }
- }
- //HTML->Body->menu->preferences->[preference]
- for(var t=0; t < preferences.childNodes.length; t++)
- {
- if (preferences.childNodes[t].className == "preferences")
- {
- preferences = preferences.childNodes[t].childNodes;
- break;
- }
- }
-
- var preference;
- for (var i=0; i < preferences.length; i++)
- {
- preference = preferences[i];
- if(preference.id)
- {
- var optionList = preference.childNodes;
- switch (preference.id)
- {
- case "timestamp":
- selectionSet( optionList, ("" + timeStamp + ", " + nHLtimeStamp) );
- break;
- case "minors":
- selectionSet( optionList, nHLdisplay );
- break;
- case "providers":
- var highlightIndex = 0;
- //HTML->Body->menu->preferences->preference->providers->preferenceOptionList
- for(var t1=0; t1 < optionList.length; t1++)
- {
- if (optionList[t1].providerClass)
- {
- selectionSet( optionList[t1].childNodes, highlightList[highlightIndex] )
- highlightIndex++;
- }
- }
- break;
- default: //case "color":
- selectionSet( optionList, highlightColor );
- // end of switch
- }
- }
- }
- }
- function selectionSet( optionList, expectedValue )
- {
- //HTML->Body->menu->preferences->preference->(id)->select->[options]
- for(var t1=0; t1 < optionList.length; t1++)
- {
- if (optionList[t1].innerText)
- {
- //HTML->Body->menu->preferences->preference->(id)->select->option
- for(var t2=0; t2 < optionList[t1].childNodes.length; t2++)
- {
- if ( optionList[t1].childNodes[t2].value == expectedValue)
- {
- optionList[t1].childNodes[t2].selected = "selected";
- break;
- }
- }
- }
- }
- }
- function colorScheme( color )
- {
- switch (color)
- {
- case "red":
- light = "#ffcccc"
- medL = "#ff9999"
- medD = "#ff0000"
- dark = "#cc0000"
- break;
- case "orange":
- light = "#ffcccc"
- medL = "#ffcc99"
- medD = "#ff6600"
- dark = "#cc3300"
- break;
- case "yellow":
- light = "#ffffcc"
- medL = "#ffff99"
- medD = "#ffcc00"
- dark = "#cc9900"
- break;
- case "green":
- light = "#ccffcc"
- medL = "#99ff99"
- medD = "#00cc00"
- dark = "#009900"
- break;
- case "cyan":
- light = "#ccffff"
- medL = "#99ffff"
- medD = "#009999"
- dark = "#006666"
- break;
- case "purple":
- light = "#ffccff"
- medL = "#cc99ff"
- medD = "#660099"
- dark = "#330066"
- break;
- case "pink":
- light = "#ffccff"
- medL = "#ff99cc"
- medD = "#cc0099"
- dark = "#990066"
- break;
- case "grey":
- light = "#cccccc"
- medL = "#999999"
- medD = "#666666"
- dark = "#333333"
- break;
- default: //case "blue":
- light = "#f0f0ff"
- medL = "#9999ff"
- medD = "#0033cc"
- dark = "#003399"
- }
- }
- function colorLookup( color )
- {
- switch (color)
- {
- case "red":
- return "#ffdddd";
- case "orange":
- return "#ffddcc";
- case "yellow":
- return "#ffffcc";
- case "green":
- return "#ddffdd";
- case "cyan":
- return "#ddffff";
- case "purple":
- return "#cc99ff";
- case "pink":
- return "#ffccdd";
- case "grey":
- return "#dddddd";
- default: //case "blue":
- return "#ddddff";
- }
- }
- function formatXMLFromString( fullXML )
- {
- var v_elChild = fullXML.firstChild;
- for( ; v_elChild; v_elChild = v_elChild.nextSibling )
- if( v_elChild.className == "xmltext" )
- {
- var v_xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
- v_xmlDoc.async = false;
- var v_sXML = v_elChild.innerHTML.replace( /\<\?xml\:namespace[^\>]*\/\>/g, "" );
- // v_sXML = v_sXML.replace( /\<qs\:command /, '<qs:command xmlns:qs="qs" xmlns:SOAP="soap" xmlns:md="md" xmlns:x="x" ' );
- v_sXML = '<x xmlns:qs="qs" xmlns:SOAP="soap" xmlns:md="md" xmlns:x="x">' + v_sXML + '</x>';
- v_xmlDoc.loadXML( v_sXML );
- if( !v_xmlDoc.documentElement || !v_xmlDoc.documentElement.childNodes[0] )
- return;
-
- var v_aFormattedXML = [];
- formatXMLNode( v_xmlDoc.documentElement.childNodes[0], v_aFormattedXML );
- fullXML.innerHTML += v_aFormattedXML.join('');
- }
- }
- function formatXMLName( elName )
- {
- if( elName.nodeName == "x:el" )
- return elName.getAttribute( "en" );
-
- return elName.nodeName;
- }
- function formatXMLNode( elNode, aFormattedHTML )
- {
- if( elNode.selectNodes("x:at").length == elNode.childNodes.length )
- {
- aFormattedHTML.push( '<DIV class="e"><' + formatXMLName(elNode) );
- formatXMLNodeAttrs( elNode, aFormattedHTML )
- aFormattedHTML.push( '/></DIV>' );
-
- return;
- }
-
- if( elNode.selectNodes( '.[text() and not (comment())]' ).length )
- {
- aFormattedHTML.push( '<DIV class="e" ondblclick="toggleXmlContent();"><DIV><' + formatXMLName(elNode) );
- formatXMLNodeAttrs( elNode, aFormattedHTML )
- aFormattedHTML.push( '>' );
- formatXMLNodeChildren( elNode, aFormattedHTML );
- aFormattedHTML.push( '</' + formatXMLName(elNode) + '>' );
- aFormattedHTML.push( '</DIV></DIV>' );
- }
- else
- {
- aFormattedHTML.push( '<DIV class="e"><DIV class="c" ondblclick="toggleXmlContent();"><' + formatXMLName(elNode) );
- formatXMLNodeAttrs( elNode, aFormattedHTML );
- aFormattedHTML.push( '></DIV><DIV>' );
- formatXMLNodeChildren( elNode, aFormattedHTML );
- aFormattedHTML.push( '<DIV></' + formatXMLName(elNode) + '></DIV></DIV></DIV>' );
- }
- }
- function formatXMLText( nText, aFormattedHTML )
- {
- aFormattedHTML.push( '<B class="t">' + nText.text.F_XMLEEncode() + '</B>' );
- }
- function formatXMLComment( nComment, aFormattedHTML )
- {
- aFormattedHTML.push( '<DIV class="k"><PRE><!--' + nComment.text.F_XMLEEncode() + '--></PRE></DIV>' );
- }
- function formatXMLNodeAttrs( elNode, aFormattedHTML )
- {
- for( var i = 0; i < elNode.childNodes.length; ++i )
- {
- if( elNode.childNodes[i].nodeName != 'x:at' )
- continue;
-
- aFormattedHTML.push( ' ' + elNode.childNodes[i].getAttribute("n") + '="<B>' +
- elNode.childNodes[i].text.F_XMLEEncode() + '"</B>' );
- }
- }
- function formatXMLNodeChildren( elNode, aFormattedHTML )
- {
- var v_nChild = elNode.firstChild;
- for( ; v_nChild; v_nChild = v_nChild.nextSibling )
- {
- if( v_nChild.nodeName == "x:at" )
- continue;
- if( v_nChild.nodeType == 1 )
- formatXMLNode( v_nChild, aFormattedHTML );
- else if( v_nChild.nodeType == 3 )
- formatXMLText( v_nChild, aFormattedHTML );
- else if( v_nChild.nodeType == 8 )
- formatXMLComment( v_nChild, aFormattedHTML );
- }
- }
- String.prototype.F_XMLEEncode = function()
- {
- return this.replace( /&/g, "&amp;" ).replace( /</g, "&lt;" ).replace( />/g, "&gt;" ).replace( /'/g, "&apos;" ).replace( /"/g, "&quot;" );
- };
|