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 });
+}
+
\ No newline at end of file