Skip to content

Commit c505186

Browse files
committed
Add extensible templates for form modal header/footer
1 parent 3a6e84d commit c505186

File tree

5 files changed

+56
-29
lines changed

5 files changed

+56
-29
lines changed

Build/CommonAssemblyInfo.cs

Lines changed: 2 additions & 2 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("3.6.36")]
19-
[assembly: AssemblyFileVersion("3.6.36")]
18+
[assembly: AssemblyVersion("3.6.37")]
19+
[assembly: AssemblyFileVersion("3.6.37")]
2020
//[assembly: AssemblyInformationalVersion("2.5-filters")]

Griddly.Mvc/GriddlyFilterBarSettings.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,12 @@ public class GriddlyFilterBarSettings : IGriddlyFilterSettings
2121

2222
#if NETFRAMEWORK
2323
public Func<object, object> FilterButtonTemplate { get; set; }
24+
public Func<IGriddlyFilterSettings, object> FilterModalHeaderTemplate { get; set; }
25+
public Func<IGriddlyFilterSettings, object> FilterModalFooterTemplate { get; set; }
2426
#else
2527
public Func<object, IHtmlContent> FilterButtonTemplate { get; set; }
28+
public Func<IGriddlyFilterSettings, IHtmlContent> FilterModalHeaderTemplate { get; set; }
29+
public Func<IGriddlyFilterSettings, IHtmlContent> FilterModalFooterTemplate { get; set; }
2630
#endif
2731

2832

Griddly.Mvc/GriddlySettings.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,8 @@ public static void ConfigureBootstrap4Defaults()
172172
public Func<object, object> AfterTemplate { get; set; }
173173
public Func<GriddlySettings, object> FilterTemplate { get; set; }
174174
public Func<GriddlySettings, object> InlineFilterTemplate { get; set; }
175+
public Func<IGriddlyFilterSettings, object> FilterModalHeaderTemplate { get; set; }
176+
public Func<IGriddlyFilterSettings, object> FilterModalFooterTemplate { get; set; }
175177
public Func<object, object> FilterButtonTemplate { get; set; }
176178
public Func<object, object> BeforeColumnHeadersTemplate { get; set; }
177179
#else
@@ -181,6 +183,8 @@ public static void ConfigureBootstrap4Defaults()
181183
public Func<object, IHtmlContent> AfterTemplate { get; set; }
182184
public Func<GriddlySettings, IHtmlContent> FilterTemplate { get; set; }
183185
public Func<GriddlySettings, IHtmlContent> InlineFilterTemplate { get; set; }
186+
public Func<IGriddlyFilterSettings, IHtmlContent> FilterModalHeaderTemplate { get; set; }
187+
public Func<IGriddlyFilterSettings, IHtmlContent> FilterModalFooterTemplate { get; set; }
184188
public Func<object, IHtmlContent> FilterButtonTemplate { get; set; }
185189
public Func<object, IHtmlContent> BeforeColumnHeadersTemplate { get; set; }
186190
#endif

Griddly.Mvc/IFilterSettings.cs renamed to Griddly.Mvc/IGriddlyFilterSettings.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,15 @@ namespace Griddly.Mvc
1313
public interface IGriddlyFilterSettings
1414
{
1515
List<GriddlyFilter> Filters { get; set; }
16+
1617
#if NETFRAMEWORK
1718
Func<object, object> FilterButtonTemplate { get; set; }
19+
Func<IGriddlyFilterSettings, object> FilterModalHeaderTemplate { get; set; }
20+
Func<IGriddlyFilterSettings, object> FilterModalFooterTemplate { get; set; }
1821
#else
1922
Func<object, IHtmlContent> FilterButtonTemplate { get; set; }
23+
Func<IGriddlyFilterSettings, IHtmlContent> FilterModalHeaderTemplate { get; set; }
24+
Func<IGriddlyFilterSettings, IHtmlContent> FilterModalFooterTemplate { get; set; }
2025
#endif
2126
}
2227
}

Griddly/Views/Shared/Griddly/GriddlyFilters.cshtml

Lines changed: 41 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -33,39 +33,53 @@ else
3333
<div class="modal-dialog modal-lg" role="document">
3434
<div class="modal-content">
3535
<div class="modal-header">
36-
@if (css.IsBootstrap4) { <h4 class="modal-title">Filter</h4>}
37-
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
38-
@if (!css.IsBootstrap4) { <h4 class="modal-title">Filter</h4>}
36+
@if (Model.FilterModalHeaderTemplate != null)
37+
{
38+
@Model.FilterModalHeaderTemplate(Model)
39+
}
40+
else
41+
{
42+
if (css.IsBootstrap4) { <h4 class="modal-title">Filter</h4> }
43+
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
44+
if (!css.IsBootstrap4) { <h4 class="modal-title">Filter</h4> }
45+
}
3946
</div>
40-
<form class="@(css.IsBootstrap4?"":"form-horizontal")">
47+
<form class="@(css.IsBootstrap4 ? "" :"form-horizontal")">
4148
<div class="modal-body">
4249
@Html.Partial("Griddly/GriddlyFilterForm", Model.Filters)
4350
</div>
44-
<div class="modal-footer" style="@(css.IsBootstrap4 ? "justify-content:flex-start" : null@*fix for IE flex bug*@)" >
51+
<div class="modal-footer" style="@(css.IsBootstrap4 ? "justify-content:flex-start" : null@*fix for IE flex bug*@)">
52+
@if (Model.FilterModalFooterTemplate != null)
53+
{
54+
@Model.FilterModalFooterTemplate(Model)
55+
}
56+
else
57+
{
58+
<div class="griddly-reset-btn btn-group @(css.IsBootstrap4 ? "mr-auto" : "pull-left")">
59+
<button type="button" class="@css.ButtonDefault dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
60+
Reset @if (!css.IsBootstrap4)
61+
{<span class="@css.Icons.CaretDown"></span>}
62+
</button>
63+
@if (css.IsBootstrap4)
64+
{
65+
<div class="dropdown-menu">
66+
<a class="griddly-search-reset dropdown-item" href="javascript:;">System Default</a>
67+
<a class="griddly-search-clear dropdown-item" href="javascript:;">Clear (Show All)</a>
68+
</div>
69+
}
70+
else
71+
{
72+
<ul class="dropdown-menu">
73+
<li><a class="griddly-search-reset" href="javascript:;">System Default</a></li>
74+
<li><a class="griddly-search-clear" href="javascript:;">Clear (Show All)</a></li>
75+
</ul>
76+
}
77+
</div>
4578

46-
<div class="btn-group @(css.IsBootstrap4 ? "mr-auto" : "pull-left")">
47-
<button type="button" class="@css.ButtonDefault dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
48-
Reset @if (!css.IsBootstrap4){<span class="@css.Icons.CaretDown"></span>}
49-
</button>
50-
@if (css.IsBootstrap4)
51-
{
52-
<div class="dropdown-menu">
53-
<a class="griddly-search-reset dropdown-item" href="javascript:;">System Default</a>
54-
<a class="griddly-search-clear dropdown-item" href="javascript:;">Clear (Show All)</a>
55-
</div>
56-
}
57-
else
58-
{
59-
<ul class="dropdown-menu">
60-
<li><a class="griddly-search-reset" href="javascript:;">System Default</a></li>
61-
<li><a class="griddly-search-clear" href="javascript:;">Clear (Show All)</a></li>
62-
</ul>
63-
}
64-
</div>
79+
<button type="button" class="@(css.IsBootstrap4 ? "btn btn-link" : css.ButtonDefault) griddly-filter-cancel" data-dismiss="modal">Cancel</button>
6580

66-
<button type="button" class="@(css.IsBootstrap4 ? "btn btn-link" : css.ButtonDefault) griddly-filter-cancel" data-dismiss="modal">Cancel</button>
67-
68-
<button type="submit" class="@css.ButtonDefault">Search</button>
81+
<button type="submit" class="@css.ButtonDefault">Search</button>
82+
}
6983
</div>
7084
</form>
7185
</div>

0 commit comments

Comments
 (0)