From f45598b1907ec948b3c92262886929c83743b073 Mon Sep 17 00:00:00 2001 From: "konstantina.galouni" Date: Wed, 7 Feb 2024 15:55:56 +0200 Subject: [PATCH] [develop | DONE | FIXED]: [BUG FIX] Moved checks for filtering out filter values in parsing phase. 1. refineResults.class.ts: a. Updated method "includeValue()" and include "null" (as a string) check | Call method "includeValue()" when creating filters. b. Set filter.countUnfilteredValues to the length of values returned by the service before filtering them out. c. Check if filters returned by service before trying to parse anything. 2. searchHelperClasses.class.ts: Added in Filter structure the field "public countUnfilteredValues?: number = 0;", to check if there are more values to be queried (show "view all" link or not). 3. searchFilter.component.ts: Updated check of hasMoreValues to show or not the "view all" link - check filter.countUnfilteredValues | Comment filtering out of filter values - moved to refineResults.class.ts. --- .../searchUtils/searchFilter.component.ts | 6 ++++-- .../searchUtils/searchHelperClasses.class.ts | 1 + services/servicesUtils/refineResults.class.ts | 16 ++++++++++------ 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/searchPages/searchUtils/searchFilter.component.ts b/searchPages/searchUtils/searchFilter.component.ts index 896cc360..12a4bed0 100644 --- a/searchPages/searchUtils/searchFilter.component.ts +++ b/searchPages/searchUtils/searchFilter.component.ts @@ -84,9 +84,11 @@ export class SearchFilterComponent implements OnInit, OnChanges { ngOnChanges(changes: SimpleChanges) { if (changes.filter) { - this.hasMoreValues = this.filter.values.length > this.filterValuesNum; + this.hasMoreValues = (this.filter.countUnfilteredValues > 0 ? this.filter.countUnfilteredValues : this.filter.values.length) > this.filterValuesNum; // this.filter.values = this.filter.values.filter(value => !value.name.toLowerCase().includes('unknown') && !value.name.toLowerCase().includes('not available')); - this.filter.values = this.filter.values.filter(value => value && value.name != "unidentified" && value.name != "Undetermined" && !value.name.toLowerCase().includes('unknown') && !value.name.toLowerCase().includes('not available')); + // this.filter.values = this.filter.values.filter(value => value && value.name != "unidentified" && value.name != "Undetermined" && !value.name.toLowerCase().includes('unknown') && !value.name.toLowerCase().includes('not available') + // && value.name.toLowerCase() != "null" + // ); if (this.filter.filterType == "radio") { this.filter.radioValue = ""; diff --git a/searchPages/searchUtils/searchHelperClasses.class.ts b/searchPages/searchUtils/searchHelperClasses.class.ts index 01a68404..03d5a603 100644 --- a/searchPages/searchUtils/searchHelperClasses.class.ts +++ b/searchPages/searchUtils/searchHelperClasses.class.ts @@ -13,6 +13,7 @@ export class Filter{ // public uniqueValueIdSelected: string; public countAllValues?: number = -1; // -1: not yet requested, 0: request failed, >0 OK public isOpen?: boolean = false; + public countUnfilteredValues?: number = 0; } export class Value{ diff --git a/services/servicesUtils/refineResults.class.ts b/services/servicesUtils/refineResults.class.ts index 01ec207b..dcd48d17 100644 --- a/services/servicesUtils/refineResults.class.ts +++ b/services/servicesUtils/refineResults.class.ts @@ -11,7 +11,7 @@ export class RefineResultsUtils { var searchFields:SearchFields = new SearchFields(); var filters:Filter[] = []; - if(data && fields){ + if(data && Object.keys(data).length > 0 && fields){ for(let j=0; j