diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Orchard.AuditTrail.csproj b/src/Orchard.Web/Modules/Orchard.AuditTrail/Orchard.AuditTrail.csproj index 471b08fcc..102f14b0e 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Orchard.AuditTrail.csproj +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Orchard.AuditTrail.csproj @@ -133,6 +133,7 @@ + diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Services/CommonAuditTrailEventHandler.cs b/src/Orchard.Web/Modules/Orchard.AuditTrail/Services/CommonAuditTrailEventHandler.cs index 2e2ec0b7b..e43c734ae 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Services/CommonAuditTrailEventHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Services/CommonAuditTrailEventHandler.cs @@ -16,17 +16,19 @@ namespace Orchard.AuditTrail.Services { } public override void Filter(QueryFilterContext context) { - // Common filters (username, from and to). + // Common filters (username, from and to, category). var userName = context.Filters.Get("username"); var fromDate = context.Filters.Get("from.Date"); var fromTime = context.Filters.Get("from.Time"); var toDate = context.Filters.Get("to.Date"); var toTime = context.Filters.Get("to.Time"); + var category = context.Filters.Get("category"); var from = _dateServices.ConvertFromLocalString(fromDate, fromTime).Earliest(); var to = _dateServices.ConvertFromLocalString(toDate, toTime).Latest(); var query = context.Query; if (!String.IsNullOrWhiteSpace(userName)) query = query.Where(x => x.UserName == userName); + if (!String.IsNullOrWhiteSpace(category)) query = query.Where(x => x.Category == category); if (from != null) query = query.Where(x => x.CreatedUtc >= from); if (to != null) query = query.Where(x => x.CreatedUtc <= to); @@ -34,16 +36,21 @@ namespace Orchard.AuditTrail.Services { } public override void DisplayFilter(DisplayFilterContext context) { - // Common filters (username, from and to). + // Common filters (username, from and to, category). var userName = context.Filters.Get("username"); var fromDate = context.Filters.Get("from.Date"); var toDate = context.Filters.Get("to.Date"); + var category = context.Filters.Get("category"); var userNameFilterDisplay = context.ShapeFactory.AuditTrailFilter__Common__User(UserName: userName); var dateFilterDisplay = context.ShapeFactory.AuditTrailFilter__Common__Date( From: new DateTimeEditor {Date = fromDate, ShowDate = true}, To: new DateTimeEditor {Date = toDate, ShowDate = true}); + var categoryFilterDisplay = context.ShapeFactory.AuditTrailFilter__Common__Category( + Categories: _auditTrailManager.Value.DescribeCategories().ToArray(), + Category: category); context.FilterLayout.TripleFirst.Add(dateFilterDisplay); + context.FilterLayout.TripleFirst.Add(categoryFilterDisplay); context.FilterLayout.TripleSecond.Add(userNameFilterDisplay); } } diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/AuditTrailFilter-Common-Category.cshtml b/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/AuditTrailFilter-Common-Category.cshtml new file mode 100644 index 000000000..8a304ae91 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/AuditTrailFilter-Common-Category.cshtml @@ -0,0 +1,10 @@ +@using Orchard.AuditTrail.Services.Models +@{ + var categories = (IList)Model.Categories; + var currentCategory = (string)Model.Category; + var listItems = categories.Select(x => new SelectListItem { Text = x.Name.Text, Value = x.Category, Selected = x.Category == currentCategory }); +} +
+ @Html.Label("category", T("Category:").Text) + @Html.DropDownList("category", listItems, "") +
\ No newline at end of file