[ACA-1740] hide search filter when getting 0 results without any selected filters (#591)

This commit is contained in:
Suzana Dirla
2018-08-31 19:34:55 +01:00
committed by Denys Vuika
parent d607618920
commit a9c6d0f942
2 changed files with 23 additions and 2 deletions
@@ -14,7 +14,7 @@
<div class="adf-search-results">
<adf-search-filter
#searchFilter
[ngClass]="{ 'adf-search-filter--hidden': !searchedWord }"></adf-search-filter>
[ngClass]="{ 'adf-search-filter--hidden': hideSearchFilter() }"></adf-search-filter>
<div class="adf-search-results__content">
<mat-progress-bar
*ngIf="isLoading"
@@ -26,7 +26,7 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { NodePaging, Pagination, MinimalNodeEntity } from 'alfresco-js-api';
import { ActivatedRoute, Params } from '@angular/router';
import { SearchQueryBuilderService, SearchComponent as AdfSearchComponent } from '@alfresco/adf-content-services';
import { SearchQueryBuilderService, SearchComponent as AdfSearchComponent, SearchFilterComponent } from '@alfresco/adf-content-services';
import { PageComponent } from '../../page.component';
import { Store } from '@ngrx/store';
import { AppStore } from '../../../store/states/app.state';
@@ -45,10 +45,14 @@ export class SearchResultsComponent extends PageComponent implements OnInit {
@ViewChild('search')
search: AdfSearchComponent;
@ViewChild('searchFilter')
searchFilter: SearchFilterComponent;
searchedWord: string;
queryParamName = 'q';
data: NodePaging;
totalResults = 0;
hasSelectedFilters = false;
sorting = ['name', 'asc'];
isLoading = false;
@@ -114,6 +118,7 @@ export class SearchResultsComponent extends PageComponent implements OnInit {
onSearchResultLoaded(nodePaging: NodePaging) {
this.data = nodePaging;
this.totalResults = this.getNumberOfResults();
this.hasSelectedFilters = this.isFiltered();
}
getNumberOfResults() {
@@ -123,6 +128,18 @@ export class SearchResultsComponent extends PageComponent implements OnInit {
return 0;
}
isFiltered(): boolean {
return this.searchFilter.selectedFacetQueries.length > 0
|| this.searchFilter.selectedBuckets.length > 0
|| this.hasCheckedCategories();
}
hasCheckedCategories() {
const checkedCategory = this.queryBuilder.categories
.find(category => !!this.queryBuilder.queryFragments[category.id]);
return !!checkedCategory;
}
onPaginationChanged(pagination: Pagination) {
this.queryBuilder.paging = {
maxItems: pagination.maxItems,
@@ -156,4 +173,8 @@ export class SearchResultsComponent extends PageComponent implements OnInit {
this.showPreview(node);
}
}
hideSearchFilter() {
return !this.totalResults && !this.hasSelectedFilters;
}
}