[ADF-4083] search facetFields - empty spaced labels support (#4322)

* [ADF-4083] ignore wrapping quotes for facet labels

- bucket selection needs fixing

* [ADF-4083] fix bucket selection

- generate missing filterQuery values

* [ADF-4083] fix label display

* [ADF-4083] renaming

* [ADF-4083] support also single quotes label wrappings

- update documentation
- tests

* [ADF-4083] automatically escape facet field labels having spaces - better fix

* [ADF-4083] remove unneeded mentions from documentation

* [ADF-4083] clean-up code

* [ADF-4083] better naming param

* [ADF-4083] small refactoring
This commit is contained in:
Suzana Dirla
2019-02-21 14:49:47 +02:00
committed by Eugenio Romano
parent 877c57b356
commit bfec78aec9
5 changed files with 76 additions and 12 deletions

View File

@@ -175,6 +175,7 @@ export class SearchQueryBuilderService {
const fields = this.config.facetFields.fields || [];
const result = fields.find((field) => field.label === label);
if (result) {
result.label = this.getSupportedLabel(result.label);
return { ...result };
}
}
@@ -352,6 +353,7 @@ export class SearchQueryBuilderService {
if (this.userFacetBuckets) {
Object.keys(this.userFacetBuckets).forEach((key) => {
const subQuery = (this.userFacetBuckets[key] || [])
.filter((bucket) => bucket.filterQuery)
.map((bucket) => bucket.filterQuery)
.join(' OR ');
if (subQuery) {
@@ -374,7 +376,7 @@ export class SearchQueryBuilderService {
facets: facetFields.map((facet) => <RequestFacetField> {
field: facet.field,
mincount: facet.mincount,
label: facet.label,
label: this.getSupportedLabel(facet.label),
limit: facet.limit,
offset: facet.offset,
prefix: facet.prefix
@@ -384,4 +386,12 @@ export class SearchQueryBuilderService {
return null;
}
getSupportedLabel(configLabel: string): string {
const spaceInsideLabelIndex = configLabel.search(/\s/g);
if (spaceInsideLabelIndex > -1) {
return `"${configLabel}"`;
}
return configLabel;
}
}