diff --git a/src/app/+item-page/item-page.module.ts b/src/app/+item-page/item-page.module.ts
index 2a5d0b6da7..36652f5223 100644
--- a/src/app/+item-page/item-page.module.ts
+++ b/src/app/+item-page/item-page.module.ts
@@ -52,7 +52,6 @@ import { MetadataFieldWrapperComponent } from './field-components/metadata-field
RelatedItemsComponent,
ItemComponent,
GenericItemPageFieldComponent,
- MetadataRepresentationListComponent,
RelatedEntitiesSearchComponent
],
exports: [
@@ -62,7 +61,6 @@ import { MetadataFieldWrapperComponent } from './field-components/metadata-field
GenericItemPageFieldComponent,
RelatedEntitiesSearchComponent,
RelatedItemsComponent,
- MetadataRepresentationListComponent,
ItemPageTitleFieldComponent
],
entryComponents: [
diff --git a/src/app/+item-page/simple/metadata-representation-list/metadata-representation-list.component.ts b/src/app/+item-page/simple/metadata-representation-list/metadata-representation-list.component.ts
index 39a03216de..1fa623f6c9 100644
--- a/src/app/+item-page/simple/metadata-representation-list/metadata-representation-list.component.ts
+++ b/src/app/+item-page/simple/metadata-representation-list/metadata-representation-list.component.ts
@@ -106,7 +106,7 @@ export class MetadataRepresentationListComponent implements OnInit {
return leftItem.payload;
}
}),
- map((item: Item) => Object.assign(new ItemMetadataRepresentation(), item))
+ map((item: Item) => Object.assign(new ItemMetadataRepresentation(metadatum), item))
)
));
} else {
diff --git a/src/app/entity-groups/research-entities/submission/item-list-elements/person/person-search-result-list-submission-element.component.ts b/src/app/entity-groups/research-entities/submission/item-list-elements/person/person-search-result-list-submission-element.component.ts
index 1d7b4f42e4..c346a5bb03 100644
--- a/src/app/entity-groups/research-entities/submission/item-list-elements/person/person-search-result-list-submission-element.component.ts
+++ b/src/app/entity-groups/research-entities/submission/item-list-elements/person/person-search-result-list-submission-element.component.ts
@@ -9,7 +9,7 @@ import { RelationshipService } from '../../../../../core/data/relationship.servi
import { TruncatableService } from '../../../../../shared/truncatable/truncatable.service';
import { take } from 'rxjs/operators';
-@listableObjectComponent('PersonSearchResult', ViewMode.ListElement, Context.Submission)
+@listableObjectComponent('PersonSearchResult', ViewMode.ListElement, Context.Workspace)
@Component({
selector: 'ds-person-search-result-list-submission-element',
styleUrls: ['./person-search-result-list-submission-element.component.scss'],
diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.html b/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.html
index 97b2932b87..1208eebf17 100644
--- a/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.html
+++ b/src/app/shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component.html
@@ -14,8 +14,8 @@
-
+
{{ message | translate:model.validators }}
@@ -61,7 +61,7 @@
×
-
+
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 185bb4a3a1..25cfc971e4 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
@@ -57,7 +57,7 @@ import { DYNAMIC_FORM_CONTROL_TYPE_DSDATEPICKER } from './models/date-picker/dat
import { DYNAMIC_FORM_CONTROL_TYPE_LOOKUP } from './models/lookup/dynamic-lookup.model';
import { DynamicListCheckboxGroupModel } from './models/list/dynamic-list-checkbox-group.model';
import { DynamicListRadioGroupModel } from './models/list/dynamic-list-radio-group.model';
-import { hasValue, isNotEmpty, isNotUndefined } from '../../../empty.util';
+import { hasValue, isNotEmpty, isNotEmptyOperator, isNotUndefined } from '../../../empty.util';
import { DYNAMIC_FORM_CONTROL_TYPE_LOOKUP_NAME } from './models/lookup/dynamic-lookup-name.model';
import { DsDynamicTagComponent } from './models/tag/dynamic-tag.component';
import { DsDatePickerComponent } from './models/date-picker/date-picker.component';
@@ -178,7 +178,7 @@ export class DsDynamicFormControlContainerComponent extends DynamicFormControlCo
relationships$: Observable
[]>;
hasRelationLookup: boolean;
modalRef: NgbModalRef;
- modelValueMDRepresentation;
+ item$: Observable- ;
listId: string;
searchConfig: string;
/* tslint:disable:no-output-rename */
@@ -216,19 +216,20 @@ export class DsDynamicFormControlContainerComponent extends DynamicFormControlCo
this.hasRelationLookup = hasValue(this.model.relationship);
if (this.hasRelationLookup) {
this.listId = 'list-' + this.model.relationship.relationshipType;
- this.submissionObjectService
+ this.item$ = this.submissionObjectService
.findById(this.model.submissionId).pipe(
- getSucceededRemoteData(),
- getRemoteDataPayload(),
- switchMap((submissionObject: SubmissionObject) => (submissionObject.item as Observable>).pipe(getSucceededRemoteData(), getRemoteDataPayload())),
+ getSucceededRemoteData(),
+ getRemoteDataPayload(),
+ switchMap((submissionObject: SubmissionObject) => (submissionObject.item as Observable>).pipe(getSucceededRemoteData(), getRemoteDataPayload())));
+
+ this.item$.pipe(
switchMap((item: Item) => this.relationService.getRelatedItemsByLabel(item, this.model.relationship.relationshipType)),
- map((items: PaginatedList
- ) => items.page.map((item) => Object.assign(new SearchResult(), { indexableObject: item }))),
+ map((items: RemoteData>) => items.payload.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))));
}
}
@@ -274,13 +275,7 @@ export class DsDynamicFormControlContainerComponent extends DynamicFormControlCo
}
openLookup() {
- this.submissionObjectService
- .findById(this.model.submissionId).pipe(
- getSucceededRemoteData(),
- getRemoteDataPayload(),
- switchMap((submissionObject: SubmissionObject) =>
- (submissionObject.item as Observable>).pipe(getSucceededRemoteData(), getRemoteDataPayload()))
- ).subscribe((item: Item) => {
+ this.item$.subscribe((item: Item) => {
this.modalRef = this.modalService.open(DsDynamicLookupRelationModalComponent, { size: 'lg' });
const modalComp = this.modalRef.componentInstance;
modalComp.repeatable = this.model.repeatable;
diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/dynamic-lookup-relation-modal.component.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/dynamic-lookup-relation-modal.component.ts
index b427bc6021..09c88403f8 100644
--- a/src/app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/dynamic-lookup-relation-modal.component.ts
+++ b/src/app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/dynamic-lookup-relation-modal.component.ts
@@ -1,8 +1,8 @@
import { Component, NgZone, OnInit } from '@angular/core';
import { combineLatest, Observable, Subscription } from 'rxjs';
import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
-import { hasValue, hasValueOperator } from '../../../../empty.util';
-import { map, skip, switchMap, take, tap } from 'rxjs/operators';
+import { hasValue } from '../../../../empty.util';
+import { map, skip, switchMap, take } from 'rxjs/operators';
import { SEARCH_CONFIG_SERVICE } from '../../../../../+my-dspace-page/my-dspace-page.component';
import { SearchConfigurationService } from '../../../../../core/shared/search/search-configuration.service';
import { SelectableListService } from '../../../../object-list/selectable-list/selectable-list.service';
@@ -12,7 +12,6 @@ import { RelationshipOptions } from '../../models/relationship-options.model';
import { SearchResult } from '../../../../search/search-result.model';
import { Item } from '../../../../../core/shared/item.model';
import { getRemoteDataPayload, getSucceededRemoteData } from '../../../../../core/shared/operators';
-import { RemoteData } from '../../../../../core/data/remote-data';
import { AddRelationshipAction, RemoveRelationshipAction } from './relationship.actions';
import { RelationshipService } from '../../../../../core/data/relationship.service';
import { RelationshipTypeService } from '../../../../../core/data/relationship-type.service';
@@ -21,8 +20,6 @@ import { AppState } from '../../../../../app.reducer';
import { Context } from '../../../../../core/shared/context.model';
import { Relationship } from '../../../../../core/shared/item-relationships/relationship.model';
import { MetadataValue } from '../../../../../core/shared/metadata.models';
-import { ItemSearchResult } from '../../../../object-collection/shared/item-search-result.model';
-import { NameVariantListState } from './name-variant.reducer';
@Component({
selector: 'ds-dynamic-lookup-relation-modal',
@@ -62,7 +59,7 @@ export class DsDynamicLookupRelationModalComponent implements OnInit {
ngOnInit(): void {
this.selection$ = this.selectableListService.getSelectableList(this.listId).pipe(map((listState: SelectableListState) => hasValue(listState) && hasValue(listState.selection) ? listState.selection : []));
if (this.relationshipOptions.nameVariants) {
- this.context = Context.Submission;
+ this.context = Context.Workspace;
}
}
diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts
index f4a95c6b43..0a163d1ae8 100644
--- a/src/app/shared/shared.module.ts
+++ b/src/app/shared/shared.module.ts
@@ -168,6 +168,7 @@ import { PublicationSearchResultGridElementComponent } from './object-grid/searc
import { ListableObjectDirective } from './object-collection/shared/listable-object/listable-object.directive';
import { SearchLabelComponent } from './search/search-labels/search-label/search-label.component';
import { ItemMetadataRepresentationListElementComponent } from './object-list/metadata-representation-list-element/item/item-metadata-representation-list-element.component';
+import { MetadataRepresentationListComponent } from '../+item-page/simple/metadata-representation-list/metadata-representation-list.component';
const MODULES = [
// Do NOT include UniversalModule, HttpModule, or JsonpModule here
@@ -319,7 +320,8 @@ const COMPONENTS = [
ItemTypeBadgeComponent,
ItemSelectComponent,
CollectionSelectComponent,
- MetadataRepresentationLoaderComponent
+ MetadataRepresentationLoaderComponent,
+ MetadataRepresentationListComponent,
];
const ENTRY_COMPONENTS = [