diff --git a/ui/src/app/metadata/filter/effect/filter.effect.ts b/ui/src/app/metadata/filter/effect/filter.effect.ts index 9cf67e5ea..0c0ce98fe 100644 --- a/ui/src/app/metadata/filter/effect/filter.effect.ts +++ b/ui/src/app/metadata/filter/effect/filter.effect.ts @@ -57,7 +57,7 @@ export class FilterEffects { ) ); - @Effect() + @Effect({ dispatch: false }) cancelChanges$ = this.actions$.pipe( ofType(FilterActionTypes.CANCEL_CREATE_FILTER), combineLatest(this.store.select(fromProvider.getSelectedProviderId).pipe(skipWhile(id => !id))), diff --git a/ui/src/app/metadata/provider/action/collection.action.ts b/ui/src/app/metadata/provider/action/collection.action.ts index 7eaf7d1df..6746ffad5 100644 --- a/ui/src/app/metadata/provider/action/collection.action.ts +++ b/ui/src/app/metadata/provider/action/collection.action.ts @@ -45,7 +45,7 @@ export class LoadProviderError implements Action { export class SelectProviderRequest implements Action { readonly type = ProviderCollectionActionTypes.SELECT_PROVIDER_REQUEST; - constructor(public payload: any) { } + constructor(public payload: string) { } } export class SelectProviderSuccess implements Action { diff --git a/ui/src/app/metadata/provider/effect/collection.effect.ts b/ui/src/app/metadata/provider/effect/collection.effect.ts index a3f8aa723..df8fc574d 100644 --- a/ui/src/app/metadata/provider/effect/collection.effect.ts +++ b/ui/src/app/metadata/provider/effect/collection.effect.ts @@ -23,6 +23,8 @@ import { } from '../action/collection.action'; import { MetadataProviderService } from '../../domain/service/provider.service'; import * as fromProvider from '../reducer'; +import * as fromRoot from '../../../app.reducer'; +import { AddFilterSuccess, FilterCollectionActionTypes } from '../../filter/action/collection.action'; /* istanbul ignore next */ @@ -114,10 +116,21 @@ export class CollectionEffects { map(provider => new LoadProviderRequest()) ); + @Effect({ dispatch: false }) + newFilterSuccessUpdate = this.actions$.pipe( + ofType(FilterCollectionActionTypes.ADD_FILTER_SUCCESS), + map(action => action.payload), + withLatestFrom(this.store.select(fromProvider.getSelectedProviderId)), + map(([filter, id]) => id), + tap(id => { + this.store.dispatch(new SelectProviderRequest(id)); + }) + ); + constructor( private actions$: Actions, private router: Router, - private store: Store, + private store: Store, private providerService: MetadataProviderService ) { } } /* istanbul ignore next */ diff --git a/ui/src/app/schema-form/widget/filter-target/filter-target.component.html b/ui/src/app/schema-form/widget/filter-target/filter-target.component.html index 1dc7c42c4..61b522b0c 100644 --- a/ui/src/app/schema-form/widget/filter-target/filter-target.component.html +++ b/ui/src/app/schema-form/widget/filter-target/filter-target.component.html @@ -47,10 +47,11 @@
+

You must add at least one entity id target.

  • {{ id }} -
  • diff --git a/ui/src/app/schema-form/widget/filter-target/filter-target.component.ts b/ui/src/app/schema-form/widget/filter-target/filter-target.component.ts index badc78eec..5912c9cd5 100644 --- a/ui/src/app/schema-form/widget/filter-target/filter-target.component.ts +++ b/ui/src/app/schema-form/widget/filter-target/filter-target.component.ts @@ -97,6 +97,11 @@ export class FilterTargetComponent extends ObjectWidget implements OnDestroy, Af this.search.setValue(null); } + removeId(id: string): void { + let rest = this.targets.filter(target => target !== id); + this.setTargetValue(rest); + } + setTargetValue(value: string[]): void { this.formProperty.getProperty('value').setValue(value); } diff --git a/ui/src/app/schema-form/widget/select/select.component.html b/ui/src/app/schema-form/widget/select/select.component.html index 4a60d6425..174f6798d 100644 --- a/ui/src/app/schema-form/widget/select/select.component.html +++ b/ui/src/app/schema-form/widget/select/select.component.html @@ -18,7 +18,6 @@