diff --git a/resources/i18n/en.json5 b/resources/i18n/en.json5
index cb35a1fe2d..eb0bc0d8b7 100644
--- a/resources/i18n/en.json5
+++ b/resources/i18n/en.json5
@@ -1990,6 +1990,8 @@
"submission.sections.describe.relationship-lookup.search-tab.tab-title.isFundingOfPublication": "Search for Funding",
+ "submission.sections.describe.relationship-lookup.search-tab.tab-title.isChildOrgUnitOf": "Search for Organizational Units",
+
"submission.sections.describe.relationship-lookup.selection-tab.tab-title": "Current Selection ({{ count }})",
"submission.sections.describe.relationship-lookup.title.isJournalIssueOfPublication": "Journal Issues",
@@ -2022,6 +2024,8 @@
"submission.sections.describe.relationship-lookup.selection-tab.title.isFundingOfPublication": "Selected Funding",
+ "submission.sections.describe.relationship-lookup.selection-tab.title.isChildOrgUnitOf": "Selected Organizational Unit",
+
"submission.sections.describe.relationship-lookup.selection-tab.title.sherpaJournal": "Search Results",
"submission.sections.describe.relationship-lookup.selection-tab.title.sherpaPublisher": "Search Results",
diff --git a/src/app/core/shared/context.model.ts b/src/app/core/shared/context.model.ts
index 6bb3d77140..b7f62b50f7 100644
--- a/src/app/core/shared/context.model.ts
+++ b/src/app/core/shared/context.model.ts
@@ -9,6 +9,7 @@ export enum Context {
Workflow = 'workflow',
Workspace = 'workspace',
AdminMenu = 'adminMenu',
- SubmissionModal = 'submissionModal',
+ EntitySearchModalWithNameVariants = 'EntitySearchModalWithNameVariants',
+ EntitySearchModal = 'EntitySearchModal',
AdminSearch = 'adminSearch',
}
diff --git a/src/app/entity-groups/research-entities/submission/item-list-elements/external-source-entry/external-source-entry-list-submission-element.component.ts b/src/app/entity-groups/research-entities/submission/item-list-elements/external-source-entry/external-source-entry-list-submission-element.component.ts
index 4612996e91..7d39d4d314 100644
--- a/src/app/entity-groups/research-entities/submission/item-list-elements/external-source-entry/external-source-entry-list-submission-element.component.ts
+++ b/src/app/entity-groups/research-entities/submission/item-list-elements/external-source-entry/external-source-entry-list-submission-element.component.ts
@@ -7,7 +7,7 @@ import { Component, Inject, OnInit } from '@angular/core';
import { Metadata } from '../../../../../core/shared/metadata.utils';
import { MetadataValue } from '../../../../../core/shared/metadata.models';
-@listableObjectComponent(ExternalSourceEntry, ViewMode.ListElement, Context.SubmissionModal)
+@listableObjectComponent(ExternalSourceEntry, ViewMode.ListElement, Context.EntitySearchModalWithNameVariants)
@Component({
selector: 'ds-external-source-entry-list-submission-element',
styleUrls: ['./external-source-entry-list-submission-element.component.scss'],
diff --git a/src/app/entity-groups/research-entities/submission/item-list-elements/org-unit/org-unit-search-result-list-submission-element.component.html b/src/app/entity-groups/research-entities/submission/item-list-elements/org-unit/org-unit-search-result-list-submission-element.component.html
index a7d4ca2d3f..063e1393cc 100644
--- a/src/app/entity-groups/research-entities/submission/item-list-elements/org-unit/org-unit-search-result-list-submission-element.component.html
+++ b/src/app/entity-groups/research-entities/submission/item-list-elements/org-unit/org-unit-search-result-list-submission-element.component.html
@@ -3,8 +3,13 @@
-
+
+
+
0"
class="item-list-address-locality">
diff --git a/src/app/entity-groups/research-entities/submission/item-list-elements/org-unit/org-unit-search-result-list-submission-element.component.ts b/src/app/entity-groups/research-entities/submission/item-list-elements/org-unit/org-unit-search-result-list-submission-element.component.ts
index d94bf4fd51..1ed9d6cead 100644
--- a/src/app/entity-groups/research-entities/submission/item-list-elements/org-unit/org-unit-search-result-list-submission-element.component.ts
+++ b/src/app/entity-groups/research-entities/submission/item-list-elements/org-unit/org-unit-search-result-list-submission-element.component.ts
@@ -20,7 +20,8 @@ import { ItemDataService } from '../../../../../core/data/item-data.service';
import { SelectableListService } from '../../../../../shared/object-list/selectable-list/selectable-list.service';
import { NameVariantModalComponent } from '../../name-variant-modal/name-variant-modal.component';
-@listableObjectComponent('OrgUnitSearchResult', ViewMode.ListElement, Context.SubmissionModal)
+@listableObjectComponent('OrgUnitSearchResult', ViewMode.ListElement, Context.EntitySearchModal)
+@listableObjectComponent('OrgUnitSearchResult', ViewMode.ListElement, Context.EntitySearchModalWithNameVariants)
@Component({
selector: 'ds-person-search-result-list-submission-element',
styleUrls: ['./org-unit-search-result-list-submission-element.component.scss'],
@@ -34,6 +35,7 @@ export class OrgUnitSearchResultListSubmissionElementComponent extends SearchRes
allSuggestions: string[];
selectedName: string;
alternativeField = 'dc.title.alternative';
+ useNameVariants = false;
constructor(protected truncatableService: TruncatableService,
private relationshipService: RelationshipService,
@@ -48,16 +50,21 @@ export class OrgUnitSearchResultListSubmissionElementComponent extends SearchRes
ngOnInit() {
super.ngOnInit();
- const defaultValue = this.firstMetadataValue('organization.legalName');
- const alternatives = this.allMetadataValues(this.alternativeField);
- this.allSuggestions = [defaultValue, ...alternatives];
- this.relationshipService.getNameVariant(this.listID, this.dso.uuid)
- .pipe(take(1))
- .subscribe((nameVariant: string) => {
- this.selectedName = nameVariant || defaultValue;
- }
- );
+ this.useNameVariants = this.context === Context.EntitySearchModalWithNameVariants;
+
+ if (this.useNameVariants) {
+ const defaultValue = this.firstMetadataValue('organization.legalName');
+ const alternatives = this.allMetadataValues(this.alternativeField);
+ this.allSuggestions = [defaultValue, ...alternatives];
+
+ this.relationshipService.getNameVariant(this.listID, this.dso.uuid)
+ .pipe(take(1))
+ .subscribe((nameVariant: string) => {
+ this.selectedName = nameVariant || defaultValue;
+ }
+ );
+ }
}
select(value) {
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 a240ee91cf..9541ff334c 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
@@ -20,7 +20,7 @@ import { MetadataValue } from '../../../../../core/shared/metadata.models';
import { ItemDataService } from '../../../../../core/data/item-data.service';
import { SelectableListService } from '../../../../../shared/object-list/selectable-list/selectable-list.service';
-@listableObjectComponent('PersonSearchResult', ViewMode.ListElement, Context.SubmissionModal)
+@listableObjectComponent('PersonSearchResult', ViewMode.ListElement, Context.EntitySearchModalWithNameVariants)
@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/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 953227c161..bb2f766fb3 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
@@ -126,8 +126,10 @@ export class DsDynamicLookupRelationModalComponent implements OnInit, OnDestroy
this.selection$.pipe(take(1)).subscribe((selection) =>
selection.map((s: SearchResult- ) => this.addNameVariantSubscription(s))
);
- if (this.relationshipOptions.nameVariants) {
- this.context = Context.SubmissionModal;
+ if (this.relationshipOptions.nameVariants === 'true') {
+ this.context = Context.EntitySearchModalWithNameVariants;
+ } else {
+ this.context = Context.EntitySearchModal;
}
this.externalSourcesRD$ = this.externalSourceService.findAll();
diff --git a/src/app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/external-source-tab/external-source-entry-import-modal/external-source-entry-import-modal.component.ts b/src/app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/external-source-tab/external-source-entry-import-modal/external-source-entry-import-modal.component.ts
index 7e0fe78717..e3c9d06967 100644
--- a/src/app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/external-source-tab/external-source-entry-import-modal/external-source-entry-import-modal.component.ts
+++ b/src/app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/external-source-tab/external-source-entry-import-modal/external-source-entry-import-modal.component.ts
@@ -105,7 +105,7 @@ export class ExternalSourceEntryImportModalComponent implements OnInit {
/**
* The context we're currently in (submission)
*/
- context = Context.SubmissionModal;
+ context = Context.EntitySearchModalWithNameVariants;
/**
* List ID for selecting local entities
diff --git a/src/app/shared/form/builder/models/relationship-options.model.ts b/src/app/shared/form/builder/models/relationship-options.model.ts
index f062ef3102..031f468f25 100644
--- a/src/app/shared/form/builder/models/relationship-options.model.ts
+++ b/src/app/shared/form/builder/models/relationship-options.model.ts
@@ -7,7 +7,7 @@ export class RelationshipOptions {
relationshipType: string;
filter: string;
searchConfiguration: string;
- nameVariants: boolean;
+ nameVariants: string;
get metadataField() {
return RELATION_METADATA_PREFIX + this.relationshipType
diff --git a/src/app/shared/object-collection/shared/listable-object/listable-object-component-loader.component.ts b/src/app/shared/object-collection/shared/listable-object/listable-object-component-loader.component.ts
index 87b3347752..5eecd025b8 100644
--- a/src/app/shared/object-collection/shared/listable-object/listable-object-component-loader.component.ts
+++ b/src/app/shared/object-collection/shared/listable-object/listable-object-component-loader.component.ts
@@ -74,6 +74,8 @@ export class ListableObjectComponentLoaderComponent implements OnInit {
(componentRef.instance as any).linkType = this.linkType;
(componentRef.instance as any).listID = this.listID;
(componentRef.instance as any).showLabel = this.showLabel;
+ (componentRef.instance as any).context = this.context;
+ (componentRef.instance as any).viewMode = this.viewMode;
}
/**
diff --git a/src/app/shared/object-collection/shared/object-collection-element/abstract-listable-element.component.ts b/src/app/shared/object-collection/shared/object-collection-element/abstract-listable-element.component.ts
index 61e7662750..6eefeec47d 100644
--- a/src/app/shared/object-collection/shared/object-collection-element/abstract-listable-element.component.ts
+++ b/src/app/shared/object-collection/shared/object-collection-element/abstract-listable-element.component.ts
@@ -34,6 +34,16 @@ export class AbstractListableElementComponent {
*/
@Input() showLabel: boolean = true;
+ /**
+ * The context we matched on to get this component
+ */
+ @Input() context: Context;
+
+ /**
+ * The viewmode we matched on to get this component
+ */
+ @Input() viewMode: ViewMode;
+
/**
* The available link types
*/
diff --git a/src/app/shared/object-collection/shared/selectable-list-item-control/selectable-list-item-control.component.html b/src/app/shared/object-collection/shared/selectable-list-item-control/selectable-list-item-control.component.html
index 92d85d03f4..56a83913a7 100644
--- a/src/app/shared/object-collection/shared/selectable-list-item-control/selectable-list-item-control.component.html
+++ b/src/app/shared/object-collection/shared/selectable-list-item-control/selectable-list-item-control.component.html
@@ -4,7 +4,7 @@
[id]="'object' + index"
[ngModel]="selected$ | async"
(ngModelChange)="selectCheckbox($event)">
-