Skip to content

Commit 912d9e0

Browse files
author
Binon
committed
Added resource collection filter
1 parent bc12dde commit 912d9e0

File tree

5 files changed

+187
-136
lines changed

5 files changed

+187
-136
lines changed

LearningHub.Nhs.WebUI/Controllers/SearchController.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,10 +109,11 @@ public async Task<IActionResult> Index(SearchRequestViewModel search, bool noSor
109109
/// <param name="groupId">The search group id.</param>
110110
/// <param name="searchId">The search id.</param>
111111
/// <param name="actionType">The action type.</param>
112+
/// <param name="resourceCollectionFilter">The show filter.</param>
112113
/// <param name="feedback">The feedback.</param>
113114
/// <returns>The actionResult.</returns>
114115
[HttpPost("results")]
115-
public async Task<IActionResult> IndexPost([FromQuery] SearchRequestViewModel search, int resourceCount, [FromForm] IEnumerable<string> filters, [FromForm] int? resourceAccessLevelId, [FromForm] IEnumerable<string> providerfilters, [FromForm] int? sortby, [FromForm] string groupId, [FromForm] int searchId, [FromQuery] string actionType, string feedback)
116+
public async Task<IActionResult> IndexPost([FromQuery] SearchRequestViewModel search, int resourceCount, [FromForm] IEnumerable<string> filters, [FromForm] int? resourceAccessLevelId, [FromForm] IEnumerable<string> providerfilters, [FromForm] int? sortby, [FromForm] string groupId, [FromForm] int searchId, [FromQuery] string actionType, [FromQuery] string resourceCollectionFilter, string feedback)
116117
{
117118
if (actionType == "feedback")
118119
{

LearningHub.Nhs.WebUI/Models/Search/SearchRequestViewModel.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,5 +75,10 @@ public class SearchRequestViewModel
7575
/// </summary>
7676
[FromQuery]
7777
public IEnumerable<string> ProviderFilters { get; set; }
78+
79+
/// <summary>
80+
/// Gets or sets the show filter (all, catalogues, courses, resources).
81+
/// </summary>
82+
public string ResourceCollectionFilter { get; set; }
7883
}
7984
}

LearningHub.Nhs.WebUI/Models/Search/SearchResultViewModel.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,5 +93,10 @@ public class SearchResultViewModel
9393
/// Gets or sets Suggested Resource name.
9494
/// </summary>
9595
public string SuggestedResource { get; set; }
96+
97+
/// <summary>
98+
/// Gets or sets the show filter (all, catalogues, courses, resources).
99+
/// </summary>
100+
public string ResourceCollectionFilter { get; set; }
96101
}
97102
}

LearningHub.Nhs.WebUI/Views/Search/_SearchFilter.cshtml

Lines changed: 49 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44
@{
55
var resourceResult = Model.ResourceSearchResult;
66
var filtersApplied = resourceResult.SortItemSelected.Value != string.Empty
7-
|| resourceResult.SearchFilters.Any(f => f.Selected) || resourceResult.SearchResourceAccessLevelFilters.Any(f => f.Selected)
8-
|| resourceResult.SearchProviderFilters.Any(f =>f.Selected);
7+
|| resourceResult.SearchFilters.Any(f => f.Selected) || resourceResult.SearchResourceAccessLevelFilters.Any(f => f.Selected)
8+
|| resourceResult.SearchProviderFilters.Any(f => f.Selected);
99

1010
var queryParams = QueryHelpers.ParseQuery(Context.Request.QueryString.ToString().ToLower());
1111
queryParams["actiontype"] = "sort-filter";
12-
var pageUrl = Model.CatalogueId > 0 ? "/catalogue/" + Model.CatalogueUrl +"/search" : "/search/results";
12+
var pageUrl = Model.CatalogueId > 0 ? "/catalogue/" + Model.CatalogueUrl + "/search" : "/search/results";
1313
var actionUrl = QueryHelpers.AddQueryString(pageUrl, queryParams);
1414
var pageFragment = "#search-filters";
1515

@@ -25,10 +25,10 @@
2525
.Select(f => $"<strong class='nhsuk-tag'>{char.ToUpper(f.DisplayName[0])}{f.DisplayName[1..]}</strong>");
2626

2727
if (resourceAccessLevelFilters.Any())
28-
{
28+
{
2929
summary += $" and Filtered by Audience access level {string.Join(" ", resourceAccessLevelFilters)}";
3030
}
31-
31+
3232

3333
var providerfilters = resourceResult.SearchProviderFilters.Where(f => f.Selected).Select(f => $"<strong class='nhsuk-tag'>{f.DisplayName}</strong>");
3434

@@ -57,12 +57,51 @@
5757
<input type="hidden" name="groupId" value="@Model.GroupId" />
5858
<input type="hidden" name="resourceCount" value="@Model.ResourceSearchResult.TotalHits" />
5959

60+
<div class="show-filters nhsuk-u-margin-bottom-4">
61+
<fieldset class="nhsuk-fieldset">
62+
<legend class="nhsuk-fieldset__legend">
63+
<strong>Show</strong>
64+
</legend>
65+
<div class="nhsuk-radios nhsuk-radios--inline">
66+
<div class="nhsuk-radios__item">
67+
<input class="nhsuk-radios__input" id="show-all" name="resourceCollectionFilter" type="radio" value="all" checked="@((Model.ResourceCollectionFilter ?? "all") == "all")" onchange="this.form.submit()">
68+
<label class="nhsuk-label nhsuk-radios__label" for="show-all">
69+
All
70+
</label>
71+
</div>
72+
<div class="nhsuk-radios__item">
73+
<input class="nhsuk-radios__input" id="show-catalogues" name="resourceCollectionFilter" type="radio" value="catalogues" checked="@((Model.ResourceCollectionFilter ?? "all") == "catalogues")" onchange="this.form.submit()">
74+
<label class="nhsuk-label nhsuk-radios__label" for="show-catalogues">
75+
Catalogues
76+
</label>
77+
</div>
78+
<div class="nhsuk-radios__item">
79+
<input class="nhsuk-radios__input" id="show-courses" name="resourceCollectionFilter" type="radio" value="courses" checked="@((Model.ResourceCollectionFilter ?? "all") == "courses")" ange="this.form.submit()">
80+
<label class="nhsuk-label nhsuk-radios__label" for="show-courses">
81+
Courses
82+
</label>
83+
</div>
84+
<div class="nhsuk-radios__item">
85+
<input class="nhsuk-radios__input" id="show-resources" name="resourceCollectionFilter" type="radio" value="resources" checked="@((Model.ResourceCollectionFilter ?? "all") == "resources")" onchange="this.fsubmit()">
86+
<label class="nhsuk-label nhsuk-radios__label" for="show-resources">
87+
Resources
88+
</label>
89+
</div>
90+
</div>
91+
</fieldset>
92+
</div>
93+
6094
<details class="nhsuk-details nhsuk-expander nhsuk-u-margin-bottom-7" @(this.ViewBag.SelectFilterError == true ? "open" : "")>
6195

6296
<summary class="nhsuk-details__summary nhsuk-u-padding-0">
63-
<span class="nhsuk-details__summary-text">
64-
Sort and filter results
65-
</span>
97+
<div class="summary-container">
98+
<span class="nhsuk-details__summary-text">
99+
Sort and filter results
100+
</span>
101+
<span class="sorted-by-inline">
102+
Sorted by: <strong class='nhsuk-tag'>@resourceResult.SortItemSelected.Name</strong>
103+
</span>
104+
</div>
66105

67106
<hr class="nhsuk-u-margin-top-4 nhsuk-u-margin-bottom-4" />
68107

@@ -128,7 +167,7 @@
128167
<div class="nhsuk-u-padding-left-0">
129168
<div class="nhsuk-checkboxes__item nhsuk-u-padding-bottom-3">
130169
<input class="nhsuk-checkboxes__input" id="[email protected]" name="resourceAccessLevelId" type="checkbox"
131-
value="@filter.Value" checked="@filter.Selected" class="@(filter.Count > 0 ? "" : "disabled")">
170+
value="@filter.Value" checked="@filter.Selected" class="@(filter.Count > 0 ? "" : "disabled")">
132171
<label class="nhsuk-label nhsuk-checkboxes__label" for="[email protected]">
133172
Show @filter.DisplayName (@filter.Count)
134173
</label>
@@ -157,7 +196,7 @@
157196

158197
<div class="nhsuk-checkboxes__item nhsuk-u-padding-bottom-3">
159198
<input class="nhsuk-checkboxes__input" id="[email protected]" name="providerfilters" type="checkbox"
160-
value="@filter.Value" checked="@filter.Selected" class="@(filter.Count > 0 ? "" : "disabled")">
199+
value="@filter.Value" checked="@filter.Selected" class="@(filter.Count > 0 ? "" : "disabled")">
161200
<label class="nhsuk-label nhsuk-checkboxes__label" for="[email protected]">
162201
@filter.DisplayName (@filter.Count)
163202
</label>

0 commit comments

Comments
 (0)