2012-01-30 02:38:44 +01:00
|
|
|
@using NzbDrone.Common
|
2011-09-05 21:59:39 +02:00
|
|
|
@using NzbDrone.Core.Instrumentation
|
2012-01-23 03:24:16 +01:00
|
|
|
@using NzbDrone.Web.Helpers
|
2011-04-22 06:03:59 +02:00
|
|
|
@model IEnumerable<NzbDrone.Core.Instrumentation.Log>
|
2011-12-10 06:05:17 +01:00
|
|
|
@{ ViewBag.Title = "Logs";}
|
2011-04-21 08:18:28 +02:00
|
|
|
@section ActionMenu{
|
2011-11-24 06:50:41 +01:00
|
|
|
<ul class="sub-menu">
|
|
|
|
<li>@Ajax.ActionLink("Clear Logs", "Clear", "Log", new AjaxOptions { OnSuccess = "reloadGrid" })</li>
|
2012-01-23 03:24:16 +01:00
|
|
|
<li>@Html.ActionLink("File", "File", "Log")</li>
|
2011-11-24 06:50:41 +01:00
|
|
|
</ul>
|
2011-04-21 08:18:28 +02:00
|
|
|
}
|
2012-02-09 18:41:51 +01:00
|
|
|
|
|
|
|
@section HeaderContent{
|
|
|
|
<style>
|
|
|
|
#logGrid td {
|
|
|
|
padding: 2px 8px 2px 8px;
|
|
|
|
}
|
|
|
|
</style>
|
|
|
|
}
|
|
|
|
|
2011-12-01 06:25:01 +01:00
|
|
|
<div class="infoBox">
|
|
|
|
Log entries older than 30 days are automatically deleted.</div>
|
2012-02-09 18:41:51 +01:00
|
|
|
|
|
|
|
<div class="grid-container">
|
|
|
|
<table id="logGrid" class="dataTablesGrid hidden-grid">
|
|
|
|
<thead>
|
|
|
|
<tr>
|
|
|
|
<th>Time</th>
|
|
|
|
<th>Level</th>
|
|
|
|
<th>Source</th>
|
|
|
|
<th>Message</th>
|
|
|
|
@*Details Column*@
|
|
|
|
<th style="display: none;">Details</th>
|
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
<tbody>
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
@section Scripts{
|
|
|
|
<script type="text/javascript">
|
|
|
|
$(document).ready(function() {
|
|
|
|
$('.dataTablesGrid').removeClass('hidden-grid');
|
|
|
|
|
|
|
|
oTable = $('#logGrid').dataTable({
|
|
|
|
"sAjaxSource": "Log/AjaxBinding",
|
|
|
|
"bProcessing": true,
|
|
|
|
"bServerSide": true,
|
|
|
|
"bShowAll": false,
|
|
|
|
"bPaginate": true,
|
|
|
|
"bLengthChange": false,
|
|
|
|
"bFilter": true,
|
|
|
|
"bSort": true,
|
|
|
|
"bInfo": true,
|
|
|
|
"bAutoWidth": false,
|
|
|
|
"iDisplayLength": 50,
|
|
|
|
"sPaginationType": "four_button",
|
|
|
|
"aoColumns": [
|
|
|
|
{ sWidth: '150px', "mDataProp": "Time" }, //Time
|
|
|
|
{ sWidth: '80px', "mDataProp": "Level" }, //Level
|
|
|
|
{ sWidth: '240px', "mDataProp": "Source" }, //Source
|
|
|
|
{ sWidth: 'auto', "mDataProp": "Message", "bSortable": false }, //Message
|
|
|
|
{ sWidth: 'auto', "mDataProp": "Details", "bSortable": false, "bVisible": false, "fnRender": function (row) {
|
|
|
|
var result = "<div>Method: " + row.aData["Method"] + "</div>" +
|
|
|
|
"<div>Exception Type: " + row.aData["ExceptionType"] + "</div>" +
|
|
|
|
"<div class=\"stackFrame\">Exception: " + row.aData["Exception"] + "</div>";
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
} //Details
|
|
|
|
],
|
|
|
|
"aaSorting": [[0, 'desc']],
|
|
|
|
"fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull) {
|
|
|
|
fnRowCallback(nRow, aData);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
function fnRowCallback(nRow, aData) {
|
|
|
|
//e.row.style.boarder = "";
|
|
|
|
|
|
|
|
if (aData["Level"] == "Warn") {
|
|
|
|
nRow.style.backgroundColor = "#FFD700";
|
|
|
|
}
|
|
|
|
else if (aData["Level"] == "Error") {
|
|
|
|
nRow.style.backgroundColor = "#FF7500";
|
|
|
|
}
|
|
|
|
else if (aData["Level"] == "Fatal") {
|
|
|
|
nRow.style.backgroundColor = "black";
|
|
|
|
nRow.style.color = "red";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
}
|