From 95830e59066c7da9ffa19755a05a467b333850c2 Mon Sep 17 00:00:00 2001 From: Vlad0n20 Date: Mon, 15 Jun 2026 12:31:41 +0200 Subject: [PATCH 1/2] fix(ENG-11346): show placeholder in cedar-derived filter dropdowns --- .../search-filters/search-filters.component.html | 2 +- .../search-filters.component.spec.ts | 14 ++++++++++++++ .../search-filters/search-filters.component.ts | 4 ++++ src/assets/i18n/en.json | 3 ++- 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/app/shared/components/search-filters/search-filters.component.html b/src/app/shared/components/search-filters/search-filters.component.html index 513133e26..67db13ec0 100644 --- a/src/app/shared/components/search-filters/search-filters.component.html +++ b/src/app/shared/components/search-filters/search-filters.component.html @@ -24,7 +24,7 @@ { expect(component.selectedOptionValues()).toEqual({}); }); + + it('should return specific placeholder key for known filter keys', () => { + fixture.detectChanges(); + + const filter = { key: 'subject', label: 'Subject' } as DiscoverableFilter; + expect(component.getPlaceholderKey(filter)).toBe('common.search.filterPlaceholders.subject'); + }); + + it('should return generic placeholder key for CEDAR-derived filters not in FILTER_PLACEHOLDERS', () => { + fixture.detectChanges(); + + const cedarFilter = { key: 'Collected Type Choices', label: 'Collected Type Choices' } as DiscoverableFilter; + expect(component.getPlaceholderKey(cedarFilter)).toBe('common.search.filterPlaceholders.generic'); + }); }); diff --git a/src/app/shared/components/search-filters/search-filters.component.ts b/src/app/shared/components/search-filters/search-filters.component.ts index f7f8991f4..1b26fb1e7 100644 --- a/src/app/shared/components/search-filters/search-filters.component.ts +++ b/src/app/shared/components/search-filters/search-filters.component.ts @@ -128,6 +128,10 @@ export class SearchFiltersComponent { this.filterOptionSelected.emit({ filter, filterOption: isChecked ? [option] : [] }); } + getPlaceholderKey(filter: DiscoverableFilter): string { + return FILTER_PLACEHOLDERS[filter.key] || 'common.search.filterPlaceholders.generic'; + } + private scrollPanelIntoView(key: string) { of(key) .pipe(delay(this.SCROLL_DELAY_MS), takeUntilDestroyed(this.destroyRef)) diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index 3bc06149b..be4df2ce8 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -105,7 +105,8 @@ "isPartOfCollection": "Select collection", "dateCreated": "Select date", "creator": "Creator name", - "resourceType": "Select resource type" + "resourceType": "Select resource type", + "generic": "Select {{label}}" } }, "sort": { From f0167e66e71c2d5b316a833e6c511362841a86cd Mon Sep 17 00:00:00 2001 From: Vlad0n20 Date: Mon, 15 Jun 2026 17:39:20 +0200 Subject: [PATCH 2/2] fix(ENG-11346): use nullish coalescing operator --- .../components/search-filters/search-filters.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/shared/components/search-filters/search-filters.component.ts b/src/app/shared/components/search-filters/search-filters.component.ts index 1b26fb1e7..bac738417 100644 --- a/src/app/shared/components/search-filters/search-filters.component.ts +++ b/src/app/shared/components/search-filters/search-filters.component.ts @@ -129,7 +129,7 @@ export class SearchFiltersComponent { } getPlaceholderKey(filter: DiscoverableFilter): string { - return FILTER_PLACEHOLDERS[filter.key] || 'common.search.filterPlaceholders.generic'; + return FILTER_PLACEHOLDERS[filter.key] ?? 'common.search.filterPlaceholders.generic'; } private scrollPanelIntoView(key: string) {