From 5d81c6b7b1f6a35f5122d5bfb85e758e8bc246d4 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Sat, 25 Feb 2012 15:14:48 -0800 Subject: [PATCH] Fix: Log Grid will now allow sorting by multiple columns. --- NzbDrone.Web/Controllers/LogController.cs | 13 +++++++++---- NzbDrone.Web/Views/Log/Index.cshtml | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/NzbDrone.Web/Controllers/LogController.cs b/NzbDrone.Web/Controllers/LogController.cs index 010df25c8..5430d6dc3 100644 --- a/NzbDrone.Web/Controllers/LogController.cs +++ b/NzbDrone.Web/Controllers/LogController.cs @@ -64,11 +64,16 @@ namespace NzbDrone.Web.Controllers int filteredCount = q.Count(); - int sortCol = dataTablesParams.iSortCol.First(); - var sortColName = sortCol == 0 ? "Time" : sortCol == 1 ? "Level" : "Logger"; - var sortExpression = String.Format("{0} {1}", sortColName, dataTablesParams.sSortDir.First()); + IQueryable sorted = q; - var sorted = q.OrderBy(sortExpression); + for (int i = 0; i < dataTablesParams.iSortingCols; i++) + { + int sortCol = dataTablesParams.iSortCol[i]; + var sortColName = sortCol == 0 ? "Time" : sortCol == 1 ? "Level" : "Logger"; + var sortExpression = String.Format("{0} {1}", sortColName, dataTablesParams.sSortDir[i]); + + sorted = sorted.OrderBy(sortExpression); + } IQueryable filteredAndSorted = sorted; if (filteredCount > dataTablesParams.iDisplayLength) diff --git a/NzbDrone.Web/Views/Log/Index.cshtml b/NzbDrone.Web/Views/Log/Index.cshtml index ceb863d0a..85f9097ab 100644 --- a/NzbDrone.Web/Views/Log/Index.cshtml +++ b/NzbDrone.Web/Views/Log/Index.cshtml @@ -63,7 +63,7 @@ "sPaginationType": "four_button", "aoColumns": [ { sWidth: '150px', "mDataProp": "Time" }, //Time - {sWidth: '50px', "mDataProp": "Level" }, //Level + {sWidth: '60px', "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) {