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 38ab35367c2..fdae44a90cf 100644 --- a/src/app/shared/search/advanced-search/advanced-search.component.ts +++ b/src/app/shared/search/advanced-search/advanced-search.component.ts @@ -15,6 +15,7 @@ import { APP_CONFIG, AppConfig, } from '@dspace/config/app-config.interface'; +import { currentPath } from '@dspace/core/router/utils/route.utils'; import { FilterType } from '@dspace/core/shared/search/models/filter-type.model'; import { SearchFilterConfig } from '@dspace/core/shared/search/models/search-filter-config.model'; import { FilterConfig } from '@dspace/core/shared/search/search-filters/search-config.model'; @@ -64,6 +65,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 */ @@ -129,11 +135,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 661a8f21e58..f81cfee20dd 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 @@ -137,7 +137,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 @@ }