From 6237af79d368bc24b4e5a25f8240d07ce54c2b24 Mon Sep 17 00:00:00 2001 From: Suzana Dirla Date: Mon, 1 Oct 2018 16:16:00 +0300 Subject: [PATCH] [ADF-3536] Search categories get collapsed/expanded to initial state after applying filter (#3835) * [ADF-3536] fix expanded/collapsed issue * [ADF-3536] clean up code --- .../search-filter/search-filter.component.ts | 55 ++++++++----------- 1 file changed, 23 insertions(+), 32 deletions(-) diff --git a/lib/content-services/search/components/search-filter/search-filter.component.ts b/lib/content-services/search/components/search-filter/search-filter.component.ts index fc47c1a05f..3bc692890c 100644 --- a/lib/content-services/search/components/search-filter/search-filter.component.ts +++ b/lib/content-services/search/components/search-filter/search-filter.component.ts @@ -212,39 +212,11 @@ export class SearchFilterComponent implements OnInit, OnDestroy { } private parseFacetFields(context: any) { - const configFacetFields = this.queryBuilder.config.facetFields && this.queryBuilder.config.facetFields.fields || []; - - const bkpResponseFacetFields = [...this.responseFacetFields || []]; - this.responseFacetFields = configFacetFields - .map(field => { - - const bkpField = bkpResponseFacetFields.find(item => item.field === field.field); - - let bkpBuckets = (bkpField && bkpField.buckets.items || []) - .map(bucket => { - const currentlySelected = this.selectedBuckets.find(facetBucket => facetBucket.bucket.label === bucket.label); - bucket.count = (currentlySelected ? 0 : null); - - return bucket; - }); - - let responseField = (context.facetsFields || []).find(response => response.label === field.label); - - if (!responseField && bkpBuckets.length) { - responseField = { buckets: [...bkpBuckets] }; - } - - if (responseField && this.selectedBuckets.length) { - responseField.buckets = bkpBuckets.map(bkpBucket => { - const responseBucket = responseField.buckets.find(respBucket => respBucket.label === bkpBucket.label); - - if (responseBucket) { - bkpBucket.count = responseBucket.count; - } - return bkpBucket; - }); - } + if (!this.responseFacetFields) { + const configFacetFields = this.queryBuilder.config.facetFields && this.queryBuilder.config.facetFields.fields || []; + this.responseFacetFields = configFacetFields.map(field => { + const responseField = (context.facetsFields || []).find(response => response.label === field.label); const buckets: FacetFieldBucket[] = ((responseField && responseField.buckets) || []).map(bucket => { const selectedBucket = this.selectedBuckets.find(facetBucket => facetBucket.bucket.label === bucket.label && facetBucket.field.field === field.field); @@ -273,6 +245,25 @@ export class SearchFilterComponent implements OnInit, OnDestroy { buckets: bucketList }; }); + + } else { + + this.responseFacetFields = this.responseFacetFields + .map(field => { + + let responseField = (context.facetsFields || []).find(response => response.label === field.label); + + (field && field.buckets && field.buckets.items || []) + .map(bucket => { + const responseBucket = ((responseField && responseField.buckets) || []).find(respBucket => respBucket.label === bucket.label); + + bucket.count = responseBucket ? responseBucket.count : 0; + return bucket; + }); + + return field; + }); + } } private parseFacetQueries(context: any) {