<xsl:template match="statistics[@version="3.11"]">
<html>
<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'">
<!-- Non Mozilla specific markup -->
<script type="text/javascript" src="https://www.google.com/jsapi"/>
background-color: rgb(1,169,206);
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 {
padding-right: 5px;
</tr>
</table>
<br/>
+ <xsl:if test="views/view/zones/zone">
+ <h2>Configured zones</h2>
+ <xsl:for-each select="views/view">
+ <h3>View <xsl:value-of select="@name"/></h3>
+ <table class="zones">
+ <thead><tr><th>Zone</th><th>Class</th><th>Type</th><th>Serial</th></tr></thead>
+ <tbody>
+ <xsl:for-each select="zones/zone">
+ <xsl:variable name="css-class15">
+ <xsl:choose>
+ <xsl:when test="position() mod 2 = 0">even</xsl:when>
+ <xsl:otherwise>odd</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <tr class="{$css-class15}">
+ <td><xsl:value-of select="@name"/></td>
+ <td><xsl:value-of select="@rdataclass"/></td>
+ <td><xsl:value-of select="type"/></td>
+ <td><xsl:value-of select="serial"/></td></tr>
+ </xsl:for-each>
+ </tbody>
+ </table>
+ </xsl:for-each>
+ </xsl:if>
<xsl:if test="server/counters[@type="opcode"]/counter[. > 0]">
<xsl:if test="system-property('xsl:vendor')!='Transformiix'">
<h2>Incoming Requests by DNS Opcode</h2>
<br/>
</xsl:if>
</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>
</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>
<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:choose>
<xsl:when test="position() mod 2 = 0">even</xsl:when>
</xsl:choose>
</xsl:variable>
<tr class="{$css-class7}">
+ <th><xsl:value-of select="local-name(../../..)"/></th>
<th>
<xsl:value-of select="@name"/>
</th>
</table>
<br/>
</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>
<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:choose>
<xsl:when test="position() mod 2 = 0">even</xsl:when>
</xsl:choose>
</xsl:variable>
<tr class="{$css-class7}">
+ <th><xsl:value-of select="local-name(../../..)"/></th>
<th>
<xsl:value-of select="@name"/>
</th>
</table>
<br/>
</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>
<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:choose>
<xsl:when test="position() mod 2 = 0">even</xsl:when>
</xsl:choose>
</xsl:variable>
<tr class="{$css-class7}">
+ <th><xsl:value-of select="local-name(../../..)"/></th>
<th>
<xsl:value-of select="@name"/>
</th>
</table>
<br/>
</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>
<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:choose>
<xsl:when test="position() mod 2 = 0">even</xsl:when>
</xsl:choose>
</xsl:variable>
<tr class="{$css-class7}">
+ <th><xsl:value-of select="local-name(../../..)"/></th>
<th>
<xsl:value-of select="@name"/>
</th>