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 @@
- + +
+ 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)"> -