From a4b9a6da1dd745e246d58c68da98f4aae54e82cc Mon Sep 17 00:00:00 2001 From: Alexandre Vryghem Date: Mon, 19 Sep 2022 17:45:05 +0200 Subject: [PATCH] 94481: Use DSONameService in all other remaining place where dc.title, person.familyName, person.givenName or organization.legalName is used --- src/app/core/breadcrumbs/dso-name.service.ts | 9 ++++++--- ...-search-result-grid-element.component.html | 2 +- ...-search-result-grid-element.component.html | 2 +- ...-search-result-grid-element.component.html | 2 +- ...-search-result-grid-element.component.html | 2 +- ...-search-result-grid-element.component.html | 3 +-- ...-search-result-grid-element.component.html | 2 +- ...-search-result-list-element.component.html | 6 ++---- ...-search-result-list-element.component.html | 6 ++---- ...on-search-result-list-element.component.ts | 6 ------ ...t-sidebar-search-list-element.component.ts | 6 ------ ...n-sidebar-search-list-element.component.ts | 19 ------------------ ...ult-list-submission-element.component.html | 4 +--- ...esult-list-submission-element.component.ts | 2 +- ...esult-list-submission-element.component.ts | 2 +- ...-search-result-grid-element.component.html | 2 +- ...em-search-result-grid-element.component.ts | 18 ++++++++++++++++- .../item-list-preview.component.html | 2 +- .../item-list-preview.component.ts | 20 ++++++++++++++++--- .../sidebar-search-list-element.component.ts | 6 +++--- 20 files changed, 58 insertions(+), 63 deletions(-) diff --git a/src/app/core/breadcrumbs/dso-name.service.ts b/src/app/core/breadcrumbs/dso-name.service.ts index bd24ec68fa..d56f4a00eb 100644 --- a/src/app/core/breadcrumbs/dso-name.service.ts +++ b/src/app/core/breadcrumbs/dso-name.service.ts @@ -57,11 +57,14 @@ export class DSONameService { .filter((type) => typeof type === 'string') .find((type: string) => Object.keys(this.factories).includes(type)) as string; + let name; if (hasValue(match)) { - return this.factories[match](dso); - } else { - return this.factories.Default(dso); + name = this.factories[match](dso); } + if (isEmpty(name)) { + name = this.factories.Default(dso); + } + return name; } } diff --git a/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-issue/journal-issue-search-result-grid-element.component.html b/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-issue/journal-issue-search-result-grid-element.component.html index 028876b3d0..11d1a5703e 100644 --- a/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-issue/journal-issue-search-result-grid-element.component.html +++ b/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-issue/journal-issue-search-result-grid-element.component.html @@ -21,7 +21,7 @@
-

+

diff --git a/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-volume/journal-volume-search-result-grid-element.component.html b/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-volume/journal-volume-search-result-grid-element.component.html index 65ff75a731..c990a7aa5b 100644 --- a/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-volume/journal-volume-search-result-grid-element.component.html +++ b/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal-volume/journal-volume-search-result-grid-element.component.html @@ -21,7 +21,7 @@

-

+

diff --git a/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal/journal-search-result-grid-element.component.html b/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal/journal-search-result-grid-element.component.html index 0c5824c6d6..d36b14847f 100644 --- a/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal/journal-search-result-grid-element.component.html +++ b/src/app/entity-groups/journal-entities/item-grid-elements/search-result-grid-elements/journal/journal-search-result-grid-element.component.html @@ -21,7 +21,7 @@

-

+

diff --git a/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/org-unit/org-unit-search-result-grid-element.component.html b/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/org-unit/org-unit-search-result-grid-element.component.html index edb9e9b46a..d04cd3d7c5 100644 --- a/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/org-unit/org-unit-search-result-grid-element.component.html +++ b/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/org-unit/org-unit-search-result-grid-element.component.html @@ -21,7 +21,7 @@

-

+

diff --git a/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/person/person-search-result-grid-element.component.html b/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/person/person-search-result-grid-element.component.html index 680a9909bc..3269236fd1 100644 --- a/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/person/person-search-result-grid-element.component.html +++ b/src/app/entity-groups/research-entities/item-grid-elements/search-result-grid-elements/person/person-search-result-grid-element.component.html @@ -21,8 +21,7 @@

-

+

-

+

diff --git a/src/app/entity-groups/research-entities/item-list-elements/search-result-list-elements/org-unit/org-unit-search-result-list-element.component.html b/src/app/entity-groups/research-entities/item-list-elements/search-result-list-elements/org-unit/org-unit-search-result-list-element.component.html index fb0ad21b6e..0e6918aa42 100644 --- a/src/app/entity-groups/research-entities/item-list-elements/search-result-list-elements/org-unit/org-unit-search-result-list-element.component.html +++ b/src/app/entity-groups/research-entities/item-list-elements/search-result-list-elements/org-unit/org-unit-search-result-list-element.component.html @@ -2,10 +2,8 @@ - + [innerHTML]="dsoTitle"> + - + [innerHTML]="dsoTitle"> + { - /** - * Get the title of the Org Unit by returning its legal name - */ - getTitle(): string { - return this.firstMetadataValue('organization.legalName'); - } /** * Get the description of the Org Unit by returning its dc.description diff --git a/src/app/entity-groups/research-entities/item-list-elements/sidebar-search-list-elements/person/person-sidebar-search-list-element.component.ts b/src/app/entity-groups/research-entities/item-list-elements/sidebar-search-list-elements/person/person-sidebar-search-list-element.component.ts index 281f22ddb4..bc9d3d4302 100644 --- a/src/app/entity-groups/research-entities/item-list-elements/sidebar-search-list-elements/person/person-sidebar-search-list-element.component.ts +++ b/src/app/entity-groups/research-entities/item-list-elements/sidebar-search-list-elements/person/person-sidebar-search-list-element.component.ts @@ -30,25 +30,6 @@ export class PersonSidebarSearchListElementComponent extends SidebarSearchListEl super(truncatableService, linkService, dsoNameService); } - /** - * Get the title of the Person by returning a combination of its family name and given name (or "No name found") - */ - getTitle(): string { - const familyName = this.firstMetadataValue('person.familyName'); - const givenName = this.firstMetadataValue('person.givenName'); - let title = ''; - if (isNotEmpty(familyName)) { - title = familyName; - } - if (isNotEmpty(title)) { - title += ', '; - } - if (isNotEmpty(givenName)) { - title += givenName; - } - return this.defaultIfEmpty(title, this.translateService.instant('person.listelement.no-title')); - } - /** * Get the description of the Person by returning its job title(s) */ 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 13787bb925..6123dc3dc8 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 @@ -6,9 +6,7 @@ -

+
-

+

diff --git a/src/app/shared/object-grid/search-result-grid-element/item-search-result/item/item-search-result-grid-element.component.ts b/src/app/shared/object-grid/search-result-grid-element/item-search-result/item/item-search-result-grid-element.component.ts index a628c1e7e8..b5f9c016e4 100644 --- a/src/app/shared/object-grid/search-result-grid-element/item-search-result/item/item-search-result-grid-element.component.ts +++ b/src/app/shared/object-grid/search-result-grid-element/item-search-result/item/item-search-result-grid-element.component.ts @@ -1,11 +1,16 @@ import { Component } from '@angular/core'; import { focusShadow } from '../../../../animations/focus'; import { ViewMode } from '../../../../../core/shared/view-mode.model'; -import { listableObjectComponent } from '../../../../object-collection/shared/listable-object/listable-object.decorator'; +import { + listableObjectComponent +} from '../../../../object-collection/shared/listable-object/listable-object.decorator'; import { SearchResultGridElementComponent } from '../../search-result-grid-element.component'; import { Item } from '../../../../../core/shared/item.model'; import { ItemSearchResult } from '../../../../object-collection/shared/item-search-result.model'; import { getItemPageRoute } from '../../../../../item-page/item-page-routing-paths'; +import { DSONameService } from '../../../../../core/breadcrumbs/dso-name.service'; +import { TruncatableService } from '../../../../truncatable/truncatable.service'; +import { BitstreamDataService } from '../../../../../core/data/bitstream-data.service'; @listableObjectComponent('PublicationSearchResult', ViewMode.GridElement) @listableObjectComponent(ItemSearchResult, ViewMode.GridElement) @@ -24,8 +29,19 @@ export class ItemSearchResultGridElementComponent extends SearchResultGridElemen */ itemPageRoute: string; + dsoTitle: string; + + constructor( + protected truncatableService: TruncatableService, + protected bitstreamDataService: BitstreamDataService, + private dsoNameService: DSONameService, + ) { + super(truncatableService, bitstreamDataService); + } + ngOnInit(): void { super.ngOnInit(); this.itemPageRoute = getItemPageRoute(this.dso); + this.dsoTitle = this.dsoNameService.getName(this.dso); } } diff --git a/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.html b/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.html index c518d39bd9..4de7218eab 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.html +++ b/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.html @@ -4,7 +4,7 @@ -

+

diff --git a/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.ts b/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.ts index 840960d51f..cb8f7f1421 100644 --- a/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.ts +++ b/src/app/shared/object-list/my-dspace-result-list-element/item-list-preview/item-list-preview.component.ts @@ -1,9 +1,12 @@ -import { Component, Input } from '@angular/core'; +import { Component, Input, OnInit } from '@angular/core'; import { Item } from '../../../../core/shared/item.model'; import { fadeInOut } from '../../../animations/fade'; -import { MyDspaceItemStatusType } from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type'; +import { + MyDspaceItemStatusType +} from '../../../object-collection/shared/mydspace-item-status/my-dspace-item-status-type'; import { SearchResult } from '../../../search/models/search-result.model'; +import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service'; /** * This component show metadata for the given item object in the list view. @@ -14,7 +17,7 @@ import { SearchResult } from '../../../search/models/search-result.model'; templateUrl: 'item-list-preview.component.html', animations: [fadeInOut] }) -export class ItemListPreviewComponent { +export class ItemListPreviewComponent implements OnInit { /** * The item to display @@ -36,4 +39,15 @@ export class ItemListPreviewComponent { */ @Input() showSubmitter = false; + dsoTitle: string; + + constructor( + private dsoNameService: DSONameService, + ) { + } + + ngOnInit(): void { + this.dsoTitle = this.dsoNameService.getName(this.item); + } + } diff --git a/src/app/shared/object-list/sidebar-search-list-element/sidebar-search-list-element.component.ts b/src/app/shared/object-list/sidebar-search-list-element/sidebar-search-list-element.component.ts index 91f3ba6d88..29abf40252 100644 --- a/src/app/shared/object-list/sidebar-search-list-element/sidebar-search-list-element.component.ts +++ b/src/app/shared/object-list/sidebar-search-list-element/sidebar-search-list-element.component.ts @@ -71,7 +71,7 @@ export class SidebarSearchListElementComponent, K exte getParentTitle(): Observable { return this.getParent().pipe( map((parentRD: RemoteData) => { - return hasValue(parentRD) && hasValue(parentRD.payload) ? parentRD.payload.firstMetadataValue('dc.title') : undefined; + return hasValue(parentRD) && hasValue(parentRD.payload) ? this.dsoNameService.getName(parentRD.payload) : undefined; }) ); } @@ -91,10 +91,10 @@ export class SidebarSearchListElementComponent, K exte /** * Get the title of the object - * Default: "dc.title" + * Default: defined by {@link DSONameService} */ getTitle(): string { - return this.firstMetadataValue('dc.title'); + return this.dsoNameService.getName(this.dso); } /**