%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : www.kowitt.ac.th / Your IP : 216.73.216.118 Web Server : Microsoft-IIS/7.5 System : Windows NT SERVER02 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586 User : IUSR ( 0) PHP Version : 5.6.31 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/Windows/System32/ |
Upload File : |
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ec="urn:microsoft.com:dfsrerrors" xmlns:dfsr="urn:microsoft.com:dfsrstrings" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="urn:my-scripts"> <!-- Set encoding for HTML file here --> <xsl:output method="html" indent="no" encoding="UTF-8"/> <!-- Set global parameters for transform --> <xsl:param name="strData" select="document(concat($muiFolder,'\dfsrHealthStrings.xml'))/dfsr:strings/string"/> <xsl:param name="version" select="1.0"/> <xsl:param name="maxversion" select="1.0"/> <xsl:param name="muiFolder"/> <!-- This parameter must be passed into the transform as the output HTML file name--> <!-- <xsl:param name="htmlFileName" select="'file.html'" --> <xsl:param name="ecodes" select="document(concat($muiFolder,'\dfsrHealthMessages.xml'))/staticData/ecset"/> <xsl:variable name="serverErrorCount"> <xsl:value-of select="count(/dfsReplicationReport/members/server/serverErrors/error[@type='error'][1])"/> </xsl:variable> <xsl:variable name="serverWarningCount"> <xsl:value-of select="count(/dfsReplicationReport/members/server/serverErrors/error[@type='warning'][1])"/> </xsl:variable> <xsl:variable name="serverUnavailableCount"> <xsl:value-of select="count(/dfsReplicationReport/members/server/serverErrors/error[@type='unavailableServerError'][1])"/> </xsl:variable> <xsl:param name="params" select="./dfsReplicationReport/header/parameters"/> <xsl:param name="members" select="./dfsReplicationReport/members"/> <xsl:param name="referencemember" select="./dfsReplicationReport/header/parameters/referenceMember/@dnsName"/> <xsl:param name="referencememberinfo" select="./dfsReplicationReport/members/server[@dns=$referencemember]"/> <xsl:param name="referencememberpos"> <xsl:for-each select="$members/server"> <xsl:if test="@dns=$referencemember"> <xsl:value-of select="position()"/> </xsl:if> </xsl:for-each> </xsl:param> <!-- root template starts here --> <xsl:template match="/"> <xsl:comment> saved from url=(0014)about:internet </xsl:comment> <xsl:text> </xsl:text> <html dir="ltr" xmlns:v="urn:schemas-microsoft-com:vml"> <head> <!--Meta tag is generated by the transformer --> <!--Title generated based on type attribute of dfsRepReport element. This allows for multiple report types based on same XML structure. --> <title> <xsl:value-of select="$strData[@id='s006.1']"/> <xsl:choose> <xsl:when test="dfsReplicationReport[@type='health']"> <xsl:value-of select="$strData[@id='s006.2']"/> </xsl:when> </xsl:choose> </title> <!-- CSS Styles. Commented styles are not currently used and are not passed along to HTML by transformer --> <style type="text/css"> body { background-color:#FFFFFF; border:1px solid#buttonshadow; color:#000000; font-size:68%; font-family:Tahoma; margin:10,10,10px,10; word-break:normal; word-wrap:break-word; } table { table-layout:fixed; width:100%; font-size:100%; font-family:Tahoma; } td,th { overflow:visible; text-align:left; vertical-align:top; text-indent: 0pt; white-space:normal; padding: 3px; } .center { text-align:left; } .right { text-align:left; } .report { border:none; color:buttonshadow; display:block; margin:-18px,0px,-1px,0px; position:relative; table-layout:fixed; width:100%; z-index:5; } .he0_expanded { background-color:background; border-top-width: 1px; border-top-style: solid; border-top-color: #ffffff; color:#FFFFFF; display:block; font-weight:bold; margin-bottom:0px; margin-left:0px; margin-right:0px; padding-left:3px; padding-right:5em; padding-top:0px; padding-bottom:4px; position:relative; width:100%; height:28px;} <!-- .he0 { background-color:background; border-top-width: 1px; border-top-style: solid; border-top-color: #ffffff; color:#FFFFFF; cursor:hand; display:block; font-weight:bold; margin-bottom:0px; margin-left:0px; margin-right:0px; padding-left:3px; padding-right:5em; padding-top:0px; padding-bottom:4px; position:relative; width:100%; height:28px;} .he1_expanded { background-color:buttonshadow; border:1px solid #inactiveborder; border-color:#FFFFFF,inactiveborder,#FFFFFF,inactiveborder ; cursor:hand; display:block; font-weight:bold; height:2.25em; margin-bottom:-1px; margin-left:0px; margin-right:0px; padding-left:0px; padding-right:5em; padding-top:4px; position:relative; width:100%; } --> .he1 { background-color:appworkspace; border-top:1px solid inactiveborder; border-right:1px solid background; border-bottom:1px solid inactiveborder; border-left:1px solid background; color:#FFFFFF; display:block;font-weight:bold; height:2.25em; margin-bottom:-1px; margin-left:0px; margin-right:0px; padding-left:0px; padding-right:5em; padding-top:4px; position:relative; width:100%; } <!-- .he2 { background-color:#FFFFFF; border-bottom-width: 0px; border-bottom-style: solid; border-bottom-color: buttonshadow; border-top-width: 1px; border-top-style: solid; border-top-color: buttonshadow; color:#000000; cursor:hand; display:block; font-weight:bold; height:2.25em; margin-bottom:-1px; margin-left:26px; margin-right:10px; padding-left:0px; padding-top:4px; text-indent: 0pt; position:relative; width:100%; } --> .he2_expanded { border-bottom-width: 0px; border-bottom-style: solid; border-bottom-color: buttonshadow; border-top-width: 1px; border-top-style: solid; border-top-color: buttonshadow; color:#000000; display:block; font-weight:bold; height:2.25em; margin-bottom:-1px; margin-left:-2px; margin-right:10px; padding-left:0px; padding-top:4px; padding-bottom:8px; text-indent: 0pt; position:relative; width:100%; } <!-- .he3 { background-color:#ffffff; border:1px solid buttonshadow; color:#000000; cursor:hand; display:block; font-weight:bold; height:2.25em; margin-bottom:-1px; margin-left:0px; margin-right:0px; padding-left:11px; padding-right:5em; padding-top:4px; text-indent: 30pt; position:relative; width:100%; } .he4 { background-color:#ffffff; border:1px solid buttonshadow; color:#000000; cursor:hand; display:block; font-weight:bold; height:2.25em; margin-bottom:-1px; margin-left:0px; margin-right:0px; padding-left:11px; padding-right:5em; padding-top:4px; text-indent: 40pt; position:relative; width:100%; } --> .he4h {; border-top-width: 1px; border-top-style: solid; border-top-color: inactiveborder; display:block; font-weight:bold; height:2.25em; margin-bottom:-1px; margin-left:15px; margin-right:0px; padding-left:2px; padding-right:5em; padding-top:4px; text-indent: 0pt; position:relative; width:100%; } .he4i { border:1px solid background; color:#000000; display:block; margin-bottom:-1px; margin-left:0px; margin-right:0px; padding-bottom:5px; padding-left:0px; padding-top:0px; text-indent: 30pt; position:relative; width:100%; } .he4i2 { border:0px solid buttonshadow; color:#000000; display:block; margin-bottom:-1px; margin-left:20px; margin-right:10px; padding-bottom:5px; padding-left:0px; padding-top:0px; text-indent: 0pt; position:relative; width:100%; } .he4i3 { border-top:1px solid buttonshadow; border-right:1px solid background; border-bottom:1px solid background; border-left:1px solid background; color:#000000; display:block; margin-bottom:-1px; margin-left:0px; margin-right:0px; padding-bottom:5px; padding-left:46px; padding-top:0px; text-indent: 0pt; position:relative; width:100%; } .he4i4 { border:0px solid buttonshadow; color:#000000; display:block; margin-bottom:-1px; margin-left:0px; margin-right:0px; padding-bottom:5px; padding-left:38px; padding-top:0px; text-indent: 0pt; position:relative; width:100%; } .he4i4b { border-top-width: 1px; border-top-style: solid; border-top-color: inactiveborder; color:#000000; display:block; font-weight:bold; margin-bottom:-1px; margin-left:0px; margin-right:0px; padding-bottom:5px; padding-left:40px; padding-top:0px; text-indent: 0pt; position:relative; width:100%; } <!-- .he5 { border:0px solid buttonshadow; color:#000000; cursor:hand; display:block; font-weight:bold; height:2.25em; margin-bottom:-1px; margin-left:10px; margin-right:0px; padding-left:0px; padding-right:5em; padding-top:4px; position:relative; width:100%; } .he5h { border:0px solid buttonshadow; color:#000000; cursor:hand; display:block; padding-left:20px; padding-right:5em; padding-top:4px; margin-bottom:-1px; margin-left:0px; margin-right:0px; position:relative; width:100%; } --> .he5i { border:0px solid #inactiveborder; color:#000000; display:block; margin-bottom:-1px; margin-left:0px; margin-right:0px; padding-left:0px; padding-bottom:5px; padding-top: 4px; position:relative; width:100%; } .he5ib { border:0px solid buttonshadow; color:#000000; display:block; font-weight:bold; margin-bottom:-1px; margin-left:-27px; margin-right:0px; padding-left:0px; padding-bottom:5px; padding-top: 4px; position:relative; width:100%; } DIV .expando { display:block; font-weight:normal; margin-left:5px; margin-top:7px; z-index: 0; } DIV .expando2 { display:block; font-weight:normal; margin-left:29px; margin-top:4px; z-index: 0; } DIV .expando3 { display:block; font-weight:normal; margin-left:5px; z-index: 0; } DIV .expando4 { display:block; font-weight:normal; position:absolute; left:12px; vertical-align:middle; z-index: 0; } .showhide { color:appworkspace; display:block; font-weight:normal; position:absolute; right:20px; top:30px; z-index: 1000; } .showhide2 { color:inactiveborder; display:block; font-weight:normal; position:absolute; right:5px; margin-top:-12px; z-index:0; } .loading { color:background; display:block; font-weight:bold; margin-top:20px; z-index: 1000; } .msgtbl { line-height:1em; padding:0px,0px,0px,0px; margin:0px,0px,0px,0px; } .info, .info2, .info3, .info4, .info5, .info6, { border:1px solid inactiveborder; color:#000000; display:block; line-height:1.6em; padding:5px; margin:0px,0px,0px,0px; } .warnings { margin:0px,0px,0px,0px; } .unavailableservers { margin:0px,0px,0px,0px; } .serverdetails { margin:0px,0px,0px,0px; border-left-width: 1px; border-left-style: solid; border-left-color: background; border-right-width: 1px; border-right-style: solid; border-right-color: background; } tr.info { padding:0px; } .info TD { font-weight:normal; border:1px solid inactiveborder; padding-left:10px; padding-right:10px; } .info2 TD { font-weight:normal; border:1px solid inactiveborder; padding-left:10px; padding-right:10px; width:25%; } .info3 TD { font-weight:normal; border:1px solid inactiveborder; padding-left:10px; padding-right:10px; width:33%; } .info4 TD { font-weight:normal; border:1px solid inactiveborder; padding-left:10px; padding-right:10px; width:25%; } .info5 TD { font-weight:normal; border:1px solid inactiveborder; padding-left:10px; padding-right:10px; width:20%; } .info6 TD { font-weight:normal; border:1px solid inactiveborder; padding-left:10px; padding-right:10px; width:16%; } td.tblwhiteleft { background-color:inactiveborder; border-left-width: 1px; border-left-style: solid; border-left-color: inactiveborder; border-top-width: 1px; border-top-style: solid; border-top-color: inactiveborder; border-right-width: 1px; border-right-style: solid; border-right-color: #ffffff; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: inactiveborder; color:#000000; display:block; padding-left:10px; padding-right:10px; text-align:left; } td.tblwhiteright { background-color:inactiveborder; border-left-width: 1px; border-left-style: solid; border-left-color: #ffffff; border-top-width: 1px; border-top-style: solid; border-top-color: inactiveborder; border-right-width: 1px; border-right-style: solid; border-right-color: inactiveborder; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: inactiveborder; color:#000000; display:block; padding-left:10px; padding-right:10px; text-align:left; } td.tblwhiteboth { background-color:inactiveborder; border-left-width: 1px; border-left-style: solid; border-left-color: #ffffff; border-top-width: 1px; border-top-style: solid; border-top-color: inactiveborder; border-right-width: 1px; border-right-style: solid; border-right-color: #ffffff; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: inactiveborder; color:#000000; display:block; padding-left:10px; padding-right:10px; text-align:left; } .container { display:block; position:relative; } .reportheader { background-color:#ffffff; border-bottom:0px solid black; color:background; font-size:24pt; font-weight:bold; padding-bottom:2px; text-align:left; } .reportdetails { background-color:#ffffff; border-bottom:0px solid black; color:#000000; font-weight:bold; padding-bottom:2px; text-align:left; } td.topline { text-align: left; padding: 2px; border-top-width: 1px; border-top-style: solid; border-top-color: inactiveborder; position: relative; } <!-- td.firsttopline { margin-left:-20px; text-align: left; padding: 2px; border-top-width: 1px; border-top-style: solid; border-top-color: inactiveborder; position: relative; } --> td.toplinenarrow { width: 175px; text-align: left; padding: 2px; border-top-width: 1px; border-top-style: solid; border-top-color: inactiveborder; position: relative; } td.line { color: #000000; text-align: left; padding-left:9px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: inactiveborder; position: relative; } <!-- td.linedark { text-align: left; padding-left:9px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: buttonshadow; position: relative; } --> td.linenarrow { width: 175px; text-align: left; padding-left:9px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: inactiveborder; position: relative; } td.nolinenarrow { width: 175px; text-align: left; padding-left:9px; position: relative; } .narrow { width: 125px; } .error { text-indent: 0px; padding-left:12px; } .server { text-indent: 2pt; padding-left:24px; position:absolute: left:0px; font-weight:bold; } v\:* {behavior:url(#default#VML);} .er1 { width:14px;height:14px;font-size:1px; position: relative; top: 3px; } .er1a { width:14px;height:14px;font-size:1px; position: relative; top: 0px; } .er2 { width:20px;height:20px;font-size:1px; position: relative; top: 6px; margin-top:-2px;} .wa1 { width:16px;height:16px;font-size:1px; position: relative; top: 2px; } <!-- .wa1a { width:16px;height:16px;font-size:1px; position: relative; top: 0px; } --> .wa2 { width:20px;height:20px;font-size:1px; position: relative; top: 4px; margin-top:-2px;} <!-- .in1 { width:14px;height:14px;font-size:1px; position: relative; top: 2px; } .in1a { width:14px;height:14px;font-size:1px; position: relative; top: 0px; } .in2 { width:18px;height:18px;font-size:1px; position: relative; top: 2px; } .icon1 { width:14px;height:14px;font-size:1px; position: relative; top: 2px; } .icon2 { width:18px;height:18px;font-size:1px; position: relative; top: 2px; } --> .pm1 { width:12px;height:12px;} .sectionTitle {position:absolute; top:0px; left:0px; margin-left:30px;} .sectionTitle2 {position:absolute; top:4px; left:0px; margin-left:50px;} .sectionTitle3 {position:absolute; top:4px; left:0px; margin-left:25px;} .normal { font-weight:normal; text-decoration:none; color:#000000; } .normal2{ font-weight:normal; text-decoration:none; color:appworkspace; } .infobar {font: bold 16px verdana; color: #000000; background-color: #ffcc00; border: 2px solid #ffaa00; padding: 4px;} </style> <!-- Javascript starts here --> <script type="text/javascript" language="javascript"> <xsl:text><!--</xsl:text> <!-- Set Globals --> var initialized=false; var srcObj, targetObj, tid, tid2, locate, pmNodeSet, showHideNodeSet; var IE = (document.all) ? true : false; var show='#Plus'; var hide='#Minus'; <!-- init() from onload event of body --> function init(){ initialized=true; getObj('infobar').innerHTML = ''; // hide infobar message getObj('infobar').style.display='none'; getObj('showhideall').innerHTML='<xsl:value-of select="$strData[@id='s135']"/>'; // display Show All text at top of doc getObj('message').style.display='none'; // hide report loading message getObj('main').style.display='block'; // show main body of report document.body.style.cursor='auto'; // change wait cursor } <!-- Changes the +/- icons for a nodeset passed from other functions--> function procAllPlusMinus(nodeSet, val) { var sign='Plus'; if(!val) val=show; if(val == hide) sign='Minus'; var i=0; for( i=0; i < nodeSet.length; i++) { nodeSet[i].setAttribute('sign',sign); nodeSet[i].childNodes[0].src=val; } } <!-- Removes hilighting for link roll overs (onmouseout event)--> function unhilite(obj, color){ if(!color)color='background'; obj.style.color=''; obj.style.textDecoration='none'; obj.style.cursor='auto'; } <!-- Provides hilighting for link roll overs (onmouseover event)--> function hilite(obj, color){ if(!initialized){event.cancelBubble=true; return;} // prevent hilite function from running when onclick functions are runnning if(!color)color='background'; obj.style.color=color; obj.style.textDecoration='underline'; obj.style.cursor='hand'; } <!-- Switches the +/- icon for passed object containing a plusminus child --> <!-- Called by doShowError, showInfo, and by onlcick event of container divs in HTML--> function switchSign(obj){ var i=0; for( i=0; i < obj.length; i++) { if (obj[i].id=='plusminus') { if(obj[i].childNodes[0].src.indexOf('#Plu')>=0){ obj[i].childNodes[0].src=hide; } else{ obj[i].childNodes[0].src=show; } } } } <!-- Called by onclick event in id=showhidesection elements to expand or collapse a section with Show All / Hide All--> <!-- Note: These elements are inserted by showHideSectionCode template in XSLT --> function showHideSection(obj, showBlock){ if(!initialized){event.cancelBubble=true; return;} event.cancelBubble=true; // Cancel onclick event propagation to enclosing elements with onclick events initialized=false; // Set busy flag obj.style.cursor='wait'; // Set wait cursors document.body.style.cursor='wait'; showBlock=getObj(showBlock); // Get element corresponding to passed id val if(showBlock.id=='srvrInfo'){ // If we're expanding srvrInfo, first hide it to improve redraw performance if(obj.innerHTML=='<xsl:value-of select="$strData[@id='s135']"/>'){ if(showBlock.style.display=='block'){ showBlock.style.display='none'; message2.style.display='block'; } } } showHideNodeSet=showBlock.all.namedItem('showhidesection'); // set global to contain plusminus child nodes of showBlock targetObj=showBlock.parentNode.all.tags('div'); // set gloabl to contain all the container divs of parent node srcObj=obj; // set global to event source obj used later for resetting the cursor pmNodeSet=showBlock.parentNode.all.namedItem('plusminus'); // set global to collection of +/- nodes in enclosing div tid=setTimeout('showHideAllContinue()', 250); // set timeout to allow for cursor change (this value may be high) } <!-- Similar to showHideSection but for the whole documentl --> function showHideAll(obj){ if(!initialized){event.cancelBubble=true; return;} initialized=false; document.body.style.cursor='wait'; obj.style.cursor='wait'; pmNodeSet=document.getElementsByName('plusminus'); // get all the +/- elements in the document showHideNodeSet=document.getElementsByName('showhidesection'); // get all the Show All / Hide All elements srcObj=obj; targetObj=document.getElementsByTagName('div'); tid=setTimeout('showHideAllContinue()', 250); } <!-- This gets called from timeouts in showHideSection and showHideAll --> function showHideAllContinue(){ obj=srcObj; if(obj.innerHTML=='<xsl:value-of select="$strData[@id='s135']"/>'){ // If Show All, change to Hide All and set +/- to - style='block'; obj.innerHTML='<xsl:value-of select="$strData[@id='s136']"/>'; if(showHideNodeSet){ var i; for(i=0; i < showHideNodeSet.length; i++){ showHideNodeSet[i].innerHTML='<xsl:value-of select="$strData[@id='s136']"/>'; } } procAllPlusMinus(pmNodeSet, hide); } else { // Must be Hide All so change to Hide All and set +/- to - style='none'; obj.innerHTML='<xsl:value-of select="$strData[@id='s135']"/>'; if(showHideNodeSet){ var i; for(i=0; i < showHideNodeSet.length; i++){ showHideNodeSet[i].innerHTML='<xsl:value-of select="$strData[@id='s135']"/>'; } } procAllPlusMinus(pmNodeSet); } showHide(targetObj, style); // Show or hide all the class="container" divs in the global nodeSet pmNodeSet=null; // clear the globals showHideNodeSet=null; message2.style.display='none'; // ide the message if showing document.body.style.cursor='auto'; // reset the cursors obj.style.cursor='auto'; initialized=true; // reset the busy flag clearTimeout(tid); // clear the timeout } <!-- called from showHideAllContinue. Shows or hides class="container" divs in passed collection --> function showHide(obj, style){ if(!style) style='none'; var i=0; for( i=0; i < obj.length; i++) { if (obj[i].className=='container') { obj[i].style.display=style; } } } <!-- Jump to an error or warning in server section from listing in errors, warnings, or unavailable servers --> function doShowError(obj, str, loc){ if(!initialized){event.cancelBubble=true; return;} obj2=getObj(obj+str); // get the enclosing section (errors or warnings) that we want to jump to if(obj2.style.display=='none') { // if it's not showing, show it and change the +/- to - obj2.style.display='block'; switchSign(obj2.previousSibling.childNodes); } doShowInfo(obj, loc); // Make sure the server info block is displayed and go to the location } <!-- Shows the server info bloack for a given server id --> function doShowInfo(obj, loc){ if(!initialized){event.cancelBubble=true; return;} initialized=false; event.cancelBubble=true; // stop propagation of onclick event to enclosing div locate=loc; // global to hold the target window location obj=getObj(obj); // get the object with id=obj srcObj=event.srcElement; // set global to event source srcObj.style.cursor='wait'; // set the wait cursors document.body.style.cursor='wait'; tid=setTimeout('showInfo()', 250); // timeout to activate cursors } <!-- called from timeout in doShowInfo. Displays server info block if hidden --> function showInfo() { initialized=false; if(srvrInfo.style.display=='none') { // change the sign on the +/- of server info block srvrInfo.style.display='block'; switchSign(srvrInfo.previousSibling.previousSibling.childNodes); } if(obj.style.display=='none') { // show appropriate error or warning block and switch the +/- sign obj.style.display='block'; switchSign(obj.previousSibling.childNodes); } if (locate) { if(tid2) clearTimeout(tid2); // if we set this timeout previously, clear it locate='#'+locate; tid2=setTimeout('window.location=locate', 250); // set a timeout before calling window.location } resetCursors(); // reset the wait cursors if(tid) clearTimeout(tid); // clear timeout //if(tid2) clearTimeout(tid2); initialized=true; // reset busy flag } <!-- shows or hides an individual class="container" div. Called from the onclick event of the header div --> function doShowBlock(objID){ if(!initialized){event.cancelBubble=true; return;} initialized=false; // set busy flag var obj=getObj(objID); // get obj to show/hide from passed id value srcObj=event.srcElement.parentElement; //pass the parent element to the global to reset cursor srcObj.style.cursor='wait'; // set wait cursors document.body.style.cursor='wait'; tid = setTimeout('showBlock(this.obj)', 250); // set timeout for wait cursor to activate } <!-- called in timeout from doShowBlock --> function showBlock(obj){ if(obj.style.display=='none') obj.style.display='block'; // if obj is hidden, display it else obj.style.display='none'; // else hide it document.body.style.cursor='auto'; // reset cursors srcObj.style.cursor='hand'; clearTimeout(tid); // clear timeout initialized=true; // reset busy flag } <!-- uses DOM method to get an object from its passed ID value --> function getObj(objIdString){ obj = document.getElementById(objIdString); return obj; } <!-- reset cursors on document body and obj contained in global--> ;function resetCursors(){ document.body.style.cursor='auto'; srcObj.style.cursor='hand'; if(tid) clearTimeout(tid); } <!-- Like hilite, but only changes the cursor for mouseover and mouseout events on clickable headers --> function pointer(obj, cursor){ if(!initialized){event.cancelBubble=true; return;} if(cursor) obj.style.cursor=cursor; else obj.style.cursor='auto'; } var errorNA = '<xsl:value-of select="$strData[@id='s066']"/>'; function showDateInOtherTimezone(dateval, offset) { if (!dateval) return(errorNA); var d = new Date((dateval - 116444736000000000) / 10000); var d2 = new Date(d); // + (offset * 60000)); return(d2.toLocaleDateString() + '<xsl:value-of select="$strData[@id='s109']"/>' + d2.toLocaleTimeString() + ' ' + showTimezone(offset)); } function showTimezone(offset) { var tzHours = Math.floor(offset / 60); var tzMinutes = Math.abs(offset - 60 * tzHours); var str = (tzMinutes > 9) ? '' : '0'; return('<xsl:value-of select="$strData[@id='s110']"/>' + tzHours + ':' + str + tzMinutes + ')'); } <xsl:text>--></xsl:text> </script> <!-- VML icons for this report --> <v:group id="Err1" style="width:12px;height:12px;vertical-align:middle" coordsize="100,100"> <v:oval class="vmlimage" style="width:100;height:100;z-index:0" fillcolor="red" strokecolor="red"/> <v:line class="vmlimage" style="z-index:1" from="25,25" to="75,75" strokecolor="white" strokeweight="2px"/> <v:line class="vmlimage" style="z-index:2" from="75,25" to="25,75" strokecolor="white" strokeweight="2px"/> </v:group> <v:group id="Err2" style="width:20px;height:20px;vertical-align:middle" coordsize="100,100"> <v:oval class="vmlimage" style="width:100;height:100;z-index:0" fillcolor="red" strokecolor="red"/> <v:line class="vmlimage" style="z-index:1" from="25,25" to="75,75" strokecolor="white" strokeweight="3px"/> <v:line class="vmlimage" style="z-index:2" from="75,25" to="25,75" strokecolor="white" strokeweight="3px"/> </v:group> <v:group id="UnAv1" class="vmlimage" style="width:12px;height:12px;vertical-align:middle" coordsize="100,100" alt="Unavailable Servers"> <v:oval class="vmlimage" style="width:100;height:100;z-index:0" fillcolor="white" strokecolor="black"/> <v:line class="vmlimage" style="z-index:1" from="50,15" to="50,65" strokecolor="red" strokeweight="3px"/> <v:line class="vmlimage" style="z-index:2" from="25,60" to="75,60" strokecolor="red" strokeweight="1px"/> <v:line class="vmlimage" style="z-index:3" from="30,65" to="70,65" strokecolor="red" strokeweight="1px"/> <v:line class="vmlimage" style="z-index:4" from="35,70" to="65,70" strokecolor="red" strokeweight="1px"/> <v:line class="vmlimage" style="z-index:5" from="40,75" to="60,75" strokecolor="red" strokeweight="1px"/> <v:line class="vmlimage" style="z-index:6" from="45,80" to="55,80" strokecolor="red" strokeweight="1px"/> <v:line class="vmlimage" style="z-index:7" from="50,85" to="50,85" strokecolor="red" strokeweight="1px"/> </v:group> <v:group id="UnAv2" class="vmlimage" style="width:20px;height:20px;vertical-align:middle" coordsize="100,100" alt="Unavailable Servers"> <v:oval class="vmlimage" style="width:100;height:100;z-index:0" fillcolor="white" strokecolor="black"/> <v:line class="vmlimage" style="z-index:1" from="50,15" to="50,65" strokecolor="red" strokeweight="3px"/> <v:line class="vmlimage" style="z-index:2" from="25,60" to="75,60" strokecolor="red" strokeweight="1px"/> <v:line class="vmlimage" style="z-index:3" from="30,65" to="70,65" strokecolor="red" strokeweight="1px"/> <v:line class="vmlimage" style="z-index:4" from="35,70" to="65,70" strokecolor="red" strokeweight="1px"/> <v:line class="vmlimage" style="z-index:5" from="40,75" to="60,75" strokecolor="red" strokeweight="1px"/> <v:line class="vmlimage" style="z-index:6" from="45,80" to="55,80" strokecolor="red" strokeweight="1px"/> <v:line class="vmlimage" style="z-index:7" from="50,85" to="50,85" strokecolor="red" strokeweight="1px"/> </v:group> <v:group id="Warn1" class="vmlimage" style="width:16px;height:16px;vertical-align:middle" coordsize="100,100" alt="Warning"> <v:polyline class="vmlimage" style="width:100;height:100;z-index:0" fillcolor="yellow" strokecolor="black" points="0,100 50,0 100,100 0,100"/> <v:line class="vmlimage" style="z-index:1" from="50,30" to="50,70" strokecolor="black" strokeweight="2px"/> <v:line class="vmlimage" style="z-index:2" from="50,75" to="50,85" strokecolor="black" strokeweight="2px"/> </v:group> <v:group id="Warn2" class="vmlimage" style="width:24px;height:24px;vertical-align:middle" coordsize="100,100" alt="Warning"> <v:polyline class="vmlimage" style="width:100;height:100;z-index:0" fillcolor="yellow" strokecolor="black" points="0,100 50,0 100,100 0,100"/> <v:line class="vmlimage" style="z-index:1" from="50,30" to="50,70" strokecolor="black" strokeweight="2px"/> <v:line class="vmlimage" style="z-index:2" from="50,75" to="50,85" strokecolor="black" strokeweight="2px"/> </v:group> <v:group id="NoErr" class="vmlimage" style="width:12px;height:12px;vertical-align:middle" coordsize="100,100" alt="Servers with no errors or warnings"> <v:oval class="vmlimage" style="width:100;height:100;z-index:0" fillcolor="white" strokecolor="black"/> <v:line class="vmlimage" style="z-index:1" from="25,50" to="50,80" strokecolor="green" strokeweight="2px"/> <v:line class="vmlimage" style="z-index:2" from="50,80" to="80,25" strokecolor="green" strokeweight="2px"/> </v:group> <v:group id="Details" class="vmlimage" style="width:20px;height:20px;vertical-align:middle;" coordsize="100,100" alt="Server details"> <v:rect class="vmlimage" style="left:40px;width:40;height:95;z-index:0" fillcolor="#cccccc" strokecolor="black"/> <v:line class="vmlimage" style="z-index:1" from="40,25" to="80,25" strokecolor="black" strokeweight="0px"/> <v:line class="vmlimage" style="z-index:2" from="40,45" to="80,45" strokecolor="black" strokeweight="0px"/> <v:line class="vmlimage" style="z-index:3" from="87,5" to="87,100" strokecolor="#999999" strokeweight="3px"/> <v:line class="vmlimage" style="z-index:5" from="40,100" to="80,100" strokecolor="#cccccc" strokeweight="0px"/> </v:group> <v:group id="Inf1" class="vmlimage" style="width:10px;height:10px;vertical-align:middle" coordsize="100,100" alt="Information"> <v:oval class="vmlimage" style="width:100;height:100;z-index:0" fillcolor="white" strokecolor="#336699"/> <v:line class="vmlimage" style="z-index:1" from="50,15" to="50,25" strokecolor="#336699" strokeweight="3px"/> <v:line class="vmlimage" style="z-index:2" from="50,35" to="50,80" strokecolor="#336699" strokeweight="3px"/> </v:group> <v:group id="Plus" class="vmlimage" style="width:15px;height:15px;vertical-align:middle;" coordsize="100,100" alt="Expand"> <v:rect class="vmlimage" style="width:100;height:100;z-index:0" fillcolor="#ffffff" strokecolor="#666666"/> <v:polyline class="vmlimage" style="z-index:1" fillcolor="#cccccc" strokecolor="none" points="90,10 90,90 10,90 30,80 70,50 90,10"/> <v:line class="vmlimage" style="z-index:2" from="0,0" to="0,100" strokecolor="black"/> <v:line class="vmlimage" style="z-index:3" from="25,50" to="75,50" strokecolor="black" strokeweight="1px"/> <v:line class="vmlimage" style="z-index:4" from="50,25" to="50,75" strokecolor="black" strokeweight="1px"/> </v:group> <v:group id="Minus" class="vmlimage" style="width:15px;height:15px;vertical-align:middle;" coordsize="100,100" alt="Collapse"> <v:rect class="vmlimage" style="width:100;height:100;z-index:0" fillcolor="#ffffff" strokecolor="#666666"/> <v:polyline class="vmlimage" style="z-index:1" fillcolor="#cccccc" strokecolor="none" points="10,90 10,10 90,10 40,30 30,60 10,90"/> <v:line class="vmlimage" style="z-index:2" from="0,0" to="0,100" strokecolor="black"/> <v:line class="vmlimage" style="z-index:3" from="25,50" to="75,50" strokecolor="black" strokeweight="1px"/> </v:group> <!-- end VML icons for this report --> </head> <body onload="init();" style="cursor:wait;"> <div class="infobar" id="infobar"> <xsl:value-of select="$strData[@id='s119']"/> </div> <xsl:if test="$maxversion < /dfsReplicationReport/@version"> <div class="infobar"> <xsl:value-of select="$strData[@id='s133']"/> <xsl:value-of select="$strData[@id='s133.1']"/> <xsl:value-of select="$version"/> <xsl:value-of select="$strData[@id='s133.2']"/> <xsl:value-of select="/dfsReplicationReport/@version"/> </div> </xsl:if> <!-- Create report title --> <table cellpadding="0" cellspacing="0"> <tr> <td> <div class="reportheader"> <xsl:choose> <xsl:when test="dfsReplicationReport[@type='health']"> <xsl:value-of select="$strData[@id='s001']"/> </xsl:when> </xsl:choose> </div> </td> <td> <span id="showhideall" tabindex="0" onclick="showHideAll(this)" onkeypress="showHideAll(this)" onmouseover="hilite(this)" onmouseout="unhilite(this)" class="showhide"/> </td> </tr> </table> <!-- Create report header --> <table class="report" cellpadding="0" cellspacing="0" border="0"> <xsl:text> </xsl:text> <tr> <td class="toplinenarrow" height="4px"> </td> <td class="topline" height="4px"> </td> </tr> <tr> <td class="linenarrow"> <div class="reportdetails"> <xsl:value-of select="$strData[@id='s007']"/> </div> </td> <td class="line"> <!--xsl:apply-templates select="./dfsReplicationReport/header/timestamp" mode="systemTime" /--> <!-- Display to user in locale format but in remote timezone --> <xsl:variable name="timezone" select="./dfsReplicationReport/header/timestamp/@timezone"/> <script> document.write(showDateInOtherTimezone(<xsl:value-of select="number(./dfsReplicationReport/header/timestamp/fileTime)"/>, <xsl:value-of select="$timezone"/>)); </script> <!-- <span id="fileTime"> <xsl:value-of select="./dfsReplicationReport/header/timestamp/fileTime" /> </span> --> </td> </tr> <!-- <tr><td class="linenarrow"><div class="reportdetails"><xsl:value-of select="$strData[@id='s008']" /></div></td> <td class="line"> <xsl:value-of select="$htmlFileName" /> </td> </tr> --> <tr> <!-- Name and domain for the replication group --> <td class="linenarrow"> <div class="reportdetails"> <xsl:value-of select="$strData[@id='s009']"/> </div> </td> <td class="line"> <xsl:value-of select="/dfsReplicationReport/header/replicationGroup/@name"/> <xsl:text> (</xsl:text> <xsl:value-of select="./dfsReplicationReport/header/replicationGroup/@domain"/> <xsl:text>)</xsl:text> </td> </tr> <xsl:if test="$referencemember and $referencemember != ''"> <tr> <!-- Name and domain for the reference member --> <td class="linenarrow"> <div class="reportdetails"> <xsl:value-of select="$strData[@id='s128']"/> </div> </td> <td class="line"> <xsl:choose> <xsl:when test="not($referencememberpos) or $referencememberpos=''"> <xsl:value-of select="$referencemember"/> </xsl:when> <xsl:otherwise> <xsl:call-template name="generateMemberLink"> <xsl:with-param name="pos" select="$referencememberpos"/> <xsl:with-param name="dns" select="$referencememberinfo/@dns"/> <xsl:with-param name="name" select="$referencememberinfo/@name"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </td> </tr> </xsl:if> <tr> <!-- counted # servers in the report and reported # of servers in the replication group --> <td class="linenarrow"> <div class="reportdetails"> <xsl:value-of select="$strData[@id='s010']"/> </div> </td> <td class="line"> <xsl:value-of select="$strData[@id='s011.1']"/> <xsl:value-of select="count($members/server)"/> <xsl:value-of select="$strData[@id='s011.2']"/> <xsl:value-of select="./dfsReplicationReport/header/replicationGroup/totalMembers"/> <xsl:value-of select="$strData[@id='s011.3']"/> </td> </tr> <tr> <td class="linenarrow"> <div class="reportdetails"> <xsl:value-of select="$strData[@id='s012']"/> </div> </td> <td class="line"> <xsl:variable name="ratio1"> <xsl:call-template name="finalRDCRatio"> <xsl:with-param name="dfsrStatsNodeSet" select="$members/server/contentSets/set/dfsrStats | $members/server/contentSets/set/rdcStats"/> <xsl:with-param name="displayExtraInformation"> <xsl:text>true</xsl:text> </xsl:with-param> </xsl:call-template> </xsl:variable> <xsl:call-template name="finalRDCRatioGraph"> <xsl:with-param name="ratio" select="$ratio1"/> </xsl:call-template> </td> </tr> <tr> <td class="nolinenarrow"> <div class="reportdetails"> <xsl:value-of select="$strData[@id='s013']"/> </div> </td> <td> <!-- Nested table displays # of servers without errors, with errors, with warnings, and unavailable --> <table cellpadding="0" cellspacing="0"> <tr> <td width="50%"> <v:vmlframe src="#NoErr" class="er1"/> <xsl:text> </xsl:text> <span> <xsl:value-of select="$strData[@id='s014']"/> <xsl:text> (</xsl:text> <xsl:value-of select="count(dfsReplicationReport/members/server) - count(dfsReplicationReport/members/server/serverErrors[error])"/> <xsl:text>)</xsl:text> </span> </td> <td width="50%"> <v:vmlframe src="#UnAv1" class="er1"/> <xsl:text> </xsl:text> <span> <xsl:value-of select="$strData[@id='s015']"/> <xsl:text> (</xsl:text> <xsl:value-of select="$serverUnavailableCount"/> <xsl:text>)</xsl:text> </span> </td> <td> </td> </tr> <tr> <td> <span> <v:vmlframe src="#Err1" class="er1"/> </span> <xsl:text> </xsl:text> <span> <xsl:value-of select="$strData[@id='s016']"/> <xsl:text> (</xsl:text> <xsl:value-of select="$serverErrorCount"/> <xsl:text>)</xsl:text> </span> </td> <td> <span> <v:vmlframe src="#Warn1" class="wa1"/> </span> <xsl:text> </xsl:text> <span> <xsl:value-of select="$strData[@id='s017']"/> <xsl:text> (</xsl:text> <xsl:value-of select="$serverWarningCount"/> <xsl:text>)</xsl:text> </span> </td> </tr> </table> <br/> </td> </tr> </table> <!--message div displays only while report is loading. This gets hidden by init() function triggered by onload event.--> <div id="message" align="center"> <span class="loading"> <xsl:value-of select="$strData[@id='s018']"/> </span> </div> <div id="main" style="display:none;"> <!-- Start Errors Section --> <xsl:comment>Error Section Start </xsl:comment> <!-- Create Error section header --> <div class="error"> <div class="he0_expanded"> <xsl:if test="$serverErrorCount>0"> <!-- Only insert the onclick handler and +/- icon if there are errors to report --> <xsl:attribute name="tabindex"><xsl:text>0</xsl:text></xsl:attribute> <xsl:attribute name="onmouseover"><xsl:text>pointer(this, 'hand')</xsl:text></xsl:attribute> <xsl:attribute name="onmouseout"><xsl:text>pointer(this)</xsl:text></xsl:attribute> <xsl:attribute name="onclick"><xsl:text>doShowBlock('srvrErrs');switchSign(this.childNodes);</xsl:text></xsl:attribute> <xsl:attribute name="onkeypress"><xsl:text>doShowBlock('srvrErrs');switchSign(this.childNodes);</xsl:text></xsl:attribute> <span id="plusminus" class="expando" sign="plus"> <v:vmlframe src="#Plus" class="pm1"/> </span> </xsl:if> <!-- indicate the # of servers reporting errors --> <span class="sectionTitle" tabindex="0"> <v:vmlframe src="#Err2" class="er2"/>  <xsl:value-of select="$strData[@id='s002']"/> <xsl:text>  (</xsl:text> <xsl:value-of select="$serverErrorCount"/> <xsl:choose> <xsl:when test="$serverErrorCount=1"> <xsl:value-of select="$strData[@id='s019']"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$strData[@id='s020']"/> </xsl:otherwise> </xsl:choose> </span> <xsl:if test="$serverErrorCount>0"> <!-- Only insert Show All/hide All if there are errors to report --> <xsl:call-template name="showHideSectionCode"> <xsl:with-param name="blockID"> <xsl:text>'srvrErrs'</xsl:text> </xsl:with-param> <xsl:with-param name="hiliteColor"> <xsl:text>'white'</xsl:text> </xsl:with-param> </xsl:call-template> </xsl:if> </div> <!-- If there are servers with errors, process each server and report the errors --> <xsl:if test="$serverErrorCount>0"> <div id="srvrErrs" class="container" style="display:none;"> <div class="he4i"> <table class="msgtbl" cellpadding="0" cellspacing="0"> <xsl:for-each select="dfsReplicationReport/members/server"> <xsl:sort select="@name"/> <xsl:variable name="mem" select="."/> <xsl:variable name="pos"> <xsl:for-each select="$members/server"> <xsl:if test="$mem = ."> <xsl:value-of select="position()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:if test="serverErrors/error[@type='error'][1]"> <xsl:variable name="srvrID" select="concat('svr', format-number(number($pos),'0000'))"/> <xsl:call-template name="errors"> <xsl:with-param name="srvrID" select="$srvrID"/> <xsl:with-param name="idval1" select="concat($srvrID, '_ErrList')"/> <xsl:with-param name="errtype" select="'error'"/> </xsl:call-template> </xsl:if> </xsl:for-each> </table> </div> </div> </xsl:if> </div> <xsl:comment>End Error Section </xsl:comment> <!--End Errors Section --> <!-- Start Warnings Section --> <xsl:comment>Start Warnings Section </xsl:comment> <div class="error"> <div class="he0_expanded" onmouseover="pointer(this, 'hand')" onmouseout="pointer(this)"> <xsl:if test="$serverWarningCount>0"> <!-- Only insert the onclick handler and +/- icon if there are warnings to report --> <xsl:attribute name="tabindex"><xsl:text>0</xsl:text></xsl:attribute> <xsl:attribute name="onclick"><xsl:text>doShowBlock('srvrWarn');switchSign(this.childNodes);</xsl:text></xsl:attribute> <xsl:attribute name="onkeypress"><xsl:text>doShowBlock('srvrWarn');switchSign(this.childNodes);</xsl:text></xsl:attribute> <span id="plusminus" class="expando" sign="plus"> <v:vmlframe src="#Plus" class="pm1"/> </span> </xsl:if> <span class="sectionTitle" tabindex="0"> <!-- Indicate the # of servers with warnings --> <v:vmlframe src="#Warn2" class="wa2"/>  <xsl:value-of select="$strData[@id='s003']"/> <xsl:text>  (</xsl:text> <xsl:value-of select="$serverWarningCount"/> <xsl:choose> <xsl:when test="$serverWarningCount=1"> <xsl:value-of select="$strData[@id='s021']"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$strData[@id='s022']"/> </xsl:otherwise> </xsl:choose> </span> <xsl:if test="$serverWarningCount>0"> <!-- Only insert Show All/hide All if there are errors to report --> <xsl:call-template name="showHideSectionCode"> <xsl:with-param name="blockID"> <xsl:text>'srvrWarn'</xsl:text> </xsl:with-param> <xsl:with-param name="hiliteColor"> <xsl:text>'white'</xsl:text> </xsl:with-param> </xsl:call-template> </xsl:if> </div> <!-- If there are servers with warnings, process each server and report the warnings --> <xsl:if test="$serverWarningCount>0"> <div id="srvrWarn" class="container" style="display:none;"> <div class="he4i"> <table class="msgtbl" cellpadding="0" cellspacing="0"> <xsl:for-each select="dfsReplicationReport/members/server"> <xsl:sort select="@name"/> <xsl:variable name="mem" select="."/> <xsl:variable name="pos"> <xsl:for-each select="$members/server"> <xsl:if test="$mem/@dns = @dns"> <xsl:value-of select="position()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:if test="serverErrors/error[@type='warning'][1]"> <xsl:variable name="srvrID" select="concat('svr', format-number(number($pos),'0000'))"/> <xsl:call-template name="errors"> <xsl:with-param name="srvrID" select="$srvrID"/> <xsl:with-param name="idval1" select="concat($srvrID, '_WarnList')"/> <xsl:with-param name="errtype" select="'warning'"/> </xsl:call-template> </xsl:if> </xsl:for-each> </table> </div> </div> </xsl:if> </div> <xsl:comment>End Warnings Section </xsl:comment> <!--End Warnings Section --> <!--Start Unavailable Servers--> <xsl:comment>Start Unavailable Servers</xsl:comment> <!-- Create the section header --> <div class="error"> <div class="he0_expanded" onmouseover="pointer(this, 'hand')" onmouseout="pointer(this)"> <!-- If there are unavailable servers add onclick code to expand this block --> <xsl:if test="$serverUnavailableCount>0"> <xsl:attribute name="tabindex"><xsl:text>0</xsl:text></xsl:attribute> <xsl:attribute name="onclick"><xsl:text>doShowBlock('unavSrvrs');switchSign(this.childNodes);</xsl:text></xsl:attribute> <xsl:attribute name="onkeypress"><xsl:text>doShowBlock('unavSrvrs');switchSign(this.childNodes);</xsl:text></xsl:attribute> <span id="plusminus" class="expando" sign="plus"> <v:vmlframe src="#Plus" class="pm1"/> </span> </xsl:if> <!-- Header title --> <span class="sectionTitle" tabindex="0"> <v:vmlframe src="#UnAv2" class="er2"/>  <xsl:value-of select="$strData[@id='s004']"/> <xsl:choose> <!-- Indicate # of unavailable servers --> <xsl:when test="$serverUnavailableCount=0"> <xsl:text>  </xsl:text> <xsl:value-of select="$strData[@id='s023']"/> </xsl:when> <xsl:when test="$serverUnavailableCount=1"> <xsl:text>  (</xsl:text> <xsl:value-of select="$serverUnavailableCount"/> <xsl:value-of select="$strData[@id='s024']"/> </xsl:when> <xsl:otherwise> <xsl:text>  (</xsl:text> <xsl:value-of select="$serverUnavailableCount"/> <xsl:value-of select="$strData[@id='s025']"/> </xsl:otherwise> </xsl:choose> </span> <xsl:if test="$serverUnavailableCount>0"> <!-- Insert Show All/hide All if there are unavailable servers --> <xsl:call-template name="showHideSectionCode"> <xsl:with-param name="blockID"> <xsl:text>'unavSrvrs'</xsl:text> </xsl:with-param> <xsl:with-param name="hiliteColor"> <xsl:text>'white'</xsl:text> </xsl:with-param> </xsl:call-template> </xsl:if> </div> <!-- If there are unavailable severs add a table with server and message information --> <xsl:if test="$serverUnavailableCount>0"> <div id="unavSrvrs" class="container" style="display:none;"> <div class="he4i"> <table class="msgtbl" cellpadding="0" cellspacing="0"> <xsl:for-each select="dfsReplicationReport/members/server[serverErrors/error/@type='unavailableServerError']"> <!-- Process each unavailable server --> <xsl:sort select="@name"/> <xsl:variable name="mem" select="."/> <xsl:variable name="pos"> <xsl:for-each select="$members/server"> <xsl:if test="$mem/@dns = @dns"> <xsl:value-of select="position()"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:if test="serverErrors/error[@type='unavailableServerError'][1]"> <xsl:variable name="srvrID" select="concat('svr', format-number(number($pos),'0000'))"/> <xsl:call-template name="errors"> <xsl:with-param name="srvrID" select="$srvrID"/> <xsl:with-param name="idval1" select="concat($srvrID, '_UnavErrList')"/> <xsl:with-param name="errtype" select="'unavailableServerError'"/> </xsl:call-template> </xsl:if> </xsl:for-each> </table> </div> </div> </xsl:if> </div> <xsl:comment>End Unavailable Servers</xsl:comment> <!--End Unavailable Servers--> <!--Start Server Info--> <xsl:comment>Start Server Info</xsl:comment> <!-- Check if there are servers (there better be) and set a flag (srvrsExist) --> <xsl:variable name="srvrsExist"> <xsl:if test="dfsReplicationReport/members/server[1]"> <xsl:text>1</xsl:text> </xsl:if> </xsl:variable> <xsl:variable name="serverCount"> <xsl:value-of select="count(dfsReplicationReport/members/server)"/> </xsl:variable> <!-- Create the section header --> <div class="error"> <div class="he0_expanded" onmouseover="pointer(this, 'hand')" onmouseout="pointer(this)"> <!-- If srvrsExist flag is true, add onclick code to expand this block and the +/- icon--> <xsl:if test="$srvrsExist>0"> <xsl:attribute name="tabindex"><xsl:text>0</xsl:text></xsl:attribute> <xsl:attribute name="onclick"><xsl:text>doShowBlock('srvrInfo');switchSign(this.childNodes);</xsl:text></xsl:attribute> <xsl:attribute name="onkeypress"><xsl:text>doShowBlock('srvrInfo');switchSign(this.childNodes);</xsl:text></xsl:attribute> <span id="plusminus" class="expando" sign="plus"> <v:vmlframe src="#Plus" class="pm1"/> </span> </xsl:if> <!-- Header titile --> <span class="sectionTitle" tabindex="0"> <v:vmlframe src="#Details" class="er2"/>  <xsl:value-of select="$strData[@id='s005']"/> <!--Indicate the number of servers --> <xsl:text>  (</xsl:text> <xsl:value-of select="$serverCount"/> <xsl:choose> <xsl:when test="$serverCount=1"> <xsl:value-of select="$strData[@id='s026']"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$strData[@id='s027']"/> </xsl:otherwise> </xsl:choose> </span> <xsl:call-template name="showHideSectionCode"> <!--Add the Show All/Hide All for this block--> <xsl:with-param name="blockID"> <xsl:text>'srvrInfo'</xsl:text> </xsl:with-param> <xsl:with-param name="hiliteColor"> <xsl:text>'white'</xsl:text> </xsl:with-param> </xsl:call-template> </div> <!-- message2 div displays when doing a Show All on Server Info with srvrInfo block showing --> <div id="message2" align="center" style="display:none;"> <span class="loading"> <xsl:value-of select="$strData[@id='s116']"/> </span> </div> <!-- Main div containing each individual server info group --> <div id="srvrInfo" class="container" style="display:none;"> <!-- Process each server in the report--> <xsl:for-each select="$members/server"> <xsl:sort select="@name"/> <xsl:variable name="server" select="."/> <xsl:variable name="pos"> <xsl:for-each select="$members/server"> <xsl:if test="$server/@dns = @dns"> <xsl:value-of select="position()"/> </xsl:if> </xsl:for-each> </xsl:variable> <!-- Set variables for use in element IDs and hrefs. These get passed as params to: error mode="info"--> <xsl:variable name="srvrID"> <xsl:value-of select="concat('svr', format-number(number($pos),'0000'))"/> </xsl:variable> <xsl:variable name="srvrErrs"> <xsl:value-of select="concat($srvrID, 'err')"/> </xsl:variable> <xsl:variable name="srvrWarn"> <xsl:value-of select="concat($srvrID, 'warn')"/> </xsl:variable> <!-- Count server errors and server warnings --> <xsl:variable name="srvrErrCount"> <xsl:value-of select="count(./serverErrors/error[@type='error' or @type='unavailableServerError'])"/> </xsl:variable> <xsl:variable name="srvrWarnCount"> <xsl:value-of select="count(./serverErrors/error[@type='warning'])"/> </xsl:variable> <!-- Start container DIV --> <div> <a> <xsl:attribute name="name"><xsl:value-of select="format-number(number($pos),'0000')"/></xsl:attribute> </a> <!-- Header DIV for individual Server Information Block --> <div class="he1" onmouseover="pointer(this, 'hand')" onmouseout="pointer(this)"> <xsl:attribute name="tabindex"><xsl:text>0</xsl:text></xsl:attribute> <xsl:attribute name="onclick"><xsl:text>doShowBlock('</xsl:text><xsl:value-of select="$srvrID"/><xsl:text>');switchSign(this.childNodes);</xsl:text></xsl:attribute> <xsl:attribute name="onkeypress"><xsl:text>doShowBlock('</xsl:text><xsl:value-of select="$srvrID"/><xsl:text>');switchSign(this.childNodes);</xsl:text></xsl:attribute> <span id="plusminus" class="expando2" sign="plus"> <v:vmlframe src="#Plus" class="pm1"/> </span> <span class="sectionTitle2" tabindex="0"> <xsl:value-of select="@name"/> </span> <xsl:call-template name="showHideSectionCode"> <!-- Add Show All/Hide All functionality--> <xsl:with-param name="blockID"> <xsl:text>'</xsl:text> <xsl:value-of select="$srvrID"/> <xsl:text>'</xsl:text> </xsl:with-param> <xsl:with-param name="hiliteColor"> <xsl:text>'white'</xsl:text> </xsl:with-param> </xsl:call-template> </div> <!-- End header DIV for individual Server Information Block --> <!-- Start Server Overview DIV id="$srvrID" --> <div class="container" style="display:none;" name="container"> <xsl:attribute name="id"><xsl:value-of select="$srvrID"/></xsl:attribute> <div class="he4i3"> <!--xsl:if test="not(./serverErrors/error[@type='unavailableServerError'][1])"--> <!-- If the server is unavailable, we dont show this section 'cuz there's no info --> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="narrow"> <xsl:value-of select="$strData[@id='s028']"/> </td> <td> <xsl:value-of select="@dns"/> </td> </tr> <tr> <td> <xsl:value-of select="$strData[@id='s029']"/> </td> <td> <xsl:value-of select="@domain"/> </td> </tr> <tr> <td> <xsl:value-of select="$strData[@id='s134']"/> </td> <td> <xsl:choose> <xsl:when test="not(serverInfo/referenceDC/@dnsName) or serverInfo/referenceDC/@dnsName=''"> <xsl:value-of select="$strData[@id='s066']"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="serverInfo/referenceDC/@dnsName"/> </xsl:otherwise> </xsl:choose> </td> </tr> <tr> <td> <xsl:value-of select="$strData[@id='s120']"/> </td> <td> <xsl:choose> <xsl:when test="not(@ipAddress) or @ipAddress=''"> <xsl:value-of select="$strData[@id='s066']"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="@ipAddress"/> </xsl:otherwise> </xsl:choose> </td> </tr> <tr> <td> <xsl:value-of select="$strData[@id='s030']"/> </td> <td> <xsl:choose> <xsl:when test="not(@site) or @site=''"> <xsl:value-of select="$strData[@id='s066']"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="@site"/> </xsl:otherwise> </xsl:choose> </td> </tr> <tr> <td> <xsl:value-of select="$strData[@id='s031']"/> </td> <td> <xsl:choose> <xsl:when test="current()/serviceInfo/timestamp/@timezone"> <script> document.write(showTimezone(<xsl:value-of select="current()/serviceInfo/timestamp/@timezone"/>)); </script> </xsl:when> <xsl:otherwise> <xsl:value-of select="$strData[@id='s066']"/> </xsl:otherwise> </xsl:choose> </td> </tr> </table> <!--/xsl:if--> <!-- Start Server Errors Section --> <!-- Section Header --> <div class="he2_expanded" onmouseover="pointer(this, 'hand')" onmouseout="pointer(this)"> <xsl:attribute name="style"><!--xsl:if test="./serverErrors/error[@type='unavailableServerError'][1]"--><xsl:text>border-top:1px solid #999999;</xsl:text><!--/xsl:if--></xsl:attribute> <xsl:if test="$srvrErrCount>0"> <!-- If server has errors, add onclick code --> <xsl:attribute name="tabindex"><xsl:text>0</xsl:text></xsl:attribute> <xsl:attribute name="onclick"><xsl:text>doShowBlock('</xsl:text><xsl:value-of select="$srvrErrs"/><xsl:text>'); switchSign(this.childNodes);</xsl:text></xsl:attribute> <xsl:attribute name="onkeypress"><xsl:text>doShowBlock('</xsl:text><xsl:value-of select="$srvrErrs"/><xsl:text>'); switchSign(this.childNodes);</xsl:text></xsl:attribute> </xsl:if> <xsl:choose> <xsl:when test="$srvrErrCount>0"> <!-- If server has errors, add +/- icon and indicate # of errors--> <span id="plusminus" class="expando3" sign="plus"> <v:vmlframe src="#Plus" class="pm1"/> </span> <span class="sectionTitle3" tabindex="0"> <v:vmlframe src="#Err1" class="er1"/> <xsl:text>  </xsl:text> <xsl:value-of select="$strData[@id='s002']"/> <xsl:choose> <xsl:when test="$srvrErrCount=1"> <xsl:value-of select="$strData[@id='s032']"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$strData[@id='s033.1']"/> <xsl:value-of select="$srvrErrCount"/> <xsl:value-of select="$strData[@id='s033.2']"/> </xsl:otherwise> </xsl:choose> </span> </xsl:when> <xsl:otherwise> <span class="sectionTitle3" tabindex="0"> <v:vmlframe src="#Err1" class="er1"/> <xsl:text>  </xsl:text> <xsl:value-of select="$strData[@id='s002']"/> <xsl:value-of select="$strData[@id='s034']"/> </span> </xsl:otherwise> </xsl:choose> </div> <!--End Section Header--> <!-- Process errors for the server --> <!--Create the DIV to hold the error list--> <xsl:if test="$srvrErrCount>0"> <div class="container" style="display:none;" name="container"> <xsl:attribute name="id"><xsl:value-of select="$srvrErrs"/></xsl:attribute> <div class="he4i2"> <!--Sort errors based on sortkey attribute and process each --> <xsl:for-each select="./serverErrors/error[@type='error' or @type='unavailableServerError']"> <!--xsl:sort select="@sortkey" order="ascending" /--> <xsl:sort select="$ecodes/error[@id=current()/@id]/code" order="ascending"/> <xsl:variable name="err" select="."/> <xsl:variable name="errFind"> <xsl:for-each select="$server/serverErrors/error"> <xsl:if test="$err = . and $err/@id = @id"> <xsl:value-of select="position()"/>; </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="errPos" select="substring-before($errFind, ';')"/> <xsl:apply-templates select="." mode="info"> <xsl:with-param name="etype"> <xsl:text>err</xsl:text> </xsl:with-param> <xsl:with-param name="srvrID"> <xsl:value-of select="$srvrID"/> </xsl:with-param> <xsl:with-param name="srvrPosition"> <xsl:value-of select="$pos"/> </xsl:with-param> <xsl:with-param name="errPosition"> <xsl:value-of select="format-number($errPos, '0000')"/> </xsl:with-param> <xsl:with-param name="errId"> <xsl:value-of select="@id"/> </xsl:with-param> </xsl:apply-templates> </xsl:for-each> </div> </div> </xsl:if> <!-- End Processing errors for server --> <!-- End Server Errors Section --> <!-- Start Server Warnings Section --> <!-- Section Header --> <!--If the server is unavailable, we don't show this section at all--> <xsl:if test="not(./serverErrors/error[@type='unavailableServerError'][1])"> <div class="he2_expanded" onmouseover="pointer(this, 'hand')" onmouseout="pointer(this)"> <xsl:if test="$srvrWarnCount>0"> <!-- If server has warnings, add onclick code --> <xsl:attribute name="tabindex"><xsl:text>0</xsl:text></xsl:attribute> <xsl:attribute name="onclick"><xsl:text>doShowBlock('</xsl:text><xsl:value-of select="$srvrWarn"/><xsl:text>'); switchSign(this.childNodes);</xsl:text></xsl:attribute> <xsl:attribute name="onkeypress"><xsl:text>doShowBlock('</xsl:text><xsl:value-of select="$srvrWarn"/><xsl:text>'); switchSign(this.childNodes);</xsl:text></xsl:attribute> </xsl:if> <xsl:choose> <xsl:when test="$srvrWarnCount>0"> <!-- If server has warnings, add +/- icon, title, and warning count --> <span id="plusminus" class="expando3" sign="plus"> <v:vmlframe src="#Plus" class="pm1"/> </span> <span class="sectionTitle3" tabindex="0"> <v:vmlframe src="#Warn1" class="er1"/> <xsl:text>  </xsl:text> <xsl:value-of select="$strData[@id='s003']"/> <xsl:choose> <xsl:when test="$srvrWarnCount=1"> <xsl:value-of select="$strData[@id='s035']"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$strData[@id='s036.1']"/> <xsl:value-of select="$srvrWarnCount"/> <xsl:value-of select="$strData[@id='s036.2']"/> </xsl:otherwise> </xsl:choose> </span> </xsl:when> <xsl:otherwise> <!-- otherwise just ad title and indicate no warnings--> <span class="sectionTitle3" tabindex="0"> <v:vmlframe src="#Warn1" class="er1"/> <xsl:value-of select="$strData[@id='s003']"/> <xsl:value-of select="$strData[@id='s037']"/> </span> </xsl:otherwise> </xsl:choose> </div> </xsl:if> <!--End Section Header--> <!-- Process warnings for the server --> <!--Create the DIV to hold warnings--> <xsl:if test="$srvrWarnCount>0"> <div class="container" style="display:none;" name="container"> <xsl:attribute name="id"><xsl:value-of select="$srvrWarn"/></xsl:attribute> <div class="he4i2"> <!--Sort errors based on sortkey attribute and process each --> <xsl:for-each select="./serverErrors/error[@type='warning']"> <!--xsl:sort select="@sortkey" order="ascending" /--> <xsl:sort select="$ecodes/error[@id=current()/@id]/code" order="ascending"/> <xsl:variable name="err" select="."/> <xsl:variable name="errFind"> <xsl:for-each select="$server/serverErrors/error"> <xsl:if test="$err = . and $err/@id = @id"> <xsl:value-of select="position()"/>; </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="errPos" select="substring-before($errFind, ';')"/> <xsl:apply-templates select="." mode="info"> <xsl:with-param name="etype"> <xsl:text>warn</xsl:text> </xsl:with-param> <xsl:with-param name="srvrID"> <xsl:value-of select="$srvrID"/> </xsl:with-param> <xsl:with-param name="srvrPosition"> <xsl:value-of select="$pos"/> </xsl:with-param> <xsl:with-param name="errPosition"> <xsl:value-of select="format-number($errPos, '0000')"/> </xsl:with-param> <xsl:with-param name="errId"> <xsl:value-of select="@id"/> </xsl:with-param> </xsl:apply-templates> </xsl:for-each> </div> </div> </xsl:if> <!-- End Processing errors for server --> <!-- End Server Warnings Section --> <!-- Start Server Informational section --> <!-- Set variables --> <xsl:variable name="srvrInfo"> <xsl:value-of select="concat($srvrID,'info')"/> </xsl:variable> <!--Add onclick handlers, icons, title --> <div class="he2_expanded" onmouseover="pointer(this, 'hand')" onmouseout="pointer(this)"> <xsl:attribute name="tabindex"><xsl:text>0</xsl:text></xsl:attribute> <xsl:attribute name="onclick"><xsl:text>doShowBlock('</xsl:text><xsl:value-of select="$srvrInfo"/><xsl:text>'); switchSign(this.childNodes);</xsl:text></xsl:attribute> <xsl:attribute name="onkeypress"><xsl:text>doShowBlock('</xsl:text><xsl:value-of select="$srvrInfo"/><xsl:text>'); switchSign(this.childNodes);</xsl:text></xsl:attribute> <span id="plusminus" class="expando3" sign="plus"> <v:vmlframe src="#Plus" class="pm1"/> </span> <span class="sectionTitle3" tabindex="0"> <v:vmlframe src="#Inf1" class="er1"/> <xsl:text>  </xsl:text> <xsl:value-of select="$strData[@id='s039']"/> </span> </div> <xsl:choose> <!--If the sever is unavailable we don't show this entire section, just a brief message--> <xsl:when test="./serverErrors/error[@type='unavailableServerError'][1]"> <div class="container" style="display:none;" name="container"> <xsl:attribute name="id"><xsl:value-of select="$srvrInfo"/></xsl:attribute> <div class="he4i2"> <table cellspacing="0"> <tr> <td width="20" height="4px" class="topline"> </td> <td height="4px" class="toplinenarrow"> </td> <td height="4px" class="topline"> </td> </tr> <tr> <td colspan="1"> <v:vmlframe src="#Inf1" class="er1a"/> </td> <td colspan="2"> <xsl:value-of select="$strData[@id='s038']"/> </td> </tr> </table> </div> </div> </xsl:when> <!--Otherwise we show all the info we have for the server--> <xsl:otherwise> <div class="container" style="display:none;" name="container"> <xsl:attribute name="id"><xsl:value-of select="$srvrInfo"/></xsl:attribute> <div class="he4i2"> <!-- Add the overview and nested content set tables for the server--> <table cellspacing="0"> <tr> <td width="20" height="4px" class="topline"> </td> <td height="4px" class="toplinenarrow"> </td> <td height="4px" class="topline"> </td> </tr> <tr> <td colspan="1"> <v:vmlframe src="#Inf1" class="er1a"/> </td> <td colspan="2"> <xsl:value-of select="$strData[@id='s040']"/> <xsl:choose> <xsl:when test="serviceInfo/state=1"> <xsl:value-of select="$strData[@id='s040.1']"/> </xsl:when> <xsl:when test="serviceInfo/state=2"> <xsl:value-of select="$strData[@id='s040.2']"/> </xsl:when> <xsl:when test="serviceInfo/state=3"> <xsl:value-of select="$strData[@id='s040.3']"/> </xsl:when> <xsl:when test="serviceInfo/state=4"> <xsl:value-of select="$strData[@id='s040.4']"/> </xsl:when> <xsl:when test="serviceInfo/state=5"> <xsl:value-of select="$strData[@id='s040.5']"/> </xsl:when> <xsl:when test="serviceInfo/state=6"> <xsl:value-of select="$strData[@id='s040.6']"/> </xsl:when> <xsl:when test="serviceInfo/state=7"> <xsl:value-of select="$strData[@id='s040.7']"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$strData[@id='s040.8']"/> </xsl:otherwise> </xsl:choose> </td> </tr> <xsl:if test="serviceInfo/state=1"> <tr> <td colspan="3" height="4px"> </td> </tr> <tr> <td width="20" height="4px" class="topline"> </td> <td height="4px" class="toplinenarrow"> </td> <td height="4px" class="topline"> </td> </tr> <tr> <td colspan="1"> <v:vmlframe src="#Inf1" class="er1a"/> </td> <td colspan="2"> <xsl:value-of select="$strData[@id='s040.1b']"/> </td> </tr> </xsl:if> <tr> <td colspan="3" height="4px"> </td> </tr> </table> <xsl:if test="serviceInfo/state=4"> <table cellspacing="0"> <tr> <td width="20" height="4px" class="topline"> </td> <td height="4px" class="toplinenarrow"> </td> <td height="4px" class="topline"> </td> </tr> <tr> <td colspan="1"> <v:vmlframe src="#Inf1" class="er1a"/> </td> <td colspan="2"> <xsl:value-of select="$strData[@id='s041']"/> <xsl:call-template name="calcUptime"> <xsl:with-param name="startTime"> <xsl:value-of select="serviceInfo/timestamp/fileTime"/> </xsl:with-param> <xsl:with-param name="endTime"> <xsl:value-of select="/dfsReplicationReport/header/timestamp/fileTime"/> </xsl:with-param> </xsl:call-template> </td> </tr> <tr> <td colspan="3" height="4px"> </td> </tr> <xsl:if test="serviceInfo/version"> <tr> <td width="20" height="4px" class="topline"> </td> <td height="4px" class="toplinenarrow"> </td> <td height="4px" class="topline"> </td> </tr> <tr> <td colspan="1"> <v:vmlframe src="#Inf1" class="er1a" /> </td> <td colspan="2"> <xsl:value-of select="$strData[@id='s041.1']" /> <xsl:value-of select="serviceInfo/version" /> </td> </tr> </xsl:if> </table> </xsl:if> <xsl:if test="count(contentSets/set) > 0"> <!-- Begin High Level CS view table --> <table cellspacing="0"> <tr> <td width="20" height="4px" class="topline"> </td> <td height="4px" class="toplinenarrow"> </td> <td height="4px" class="topline"> </td> </tr> <tr> <td> <v:vmlframe src="#Inf1" class="er1a"/> </td> <td colspan="2"> <xsl:value-of select="$strData[@id='s042']"/> </td> </tr> <tr> <td> </td> <td colspan="2"> <xsl:value-of select="$strData[@id='s043']"/> </td> </tr> <tr> <td colspan="3" height="4px"> </td> </tr> <tr> <td> </td> <td colspan="2"> <table cellspacing="0"> <xsl:attribute name="class"><xsl:choose><xsl:when test="$params/ShowBacklog = '0'">info4</xsl:when><xsl:when test="$params/ShowBacklog = '1' and $server/@name = $referencememberinfo/@name">info4</xsl:when><xsl:otherwise>info6</xsl:otherwise></xsl:choose></xsl:attribute> <tr> <td class="tblwhiteleft"> <xsl:value-of select="$strData[@id='s044']"/> </td> <td class="tblwhiteboth"> <xsl:value-of select="$strData[@id='s045']"/> </td> <xsl:if test="$params/ShowBacklog = '1'"> <xsl:if test="$server/@name != $referencememberinfo/@name"> <td class="tblwhiteboth"> <xsl:value-of select="$strData[@id='s046.0']"/> </td> <td class="tblwhiteboth"> <xsl:value-of select="$strData[@id='s046.1']"/> </td> </xsl:if> </xsl:if> <td class="tblwhiteboth"> <xsl:value-of select="$strData[@id='s048']"/> </td> <td class="tblwhiteright"> <xsl:value-of select="$strData[@id='s049']"/> </td> </tr> <xsl:for-each select="contentSets/set"> <xsl:sort select="@name" order="ascending"/> <xsl:if test="status != 6"> <tr> <td> <xsl:value-of select="@name"/> </td> <td> <xsl:choose> <xsl:when test="status=-1"> <xsl:value-of select="$strData[@id='s050.-1']"/> </xsl:when> <xsl:when test="status=0"> <xsl:value-of select="$strData[@id='s050.0']"/> </xsl:when> <xsl:when test="status=1"> <xsl:value-of select="$strData[@id='s050.1']"/> </xsl:when> <xsl:when test="status=2"> <xsl:value-of select="$strData[@id='s050.2']"/> </xsl:when> <xsl:when test="status=3"> <xsl:value-of select="$strData[@id='s050.3']"/> </xsl:when> <xsl:when test="status=4"> <xsl:value-of select="$strData[@id='s050.4']"/> </xsl:when> <xsl:when test="status=5"> <xsl:value-of select="$strData[@id='s050.5']"/> </xsl:when> <xsl:when test="status=6"> <xsl:value-of select="$strData[@id='s050.6']"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$strData[@id='s050.7']"/> </xsl:otherwise> </xsl:choose> </td> <xsl:if test="$params/ShowBacklog = '1'"> <xsl:if test="$server/@name != $referencememberinfo/@name"> <td> <xsl:variable name="backlogOutboundCount"> <xsl:choose> <xsl:when test="status=6"> <xsl:value-of select="-1"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="transactions/backlogOutbound"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:call-template name="num"> <xsl:with-param name="num" select="$backlogOutboundCount"/> </xsl:call-template> </td> <td> <xsl:variable name="backlogInboundCount"> <xsl:choose> <xsl:when test="status=6"> <xsl:value-of select="-1"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="transactions/backlogInbound"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:call-template name="num"> <xsl:with-param name="num" select="$backlogInboundCount"/> </xsl:call-template> </td> </xsl:if> </xsl:if> <td> <xsl:variable name="recvdfiles"> <xsl:choose> <xsl:when test="status=6"> <xsl:value-of select="-1"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="transactions/recvdfiles"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:call-template name="num"> <xsl:with-param name="num" select="$recvdfiles"/> </xsl:call-template> </td> <td> <xsl:choose> <xsl:when test="status=6"> <xsl:call-template name="num"> <xsl:with-param name="num" select="-1"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="finalRDCRatio"> <xsl:with-param name="dfsrStatsNodeSet" select="dfsrStats | rdcStats"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </td> </tr> </xsl:if> </xsl:for-each> </table> <div> <v:vmlframe src="#Inf1" class="er1"/>   <xsl:value-of select="$strData[@id='s132']"/> </div> <xsl:if test="$params/ShowBacklog = '1'"> <div> <v:vmlframe src="#Inf1" class="er1"/>   <xsl:choose> <xsl:when test="$server/@name = $referencememberinfo/@name"> <xsl:value-of select="$strData[@id='s129']"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$strData[@id='s130.1']"/> <xsl:choose> <xsl:when test="not($referencememberpos) or $referencememberpos=''"> <xsl:value-of select="$referencemember"/> </xsl:when> <xsl:otherwise> <xsl:call-template name="generateMemberLink"> <xsl:with-param name="pos" select="$referencememberpos"/> <xsl:with-param name="dns" select="$referencememberinfo/@dns"/> <xsl:with-param name="name" select="$referencememberinfo/@name"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> <xsl:value-of select="$strData[@id='s130.2']"/> </xsl:otherwise> </xsl:choose> </div> </xsl:if> </td> </tr> </table> <br/> <!-- End High level CS view --> <xsl:if test="$params/ShowFiles = '1'"> <table cellspacing="0"> <tr> <td width="20" height="4px" class="topline"> </td> <td height="4px" class="toplinenarrow"> </td> <td height="4px" class="topline"> </td> </tr> <tr> <td> <v:vmlframe src="#Inf1" class="er1a"/> </td> <td colspan="2"> <xsl:value-of select="$strData[@id='s054']"/> </td> </tr> <tr> <td> </td> <td colspan="2"> <xsl:value-of select="$strData[@id='s055']"/> </td> </tr> <tr> <td colspan="3" height="4px"> </td> </tr> </table> <!-- Sort content sets alphabetically by name and show info for each in expandable block--> <xsl:for-each select="contentSets/set"> <xsl:sort select="@name" order="ascending"/> <xsl:if test="status != 6"> <xsl:variable name="contentSetID"> <xsl:value-of select="concat($srvrID, 'set', format-number(position(), '0000'))"/> </xsl:variable> <!--Add title block with onclick event handler, +/- icon, and name of content set--> <div class="he4h" onmouseover="pointer(this, 'hand')" onmouseout="pointer(this)"> <xsl:attribute name="tabindex"><xsl:text>0</xsl:text></xsl:attribute> <xsl:attribute name="onclick"><xsl:text>doShowBlock('</xsl:text><xsl:value-of select="$contentSetID"/><xsl:text>'); switchSign(this.childNodes);</xsl:text></xsl:attribute> <xsl:attribute name="onkeypress"><xsl:text>doShowBlock('</xsl:text><xsl:value-of select="$contentSetID"/><xsl:text>'); switchSign(this.childNodes);</xsl:text></xsl:attribute> <span id="plusminus" class="expando3" sign="plus"> <v:vmlframe src="#Plus" class="pm1"> </v:vmlframe> </span> <span class="sectionTitle3" tabindex="0"> <xsl:value-of select="@name"/> <xsl:value-of select="$strData[@id='s056']"/> </span> </div> <div name="container" class="container" style="display:none;"> <xsl:attribute name="id"><xsl:value-of select="$contentSetID"/></xsl:attribute> <!--Add the content set folder info for each folder in the set--> <div class="he4i4"> <xsl:for-each select="folder"> <div style="margin-bottom: 7px;"> <b> <xsl:choose> <xsl:when test="@type='root'"> <xsl:value-of select="$strData[@id='s062']"/>: </xsl:when> <xsl:when test="@type='shared'"> <xsl:value-of select="$strData[@id='s063']"/>: </xsl:when> <xsl:when test="@type='conflict'"> <xsl:value-of select="$strData[@id='s064']"/>: </xsl:when> <xsl:when test="@type='staging'"> <xsl:value-of select="$strData[@id='s065']"/>: </xsl:when> </xsl:choose> </b> <xsl:for-each select="path"> <xsl:choose> <xsl:when test="position()=last()"> <xsl:value-of select="."/> </xsl:when> <xsl:otherwise> <xsl:value-of select="."/> <xsl:text>, </xsl:text> </xsl:otherwise> </xsl:choose> </xsl:for-each> <xsl:if test="position() != last()"> <br/> </xsl:if> </div> </xsl:for-each> <table cellspacing="0"> <xsl:attribute name="class"><xsl:choose><xsl:when test="$params/ShowFiles = '1'">info5</xsl:when><xsl:otherwise>info2</xsl:otherwise></xsl:choose></xsl:attribute> <tr> <td class="tblwhiteleft"> <xsl:value-of select="$strData[@id='s057']"/> </td> <td class="tblwhiteboth"> <xsl:value-of select="$strData[@id='s059']"/> </td> <xsl:if test="$params/ShowFiles = '1'"> <td class="tblwhiteboth"> <xsl:value-of select="$strData[@id='s060']"/> </td> <td class="tblwhiteboth"> <xsl:value-of select="$strData[@id='s061']"/> </td> <td class="tblwhiteright"> <xsl:value-of select="$strData[@id='s122']"/> </td> </xsl:if> </tr> <xsl:for-each select="folder"> <tr> <td> <xsl:choose> <xsl:when test="@type='root'"> <xsl:value-of select="$strData[@id='s062']"/> </xsl:when> <xsl:when test="@type='shared'"> <xsl:value-of select="$strData[@id='s063']"/> </xsl:when> <xsl:when test="@type='conflict'"> <xsl:value-of select="$strData[@id='s064']"/> </xsl:when> <xsl:when test="@type='staging'"> <xsl:value-of select="$strData[@id='s065']"/> </xsl:when> </xsl:choose> </td> <td class="center"> <xsl:choose> <xsl:when test="configSize > 0"> <xsl:call-template name="calcByteUnitSize"> <!--Reduce value appropriate size scale--> <xsl:with-param name="size"> <xsl:value-of select="configSize"/> </xsl:with-param> <xsl:with-param name="unit" select="configSize/@unit"/> <xsl:with-param name="precision"> <xsl:text>2</xsl:text> </xsl:with-param> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$strData[@id='s066']"/> </xsl:otherwise> </xsl:choose> </td> <xsl:if test="$params/ShowFiles = '1'"> <td class="center"> <xsl:call-template name="calcByteUnitSize"> <!--Reduce value appropriate size scale--> <xsl:with-param name="size"> <xsl:value-of select="size"/> </xsl:with-param> <xsl:with-param name="unit" select="size/@unit"/> <xsl:with-param name="precision"> <xsl:text>2</xsl:text> </xsl:with-param> </xsl:call-template> <!-- Commenting out Ghosting related entries <xsl:if test="../ghosted = 1 and ((ghostedCount >=0) or (physicalSize >= 0))"> <xsl:value-of select="$strData[@id='s143']"/> <xsl:call-template name="calcByteUnitSize"> --> <!-- Reduce value appropriate size scale --> <!-- Commenting out Ghosting related entries <xsl:with-param name="size"> <xsl:value-of select="physicalSize"/> </xsl:with-param> <xsl:with-param name="unit" select="size/@unit"/> <xsl:with-param name="precision"> <xsl:text>2</xsl:text> </xsl:with-param> </xsl:call-template> <xsl:value-of select="$strData[@id='s144']"/> </xsl:if> --> </td> <td class="center"> <xsl:choose> <xsl:when test="not(fileCount) or fileCount < 0"> <xsl:value-of select="$strData[@id='s066']"/> </xsl:when> <xsl:when test="fileCount = 0"> <xsl:text>0</xsl:text> </xsl:when> <xsl:otherwise> <xsl:value-of select="format-number(fileCount, '###,###,###')"/> </xsl:otherwise> </xsl:choose> </td> <td class="center"> <xsl:choose> <xsl:when test="not(folderCount) or folderCount < 0"> <xsl:value-of select="$strData[@id='s066']"/> </xsl:when> <xsl:when test="folderCount = 0"> <xsl:text>0</xsl:text> </xsl:when> <xsl:otherwise> <xsl:value-of select="format-number(folderCount, '###,###,###')"/> </xsl:otherwise> </xsl:choose> </td> </xsl:if> </tr> </xsl:for-each> </table> <!-- Commenting out Ghosting related entries <xsl:if test="ghosted = 1"> <v:vmlframe src="#Inf1" class="er1"/>   <xsl:value-of select="$strData[@id='s145']"/> </xsl:if> --> </div> </div> </xsl:if> </xsl:for-each> </xsl:if> </xsl:if> <xsl:if test="count(disks/drive) > 0"> <!-- Add info about the disks on the server--> <table cellspacing="0"> <tr> <td width="20px" height="4px" class="topline"> </td> <td height="4px" class="topline"> </td> <td height="4px" class="topline"> </td> </tr> <tr> <td colspan="1"> <v:vmlframe src="#Inf1" class="er1a"/> </td> <td colspan="2"> <xsl:value-of select="$strData[@id='s067']"/> </td> </tr> <tr> <td> </td> <td colspan="2"> <xsl:value-of select="$strData[@id='s068']"/> </td> </tr> <tr> <td colspan="1"> </td> <td colspan="2"> <!--Process each disk on the server --> <xsl:apply-templates select="./disks"/> </td> </tr> <tr> <td colspan="3" height="4px"> </td> </tr> </table> <br/> </xsl:if> <xsl:if test="count(contentSets/set/dfsrStats | contentSets/set/rdcStats) > 0"> <!--Show RDC stats for the server--> <table cellspacing="0"> <tr> <td width="20" height="4px" class="topline"> </td> <td width="150px" height="4px" class="topline"> </td> <td height="4px" class="topline"> </td> </tr> <tr> <td colspan="1"> <v:vmlframe src="#Inf1" class="er1a"/> </td> <td colspan="2"> <xsl:value-of select="$strData[@id='s069']"/> </td> </tr> <tr> <td> </td> <td colspan="2"> <xsl:value-of select="$strData[@id='s071']"/> </td> </tr> <tr> <td> </td> <td> <xsl:value-of select="$strData[@id='s073']"/> </td> <td> <!--Calculate and display reduced WAN traffic--> <xsl:call-template name="calcByteUnitSize"> <!--Reduce value appropriate size scale--> <xsl:with-param name="size"> <xsl:value-of select="sum(contentSets/set/dfsrStats/sizeOfFilesReceived) - sum(contentSets/set/dfsrStats/totalBytesReceived) + sum(contentSets/set/rdcStats/rdcUncompressedReceivedBytes) - sum(contentSets/set/rdcStats/rdcCompressedReceivedBytes)"/> </xsl:with-param> <xsl:with-param name="unit"> <xsl:text>B</xsl:text> </xsl:with-param> <xsl:with-param name="precision"> <xsl:text>2</xsl:text> </xsl:with-param> </xsl:call-template> </td> </tr> <tr> <td> </td> <td colspan="2"> <xsl:value-of select="$strData[@id='s075']"/> </td> </tr> <tr> <td> </td> <td colspan="2"> <!-- This table shows the RDC stats for each content set on the server--> <table class="info4" cellspacing="0"> <tr> <td class="tblwhiteleft"> <xsl:value-of select="$strData[@id='s076']"/> </td> <td class="tblwhiteboth"> <xsl:value-of select="$strData[@id='s078']"/> </td> <td class="tblwhiteboth"> <xsl:value-of select="$strData[@id='s077']"/> </td> <td class="tblwhiteright" nowrap="0"> <xsl:value-of select="$strData[@id='s079']"/> </td> </tr> <!-- Sort each CS by name and display the stats--> <xsl:for-each select="contentSets/set"> <xsl:sort select="@name" order="ascending"/> <xsl:if test="status != 6"> <tr> <td class="center"> <xsl:value-of select="@name"/> </td> <td nowrap="yes" class="center"> <xsl:call-template name="calcByteUnitSize"> <xsl:with-param name="size"> <xsl:value-of select="dfsrStats/sizeOfFilesReceived | rdcStats/rdcUncompressedReceivedBytes"/> </xsl:with-param> <xsl:with-param name="unit"> <xsl:text>B</xsl:text> </xsl:with-param> <xsl:with-param name="precision"> <xsl:text>2</xsl:text> </xsl:with-param> </xsl:call-template> </td> <td class="center"> <xsl:call-template name="calcByteUnitSize"> <xsl:with-param name="size"> <xsl:value-of select="dfsrStats/totalBytesReceived | rdcStats/rdcCompressedReceivedBytes"/> </xsl:with-param> <xsl:with-param name="unit"> <xsl:text>B</xsl:text> </xsl:with-param> <xsl:with-param name="precision"> <xsl:text>2</xsl:text> </xsl:with-param> </xsl:call-template> </td> <td class="center"> <!--Calculate the RDC compression ratio for the set and assign to a variable--> <xsl:call-template name="finalRDCRatio"> <xsl:with-param name="dfsrStatsNodeSet" select="dfsrStats | rdcStats"/> </xsl:call-template> </td> </tr> </xsl:if> </xsl:for-each> <!--Show the overall combined RDC stats for all sets on the server--> <tr> <td class="center"> <b> <xsl:value-of select="$strData[@id='s081']"/> </b> </td> <td class="center"> <b> <xsl:call-template name="calcByteUnitSize"> <xsl:with-param name="size"> <xsl:value-of select="sum(contentSets/set/dfsrStats/sizeOfFilesReceived | contentSets/set/rdcStats/rdcUncompressedReceivedBytes)"/> </xsl:with-param> <xsl:with-param name="unit"> <xsl:text>B</xsl:text> </xsl:with-param> <xsl:with-param name="precision"> <xsl:text>2</xsl:text> </xsl:with-param> </xsl:call-template> </b> </td> <td class="center"> <b> <xsl:call-template name="calcByteUnitSize"> <xsl:with-param name="size"> <xsl:value-of select="sum(contentSets/set/dfsrStats/totalBytesReceived | contentSets/set/rdcStats/rdcCompressedReceivedBytes)"/> </xsl:with-param> <xsl:with-param name="unit"> <xsl:text>B</xsl:text> </xsl:with-param> <xsl:with-param name="precision"> <xsl:text>2</xsl:text> </xsl:with-param> </xsl:call-template> </b> </td> <td class="center"> <b> <xsl:call-template name="finalRDCRatio"> <xsl:with-param name="dfsrStatsNodeSet" select="contentSets/set/dfsrStats | contentSets/set/rdcStats"/> </xsl:call-template> </b> </td> </tr> </table> </td> </tr> <tr> <td colspan="3" height="4px"> </td> </tr> </table> </xsl:if> </div> </div> </xsl:otherwise> </xsl:choose> <!--If this is the last server, add a line below--> <xsl:if test="position()=last()"> <div class="he2_expanded"/> </xsl:if> </div> </div> <!-- this DIV ends the INFORMATIONAL section --> <!-- End Server Info section --> </div> <!-- End Server Overview DIV id="$srvrID" --> </xsl:for-each> <!-- End of individual server info --> </div> <!-- End main srvrInfo DIV --> </div> <!--End Starting DIV for Server Info DIV --> <xsl:comment>End Server Info</xsl:comment> <!--End Server Info --> </div> <!-- End of Main --> </body> </html> </xsl:template> <!-- ***************************************************************************************************** --> <!-- ***************************************************************************************************** --> <!-- ***************************************************************************************************** --> <!-- ***************************************************************************************************** --> <!-- CALLED & MATCHED TEMPLATES --> <!-- This template processes the affected file list for a given error and content set. It is called from <template name="errors" mode="info">--> <xsl:template name="affectedFileList"> <xsl:param name="srvrPosition"/> <xsl:param name="errPosition"/> <xsl:param name="errId"/> <xsl:param name="contentSet"/> <xsl:param name="setPosition"/> <xsl:param name="nodeSet"/> <xsl:param name="errorNode"/> <xsl:variable name="affectedFileSetID"> <xsl:value-of select="concat($srvrPosition, 'err', $errPosition, 'set', $setPosition)"/> </xsl:variable> <div> <div class="he4h" onmouseover="pointer(this, 'hand')" onmouseout="pointer(this)"> <xsl:attribute name="tabindex"><xsl:text>0</xsl:text></xsl:attribute> <xsl:attribute name="onclick"><xsl:text>doShowBlock('</xsl:text><xsl:value-of select="$affectedFileSetID"/><xsl:text>'); switchSign(this.childNodes);</xsl:text></xsl:attribute> <xsl:attribute name="onkeypress"><xsl:text>doShowBlock('</xsl:text><xsl:value-of select="$affectedFileSetID"/><xsl:text>'); switchSign(this.childNodes);</xsl:text></xsl:attribute> <span id="plusminus" class="expando3" sign="plus"> <v:vmlframe src="#Plus" class="pm1"/> </span> <span class="sectionTitle3" tabindex="0"> <xsl:value-of select="$contentSet"/> <xsl:value-of select="$strData[@id='s082']"/> </span> </div> <div class="container" name="container" style="display:none;"> <xsl:attribute name="id"><xsl:value-of select="$affectedFileSetID"/></xsl:attribute> <div class="he4i4"> <table cellspacing="0" width="100%"> <tr> <td class="narrow" height="1px"> </td> <td height="1px"> </td> </tr> <tr> <td class="narrow"> <xsl:value-of select="$strData[@id='s083']"/> </td> <td> <xsl:choose> <xsl:when test="../folder[@type=$errorNode/@refers2]"> <xsl:value-of select="../folder[@type=$errorNode/@refers2]/path"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="../folder[@type='root']/path"/> </xsl:otherwise> </xsl:choose> </td> </tr> <xsl:for-each select="$errorNode/nestedTableString"> <xsl:choose> <xsl:when test="./description"> <tr> <td> <xsl:value-of select="$strData[@id='s084']"/> </td> <td> <xsl:apply-templates select="description" mode="afs"> <xsl:with-param name="serverposition"> <xsl:value-of select="$srvrPosition"/> </xsl:with-param> <xsl:with-param name="errorposition"> <xsl:value-of select="$errPosition"/> </xsl:with-param> <xsl:with-param name="errorid"> <xsl:value-of select="$errId"/> </xsl:with-param> <xsl:with-param name="contentset"> <xsl:value-of select="$contentSet"/> </xsl:with-param> </xsl:apply-templates> </td> </tr> </xsl:when> <xsl:when test="./str[@value='folderconfigsize']"> <tr> <td> <xsl:value-of select="$strData[@id='s085']"/> </td> <td> <xsl:call-template name="calcByteUnitSize"> <xsl:with-param name="size"> <xsl:value-of select="$members/server[position()=$srvrPosition]/contentSets/set[position()=$setPosition]/folder[@type='staging']/configSize"/> </xsl:with-param> <xsl:with-param name="unit"> <xsl:value-of select="$members/server[position()=$srvrPosition]/contentSets/set[position()=$setPosition]/folder[@type='staging']/configSize/@unit"/> </xsl:with-param> </xsl:call-template> </td> </tr> </xsl:when> </xsl:choose> </xsl:for-each> <xsl:if test="timestamp/fileTime"> <tr> <td> <xsl:value-of select="$strData[@id='s086']"/> </td> <td> <!--xsl:apply-templates select="timestamp" mode="systemTime" /--> <xsl:variable name="timezone" select="timestamp/@timezone"/> <script> document.write(showDateInOtherTimezone(<xsl:value-of select="number(timestamp/fileTime)"/>, <xsl:value-of select="timestamp/@timezone"/>)); </script> </td> </tr> </xsl:if> <xsl:if test="$errorNode/nestedTableString/action"> <tr> <td> <xsl:value-of select="$strData[@id='s087']"/> </td> <td> <xsl:apply-templates select="$errorNode/nestedTableString/action" mode="afs"> <xsl:with-param name="serverposition"> <xsl:value-of select="$srvrPosition"/> </xsl:with-param> <xsl:with-param name="errorposition"> <xsl:value-of select="$errPosition"/> </xsl:with-param> <xsl:with-param name="errorid"> <xsl:value-of select="$errId"/> </xsl:with-param> <xsl:with-param name="contentset"> <xsl:value-of select="$contentSet"/> </xsl:with-param> </xsl:apply-templates> </td> </tr> </xsl:if> <tr> <td colspan="2" height="4px"> </td> </tr> </table> <xsl:if test="$nodeSet/file"> <div class="he5ib"> <span class="sectionTitle" tabindex="0"> <xsl:value-of select="$strData[@id='s088']"/> <xsl:value-of select="path"/> <xsl:text> (</xsl:text> <xsl:value-of select="count($nodeSet/file)"/> <xsl:text>):</xsl:text> <xsl:if test="count($nodeSet/file) > 100"> <xsl:value-of select="$strData[@id='s118']"/> </xsl:if> </span> </div> <div class="he5i" style="margin-top:10px;"> <table cellspacing="0" class="info"> <tr> <td class="tblwhiteleft" style="padding-left:10px; width:80%;"> <xsl:value-of select="$strData[@id='s089']"/> </td> <xsl:if test="$errorNode/@reports!='none'"> <td class="tblwhiteright" style="padding-left:10px; width:20%;"> <xsl:choose> <xsl:when test="$errorNode[@reports='age']"> <xsl:value-of select="$strData[@id='s090']"/> </xsl:when> <xsl:when test="$errorNode[@reports='size']"> <xsl:value-of select="$strData[@id='s091']"/> </xsl:when> </xsl:choose> </td> </xsl:if> </tr> <xsl:for-each select="file"> <xsl:sort select="size" order="descending" data-type="number"/> <xsl:if test="position() <= 100"> <tr> <td style="padding-left:10px;"> <xsl:value-of select="concat(path, '\', name)"/> </td> <xsl:if test="$errorNode/@reports!='none'"> <td> <xsl:choose> <xsl:when test="$errorNode[@reports='age']"> <xsl:call-template name="calcUptime"> <xsl:with-param name="startTime" select="timestamp/fileTime"/> <xsl:with-param name="endTime" select="/dfsReplicationReport/header/timestamp/fileTime"/> <xsl:with-param name="mode" select="1"/> </xsl:call-template> </xsl:when> <xsl:when test="$errorNode[@reports='size']"> <xsl:call-template name="calcByteUnitSize"> <xsl:with-param name="size"> <xsl:value-of select="size"/> </xsl:with-param> <xsl:with-param name="unit"> <xsl:value-of select="size/@unit"/> </xsl:with-param> <xsl:with-param name="precision"> <xsl:value-of select="0"/> </xsl:with-param> </xsl:call-template> </xsl:when> </xsl:choose> </td> </xsl:if> </tr> </xsl:if> </xsl:for-each> </table> </div> </xsl:if> </div> </div> </div> </xsl:template> <!--Determine the optimal reported size for file or disk size data. This template calls itself recursively until optimal size is acheived then outputs size and unit value.--> <xsl:template name="calcByteUnitSize"> <xsl:param name="size"/> <xsl:param name="unit"/> <xsl:param name="precision"/> <xsl:choose> <xsl:when test="not($size) or $size = NaN or $size = '' or $size < 0"> <xsl:value-of select="$strData[@id='s066']"/> </xsl:when> <xsl:when test="$size = 0"> <xsl:text>0 KB</xsl:text> </xsl:when> <xsl:when test="($size>=1024 and (not($unit) or $unit!='EB')) or ($unit='B' or $unit='' or not($unit))"> <xsl:call-template name="calcByteUnitSize"> <xsl:with-param name="size"> <xsl:value-of select="$size div 1024"/> </xsl:with-param> <xsl:with-param name="unit"> <xsl:choose> <xsl:when test="not($unit) or $unit='B' or $unit =''"> <xsl:text>KB</xsl:text> </xsl:when> <xsl:when test="$unit='KB'"> <xsl:text>MB</xsl:text> </xsl:when> <xsl:when test="$unit='MB'"> <xsl:text>GB</xsl:text> </xsl:when> <xsl:when test="$unit='GB'"> <xsl:text>TB</xsl:text> </xsl:when> <xsl:when test="$unit='TB'"> <xsl:text>PB</xsl:text> </xsl:when> <xsl:when test="$unit='PB'"> <xsl:text>EB</xsl:text> </xsl:when> <xsl:otherwise> <xsl:text>KB</xsl:text> </xsl:otherwise> </xsl:choose> </xsl:with-param> <xsl:with-param name="precision"> <xsl:value-of select="$precision"/> </xsl:with-param> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:choose> <xsl:when test="$precision='0'"> <xsl:value-of select="format-number($size, '#,##0')"/> </xsl:when> <xsl:when test="$precision='1'"> <xsl:value-of select="format-number($size, '#,##0.0')"/> </xsl:when> <xsl:when test="$precision='2'"> <xsl:value-of select="format-number($size, '#,##0.00')"/> </xsl:when> <xsl:otherwise> <xsl:choose> <xsl:when test="$size<10"> <xsl:value-of select="format-number($size, '#,###.00')"/> </xsl:when> <xsl:when test="$size<100 and $size>=10"> <xsl:value-of select="format-number($size, '#,###.0')"/> </xsl:when> <xsl:when test="$size>=100"> <xsl:value-of select="format-number($size, '#,##0')"/> </xsl:when> </xsl:choose> </xsl:otherwise> </xsl:choose> <xsl:text> </xsl:text> <xsl:choose> <xsl:when test="not($unit) or $unit = ''">B</xsl:when> <xsl:otherwise> <xsl:value-of select="$unit"/> </xsl:otherwise> </xsl:choose> </xsl:otherwise> </xsl:choose> </xsl:template> <!--Calculates server uptime from filetime for server start and filetime for report. Result is displayed in hours or days and hours if hours > 24.--> <xsl:template name="calcUptime"> <xsl:param name="startTime"/> <xsl:param name="endTime"/> <xsl:param name="mode"/> <xsl:variable name="runTimeHrs" select="($endTime - $startTime) div 36000000000"/> <xsl:variable name="days"> <xsl:choose> <xsl:when test="$mode"> <xsl:value-of select="0"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="floor($runTimeHrs div 24)"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="hours" select="floor($runTimeHrs - ($days * 24))"/> <xsl:variable name="mins" select="floor(($runTimeHrs - (($days * 24) + $hours)) * 60)"/> <xsl:choose> <xsl:when test="not($startTime) or not($endTime)"> <xsl:value-of select="$strData[@id='s066']"/> </xsl:when> <xsl:otherwise> <xsl:if test="$days > 0"> <xsl:value-of select="$days"/> <xsl:choose> <xsl:when test="$days = 1"> <xsl:value-of select="$strData[@id='s092']"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$strData[@id='s093']"/> </xsl:otherwise> </xsl:choose> <xsl:text> </xsl:text> </xsl:if> <xsl:if test="$hours > 0"> <xsl:value-of select="$hours"/> <xsl:value-of select="$strData[@id='s094']"/> <xsl:text> </xsl:text> </xsl:if> <xsl:if test="($hours = 0) or ($days = 0)"> <xsl:choose> <xsl:when test="$mins = 0"> <xsl:text>0</xsl:text> </xsl:when> <xsl:otherwise> <xsl:value-of select="$mins"/> </xsl:otherwise> </xsl:choose> <xsl:value-of select="$strData[@id='s121']"/> </xsl:if> <xsl:text> </xsl:text> </xsl:otherwise> </xsl:choose> </xsl:template> <!-- Creates the VML bar graph of RDC compression ratio.--> <xsl:template name="drawBarGraphs"> <xsl:param name="primaryValue"/> <div style="width: expression(((this.parentNode.offsetWidth / 2) - 70) + 'px'); float: left; clear: right;"> <v:rect fillcolor="blue"> <xsl:attribute name="style"><xsl:text>width:</xsl:text><xsl:value-of select="format-number(($primaryValue * .95), '##.##')"/><xsl:text>%;margin:0px;padding:0px</xsl:text></xsl:attribute> </v:rect> <v:rect fillcolor="#EEEEEE"> <xsl:attribute name="style"><xsl:text>width:</xsl:text><xsl:value-of select="format-number(((100 - $primaryValue) * .95), '##.##')"/><xsl:text>%;margin:0px 0px 0px -3px;padding:0px</xsl:text></xsl:attribute> </v:rect> </div> </xsl:template> <!-- Calculate the RDC compression ratio. May have to rework this algorythym Currently takes ((((sum(<basis>) - sum(<recvd>)) div sum(<basis>))/count(<contentset/dfsrStats>))*100) This number may be skewed?? --> <xsl:template name="finalRDCRatio"> <xsl:param name="dfsrStatsNodeSet"/> <xsl:param name="displayExtraInformation"/> <xsl:variable name="uncompressed" select="sum($dfsrStatsNodeSet/sizeOfFilesReceived | $dfsrStatsNodeSet/rdcUncompressedReceivedBytes)"/> <xsl:variable name="compressed" select="sum($dfsrStatsNodeSet/totalBytesReceived | $dfsrStatsNodeSet/rdcCompressedReceivedBytes)"/> <xsl:variable name="rdcRatio"> <xsl:choose> <xsl:when test="$uncompressed = 0 and $compressed = 0"> <xsl:value-of select="0.00"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="((($uncompressed - $compressed) div $uncompressed)*100)"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:choose> <xsl:when test="not(number($rdcRatio) = number($rdcRatio))"> <xsl:value-of select="$strData[@id='s066']"/> </xsl:when> <xsl:when test="$rdcRatio < 0"> <xsl:value-of select="$strData[@id='s066']"/> </xsl:when> <xsl:when test="$rdcRatio = 0"> <xsl:text>0.00%</xsl:text> </xsl:when> <xsl:otherwise> <xsl:value-of select="format-number($rdcRatio, '##.##')"/> <xsl:text>%</xsl:text> <!--Display extra information if needed (X instead of Y transferred)--> <xsl:if test="$displayExtraInformation='true'"> <xsl:value-of select="$strData[@id='s140']"/> <xsl:call-template name="calcByteUnitSize"> <!--Reduce value appropriate size scale--> <xsl:with-param name="size"> <xsl:value-of select="$compressed"/> </xsl:with-param> <xsl:with-param name="precision"> <xsl:text>2</xsl:text> </xsl:with-param> </xsl:call-template> <xsl:value-of select="$strData[@id='s141']"/> <xsl:call-template name="calcByteUnitSize"> <!--Reduce value appropriate size scale--> <xsl:with-param name="size"> <xsl:value-of select="$uncompressed"/> </xsl:with-param> </xsl:call-template> <xsl:value-of select="$strData[@id='s142']"/> </xsl:if> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="finalRDCRatioGraph"> <xsl:param name="ratio"/> <xsl:variable name="ratio2" select="substring-before($ratio, '%')"/> <xsl:choose> <xsl:when test="$ratio and $ratio != $strData[@id='s066'] and number($ratio2) >= 0"> <!--Pass variable to a template that draws the bar graph in VML--> <xsl:call-template name="drawBarGraphs"> <xsl:with-param name="primaryValue" select="number($ratio2)"/> </xsl:call-template> <xsl:value-of select="$ratio"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$strData[@id='s066']"/> </xsl:otherwise> </xsl:choose> </xsl:template> <!--Processes link elements that appear in error information in dfsrHealthMessages.xml--> <xsl:template match="link"> <xsl:param name="serverposition"/> <xsl:param name="errorposition"/> <xsl:param name="errorid"/> <a> <xsl:attribute name="href"><xsl:value-of select="@href"/></xsl:attribute> <xsl:attribute name="target"><xsl:value-of select="@target"/></xsl:attribute> <xsl:choose> <xsl:when test="@string"> <xsl:value-of select="@string"/> </xsl:when> <xsl:otherwise> <xsl:apply-templates select="child::node()"> <xsl:with-param name="serverposition" select="$serverposition"/> <xsl:with-param name="errorposition" select="$errorposition"/> <xsl:with-param name="errorid" select="$errorid"/> </xsl:apply-templates> </xsl:otherwise> </xsl:choose> </a> </xsl:template> <!--Determines what info to display for the affected content sets item in an error or warning--> <xsl:template match="affectedContentSets"> <xsl:choose> <xsl:when test="current()[@sets='all']"> <xsl:value-of select="$strData[@id='s095']"/> </xsl:when> <xsl:otherwise> <xsl:for-each select="set"> <xsl:sort select="@name" order="ascending"/> <xsl:choose> <xsl:when test="position()=last()"> <xsl:text> </xsl:text> <xsl:value-of select="@name"/> </xsl:when> <xsl:otherwise> <xsl:text> </xsl:text> <xsl:value-of select="@name"/> <xsl:text>,</xsl:text> </xsl:otherwise> </xsl:choose> </xsl:for-each> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template match="code|description|action"> <xsl:param name="serverposition"/> <xsl:param name="errorposition"/> <xsl:param name="errorid"/> <xsl:for-each select="node()"> <xsl:apply-templates select="."> <xsl:with-param name="serverposition"> <xsl:value-of select="$serverposition"/> </xsl:with-param> <xsl:with-param name="errorposition"> <xsl:value-of select="$errorposition"/> </xsl:with-param> <xsl:with-param name="errorid"> <xsl:value-of select="$errorid"/> </xsl:with-param> </xsl:apply-templates> </xsl:for-each> </xsl:template> <!-- Processes these elements when found in an error in affected FileSet--> <xsl:template match="code|description|action" mode="afs"> <xsl:param name="serverposition"/> <xsl:param name="errorposition"/> <xsl:param name="errorid"/> <xsl:param name="contentset"/> <xsl:for-each select="node()"> <xsl:apply-templates select="."> <xsl:with-param name="serverposition"> <xsl:value-of select="$serverposition"/> </xsl:with-param> <xsl:with-param name="errorposition"> <xsl:value-of select="$errorposition"/> </xsl:with-param> <xsl:with-param name="errorid"> <xsl:value-of select="$errorid"/> </xsl:with-param> <xsl:with-param name="contentset"> <xsl:value-of select="$contentset"/> </xsl:with-param> </xsl:apply-templates> </xsl:for-each> </xsl:template> <!--Displays disk information for a server. Disks are sorted alphabetically by drive letter.--> <xsl:template match="disks"> <table class="info6" cellspacing="0"> <tr> <td class="tblwhiteleft"> <xsl:value-of select="$strData[@id='s096']"/> </td> <td class="tblwhiteboth"> <xsl:value-of select="$strData[@id='s097']"/> </td> <td class="tblwhiteboth"> <xsl:value-of select="$strData[@id='s098']"/> </td> <td class="tblwhiteboth"> <xsl:value-of select="$strData[@id='s100']"/> </td> <td class="tblwhiteboth"> <xsl:value-of select="$strData[@id='s099']"/> </td> <td class="tblwhiteright"> <xsl:value-of select="$strData[@id='s101']"/> </td> </tr> <xsl:for-each select="drive"> <xsl:sort select="@letter" order="ascending"/> <tr> <td class="center"> <xsl:value-of select="@letter"/> </td> <td class="center"> <xsl:choose> <xsl:when test="@name != ''"> <xsl:value-of select="@name"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$strData[@id='s123']"/> </xsl:otherwise> </xsl:choose> </td> <td class="center"> <xsl:call-template name="calcByteUnitSize"> <xsl:with-param name="size"> <xsl:value-of select="totalSpace"/> </xsl:with-param> <xsl:with-param name="unit"> <xsl:value-of select="totalSpace/@unit"/> </xsl:with-param> </xsl:call-template> </td> <td class="center"> <xsl:call-template name="calcByteUnitSize"> <xsl:with-param name="size"> <xsl:value-of select="freeSpace"/> </xsl:with-param> <xsl:with-param name="unit"> <xsl:value-of select="freeSpace/@unit"/> </xsl:with-param> </xsl:call-template> </td> <td class="center"> <xsl:value-of select="format-number(((freeSpace div totalSpace)*100), '###0.0')"/> <xsl:text>%</xsl:text> </td> <td class="center"> <xsl:call-template name="calcByteUnitSize"> <xsl:with-param name="size"> <xsl:value-of select="journalSize"/> </xsl:with-param> <xsl:with-param name="unit"> <xsl:value-of select="journalSize/@unit"/> </xsl:with-param> </xsl:call-template> </td> </tr> </xsl:for-each> </table> </xsl:template> <!--Processes errors, warnings, and unavailable server errors in the overview sections--> <xsl:template name="errors"> <xsl:param name="srvrID"/> <xsl:param name="idval1"/> <xsl:param name="errtype"/> <xsl:variable name="prefix"> <xsl:choose> <xsl:when test="$errtype='error'"> <xsl:text>err</xsl:text> </xsl:when> <xsl:when test="$errtype='warning'"> <xsl:text>warn</xsl:text> </xsl:when> <xsl:when test="$errtype='unavailableServerError'"> <xsl:text>err</xsl:text> </xsl:when> </xsl:choose> </xsl:variable> <tr> <td class="line" width="15px"> </td> <td class="line" align="right" colspan="2"> <div class="server" onmouseover="pointer(this, 'hand')" onmouseout="pointer(this)"> <xsl:attribute name="tabindex"><xsl:text>0</xsl:text></xsl:attribute> <xsl:attribute name="onclick"><xsl:text>doShowBlock('</xsl:text><xsl:value-of select="$idval1"/><xsl:text>'), switchSign(this.childNodes);</xsl:text></xsl:attribute> <xsl:attribute name="onkeypress"><xsl:text>doShowBlock('</xsl:text><xsl:value-of select="$idval1"/><xsl:text>'), switchSign(this.childNodes);</xsl:text></xsl:attribute> <span id="plusminus" class="expando4" sign="plus"> <v:vmlframe src="#Plus" class="pm1"/> </span> <xsl:value-of select="@name"/> <xsl:text>  </xsl:text> <span class="normal"> <xsl:text> (</xsl:text> <xsl:variable name="errcount"> <xsl:value-of select="count(serverErrors/error[@type=$errtype])"/> </xsl:variable> <xsl:value-of select="$errcount"/> <xsl:choose> <xsl:when test="$errtype='error' or $errtype='unavailableServerError'"> <xsl:choose> <xsl:when test="$errcount=1"> <xsl:value-of select="$strData[@id='s112']"/> <xsl:text>    </xsl:text> </xsl:when> <xsl:otherwise> <xsl:value-of select="$strData[@id='s113']"/> <xsl:text>    </xsl:text> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:when test="$errtype='warning'"> <xsl:choose> <xsl:when test="$errcount=1"> <xsl:value-of select="$strData[@id='s114']"/> <xsl:text>    </xsl:text> </xsl:when> <xsl:otherwise> <xsl:value-of select="$strData[@id='s115']"/> <xsl:text>    </xsl:text> </xsl:otherwise> </xsl:choose> </xsl:when> </xsl:choose> </span> <span class="normal2" onmouseover="hilite(this)" onmouseout="unhilite(this)"> <xsl:attribute name="tabindex"><xsl:text>0</xsl:text></xsl:attribute> <xsl:attribute name="onclick"><xsl:text>doShowInfo('</xsl:text><xsl:value-of select="$srvrID"/><xsl:text>', '</xsl:text><xsl:value-of select="format-number(number(substring-after($srvrID, 'r')),'0000')"/><xsl:text>')</xsl:text></xsl:attribute> <xsl:attribute name="onkeypress"><xsl:text>doShowInfo('</xsl:text><xsl:value-of select="$srvrID"/><xsl:text>', '</xsl:text><xsl:value-of select="format-number(number(substring-after($srvrID, 'r')),'0000')"/><xsl:text>')</xsl:text></xsl:attribute> <xsl:value-of select="$strData[@id='s102']"/> </span> </div> </td> </tr> <tr> <td colspan="3"> <div class="container" style="display:none;" name="container"> <xsl:attribute name="id"><xsl:value-of select="$idval1"/></xsl:attribute> <table class="msgtbl" cellpadding="0" cellspacing="0"> <xsl:variable name="server" select="."/> <xsl:for-each select="./serverErrors/error[@type=$errtype]"> <!--xsl:sort select="@sortkey" order="ascending" /--> <xsl:sort select="$ecodes/error[@id=current()/@id]/code" order="ascending"/> <xsl:variable name="err" select="."/> <xsl:variable name="errFind"> <xsl:for-each select="$server/serverErrors/error"> <xsl:if test="$err = . and $err/@id = @id"> <xsl:value-of select="position()"/>; </xsl:if> </xsl:for-each> </xsl:variable> <xsl:variable name="errPos" select="substring-before($errFind, ';')"/> <tr> <td width="30px"> </td> <td class="line"> <div class="error"> <span class="normal" onmouseover="hilite(this)" onmouseout="unhilite(this)"> <xsl:attribute name="tabindex"><xsl:text>0</xsl:text></xsl:attribute> <xsl:attribute name="onclick"><xsl:text>doShowError('</xsl:text><xsl:value-of select="$srvrID"/><xsl:text>', '</xsl:text><xsl:value-of select="$prefix"/><xsl:text>', '</xsl:text><xsl:value-of select="concat($srvrID, $prefix, format-number($errPos, '0000'))"/><xsl:text>')</xsl:text></xsl:attribute> <xsl:attribute name="onkeypress"><xsl:text>doShowError('</xsl:text><xsl:value-of select="$srvrID"/><xsl:text>', '</xsl:text><xsl:value-of select="$prefix"/><xsl:text>', '</xsl:text><xsl:value-of select="concat($srvrID, $prefix, format-number($errPos, '0000'))"/><xsl:text>')</xsl:text></xsl:attribute> <xsl:variable name="errid" select="current()/@id"/> <xsl:choose> <xsl:when test="$ecodes/error[@id=$errid]"> <xsl:for-each select="$ecodes/error[@id=$errid]/code"> <xsl:apply-templates select="."> <xsl:with-param name="serverposition"> <xsl:value-of select="substring-after($srvrID,'r')"/> </xsl:with-param> <xsl:with-param name="errorposition"> <xsl:value-of select="$errPos"/> </xsl:with-param> <xsl:with-param name="errorid"> <xsl:value-of select="$errid"/> </xsl:with-param> </xsl:apply-templates> </xsl:for-each> </xsl:when> <xsl:otherwise> <xsl:value-of select="$strData[@id='s117']"/> (<xsl:value-of select="$errid"/>) </xsl:otherwise> </xsl:choose> </span> </div> </td> <!-- <td class="line"><xsl:value-of select="timestamp" /></td> --> </tr> </xsl:for-each> </table> </div> </td> </tr> </xsl:template> <!--Processes errors and warnings in the Server Info section--> <xsl:template match="error" mode="info"> <xsl:param name="etype"/> <xsl:param name="srvrPosition"/> <xsl:param name="srvrID"/> <xsl:param name="errPosition"/> <xsl:param name="errId"/> <xsl:variable name="errorNode" select="$ecodes/error[@id=current()/@id]"/> <a> <xsl:attribute name="name"><xsl:value-of select="concat($srvrID, $etype, $errPosition)"/></xsl:attribute> </a> <table cellspacing="0"> <tr> <td width="20" height="4px" class="topline"> </td> <td height="4px" class="toplinenarrow">   </td> <td height="4px" class="topline"> </td> </tr> <xsl:choose> <xsl:when test="$errorNode/code"> <tr> <td colspan="1"> <xsl:choose> <xsl:when test="$etype='err'"> <v:vmlframe src="#Err1" class="er1a"/> </xsl:when> <xsl:when test="$etype='warn'"> <v:vmlframe src="#Warn1" class="er1a"/> </xsl:when> </xsl:choose> </td> <td colspan="2"> <xsl:apply-templates select="$errorNode/code"> <xsl:with-param name="serverposition"> <xsl:value-of select="$srvrPosition"/> </xsl:with-param> <xsl:with-param name="errorposition"> <xsl:value-of select="$errPosition"/> </xsl:with-param> <xsl:with-param name="errorid"> <xsl:value-of select="$errId"/> </xsl:with-param> </xsl:apply-templates> </td> </tr> </xsl:when> <xsl:otherwise> <xsl:call-template name="unknownError"> <xsl:with-param name="errorId" select="$errId"/> <xsl:with-param name="serverposition" select="$srvrPosition"/> <xsl:with-param name="errorposition" select="$errPosition"/> <xsl:with-param name="etype" select="$etype"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> <xsl:if test="affectedContentSets"> <xsl:choose> <xsl:when test="affectedContentSets[@sets='all']"> <tr> <td> </td> <td class="narrow"> <xsl:value-of select="$strData[@id='s104']"/> </td> <td> <xsl:value-of select="$strData[@id='s106']"/> </td> </tr> </xsl:when> <xsl:otherwise> <xsl:if test="affectedContentSets/set"> <tr> <td> </td> <td class="narrow"> <xsl:value-of select="$strData[@id='s104']"/> </td> <td> <xsl:apply-templates select="affectedContentSets"/> </td> </tr> </xsl:if> </xsl:otherwise> </xsl:choose> </xsl:if> <xsl:if test="$errorNode/description/node() or not($errorNode/@hideeventid) or $errorNode/@hideeventid!='true'"> <tr> <td> </td> <td> <xsl:value-of select="$strData[@id='s084']"/> </td> <td> <xsl:apply-templates select="$errorNode/description"> <xsl:with-param name="serverposition"> <xsl:value-of select="$srvrPosition"/> </xsl:with-param> <xsl:with-param name="errorposition"> <xsl:value-of select="$errPosition"/> </xsl:with-param> <xsl:with-param name="errorid"> <xsl:value-of select="$errId"/> </xsl:with-param> </xsl:apply-templates> <xsl:if test="not($errorNode/@hideeventid) or $errorNode/@hideeventid!='true'"> <xsl:value-of select="$strData[@id='s131']"/> <xsl:value-of select="$errId"/> </xsl:if> </td> </tr> </xsl:if> <xsl:if test="timestamp/fileTime"> <tr> <td> </td> <td> <xsl:value-of select="$strData[@id='s086']"/> </td> <td> <!--xsl:apply-templates select="timestamp" mode="systemTime" /--> <xsl:variable name="timezone" select="timestamp/@timezone"/> <script> document.write(showDateInOtherTimezone(<xsl:value-of select="number(timestamp/fileTime)"/>, <xsl:value-of select="timestamp/@timezone"/>)); </script> </td> </tr> </xsl:if> <xsl:if test="$errorNode/action/node()"> <tr> <td> </td> <td> <xsl:value-of select="$strData[@id='s137']"/> </td> <td> <xsl:apply-templates select="$errorNode/action"> <xsl:with-param name="serverposition"> <xsl:value-of select="$srvrPosition"/> </xsl:with-param> <xsl:with-param name="errorposition"> <xsl:value-of select="$errPosition"/> </xsl:with-param> <xsl:with-param name="errorid"> <xsl:value-of select="$errId"/> </xsl:with-param> </xsl:apply-templates> </td> </tr> </xsl:if> </table> <xsl:if test="$errorNode/@refers2"> <xsl:for-each select="./affectedContentSets/set"> <xsl:variable name="setName"> <xsl:value-of select="@name"/> </xsl:variable> <xsl:variable name="setPosition"> <xsl:value-of select="position()"/> </xsl:variable> <xsl:for-each select="$members/server[position()=$srvrPosition]/contentSets/set[@name=$setName]/affectedFileSet[@folder=$errorNode/@refers2]"> <xsl:sort select="../@name" order="ascending"/> <xsl:call-template name="affectedFileList"> <xsl:with-param name="srvrPosition"> <xsl:value-of select="$srvrPosition"/> </xsl:with-param> <xsl:with-param name="errPosition"> <xsl:value-of select="$errPosition"/> </xsl:with-param> <xsl:with-param name="errorid"> <xsl:value-of select="$errId"/> </xsl:with-param> <xsl:with-param name="contentSet"> <xsl:value-of select="$setName"/> </xsl:with-param> <xsl:with-param name="setPosition"> <xsl:value-of select="$setPosition"/> </xsl:with-param> <xsl:with-param name="nodeSet" select="$members/server[position()=$srvrPosition]/contentSets/set[@name=$setName]/affectedFileSet[@folder=$errorNode/@refers2]"/> <xsl:with-param name="errorNode" select="$errorNode"/> </xsl:call-template> </xsl:for-each> </xsl:for-each> </xsl:if> </xsl:template> <xsl:template name="unknownError"> <xsl:param name="errorId"/> <xsl:param name="serverposition"/> <xsl:param name="errorposition"/> <xsl:param name="etype"/> <tr> <td colspan="1"> <xsl:choose> <xsl:when test="$etype='err'"> <v:vmlframe src="#Err1" class="er1a"/> </xsl:when> <xsl:when test="$etype='warn'"> <v:vmlframe src="#Warn1" class="er1a"/> </xsl:when> </xsl:choose> </td> <td colspan="2"> <xsl:value-of select="$strData[@id='s117']"/> (<xsl:value-of select="$strData[@id='s126']"/> <xsl:value-of select="$errorId"/>) </td> </tr> <xsl:for-each select="$members/server[position()=number($serverposition)]/serverErrors/error[@id=$errorId and position() = $errorposition]/errorReferences/ref"> <tr> <td> </td> <td class="narrow"> <xsl:value-of select="$strData[@id='s127']"/> <xsl:value-of select="substring-after(@refId, '.')"/>: </td> <td> <xsl:apply-templates> <xsl:with-param name="serverposition" select="$serverposition"/> <xsl:with-param name="errorposition" select="$errorposition"/> <xsl:with-param name="errorid" select="$errorId"/> </xsl:apply-templates> </td> </tr> </xsl:for-each> </xsl:template> <!--Process str elements that appear in error descriptions and actions in dfsrHealthMessages.xml--> <xsl:template match="str"> <xsl:param name="serverposition"/> <xsl:param name="errorposition"/> <xsl:param name="errorid"/> <xsl:param name="contentset"/> <xsl:choose> <xsl:when test="@value='servernamefull'"> <xsl:value-of select="$members/server[position()=$serverposition]/@name"/> </xsl:when> <xsl:when test="@value='servername'"> <xsl:call-template name="extractServerShortName"> <xsl:with-param name="serverName"> <xsl:value-of select="$members/server[position()=$serverposition]/@name"/> </xsl:with-param> </xsl:call-template> </xsl:when> <xsl:when test="@value='serverdomain'"> <xsl:value-of select="$members/server[position()=$serverposition]/@domain"/> </xsl:when> <xsl:when test="@value='foldersize'"> <xsl:call-template name="calcByteUnitSize"> <xsl:with-param name="size"> <xsl:value-of select="$members/server[position()=$serverposition]/contentSets/set[@name=$contentset]/folder[@type=string(../../@refers2)]/size"/> </xsl:with-param> <xsl:with-param name="unit"> <xsl:value-of select="$members/server[position()=$serverposition]/contentSets/set[@name=$contentset]/folder[@type=string(../../@refers2)]/size/@unit"/> </xsl:with-param> </xsl:call-template> </xsl:when> <xsl:when test="@value='folderconfigsize'"> <xsl:call-template name="calcByteUnitSize"> <xsl:with-param name="size"> <xsl:value-of select="$members/server[position()=$serverposition]/contentSets/set[@name=$contentset]/folder[@type=current()/../../@refers2]/configSize"/> </xsl:with-param> <xsl:with-param name="unit"> <xsl:value-of select="$members/server[position()=$serverposition]/contentSets/set[@name=$contentset]/folder[@type=current()/../../@refers2]/configSize/@unit"/> </xsl:with-param> </xsl:call-template> </xsl:when> <xsl:when test="@value='filecount'"> <xsl:value-of select="count($members/server[position()=$serverposition]/contentSets/set/affectedFileSet[@folder=current()/../../@refers2]/file)"/> </xsl:when> <xsl:when test="@value='setcount'"> <xsl:value-of select="count($members/server[position()=$serverposition]/contentSets/set[affectedFileSet/@folder=current()/../../@refers2])"/> </xsl:when> <xsl:when test="@value='helpref'"> <a href="../FRS_Help.htm"> <xsl:value-of select="$strData[@id='s108']"/> </a> </xsl:when> <xsl:when test="@value='msweb'"> <a href="http://go.microsoft.com/fwlink/events.asp" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='rpckb'"> <a href="http://support.microsoft.com/Default.aspx?kbid=839880" target="_blank"> <xsl:value-of select="$strData[@id='s138']"/> </a> </xsl:when> <xsl:when test="@value='1004'"> <a href="http://go.microsoft.com/fwlink?linkid=52839" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='1010'"> <a href="http://go.microsoft.com/fwlink?linkid=52840" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='1106'"> <a href="http://go.microsoft.com/fwlink?linkid=52844" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='1108'"> <a href="http://go.microsoft.com/fwlink?linkid=52845" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='1202'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52846" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='1208'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52847" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='1302'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52848" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='1312'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52849" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='2004'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52851" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='2104'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52852" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='2202'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52853" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='2204'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52854" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='2208'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52855" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='2210'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52856" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='4004'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52857" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='4114'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52858" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='4202'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52859" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='4206'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52860" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='4208'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52861" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='4212'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52863" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='4302'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52862" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='4304'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52864" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='4312'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52865" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='4402'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52866" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='4406'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52867" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='4502'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52868" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='5002'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52870" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='5008'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52872" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='5012'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52873" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='5102'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52875" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='6002'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52876" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='6004'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52878" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='6006'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52879" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='6008'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52880" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='6010'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52881" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='6012'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52882" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='6016'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52883" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='6104'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52884" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='6302'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52885" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='6402'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52886" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='6404'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52892" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='6406'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52894" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='6408'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52893" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='6410'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52896" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='6412'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52897" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='6602'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52900" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='6702'"> <a href="http://go.microsoft.com/fwlink/?LinkId=52902" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='10021'"> <a href="http://go.microsoft.com/fwlink/?LinkID=53335" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='10016'"> <a href="http://go.microsoft.com/fwlink?linkid=53326" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='10017'"> <a href="http://support.microsoft.com/?kbid=300956" target="_blank"> <xsl:value-of select="$strData[@id='s146']"/> </a> </xsl:when> <xsl:when test="@value='10020'"> <a href="http://go.microsoft.com/fwlink?linkid=53328" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='11021'"> <a href="http://go.microsoft.com/fwlink?linkid=53329" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='11002'"> <a href="http://go.microsoft.com/fwlink?linkid=53330" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='getvv'"> <a href="http://go.microsoft.com/fwlink?linkid=53331" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='getbacklog'"> <a href="http://go.microsoft.com/fwlink?linkid=53332" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='0cs'"> <a href="http://go.microsoft.com/fwlink?linkid=53333" target="_blank"> <xsl:value-of select="$strData[@id='s124']"/> </a> </xsl:when> <xsl:when test="@value='wmi'"> <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/wmi_error_constants.asp" target="_blank"> <xsl:value-of select="$strData[@id='s139']"/> </a> </xsl:when> </xsl:choose> </xsl:template> <!--Processes errorReferences. ref elements appear in report.xml in error and are referenced back to ref element placeholders in dfsrHealthMessages.xml. They are x-ref'd by id value derived from the id value of the parent error element.--> <xsl:template match="ref"> <xsl:param name="serverposition"/> <xsl:param name="errorposition"/> <xsl:param name="errorid"/> <xsl:value-of select="$members/server[position()=number($serverposition)]/serverErrors/error[position() = $errorposition]/errorReferences/ref[@refId=current()/@id]"/> <!--xsl:value-of select="$members/server[position()=number($serverposition)]/serverErrors/error[@id=$errorid]/errorReferences/ref[@refId=current()/@id]" /--> </xsl:template> <!--Defualt processing for text() nodes--> <xsl:template match="text()"> <xsl:value-of select="."/> </xsl:template> <!-- Shows a number if positive, or the N/A string if it's negative or NaN; shows "error" if the value is -2 --> <xsl:template name="num"> <xsl:param name="num"/> <xsl:choose> <xsl:when test="number($num) = -2"> <xsl:value-of select="$strData[@id='s125']"/> </xsl:when> <xsl:when test="$num = '' or $num = 'NaN' or number($num) = NaN or number($num) < 0"> <xsl:value-of select="$strData[@id='s066']"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="number($num)"/> </xsl:otherwise> </xsl:choose> </xsl:template> <!--Converts systemTime format "Day, Month dd, yyyy hh:mm:ss"--> <!--This may need changed to accomodate final format of systemTime--> <!-- - TODO: is this used? - <xsl:template match="timestamp" mode="systemTime"> <xsl:variable name="string"> <xsl:value-of select="normalize-space(systemTime)" /> </xsl:variable> <xsl:variable name="length"> <xsl:value-of select="string-length($string)" /> </xsl:variable> <xsl:value-of select="substring($string, 1, $length - 8)" /> <xsl:value-of select="$strData[@id='s109']" /> <xsl:variable name="time"> <xsl:value-of select="substring($string, $length - 8)" /> </xsl:variable> <xsl:variable name="hour"> <xsl:value-of select="substring-before($time, ':')" /> </xsl:variable> <xsl:choose> <xsl:when test="$hour > 12"> <xsl:value-of select="concat($hour - 12, ':', substring-after($time, ':'), ' PM')" /> </xsl:when> <xsl:otherwise> <xsl:value-of select="concat(format-number($hour, '##'), ':', substring-after($time, ':'), ' AM')" /> </xsl:otherwise> </xsl:choose> <xsl:if test="@timezone"> <xsl:value-of select="$strData[@id='s110']" /> <xsl:value-of select="concat(@timezone, ')')" /> <xsl:text> </xsl:text> <xsl:value-of select="current()/@timezone" /> </xsl:if> </xsl:template> --> <!-- Derives server name from a domain\subdomain\server string--> <xsl:template name="extractServerShortName"> <xsl:param name="serverName"/> <xsl:choose> <xsl:when test="substring-after($serverName, '\')"> <xsl:call-template name="extractServerShortName"> <xsl:with-param name="serverName"> <xsl:value-of select="substring-after($serverName, '\')"/> </xsl:with-param> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$serverName"/> </xsl:otherwise> </xsl:choose> </xsl:template> <!--Adds SPAN element and onclick, mouseover, mouseout handlers for section level Show All/Hide All. --> <xsl:template name="showHideSectionCode"> <xsl:param name="blockID"/> <xsl:param name="hiliteColor"/> <div width="50px" class="showhide2"> <span id="showhidesection"> <xsl:attribute name="tabindex"><xsl:text>0</xsl:text></xsl:attribute> <xsl:attribute name="onclick"><xsl:text>showHideSection(this, </xsl:text><xsl:value-of select="$blockID"/><xsl:text>)</xsl:text></xsl:attribute> <xsl:attribute name="onkeypress"><xsl:text>showHideSection(this, </xsl:text><xsl:value-of select="$blockID"/><xsl:text>)</xsl:text></xsl:attribute> <xsl:attribute name="onmouseover"><xsl:text>hilite(this, </xsl:text><xsl:value-of select="$hiliteColor"/><xsl:text>)</xsl:text></xsl:attribute> <xsl:attribute name="onmouseout"><xsl:text>unhilite(this, </xsl:text><xsl:value-of select="$hiliteColor"/><xsl:text>)</xsl:text></xsl:attribute> <xsl:value-of select="$strData[@id='s111']"/> </span> </div> </xsl:template> <xsl:template name="generateMemberLink"> <xsl:param name="pos"/> <xsl:param name="dns"/> <xsl:param name="name"/> <xsl:variable name="fn" select="format-number(number($pos), '0000')"/> <span class="normal2" onmouseover="hilite(this)" onmouseout="unhilite(this)"> <xsl:attribute name="tabindex"><xsl:text>0</xsl:text></xsl:attribute> <xsl:attribute name="onclick"> doShowInfo('<xsl:value-of select="concat('svr', $fn)"/>', '<xsl:value-of select="$fn"/>') </xsl:attribute> <xsl:attribute name="onkeypress"> doShowInfo('<xsl:value-of select="concat('svr', $fn)"/>', '<xsl:value-of select="$fn"/>') </xsl:attribute> <xsl:value-of select="$name"/> <xsl:if test="$dns"> <xsl:text> (</xsl:text> <xsl:value-of select="$dns"/> <xsl:text>)</xsl:text> </xsl:if> </span> </xsl:template> </xsl:stylesheet>