From 6d3a52d2f997fef3e81f86fd474fdefbfdee8f17 Mon Sep 17 00:00:00 2001 From: lotte Date: Fri, 8 Nov 2019 12:45:10 +0100 Subject: [PATCH] fix issue with wsi in field container --- ...ynamic-form-control-container.component.spec.ts | 1 - .../ds-dynamic-form-control-container.component.ts | 14 +++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.spec.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.spec.ts index 2c0c418700..a6d4af5acb 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.spec.ts +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.spec.ts @@ -64,7 +64,6 @@ import { DsDynamicRelationGroupComponent } from './models/relation-group/dynamic import { DsDatePickerInlineComponent } from './models/date-picker-inline/dynamic-date-picker-inline.component'; import { RelationshipService } from '../../../../core/data/relationship.service'; import { SelectableListService } from '../../../object-list/selectable-list/selectable-list.service'; -import { WorkspaceItem } from '../../../../core/submission/models/workspaceitem.model'; import { ItemDataService } from '../../../../core/data/item-data.service'; describe('DsDynamicFormControlContainerComponent test suite', () => { diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.ts index a5d67ae998..f55680ad4e 100644 --- a/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.ts +++ b/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.ts @@ -91,6 +91,7 @@ import { Store } from '@ngrx/store'; import { AppState } from '../../../../app.reducer'; import { SubmissionObjectDataService } from '../../../../core/submission/submission-object-data.service'; import { SubmissionObject } from '../../../../core/submission/models/submission-object.model'; +import { PaginatedList } from '../../../../core/data/paginated-list'; export function dsDynamicFormControlMapFn(model: DynamicFormControlModel): Type | null { switch (model.type) { @@ -215,17 +216,20 @@ export class DsDynamicFormControlContainerComponent extends DynamicFormControlCo this.hasRelationLookup = hasValue(this.model.relationship); if (this.hasRelationLookup) { this.listId = 'list-' + this.model.relationship.relationshipType; - this.model.workspaceItem.item.pipe( + this.submissionObjectService + .findById(this.model.submissionId).pipe( getSucceededRemoteData(), - switchMap((itemRD: RemoteData) => this.relationService.getRelatedItemsByLabel(itemRD.payload, this.model.relationship.relationshipType)), - map((items: Item[]) => items.map((item) => Object.assign(new SearchResult(), { indexableObject: item }))), - ).subscribe((relatedItems) => this.selectableListService.select(this.listId, relatedItems)); + getRemoteDataPayload(), + switchMap((submissionObject: SubmissionObject) => (submissionObject.item as Observable>).pipe(getSucceededRemoteData(), getRemoteDataPayload())), + switchMap((item: Item) => this.relationService.getRelatedItemsByLabel(item, this.model.relationship.relationshipType)), + tap((t) => console.log(t)), + map((items: PaginatedList) => items.page.map((item) => Object.assign(new SearchResult(), { indexableObject: item }))), + ).subscribe((relatedItems: SearchResult[]) => this.selectableListService.select(this.listId, relatedItems)); this.relationships$ = this.selectableListService.getSelectableList(this.listId).pipe( map((listState: SelectableListState) => hasValue(listState) && hasValue(listState.selection) ? listState.selection : []), ) as Observable[]>; this.modelValueMDRepresentation = this.relationships$.pipe(map((result: SearchResult[]) => result.map((element: SearchResult) => Object.assign(new ItemMetadataRepresentation(), element.indexableObject)))); - } }