Skip to content

Commit 7757704

Browse files
Merge pull request #92 from programcsharp/separate-filter
Split out filter bar so it can be used separately
2 parents 69e3035 + 3964c65 commit 7757704

14 files changed

+620
-234
lines changed

Build/CommonAssemblyInfo.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@
1515
//
1616
// You can specify all the values or you can default the Revision and Build Numbers
1717
// by using the '*' as shown below:
18-
[assembly: AssemblyVersion("2.4.5")]
19-
[assembly: AssemblyFileVersion("2.4.5")]
20-
//[assembly: AssemblyInformationalVersion("2.0-alpha6")]
18+
[assembly: AssemblyVersion("2.5.0")]
19+
[assembly: AssemblyFileVersion("2.5.0")]
20+
//[assembly: AssemblyInformationalVersion("2.5-filters")]

Griddly.Mvc/Griddly.Mvc.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@
9494
<Compile Include="GriddlyFilterExtensions.cs" />
9595
<Compile Include="GriddlyHtmlFilter.cs" />
9696
<Compile Include="GriddlyExport.cs" />
97+
<Compile Include="GriddlyFilterBarSettings.cs" />
9798
<Compile Include="InternalExtensions.cs" />
9899
<Compile Include="GriddlyButton.cs" />
99100
<Compile Include="GriddlyColumn.cs" />

Griddly.Mvc/GriddlyExtensions.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,11 @@ public static MvcHtmlString Griddly(this HtmlHelper htmlHelper, GriddlyResultPag
9999
}
100100
}
101101

102+
public static MvcHtmlString GriddlyFilterBar(this HtmlHelper htmlHelper, GriddlyFilterBarSettings settings)
103+
{
104+
return htmlHelper.Partial("~/Views/Shared/Griddly/GriddlyFilterBar.cshtml", settings);
105+
}
106+
102107
public static GriddlyColumn<TRow> GriddlyColumnFor<TRow>(this HtmlHelper<IEnumerable<TRow>> htmlHelper, Func<TRow, object> template)
103108
{
104109
return htmlHelper.GriddlyColumnFor<TRow>(template, null);
@@ -198,6 +203,11 @@ public static object GetGriddlyDefault(this WebViewPage page, string field)
198203
return page.ViewData["_griddlyDefault_" + field];
199204
}
200205

206+
public static void ForceGriddlyDefault(this Controller controller, string field, object value)
207+
{
208+
controller.ViewData["_griddlyDefault_" + field] = value;
209+
}
210+
201211
public static Dictionary<string, object> GetGriddlyDefaults(this WebViewPage page)
202212
{
203213
Dictionary<string, object> defaults = new Dictionary<string, object>();
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Collections.Specialized;
4+
using System.Linq;
5+
using System.Linq.Expressions;
6+
using System.Web;
7+
using System.Web.Helpers;
8+
using System.Web.Mvc;
9+
using System.Web.Routing;
10+
11+
namespace Griddly.Mvc
12+
{
13+
public class GriddlyFilterBarSettings
14+
{
15+
public GriddlyFilterBarSettings()
16+
{
17+
Filters = new List<GriddlyFilter>();
18+
}
19+
20+
public List<GriddlyFilter> Filters { get; set; }
21+
22+
public GriddlyFilterBarSettings FilterBox(string field, string caption, FilterDataType dataType = FilterDataType.Decimal, string htmlClass = null, string captionPlural = null)
23+
{
24+
return Add(GriddlyFilterExtensions.FilterBox(null, dataType, field, caption, htmlClass, captionPlural));
25+
}
26+
27+
public GriddlyFilterBarSettings FilterRange(string field, string fieldEnd, string caption, FilterDataType dataType = FilterDataType.Decimal, string htmlClass = null, string captionPlural = null)
28+
{
29+
return Add(GriddlyFilterExtensions.FilterRange(null, dataType, field, fieldEnd, caption, htmlClass, captionPlural));
30+
}
31+
32+
public GriddlyFilterBarSettings FilterList(string field, string caption, IEnumerable<SelectListItem> items, bool isMultiple = true, bool defaultSelectAll = false, string nullItemText = null, bool isNoneAll = true, string htmlClass = null, string captionPlural = null, bool displayIncludeCaption = false)
33+
{
34+
return Add(GriddlyFilterExtensions.FilterList(null, items, isMultiple, defaultSelectAll, nullItemText, isNoneAll, field, caption, htmlClass, captionPlural, displayIncludeCaption));
35+
}
36+
37+
public GriddlyFilterBarSettings FilterEnum<T>(string field, string caption, bool isMultiple = true, bool defaultSelectAll = false, string nullItemText = null, bool isNoneAll = true, string htmlClass = null, string captionPlural = null, bool displayIncludeCaption = false)
38+
where T : struct
39+
{
40+
return Add(GriddlyFilterExtensions.FilterEnum<T>(null, isMultiple, defaultSelectAll, nullItemText, isNoneAll, field, caption, htmlClass, captionPlural, displayIncludeCaption));
41+
}
42+
43+
public GriddlyFilterBarSettings FilterEnum<T>(string field, string caption, IEnumerable<T> items, bool isMultiple = true, bool defaultSelectAll = false, string nullItemText = null, bool isNoneAll = true, string htmlClass = null, string captionPlural = null, bool displayIncludeCaption = false)
44+
where T : struct
45+
{
46+
return Add(GriddlyFilterExtensions.FilterEnum<T>(null, items, isMultiple, defaultSelectAll, nullItemText, isNoneAll, field, caption, htmlClass, captionPlural, displayIncludeCaption));
47+
}
48+
49+
public GriddlyFilterBarSettings FilterBool(string field, string caption, string trueLabel = "Yes", string falseLabel = "No", string nullItemText = null, bool isMultiple = false, bool defaultSelectAll = false, bool isNoneAll = false, string htmlClass = null, string captionPlural = null, bool displayIncludeCaption = true)
50+
{
51+
return Add(GriddlyFilterExtensions.FilterBool(null, trueLabel, falseLabel, nullItemText, isMultiple, defaultSelectAll, isNoneAll, field, caption, htmlClass, captionPlural, displayIncludeCaption));
52+
}
53+
54+
public GriddlyFilterBarSettings Add(GriddlyFilter filter)
55+
{
56+
Filters.Add(filter);
57+
58+
return this;
59+
}
60+
}
61+
}

Griddly/Controllers/HomeController.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,12 @@ public ActionResult HistoryTest()
3131
return View();
3232
}
3333

34+
public ActionResult FilterBar()
35+
{
36+
this.ForceGriddlyDefault("test", "hello world!");
37+
38+
return View();
39+
}
3440

3541
public ActionResult Editly()
3642
{

Griddly/Griddly.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,9 @@
267267
<Content Include="Views\Home\HistoryTest.cshtml" />
268268
<Content Include="Views\Shared\Griddly\GriddlyFilterValues.cshtml" />
269269
<Content Include="Views\Home\FilterBoxGrid - Copy.cshtml" />
270+
<Content Include="Views\Shared\Griddly\GriddlyFilters.cshtml" />
271+
<Content Include="Views\Home\FilterBar.cshtml" />
272+
<Content Include="Views\Shared\Griddly\GriddlyFilterBar.cshtml" />
270273
</ItemGroup>
271274
<ItemGroup>
272275
<ProjectReference Include="..\Griddly.Mvc\Griddly.Mvc.csproj">

0 commit comments

Comments
 (0)