2024-06-04 06:04:59 +02:00
|
|
|
<!DOCTYPE html>
|
2024-06-06 17:52:17 +02:00
|
|
|
<!-- 1. Take out style for table for email
|
|
|
|
2. Switch "see in Browser" to "index" in web version
|
2024-06-07 11:35:28 +02:00
|
|
|
-->
|
2024-06-05 17:17:23 +02:00
|
|
|
<html><head>
|
|
|
|
<meta charset="utf-8">
|
2024-06-04 06:04:59 +02:00
|
|
|
<title>SMEServer Mailstats</title>
|
2024-06-14 16:48:14 +02:00
|
|
|
<link rel='stylesheet' type='text/css' href='css/mailstats.css' />
|
2024-06-04 06:04:59 +02:00
|
|
|
<!-- Check links -->
|
|
|
|
<script>
|
|
|
|
function LinkCheck(url){
|
|
|
|
var http = new XMLHttpRequest();
|
|
|
|
http.open('HEAD', url, false);
|
|
|
|
http.send();
|
|
|
|
return http.status!=404;
|
|
|
|
}
|
|
|
|
function doNavs() {
|
|
|
|
var aTags = document.getElementsByTagName('a'),
|
|
|
|
atl = aTags.length,i;
|
|
|
|
for (i = 0; i < atl; i++) {
|
|
|
|
if (aTags[i].innerText == "Previous") {
|
|
|
|
if (!LinkCheck(aTags[i].href)) {
|
|
|
|
aTags[i].style.visibility = "hidden";
|
|
|
|
} else {
|
|
|
|
aTags[i].style.visibility = "visible";
|
|
|
|
}
|
|
|
|
} else if (aTags[i].innerText == "Next") {
|
|
|
|
if (!LinkCheck(aTags[i].href)) {
|
|
|
|
aTags[i].style.visibility = "hidden";
|
|
|
|
} else {
|
|
|
|
aTags[i].style.visibility = "visible";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</script>
|
2024-06-05 17:17:23 +02:00
|
|
|
<style>
|
|
|
|
<!--css here-->
|
|
|
|
</style>
|
2024-05-29 17:46:58 +02:00
|
|
|
</head>
|
|
|
|
<body>
|
2024-06-07 11:35:28 +02:00
|
|
|
<div style="width:100%;overflow-x:auto;font-size:1cqw">
|
2024-06-04 06:04:59 +02:00
|
|
|
<!---Navigation here-->
|
2024-06-06 15:56:19 +02:00
|
|
|
<br />
|
|
|
|
<h2>${title}</h2>
|
2024-06-04 06:04:59 +02:00
|
|
|
<br />
|
2024-06-14 19:31:48 +02:00
|
|
|
<table style="border-collapse:collapse;">
|
2024-06-07 11:35:28 +02:00
|
|
|
<thead>
|
|
|
|
<tr>
|
|
|
|
<th>Date/Time</th>
|
|
|
|
<th tal:repeat="header column_headers" tal:content="header">Header</th>
|
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
<tbody>
|
2024-06-15 12:58:08 +02:00
|
|
|
<tr tal:repeat="row array_2d" tal:attributes="class python: 'row-total' if repeat.row.index == 24 else 'row-percent' if repeat.row.index == 25 else None">
|
|
|
|
<td tal:condition="repeat.row.index == 24" tal:attributes="class python:'col-total'" tal:content="'TOTALS'">Totals</td>
|
|
|
|
<td tal:condition="repeat.row.index == 25" tal:attributes="class python:'col-percent'" tal:content="'PERCENT'">Percent</td>
|
2024-06-07 11:35:28 +02:00
|
|
|
<td tal:condition="repeat.row.index < 24" tal:content="string:${reporting_date}, ${repeat.row.index}">Hour</td>
|
2024-06-15 12:58:08 +02:00
|
|
|
<td tal:repeat="cell row" tal:attributes="class python: 'col-' + str(repeat.cell.index)" tal:content="cell">Cell</td>
|
2024-06-07 11:35:28 +02:00
|
|
|
</tr>
|
|
|
|
</tbody>
|
|
|
|
</table>
|
2024-06-01 08:48:35 +02:00
|
|
|
<!---Add in sub tables here -->
|
2024-05-30 13:05:31 +02:00
|
|
|
<br />
|
|
|
|
<footer>${version}</footer>
|
2024-06-04 06:04:59 +02:00
|
|
|
<script>window.onload = function(){doNavs();} </script>
|
|
|
|
<p class="cssvalid">
|
|
|
|
<a href="http://jigsaw.w3.org/css-validator/check/referer">
|
|
|
|
<img style="border:0;width:88px;height:31px"
|
|
|
|
src="http://jigsaw.w3.org/css-validator/images/vcss"
|
|
|
|
alt="Valid CSS!" />
|
|
|
|
</a>
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<p class="htmlvalid">
|
|
|
|
<a href="https://validator.w3.org/check?uri=referer"><img
|
|
|
|
src="http://www.w3.org/Icons/valid-xhtml10"
|
|
|
|
alt="Valid XHTML 1.0!" height="31" width="88" /></a>
|
|
|
|
</p>
|
2024-06-07 11:35:28 +02:00
|
|
|
</div>
|
2024-05-29 17:46:58 +02:00
|
|
|
</body>
|
|
|
|
</html>
|