From c4343c1332da7203432695cd39b29b39498180aa Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Mon, 25 Mar 2024 09:39:35 -0400 Subject: [PATCH] [ACS-7338] Fix search input formatting for asterisk (#9459) * fix: double asterisk formatting for search input * fix: double asterisk formatting for search input * fix: double asterisk formatting for search input --- .../search-input/search-input.component.spec.ts | 9 +++++++++ .../components/search-input/search-input.component.ts | 5 +++++ 2 files changed, 14 insertions(+) diff --git a/lib/content-services/src/lib/search/components/search-input/search-input.component.spec.ts b/lib/content-services/src/lib/search/components/search-input/search-input.component.spec.ts index 28ad56f71a..53d14525ca 100644 --- a/lib/content-services/src/lib/search/components/search-input/search-input.component.spec.ts +++ b/lib/content-services/src/lib/search/components/search-input/search-input.component.spec.ts @@ -84,6 +84,15 @@ describe('SearchInputComponent', () => { expect(formatted).toBe('(cm:name:"test*")'); }); + it('should not append asterisk if one is already provided', async () => { + let formatted = ''; + component.changed.subscribe((val) => (formatted = val)); + + await setInputValue('*'); + + expect(formatted).toBe('(cm:name:"*")'); + }); + it('should format with AND by default', async () => { let formatted = ''; component.changed.subscribe((val) => (formatted = val)); diff --git a/lib/content-services/src/lib/search/components/search-input/search-input.component.ts b/lib/content-services/src/lib/search/components/search-input/search-input.component.ts index 7b14865e09..c349b627b7 100644 --- a/lib/content-services/src/lib/search/components/search-input/search-input.component.ts +++ b/lib/content-services/src/lib/search/components/search-input/search-input.component.ts @@ -100,6 +100,11 @@ export class SearchInputComponent { term = term.substring(1); } + if (term === '*') { + prefix = ''; + suffix = ''; + } + return '(' + fields.map((field) => `${prefix}${field}:"${term}${suffix}"`).join(' OR ') + ')'; } }