Log view now uses proper paging so it doesn't take a year to load up each page.

This commit is contained in:
Mark McDowall 2011-09-02 23:41:50 -07:00
parent c2c62aa538
commit 780abad3f7
3 changed files with 13 additions and 5 deletions

View File

@ -21,6 +21,11 @@ namespace NzbDrone.Core.Instrumentation
return _database.Fetch<Log>(); return _database.Fetch<Log>();
} }
public Page<Log> GetPagedLogs(int pageNumber, int pageSize)
{
return _database.Page<Log>(pageNumber, pageSize, "SELECT * FROM Logs ORDER BY Time DESC");
}
public void DeleteAll() public void DeleteAll()
{ {
_database.Delete<Log>(""); _database.Delete<Log>("");

View File

@ -26,10 +26,12 @@ namespace NzbDrone.Web.Controllers
return Json(new NotificationResult() { Title = "Logs Cleared" }); return Json(new NotificationResult() { Title = "Logs Cleared" });
} }
[GridAction] [GridAction(EnableCustomBinding = true)]
public ActionResult _AjaxBinding() public ActionResult _AjaxBinding(GridCommand gridCommand)
{ {
return View(new GridModel(_logProvider.GetAllLogs())); var logs = _logProvider.GetPagedLogs(gridCommand.Page, gridCommand.PageSize);
return View(new GridModel{ Data = logs.Items, Total = (int)logs.TotalItems });
} }
} }
} }

View File

@ -44,9 +44,10 @@ Logs
"<div><#= ExceptionType #></div>" + "<div><#= ExceptionType #></div>" +
"<div class='stackframe'><#= Exception #></div>" "<div class='stackframe'><#= Exception #></div>"
)).DataBinding(data => data.Ajax().Select("_AjaxBinding", "Log")) )).DataBinding(data => data.Ajax().Select("_AjaxBinding", "Log"))
.Sortable(rows => rows.OrderBy(epSort => epSort.Add(c => c.Time).Descending()).Enabled(true)) //.Sortable(rows => rows.OrderBy(epSort => epSort.Add(c => c.Time).Descending()).Enabled(true))
.Pageable(c => c.PageSize(50).Position(GridPagerPosition.Bottom).Style(GridPagerStyles.NextPrevious)) .Pageable(c => c.PageSize(50).Position(GridPagerPosition.Bottom).Style(GridPagerStyles.NextPrevious))
.Filterable() .EnableCustomBinding(true)
//.Filterable()
.ClientEvents(c => c.OnRowDataBound("onRowDataBound")) .ClientEvents(c => c.OnRowDataBound("onRowDataBound"))
.Render();} .Render();}
} }