154: Added category filter.

This commit is contained in:
Sipke Schoorstra
2014-07-01 16:43:02 -07:00
parent c1f91d41b8
commit 7787ce9138
3 changed files with 20 additions and 2 deletions

View File

@@ -133,6 +133,7 @@
<Content Include="Views\AuditTrailFilter-ContentType.cshtml" />
<Content Include="Views\AuditTrailFilter-Common-Date.cshtml" />
<Content Include="Views\AuditTrailFilter-ContentItem.cshtml" />
<Content Include="Views\AuditTrailFilter-Common-Category.cshtml" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\Orchard\Orchard.Framework.csproj">

View File

@@ -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);
}
}

View File

@@ -0,0 +1,10 @@
@using Orchard.AuditTrail.Services.Models
@{
var categories = (IList<AuditTrailCategoryDescriptor>)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 });
}
<fieldset>
@Html.Label("category", T("Category:").Text)
@Html.DropDownList("category", listItems, "")
</fieldset>