Files
LazyLibrarian/data/interfaces/default/logs.html
2014-05-07 20:35:31 -06:00

107 lines
3.6 KiB
HTML
Executable File

<%inherit file="base.html"/>
<%!
from lazylibrarian import formatter
%>
<%def name="headerIncludes()">
<div id="subhead_container">
<ul id="subhead_menu">
</ul>
</div>
</%def>
<%def name="body()">
<BR>
<table class="display" id="log_table">
<thead>
<tr>
<th id="timestamp">Timestamp</th>
<th id="level">Level</th>
<th id="message">Message</th>
</tr>
</thead>
<tbody>
%for line in lineList:
<%
timestamp, message, level, threadname = line
if level == 'WARNING' or level == 'ERROR':
grade = 'X'
else:
grade = 'Z'
%>
<tr class="grade${grade}">
<td id="timestamp">${timestamp}</td>
<td id="level">${level}</td>
<td id="message">${message}</td>
</tr>
%endfor
</tbody>
</table>
</%def>
<%def name="headIncludes()">
<link rel="stylesheet" href="css/data_table.css">
</%def>
<%def name="javascriptIncludes()">
<script src="js/libs/jquery.dataTables.min.js"></script>
<script>
$(document).ready(function()
{
$('#log_table').dataTable(
{
"aoColumns": [
null,
null,
null
],
"oLanguage": {
"sSearch":"",
"sLengthMenu":"Show _MENU_ lines per page",
"sEmptyTable": "No log information available",
"sInfo":"Showing _START_ to _END_ of _TOTAL_ lines",
"sInfoEmpty":"Showing 0 to 0 of 0 lines",
"sInfoFiltered":"(filtered from _MAX_ total lines)"},
"bStateSave": true,
"aLengthMenu": [[5, 10, 15, 25, 50, 100, -1], [5, 10, 15, 25, 50, 100, "All"]],
"iDisplayLength": 10,
"sPaginationType": "full_numbers",
"aaSorting": [],
"bServerSide": true,
"sAjaxSource": 'getLog',
"bFilter": true,
"fnRowCallback": function (nRow, aData, iDisplayIndex, iDisplayIndexFull) {
if (aData[1] === "WARNING" || aData[1] === "ERROR")
{
$('td', nRow).closest('tr').addClass("gradeX");
}
else
{
$('td', nRow).closest('tr').addClass("gradeZ");
}
return nRow;
},
"fnServerData": function (sSource, aoData, fnCallback) {
/* Add some extra data to the sender */
$.getJSON(sSource, aoData, function (json) {
fnCallback(json)
});
}
});
$('.dataTables_filter input').attr("placeholder", "Seach table here");
// dont keep refreshing the log table on mobile devices
var isiPad = navigator.userAgent.match(/iPad/i) != null;
// Why is the log page auto-refreshing in the first place?
// if (!isiPad && !((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i))))
// {
// // Refresh the log table
// setInterval(function() {
// $('#log_table').dataTable().fnDraw();
// }, 10000);
// }
});
</script>
</%def>