diff --git a/ui/src/app/core/model/query.ts b/ui/src/app/core/model/query.ts index 5c2cb11a3..d7d85a841 100644 --- a/ui/src/app/core/model/query.ts +++ b/ui/src/app/core/model/query.ts @@ -1,5 +1,6 @@ export interface QueryParams { term: string; + resourceId?: string; limit?: number; offset?: number; } diff --git a/ui/src/app/metadata/filter/action/collection.action.ts b/ui/src/app/metadata/filter/action/collection.action.ts index afc514ea0..938b38ce4 100644 --- a/ui/src/app/metadata/filter/action/collection.action.ts +++ b/ui/src/app/metadata/filter/action/collection.action.ts @@ -24,6 +24,8 @@ export enum FilterCollectionActionTypes { REMOVE_FILTER_SUCCESS = '[Metadata Filter Collection] Remove Filter Success', REMOVE_FILTER_FAIL = '[Metadata Filter Collection] Remove Filter Fail', + CLEAR_FILTERS = '[Metadata Filter Collection] Clear Filters', + SET_ORDER_FILTER_REQUEST = '[Metadata Filter Collection] Set Order Filter Request', SET_ORDER_FILTER_SUCCESS = '[Metadata Filter Collection] Set Order Filter Success', SET_ORDER_FILTER_FAIL = '[Metadata Filter Collection] Set Order Filter Fail', @@ -33,7 +35,8 @@ export enum FilterCollectionActionTypes { GET_ORDER_FILTER_FAIL = '[Metadata Filter Collection] Get Order Filter Fail', CHANGE_FILTER_ORDER_UP = '[Metadata Filter Collection] Change Order Up', - CHANGE_FILTER_ORDER_DOWN = '[Metadata Filter Collection] Change Order Down', + CHANGE_FILTER_ORDER_DOWN = '[Metadata Filter Collection] Change Order Down' + } export class SelectFilter implements Action { @@ -126,6 +129,10 @@ export class RemoveFilterFail implements Action { constructor(public error: Error) { } } +export class ClearFilters implements Action { + readonly type = FilterCollectionActionTypes.CLEAR_FILTERS; +} + export class SetOrderFilterRequest implements Action { readonly type = FilterCollectionActionTypes.SET_ORDER_FILTER_REQUEST; @@ -190,6 +197,7 @@ export type FilterCollectionActionsUnion = | UpdateFilterRequest | UpdateFilterSuccess | UpdateFilterFail + | ClearFilters | ChangeFilterOrderDown | ChangeFilterOrderUp | GetOrderFilterRequest diff --git a/ui/src/app/metadata/filter/effect/search.effect.ts b/ui/src/app/metadata/filter/effect/search.effect.ts index 7642728e5..53db753e8 100644 --- a/ui/src/app/metadata/filter/effect/search.effect.ts +++ b/ui/src/app/metadata/filter/effect/search.effect.ts @@ -1,9 +1,11 @@ import { Injectable } from '@angular/core'; import { Effect, Actions, ofType } from '@ngrx/effects'; +import { Store } from '@ngrx/store'; import { of } from 'rxjs'; -import { catchError, map, debounceTime, switchMap } from 'rxjs/operators'; +import { catchError, map, debounceTime, switchMap, withLatestFrom } from 'rxjs/operators'; import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap'; +import { State } from '../../../app.reducer'; import { SearchActionTypes, @@ -18,6 +20,7 @@ import { SearchDialogComponent } from '../component/search-dialog.component'; import { EntityIdService } from '../../domain/service/entity-id.service'; import { fromPromise } from 'rxjs/internal-compatibility'; import { SelectId } from '../action/filter.action'; +import * as fromProvider from '../../provider/reducer'; @Injectable() @@ -29,6 +32,8 @@ export class SearchIdEffects { ofType(SearchActionTypes.QUERY_ENTITY_IDS), map(action => action.payload), debounceTime(this.dbounce), + withLatestFrom(this.store.select(fromProvider.getSelectedProviderId)), + map(([query, resourceId]) => ({ ...query, resourceId })), switchMap(query => this.idService.query(query).pipe( map(ids => new LoadEntityIdsSuccess(ids)), @@ -55,6 +60,7 @@ export class SearchIdEffects { constructor( private actions$: Actions, private modalService: NgbModal, - private idService: EntityIdService + private idService: EntityIdService, + private store: Store ) { } } diff --git a/ui/src/app/metadata/filter/reducer/collection.reducer.ts b/ui/src/app/metadata/filter/reducer/collection.reducer.ts index 4dad4f99f..2db7e232e 100644 --- a/ui/src/app/metadata/filter/reducer/collection.reducer.ts +++ b/ui/src/app/metadata/filter/reducer/collection.reducer.ts @@ -88,7 +88,6 @@ export function reducer(state = initialState, action: FilterCollectionActionsUni selectedFilterId: action.payload, }; } - case FilterCollectionActionTypes.GET_ORDER_FILTER_SUCCESS: { return { ...state, @@ -96,6 +95,12 @@ export function reducer(state = initialState, action: FilterCollectionActionsUni }; } + case FilterCollectionActionTypes.CLEAR_FILTERS: { + return { + ...initialState + }; + } + default: { return state; } diff --git a/ui/src/app/metadata/provider/container/provider-filter-list.component.ts b/ui/src/app/metadata/provider/container/provider-filter-list.component.ts index 62caec495..73b59eb8a 100644 --- a/ui/src/app/metadata/provider/container/provider-filter-list.component.ts +++ b/ui/src/app/metadata/provider/container/provider-filter-list.component.ts @@ -7,15 +7,16 @@ import * as fromFilter from '../../filter/reducer'; import { MetadataFilter, MetadataProvider } from '../../domain/model'; import { NAV_FORMATS } from '../component/provider-editor-nav.component'; import { SetIndex } from '../../../wizard/action/wizard.action'; + import { UpdateFilterRequest, LoadFilterRequest, ChangeFilterOrderUp, ChangeFilterOrderDown, - RemoveFilterRequest + RemoveFilterRequest, + ClearFilters } from '../../filter/action/collection.action'; - @Component({ selector: 'provider-filter-list', templateUrl: './provider-filter-list.component.html', @@ -68,5 +69,7 @@ export class ProviderFilterListComponent implements OnDestroy { ngOnDestroy(): void { this.ngUnsubscribe.next(); this.ngUnsubscribe.complete(); + + this.store.dispatch(new ClearFilters()); } }