mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 01:54:15 +00:00
111731: Simplified the response of the retrieveFilterValues#facetValues$ by removing the page option
This commit is contained in:
@@ -265,38 +265,27 @@ export class SearchFacetFilterComponent implements OnInit, OnDestroy {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected retrieveFilterValues(useCachedVersionIfAvailable = true): Observable<RemoteData<FacetValues[]>> {
|
protected retrieveFilterValues(useCachedVersionIfAvailable = true): Observable<RemoteData<FacetValues[]>> {
|
||||||
const facetValues$: Observable<{ values: Observable<RemoteData<FacetValues>>, page: number}> = observableCombineLatest([this.searchOptions$, this.currentPage]).pipe(
|
const facetValues$: Observable<RemoteData<FacetValues>> = observableCombineLatest([this.searchOptions$, this.currentPage]).pipe(
|
||||||
switchMap(([options, page]: [SearchOptions, number]) => {
|
switchMap(([options, page]: [SearchOptions, number]) => this.searchService.getFacetValuesFor(this.filterConfig, page, options, null, useCachedVersionIfAvailable)),
|
||||||
return this.searchService.getFacetValuesFor(this.filterConfig, page, options, null, useCachedVersionIfAvailable)
|
getFirstSucceededRemoteData(),
|
||||||
.pipe(
|
tap((rd: RemoteData<FacetValues>) => {
|
||||||
getFirstSucceededRemoteData(),
|
this.isLastPage$.next(hasNoValue(rd?.payload?.next));
|
||||||
tap((rd: RemoteData<FacetValues>) => {
|
}),
|
||||||
this.isLastPage$.next(hasNoValue(rd?.payload?.next));
|
|
||||||
}),
|
|
||||||
map((rd: RemoteData<FacetValues>) => ({
|
|
||||||
values: observableOf(rd),
|
|
||||||
page: page
|
|
||||||
})
|
|
||||||
)
|
|
||||||
);
|
|
||||||
})
|
|
||||||
);
|
);
|
||||||
|
|
||||||
let filterValues: Observable<RemoteData<FacetValues>>[] = [];
|
let filterValues: Observable<RemoteData<FacetValues>>[] = [];
|
||||||
return facetValues$.pipe(
|
return facetValues$.pipe(
|
||||||
mergeMap((facetOutcome: { values: Observable<RemoteData<FacetValues>>, page: number}) => {
|
mergeMap((newValues: RemoteData<FacetValues>) => {
|
||||||
const newValues$ = facetOutcome.values;
|
|
||||||
|
|
||||||
if (this.collapseNextUpdate) {
|
if (this.collapseNextUpdate) {
|
||||||
this.showFirstPageOnly();
|
this.showFirstPageOnly();
|
||||||
facetOutcome.page = 1;
|
filterValues = [];
|
||||||
this.collapseNextUpdate = false;
|
this.collapseNextUpdate = false;
|
||||||
}
|
}
|
||||||
if (facetOutcome.page === 1) {
|
if (newValues.payload.pageInfo.currentPage === 1) {
|
||||||
filterValues = [];
|
filterValues = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
filterValues = [...filterValues, newValues$];
|
filterValues = [...filterValues, observableOf(newValues)];
|
||||||
|
|
||||||
return this.rdbs.aggregate(filterValues);
|
return this.rdbs.aggregate(filterValues);
|
||||||
}),
|
}),
|
||||||
|
@@ -62,6 +62,9 @@ describe('SearchHierarchyFilterComponent', () => {
|
|||||||
value: value3,
|
value: value3,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
pageInfo: {
|
||||||
|
currentPage: 1,
|
||||||
|
},
|
||||||
} as Partial<FacetValues> as FacetValues;
|
} as Partial<FacetValues> as FacetValues;
|
||||||
|
|
||||||
const searchFilterServiceStub = {
|
const searchFilterServiceStub = {
|
||||||
|
Reference in New Issue
Block a user