diff --git a/resources/i18n/en.json5 b/resources/i18n/en.json5 index 0dc5b51c05..0c34aa88b2 100644 --- a/resources/i18n/en.json5 +++ b/resources/i18n/en.json5 @@ -1686,6 +1686,6 @@ "uploader.queue-length": "Queue length", - "virtual-metadata-modal.head": "Select the items for which you want to save the virtual metadata as real metadata", + "virtual-metadata.delete-relationship.modal-head": "Select the items for which you want to save the virtual metadata as real metadata", } diff --git a/src/app/+item-page/edit-item-page/item-relationships/edit-relationship/edit-relationship.component.ts b/src/app/+item-page/edit-item-page/item-relationships/edit-relationship/edit-relationship.component.ts index 220582a5fd..3e24801992 100644 --- a/src/app/+item-page/edit-item-page/item-relationships/edit-relationship/edit-relationship.component.ts +++ b/src/app/+item-page/edit-item-page/item-relationships/edit-relationship/edit-relationship.component.ts @@ -99,7 +99,7 @@ export class EditRelationshipComponent implements OnChanges { ).pipe( map((items: Item[]) => items.map((item) => this.objectUpdatesService - .isSelectedVirtualMetadataItem(this.url, this.relationship.id, item.uuid)) + .isSelectedVirtualMetadata(this.url, this.relationship.id, item.uuid)) ), switchMap((selection$) => observableCombineLatest(selection$)), map((selection: boolean[]) => { diff --git a/src/app/+item-page/edit-item-page/item-relationships/item-relationships.component.spec.ts b/src/app/+item-page/edit-item-page/item-relationships/item-relationships.component.spec.ts index 48bc28a1b9..4ac3f05a40 100644 --- a/src/app/+item-page/edit-item-page/item-relationships/item-relationships.component.spec.ts +++ b/src/app/+item-page/edit-item-page/item-relationships/item-relationships.component.spec.ts @@ -110,11 +110,14 @@ describe('ItemRelationshipsComponent', () => { relationships[1].rightItem = observableOf(new RemoteData(false, false, true, undefined, item)); fieldUpdate1 = { - field: author1, + field: relationships[0], changeType: undefined }; fieldUpdate2 = { - field: author2, + field: Object.assign( + relationships[1], + {keepLeftVirtualMetadata: true, keepRightVirtualMetadata: false} + ), changeType: FieldChangeType.REMOVE }; @@ -130,12 +133,12 @@ describe('ItemRelationshipsComponent', () => { objectUpdatesService = jasmine.createSpyObj('objectUpdatesService', { getFieldUpdates: observableOf({ - [author1.uuid]: fieldUpdate1, - [author2.uuid]: fieldUpdate2 + [relationships[0].uuid]: fieldUpdate1, + [relationships[1].uuid]: fieldUpdate2 }), getFieldUpdatesExclusive: observableOf({ - [author1.uuid]: fieldUpdate1, - [author2.uuid]: fieldUpdate2 + [relationships[0].uuid]: fieldUpdate1, + [relationships[1].uuid]: fieldUpdate2 }), saveAddFieldUpdate: {}, discardFieldUpdates: {}, @@ -227,7 +230,7 @@ describe('ItemRelationshipsComponent', () => { }); it('it should delete the correct relationship', () => { - expect(relationshipService.deleteRelationship).toHaveBeenCalledWith(relationships[1].uuid); + expect(relationshipService.deleteRelationship).toHaveBeenCalledWith(relationships[1].uuid, 'left'); }); }); }); diff --git a/src/app/+item-page/edit-item-page/item-relationships/item-relationships.component.ts b/src/app/+item-page/edit-item-page/item-relationships/item-relationships.component.ts index fadba3b981..1e678884b1 100644 --- a/src/app/+item-page/edit-item-page/item-relationships/item-relationships.component.ts +++ b/src/app/+item-page/edit-item-page/item-relationships/item-relationships.component.ts @@ -116,8 +116,11 @@ export class ItemRelationshipsComponent extends AbstractItemUpdateComponent impl switchMap((relationships: Relationship[]) => { return this.objectUpdatesService.getFieldUpdatesExclusive(this.url, relationships) as Observable }), - map((fieldUpdates: FieldUpdates) => Object.values(fieldUpdates).filter((fieldUpdate: FieldUpdate) => fieldUpdate.changeType === FieldChangeType.REMOVE)), - map((fieldUpdates: FieldUpdate[]) => fieldUpdates.map((fieldUpdate: FieldUpdate) => fieldUpdate.field) as DeleteRelationship[]), + map((fieldUpdates: FieldUpdates) => + Object.values(fieldUpdates) + .filter((fieldUpdate: FieldUpdate) => fieldUpdate.changeType === FieldChangeType.REMOVE) + .map((fieldUpdate: FieldUpdate) => fieldUpdate.field as DeleteRelationship) + ), isNotEmptyOperator(), ); removedRelationshipIDs$.pipe( diff --git a/src/app/+item-page/edit-item-page/virtual-metadata/virtual-metadata.component.html b/src/app/+item-page/edit-item-page/virtual-metadata/virtual-metadata.component.html index aafdb00b47..8a0269d6b7 100644 --- a/src/app/+item-page/edit-item-page/virtual-metadata/virtual-metadata.component.html +++ b/src/app/+item-page/edit-item-page/virtual-metadata/virtual-metadata.component.html @@ -1,5 +1,5 @@
-