github.com/piotrnar/gocoin@v0.0.0-20240512203912-faa0448c5e96/client/www/templates/counts.html (about)

     1  <style>
     2  td.gennam {}
     3  td.genval {text-align:right}
     4  td.txsnam {}
     5  td.txsval {text-align:right}
     6  td.netnam {}
     7  td.netcnt {text-align:right}
     8  td.netbts {text-align:right}
     9  div.tablab {
    10  	font-weight:bold;
    11  	margin-bottom:10px;
    12  }
    13  </style>
    14  <div id="nocounters_message" style="display:none">
    15  	<br>
    16  	Counters disabled in the config file (<code>Stats.NoCounters</code>)</div>
    17  <table width="100%" id="counters_table" style="display:none">
    18  <tr>
    19  <td valign="top" align="center">
    20  	<div class="tablab">Generic counters A</div>
    21  	<table class="mono bord" width="100%" id="tab_gen_a">
    22  	<tr>
    23  		<th>Counter
    24  		<th>Value
    25  	</tr>
    26  	<!--GEN_ROW-->
    27  	</table>
    28  </td>
    29  <td valign="top" align="center">
    30  	<div class="tablab">Generic counters B</div>
    31  	<table class="mono bord" width="100%" id="tab_gen_b">
    32  	<tr>
    33  		<th>Counter
    34  		<th>Value
    35  	</tr>
    36  	<!--GEN_ROW-->
    37  	</table>
    38  </td>
    39  <td valign="top" align="center">
    40  	<div class="tablab">Transaction counters</div>
    41  	<table class="mono bord" width="100%" id="tab_txs">
    42  	<tr>
    43  		<th>Counter
    44  		<th>Value
    45  	</tr>
    46  	<!--TXS_ROW-->
    47  	</table>
    48  </td>
    49  <td valign="top" align="center">
    50  	<div class="tablab">Network counters</div>
    51  	<table class="mono bord" width="100%" id="tab_net">
    52  	<tr>
    53  		<th rowspan="2">Network Message
    54  		<th colspan="2">Received
    55  		<th colspan="2">Sent
    56  	</tr>
    57  	<tr>
    58  		<th>Times
    59  		<th>Bytes
    60  		<th>Times
    61  		<th>Bytes
    62  	</tr>
    63  	<!--NET_ROW-->
    64      </table>
    65  </td>
    66  </tr>
    67  </table>
    68  <script>
    69  function ref_counters() {
    70  	var aj = ajax()
    71  	aj.onerror=function() {
    72  		setTimeout(ref_counters, 10000)
    73  	}
    74  	aj.onload=function() {
    75  		try {
    76  			var i, cts = JSON.parse(aj.responseText)
    77  			//console.log(cts)
    78  
    79  			if (cts.gen==null && cts.txs==null && cts.net==null) {
    80  				nocounters_message.style.display='block'
    81  				counters_table.style.display='none'
    82  				return
    83  			}
    84  
    85  			var gen_a = new Array()
    86  			var gen_b = new Array()
    87  			
    88  			if (cts.gen!=null) for (i=0; i<cts.gen.length; i++) {
    89  				if (cts.gen[i].var[0]>='M' || cts.gen[i].var.substr(0,3)=='Ban') {
    90  					gen_b.push(cts.gen[i])
    91  				} else {
    92  					gen_a.push(cts.gen[i])
    93  				}
    94  				any_cnts = true
    95  			}
    96  
    97  			for (i=0; i<gen_a.length; i++) {
    98  				var row
    99  				if (i < tab_gen_a.rows.length-1) {
   100  					row = tab_gen_a.rows[i+1]
   101  				} else {
   102  					row = tab_gen_a.insertRow(-1)
   103  					row.insertCell(-1)
   104  					row.insertCell(-1)
   105  					row.cells[0].className = 'gennam'
   106  					row.cells[1].className = 'genval'
   107  				}
   108  				row.cells[0].innerText = gen_a[i].var
   109  				row.cells[1].innerText = gen_a[i].cnt
   110  			}
   111  			while (tab_gen_a.rows.length > gen_a.length + 1) {
   112  				tab_gen_a.deleteRow(tab_gen_a.rows.length-1)
   113  			}
   114  
   115  			for (i=0; i<gen_b.length; i++) {
   116  				var row
   117  				if (i < tab_gen_b.rows.length-1) {
   118  					row = tab_gen_b.rows[i+1]
   119  				} else {
   120  					row = tab_gen_b.insertRow(-1)
   121  					row.insertCell(-1)
   122  					row.insertCell(-1)
   123  					row.cells[0].className = 'gennam'
   124  					row.cells[1].className = 'genval'
   125  				}
   126  				row.cells[0].innerText = gen_b[i].var
   127  				row.cells[1].innerText = gen_b[i].cnt
   128  			}
   129  			while (tab_gen_b.rows.length > gen_b.length + 1) {
   130  				tab_gen_b.deleteRow(tab_gen_b.rows.length-1)
   131  			}
   132  
   133  			while (tab_txs.rows.length>1) tab_txs.deleteRow(1)
   134  			if (cts.txs!=null) for (i=0; i<cts.txs.length; i++) {
   135  				var row
   136  				if (i < tab_txs.rows.length-1) {
   137  					row = tab_txs.rows[i+1]
   138  				} else {
   139  					row = tab_txs.insertRow(-1)
   140  					row.insertCell(-1)
   141  					row.insertCell(-1)
   142  					row.cells[0].className = 'txsnam'
   143  					row.cells[1].className = 'txsval'
   144  				}
   145  				row.cells[0].innerText = cts.txs[i].var
   146  				row.cells[1].innerText = cts.txs[i].cnt
   147  			}
   148  
   149  			while (tab_net.rows.length>2) tab_net.deleteRow(2)
   150  			if (cts.net!=null)  for (i=0; i<cts.net.length; i++) {
   151  				var row = tab_net.insertRow(-1)
   152  
   153  				var col = row.insertCell(-1)
   154  				col.className = 'netnam'
   155  				col.innerText = cts.net[i].var
   156  
   157  				col = row.insertCell(-1)
   158  				col.className = 'netcnt'
   159  				col.innerText = cts.net[i].rcvd
   160  
   161  				col = row.insertCell(-1)
   162  				col.className = 'netcnt'
   163  				col.innerText = cts.net[i].rbts
   164  
   165  				col = row.insertCell(-1)
   166  				col.className = 'netbts'
   167  				col.innerText = cts.net[i].sent
   168  
   169  				col = row.insertCell(-1)
   170  				col.className = 'netcnt'
   171  				col.innerText = cts.net[i].sbts
   172  			}
   173  			nocounters_message.style.display='none'
   174  			counters_table.style.display='table'
   175  		} catch(e) {
   176  			console.log("error", e)
   177  		}
   178  		setTimeout(ref_counters, 1000)
   179  	}
   180  	aj.open("GET","counts.json",true)
   181  	aj.send(null)
   182  }
   183  ref_counters()
   184  </script>