From b46dc973f87a8a3a651a14c5f2059baa66599aa6 Mon Sep 17 00:00:00 2001
From: andrej romanov <50377758+auumgn@users.noreply.github.com>
Date: Wed, 30 Oct 2024 19:13:13 +0200
Subject: [PATCH] display name or orcid id when source id is missing
---
.../modal-email/modal-email.component.html | 4 +++-
.../modals/modal-email/modal-email.component.ts | 11 +++++++++++
.../side-bar/side-bar/side-bar.component.html | 4 +++-
.../cdk/side-bar/side-bar/side-bar.component.ts | 5 ++---
src/app/shared/utils/record.util.ts | 17 +++++++++++++++++
5 files changed, 36 insertions(+), 5 deletions(-)
diff --git a/src/app/cdk/side-bar/modals/modal-email/modal-email.component.html b/src/app/cdk/side-bar/modals/modal-email/modal-email.component.html
index 025cd4393..05fc5fecc 100644
--- a/src/app/cdk/side-bar/modals/modal-email/modal-email.component.html
+++ b/src/app/cdk/side-bar/modals/modal-email/modal-email.component.html
@@ -131,7 +131,9 @@
[name]="
email.professionalEmail
? orcidEmailValidation
- : email.sourceName || email.source
+ : displayName ||
+ userInfo.EFFECTIVE_USER_ORCID ||
+ userInfo.REAL_USER_ORCID
"
[isEmailOrDomain]="true"
[date]="
diff --git a/src/app/cdk/side-bar/modals/modal-email/modal-email.component.ts b/src/app/cdk/side-bar/modals/modal-email/modal-email.component.ts
index 0c52a8236..520b72c94 100644
--- a/src/app/cdk/side-bar/modals/modal-email/modal-email.component.ts
+++ b/src/app/cdk/side-bar/modals/modal-email/modal-email.component.ts
@@ -23,8 +23,10 @@ import { ModalComponent } from 'src/app/cdk/modal/modal/modal.component'
import { PlatformInfoService } from 'src/app/cdk/platform-info'
import { SnackbarService } from 'src/app/cdk/snackbar/snackbar.service'
import { RecordEmailsService } from 'src/app/core/record-emails/record-emails.service'
+import { RecordNamesService } from 'src/app/core/record-names/record-names.service'
import { TogglzService } from 'src/app/core/togglz/togglz.service'
import { UserInfoService } from 'src/app/core/user-info/user-info.service'
+import { RecordUtil } from 'src/app/shared/utils/record.util'
import {
AssertionVisibilityString,
EmailsEndpoint,
@@ -91,6 +93,7 @@ export class ModalEmailComponent implements OnInit, OnDestroy {
loadingTogglz = false
emailDomainsTogglz = false
disableVisibilities: { [domainPutcode: string]: VisibilityStrings[] } = {}
+ displayName: string
isMobile: boolean
userInfo: UserInfo
@@ -98,6 +101,7 @@ export class ModalEmailComponent implements OnInit, OnDestroy {
constructor(
public dialogRef: MatDialogRef,
public _recordEmails: RecordEmailsService,
+ private _names: RecordNamesService,
private _changeDetectorRef: ChangeDetectorRef,
private _platform: PlatformInfoService,
private _snackBar: SnackbarService,
@@ -117,6 +121,13 @@ export class ModalEmailComponent implements OnInit, OnDestroy {
(platform) => (this.isMobile = platform.columns4 || platform.columns8)
)
+ this._names
+ .getNames()
+ .pipe(takeUntil(this.$destroy))
+ .subscribe((names) => {
+ this.displayName = RecordUtil.getDisplayName(names)
+ })
+
this._recordEmails
.getEmails()
.pipe(
diff --git a/src/app/cdk/side-bar/side-bar/side-bar.component.html b/src/app/cdk/side-bar/side-bar/side-bar.component.html
index c8d875f19..50cc46573 100644
--- a/src/app/cdk/side-bar/side-bar/side-bar.component.html
+++ b/src/app/cdk/side-bar/side-bar/side-bar.component.html
@@ -144,7 +144,9 @@
[name]="
email.professionalEmail
? orcidEmailValidation
- : email.sourceName || email.source
+ : displayName ||
+ userInfo.EFFECTIVE_USER_ORCID ||
+ userInfo.REAL_USER_ORCID
"
[isEmailOrDomain]="true"
[date]="
diff --git a/src/app/cdk/side-bar/side-bar/side-bar.component.ts b/src/app/cdk/side-bar/side-bar/side-bar.component.ts
index 439819c95..1d8432162 100644
--- a/src/app/cdk/side-bar/side-bar/side-bar.component.ts
+++ b/src/app/cdk/side-bar/side-bar/side-bar.component.ts
@@ -13,7 +13,6 @@ import { RecordService } from 'src/app/core/record/record.service'
import {
Address,
Assertion,
- AssertionVisibilityString,
NameForm,
RequestInfoForm,
UserInfo,
@@ -75,6 +74,7 @@ export class SideBarComponent implements OnInit, OnDestroy {
userInfo: UserInfo
userRecord: UserRecord
platform: PlatformInfo
+ displayName: string
websiteOpenState = false
keywordOpenState = false
@@ -138,9 +138,8 @@ export class SideBarComponent implements OnInit, OnDestroy {
this.orcidId = true
}
this.userRecord = userRecord
-
this.userInfo = userRecord?.userInfo
-
+ this.displayName = RecordUtil.getDisplayName(userRecord?.names)
this.onSideBarElementsDisplay(userRecord)
})
}
diff --git a/src/app/shared/utils/record.util.ts b/src/app/shared/utils/record.util.ts
index d20a2cf8f..fe0733434 100644
--- a/src/app/shared/utils/record.util.ts
+++ b/src/app/shared/utils/record.util.ts
@@ -1,5 +1,6 @@
import { E } from '@angular/cdk/keycodes'
import { Assertion } from 'src/app/types'
+import { NamesEndPoint } from 'src/app/types/record-name.endpoint'
import { UserRecord } from 'src/app/types/record.local'
export class RecordUtil {
@@ -21,6 +22,22 @@ export class RecordUtil {
: ''
}
+ static getDisplayName(names: NamesEndPoint): string {
+ if (
+ names?.creditName &&
+ names?.creditName.value &&
+ names?.creditName.value.length
+ ) {
+ return names.creditName.value
+ } else {
+ return (
+ ((names?.givenNames && names?.givenNames.value) || ' ') +
+ ' ' +
+ ((names?.familyName && names?.familyName.value) || ' ')
+ )
+ }
+ }
+
static isNamePublicAndAffiliations(
userRecord: UserRecord,
affiliations: number