From b352690ccab57f68c97a2c1de7fb32f89989428a Mon Sep 17 00:00:00 2001 From: Samuel Date: Tue, 28 Jan 2020 15:35:55 +0100 Subject: [PATCH] Virtual metadata on item delete - filter relationship types without relationships --- .../item-delete/item-delete.component.ts | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/app/+item-page/edit-item-page/item-delete/item-delete.component.ts b/src/app/+item-page/edit-item-page/item-delete/item-delete.component.ts index d427ce2b34..6fe44c109b 100644 --- a/src/app/+item-page/edit-item-page/item-delete/item-delete.component.ts +++ b/src/app/+item-page/edit-item-page/item-delete/item-delete.component.ts @@ -107,13 +107,20 @@ export class ItemDeleteComponent getSucceededRemoteData(), getRemoteDataPayload(), map((relationshipTypes) => relationshipTypes.page), - map((types) => types.reduce((includedTypes, type) => { - if (!includedTypes.some((includedType) => includedType.id === type.id)) { - return [...includedTypes, type]; - } else { - return includedTypes; - } - }, [])), + switchMap((types) => + combineLatest(types.map((type) => this.getRelationships(type))).pipe( + map((relationships) => + types.reduce((includedTypes, type, index) => { + if (!includedTypes.some((includedType) => includedType.id === type.id) + && !(relationships[index].length === 0)) { + return [...includedTypes, type]; + } else { + return includedTypes; + } + }, []) + ), + ) + ), ); this.types$.pipe(