From ed1e94fb6dd5e022fcaf75d49d90d59aebcffcee Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem Date: Sun, 1 Mar 2026 15:12:12 +0100 Subject: [PATCH] 139085: Fix advanced search & hierarchical search not supporting inPlaceSearch --- .../advanced-search.component.ts | 24 ++++++++++++++----- .../search-hierarchy-filter.component.ts | 2 +- .../search-sidebar.component.html | 1 + 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/app/shared/search/advanced-search/advanced-search.component.ts b/src/app/shared/search/advanced-search/advanced-search.component.ts index 921e5df2831..bba6747b25c 100644 --- a/src/app/shared/search/advanced-search/advanced-search.component.ts +++ b/src/app/shared/search/advanced-search/advanced-search.component.ts @@ -1,7 +1,4 @@ -import { - AsyncPipe, - KeyValuePipe, -} from '@angular/common'; +import { AsyncPipe } from '@angular/common'; import { Component, Inject, @@ -37,6 +34,7 @@ import { } from '../../empty.util'; import { FilterInputSuggestionsComponent } from '../../input-suggestions/filter-suggestions/filter-input-suggestions.component'; import { InputSuggestion } from '../../input-suggestions/input-suggestions.model'; +import { currentPath } from '../../utils/route.utils'; import { FilterType } from '../models/filter-type.model'; import { SearchFilterConfig } from '../models/search-filter-config.model'; @@ -53,7 +51,6 @@ import { SearchFilterConfig } from '../models/search-filter-config.model'; BtnDisabledDirective, FilterInputSuggestionsComponent, FormsModule, - KeyValuePipe, TranslateModule, ], }) @@ -69,6 +66,11 @@ export class AdvancedSearchComponent implements OnInit, OnDestroy { */ @Input() filtersConfig: SearchFilterConfig[]; + /** + * True when the search component should show results on the current page + */ + @Input() inPlaceSearch: boolean; + /** * The current search scope */ @@ -134,11 +136,21 @@ export class AdvancedSearchComponent implements OnInit, OnDestroy { } } + /** + * @returns {string} The base path to the search page, or the current page when inPlaceSearch is true + */ + getSearchLink(): string { + if (this.inPlaceSearch) { + return currentPath(this.router); + } + return this.searchService.getSearchLink(); + } + applyFilter(): void { if (isNotEmpty(this.currentValue)) { this.searchFilterService.minimizeAll(); this.subs.push(this.searchConfigurationService.selectNewAppliedFilterParams(this.currentFilter, this.currentValue.trim(), this.currentOperator).pipe(take(1)).subscribe((params: Params) => { - void this.router.navigate([this.searchService.getSearchLink()], { + void this.router.navigate([this.getSearchLink()], { queryParams: params, }); this.currentValue = ''; diff --git a/src/app/shared/search/search-filters/search-filter/search-hierarchy-filter/search-hierarchy-filter.component.ts b/src/app/shared/search/search-filters/search-filter/search-hierarchy-filter/search-hierarchy-filter.component.ts index c979b82828e..13f0965d275 100644 --- a/src/app/shared/search/search-filters/search-filter/search-hierarchy-filter/search-hierarchy-filter.component.ts +++ b/src/app/shared/search/search-filters/search-filter/search-hierarchy-filter/search-hierarchy-filter.component.ts @@ -138,7 +138,7 @@ export class SearchHierarchyFilterComponent extends SearchFacetFilterComponent i take(1), ).subscribe((params: Params) => { void this.router.navigate( - [this.searchService.getSearchLink()], + [this.getSearchLink()], { queryParams: params, }, diff --git a/src/app/shared/search/search-sidebar/search-sidebar.component.html b/src/app/shared/search/search-sidebar/search-sidebar.component.html index 9c9e4a90019..d6688ffd65e 100644 --- a/src/app/shared/search/search-sidebar/search-sidebar.component.html +++ b/src/app/shared/search/search-sidebar/search-sidebar.component.html @@ -32,6 +32,7 @@ }