version 1.1.1.2.2.2, 2019/06/10 22:02:59 |
version 1.1.1.2.2.3, 2020/04/13 08:02:36 |
|
|
<xsl:template match="statistics[@version="3.11"]"> |
<xsl:template match="statistics[@version="3.11"]"> |
<html> |
<html> |
<head> |
<head> |
|
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> |
|
<script type="text/javascript"> |
|
$(function($) { |
|
var wid=0; |
|
$('table.zones').each(function(i) { if( $(this).width() > wid ) wid = $(this).width(); return true; }); |
|
$('table.zones').css('min-width', wid ); |
|
}); |
|
</script> |
|
|
<xsl:if test="system-property('xsl:vendor')!='Transformiix'"> |
<xsl:if test="system-property('xsl:vendor')!='Transformiix'"> |
<!-- Non Mozilla specific markup --> |
<!-- Non Mozilla specific markup --> |
<script type="text/javascript" src="https://www.google.com/jsapi"/> |
<script type="text/javascript" src="https://www.google.com/jsapi"/> |
|
|
background-color: rgb(1,169,206); |
background-color: rgb(1,169,206); |
color: #ffffff; |
color: #ffffff; |
} |
} |
|
table.zones { |
|
border: 1px solid grey; |
|
} |
|
table.zones td { |
|
text-align: right; |
|
font-family: monospace; |
|
} |
|
table.zones td:nth-child(2) { |
|
text-align: center; |
|
} |
|
table.zones td:nth-child(3) { |
|
text-align: left; |
|
} |
|
table.zones tr:hover{ |
|
background-color: #99ddff; |
|
} |
|
|
td, th { |
td, th { |
padding-right: 5px; |
padding-right: 5px; |
|
|
<hr/> |
<hr/> |
<h2>Server Status</h2> |
<h2>Server Status</h2> |
<table class="info"> |
<table class="info"> |
<tr> |
<tr class="odd"> |
<th>Boot time:</th> |
<th>Boot time:</th> |
<td> |
<td> |
<xsl:value-of select="server/boot-time"/> |
<xsl:value-of select="server/boot-time"/> |
</td> |
</td> |
</tr> |
</tr> |
<tr> |
<tr class="even"> |
<th>Last reconfigured:</th> |
<th>Last reconfigured:</th> |
<td> |
<td> |
<xsl:value-of select="server/config-time"/> |
<xsl:value-of select="server/config-time"/> |
</td> |
</td> |
</tr> |
</tr> |
<tr> |
<tr class="odd"> |
<th>Current time:</th> |
<th>Current time:</th> |
<td> |
<td> |
<xsl:value-of select="server/current-time"/> |
<xsl:value-of select="server/current-time"/> |
</td> |
</td> |
</tr> |
</tr> |
<tr> |
<tr class="even"> |
<th>Server version:</th> |
<th>Server version:</th> |
<td> |
<td> |
<xsl:value-of select="server/version"/> |
<xsl:value-of select="server/version"/> |
|
|
<table class="counters"> |
<table class="counters"> |
<xsl:for-each select="server/counters[@type="opcode"]/counter[. > 0 or substring(@name,1,3) != 'RES']"> |
<xsl:for-each select="server/counters[@type="opcode"]/counter[. > 0 or substring(@name,1,3) != 'RES']"> |
<xsl:sort select="." data-type="number" order="descending"/> |
<xsl:sort select="." data-type="number" order="descending"/> |
<tr> |
<xsl:variable name="css-class0"> |
|
<xsl:choose> |
|
<xsl:when test="position() mod 2 = 0">even</xsl:when> |
|
<xsl:otherwise>odd</xsl:otherwise> |
|
</xsl:choose> |
|
</xsl:variable> |
|
<tr class="{$css-class0}"> |
<th> |
<th> |
<xsl:value-of select="@name"/> |
<xsl:value-of select="@name"/> |
</th> |
</th> |
|
|
<br/> |
<br/> |
</xsl:if> |
</xsl:if> |
</xsl:for-each> |
</xsl:for-each> |
<xsl:if test="traffic/udp/counters[@type="request-size"]/counter[.>0] or traffic/udp/counters[@type="response-size"]/counter[.>0] or traffic/tcp/counters[@type="request-size"]/counter[.>0] or traffic/tcp/counters[@type="response-size"]/counter[.>0]"> |
<xsl:if test="traffic//udp/counters[@type="request-size"]/counter[.>0] or traffic//udp/counters[@type="response-size"]/counter[.>0] or traffic//tcp/counters[@type="request-size"]/counter[.>0] or traffic//tcp/counters[@type="response-size"]/counter[.>0]"> |
<h2>Traffic Size Statistics</h2> |
<h2>Traffic Size Statistics</h2> |
</xsl:if> |
</xsl:if> |
<xsl:if test="traffic/udp/counters[@type="request-size"]/counter[.>0]"> |
<xsl:if test="traffic//udp/counters[@type="request-size"]/counter[.>0]"> |
<h4>UDP Requests Received</h4> |
<h4>UDP Requests Received</h4> |
<table class="counters"> |
<table class="counters"> |
<xsl:for-each select="traffic/udp/counters[@type="request-size"]/counter[.>0]"> |
<xsl:for-each select="traffic//udp/counters[@type="request-size"]/counter[.>0]"> |
<xsl:variable name="css-class7"> |
<xsl:variable name="css-class7"> |
<xsl:choose> |
<xsl:choose> |
<xsl:when test="position() mod 2 = 0">even</xsl:when> |
<xsl:when test="position() mod 2 = 0">even</xsl:when> |
|
|
</xsl:choose> |
</xsl:choose> |
</xsl:variable> |
</xsl:variable> |
<tr class="{$css-class7}"> |
<tr class="{$css-class7}"> |
|
<th><xsl:value-of select="local-name(../../..)"/></th> |
<th> |
<th> |
<xsl:value-of select="@name"/> |
<xsl:value-of select="@name"/> |
</th> |
</th> |
|
|
</table> |
</table> |
<br/> |
<br/> |
</xsl:if> |
</xsl:if> |
<xsl:if test="traffic/udp/counters[@type="response-size"]/counter[.>0]"> |
<xsl:if test="traffic//udp/counters[@type="response-size"]/counter[.>0]"> |
<h4>UDP Responses Sent</h4> |
<h4>UDP Responses Sent</h4> |
<table class="counters"> |
<table class="counters"> |
<xsl:for-each select="traffic/udp/counters[@type="response-size"]/counter[.>0]"> |
<xsl:for-each select="traffic//udp/counters[@type="response-size"]/counter[.>0]"> |
<xsl:variable name="css-class7"> |
<xsl:variable name="css-class7"> |
<xsl:choose> |
<xsl:choose> |
<xsl:when test="position() mod 2 = 0">even</xsl:when> |
<xsl:when test="position() mod 2 = 0">even</xsl:when> |
|
|
</xsl:choose> |
</xsl:choose> |
</xsl:variable> |
</xsl:variable> |
<tr class="{$css-class7}"> |
<tr class="{$css-class7}"> |
|
<th><xsl:value-of select="local-name(../../..)"/></th> |
<th> |
<th> |
<xsl:value-of select="@name"/> |
<xsl:value-of select="@name"/> |
</th> |
</th> |
|
|
</table> |
</table> |
<br/> |
<br/> |
</xsl:if> |
</xsl:if> |
<xsl:if test="traffic/tcp/counters[@type="request-size"]/counter[.>0]"> |
<xsl:if test="traffic//tcp/counters[@type="request-size"]/counter[.>0]"> |
<h4>TCP Requests Received</h4> |
<h4>TCP Requests Received</h4> |
<table class="counters"> |
<table class="counters"> |
<xsl:for-each select="traffic/tcp/counters[@type="request-size"]/counter[.>0]"> |
<xsl:for-each select="traffic//tcp/counters[@type="request-size"]/counter[.>0]"> |
<xsl:variable name="css-class7"> |
<xsl:variable name="css-class7"> |
<xsl:choose> |
<xsl:choose> |
<xsl:when test="position() mod 2 = 0">even</xsl:when> |
<xsl:when test="position() mod 2 = 0">even</xsl:when> |
|
|
</xsl:choose> |
</xsl:choose> |
</xsl:variable> |
</xsl:variable> |
<tr class="{$css-class7}"> |
<tr class="{$css-class7}"> |
|
<th><xsl:value-of select="local-name(../../..)"/></th> |
<th> |
<th> |
<xsl:value-of select="@name"/> |
<xsl:value-of select="@name"/> |
</th> |
</th> |
|
|
</table> |
</table> |
<br/> |
<br/> |
</xsl:if> |
</xsl:if> |
<xsl:if test="traffic/tcp/counters[@type="response-size"]/counter[.>0]"> |
<xsl:if test="traffic//tcp/counters[@type="response-size"]/counter[.>0]"> |
<h4>TCP Responses Sent</h4> |
<h4>TCP Responses Sent</h4> |
<table class="counters"> |
<table class="counters"> |
<xsl:for-each select="traffic/tcp/counters[@type="response-size"]/counter[.>0]"> |
<xsl:for-each select="traffic//tcp/counters[@type="response-size"]/counter[.>0]"> |
<xsl:variable name="css-class7"> |
<xsl:variable name="css-class7"> |
<xsl:choose> |
<xsl:choose> |
<xsl:when test="position() mod 2 = 0">even</xsl:when> |
<xsl:when test="position() mod 2 = 0">even</xsl:when> |
|
|
</xsl:choose> |
</xsl:choose> |
</xsl:variable> |
</xsl:variable> |
<tr class="{$css-class7}"> |
<tr class="{$css-class7}"> |
|
<th><xsl:value-of select="local-name(../../..)"/></th> |
<th> |
<th> |
<xsl:value-of select="@name"/> |
<xsl:value-of select="@name"/> |
</th> |
</th> |
|
|
</table> |
</table> |
<br/> |
<br/> |
</xsl:if> |
</xsl:if> |
<xsl:for-each select="views/view"> |
<xsl:if test="views/view/zones/zone"> |
<xsl:if test="zones/zone"> |
<xsl:for-each select="views/view"> |
<h3>Zones for View <xsl:value-of select="@name"/></h3> |
<h3>Zones for View <xsl:value-of select="@name"/></h3> |
<table class="zones"> |
<table class="zones"> |
<tr> |
<thead><tr><th>Name</th><th>Class</th><th>Type</th><th>Serial</th></tr></thead> |
<th>Name</th> |
<tbody> |
<th>Class</th> |
<xsl:for-each select="zones/zone"> |
<th>Type</th> |
<xsl:variable name="css-class15"> |
<th>Serial</th> |
<xsl:choose> |
</tr> |
<xsl:when test="position() mod 2 = 0">even</xsl:when> |
<xsl:for-each select="zones/zone"> |
<xsl:otherwise>odd</xsl:otherwise> |
<tr> |
</xsl:choose> |
<td> |
</xsl:variable> |
<xsl:value-of select="@name"/> |
<tr class="{$css-class15}"> |
</td> |
<td><xsl:value-of select="@name"/></td> |
<td> |
<td><xsl:value-of select="@rdataclass"/></td> |
<xsl:value-of select="@rdataclass"/> |
<td><xsl:value-of select="type"/></td> |
</td> |
<td><xsl:value-of select="serial"/></td></tr> |
<td> |
</xsl:for-each> |
<xsl:value-of select="type"/> |
</tbody> |
</td> |
|
<td> |
|
<xsl:value-of select="serial"/> |
|
</td> |
|
</tr> |
|
</xsl:for-each> |
|
</table> |
</table> |
</xsl:if> |
</xsl:for-each> |
</xsl:for-each> |
</xsl:if> |
<xsl:if test="views/view[zones/zone/counters[@type="qtype"]/counter >0]"> |
<xsl:if test="views/view[zones/zone/counters[@type="qtype"]/counter >0]"> |
<h2>Received QTYPES per view/zone</h2> |
<h2>Received QTYPES per view/zone</h2> |
<xsl:for-each select="views/view[zones/zone/counters[@type="qtype"]/counter >0]"> |
<xsl:for-each select="views/view[zones/zone/counters[@type="qtype"]/counter >0]"> |