Skip to content

Commit f84ca09

Browse files
committed
Hide empty filters and empty filter groups on search results page
1 parent e0ad80f commit f84ca09

File tree

1 file changed

+48
-28
lines changed

1 file changed

+48
-28
lines changed

webapp/src/main/webapp/templates/freemarker/body/search/search-lib.ftl

Lines changed: 48 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -31,25 +31,23 @@
3131
<div id="selected-filters">
3232
<@printSelectedFilterValueLabels filters />
3333
</div>
34-
<div id="filter-groups" class="tabs">
35-
<#assign active = true>
36-
<#list filterGroups as group>
37-
<#if group.displayed >
38-
<@searchFormGroupTab group active/>
39-
<#assign active = false>
40-
</#if>
41-
</#list>
42-
</div>
43-
<div class="tabs filter-area">
44-
<#assign active = true>
45-
<#list filterGroups as group>
46-
<#if group.displayed >
47-
<@groupFilters group active/>
48-
<#assign active = false>
49-
</#if>
50-
</#list>
51-
</div>
52-
34+
<#assign filterGroupTabsContent>
35+
<@filterGroupTabs/>
36+
</#assign>
37+
<#if filterGroupTabsContent?has_content>
38+
<div id="filter-groups" class="tabs">
39+
${filterGroupTabsContent}
40+
</div>
41+
<div class="tabs filter-area">
42+
<#assign active = true>
43+
<#list filterGroups as group>
44+
<#if group.displayed && !isEmptyGroup(group)>
45+
<@groupFilters group active/>
46+
<#assign active = false>
47+
</#if>
48+
</#list>
49+
</div>
50+
</#if>
5351
<div id="search-form-footer">
5452
<div>
5553
<@printResultNumbers />
@@ -63,16 +61,25 @@
6361
</div>
6462
</#macro>
6563

64+
<#macro filterGroupTabs >
65+
<#assign active = true>
66+
<#list filterGroups as group>
67+
<#if group.displayed && !isEmptyGroup(group)>
68+
<@searchFormGroupTab group active/>
69+
<#assign active = false>
70+
</#if>
71+
</#list>
72+
</#macro>
73+
6674
<#macro groupFilters group active>
67-
6875
<div id="${group.id}" class="tab <#if active >active<#else>fade</#if>">
6976
<div id="search-filter-group-container-${group.id}" class="search-filter-group-container">
7077
<div class="tabs">
7178
<#assign assignedActive = false>
7279
<#list group.filters as filterId>
7380
<#if filters[filterId]??>
7481
<#assign f = filters[filterId]>
75-
<#if f.displayed >
82+
<#if f.displayed && !isEmptyFilter(f) >
7683
<@searchFormFilterTab f assignedActive/>
7784
<#if !assignedActive && (f.selected || emptySearch )>
7885
<#assign assignedActive = true>
@@ -87,7 +94,7 @@
8794
<#list group.filters as filterId>
8895
<#if filters[filterId]??>
8996
<#assign f = filters[filterId]>
90-
<#if f.displayed >
97+
<#if f.displayed && !isEmptyFilter(f) >
9198
<@printFilterValues f assignedActive emptySearch/>
9299
<#if !assignedActive && ( f.selected || emptySearch )>
93100
<#assign assignedActive = true>
@@ -157,12 +164,9 @@
157164
</#macro>
158165

159166
<#macro searchFormFilterTab filter assignedActive>
160-
<#if filter.id == "querytext">
161-
<#return>
162-
</#if>
163-
<div class="tab filter-tab" >
164-
<a href="#" onclick="openTab(event, '${filter.id?html}');return false;">${filter.name?html}</a>
165-
</div>
167+
<div class="tab filter-tab" >
168+
<a href="#" onclick="openTab(event, '${filter.id?html}');return false;">${filter.name?html}</a>
169+
</div>
166170
</#macro>
167171

168172
<#macro printFilterValues filter assignedActive isEmptySearch>
@@ -297,3 +301,19 @@
297301
</#if>
298302
<#return result />
299303
</#function>
304+
305+
<#function isEmptyFilter filter >
306+
<#return filter.id == "querytext" || (filter.type != "RangeFilter" && !filter.input && filter.values?values?filter(v -> !v.selected)?size == 0 ) />
307+
</#function>
308+
309+
<#function isEmptyGroup group >
310+
<#list group.filters as filterId>
311+
<#if filters[filterId]??>
312+
<#assign f = filters[filterId]>
313+
<#if f.displayed && !isEmptyFilter(f) >
314+
<#return false />
315+
</#if>
316+
</#if>
317+
</#list>
318+
<#return true />
319+
</#function>

0 commit comments

Comments
 (0)