Skip to content

Commit e6eb783

Browse files
nsemetsmkovalua
authored andcommitted
fix( add email/merge account ): show model with merge warning if acc already exists and add alternative email modal if not exists
1 parent 6652e1d commit e6eb783

File tree

9 files changed

+50
-10
lines changed

9 files changed

+50
-10
lines changed

src/app/app.component.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,13 @@ export class AppComponent implements OnInit {
6262
}
6363

6464
private showEmailDialog() {
65+
const unverifiedEmailsData = this.unverifiedEmails();
6566
this.customDialogService.open(ConfirmEmailComponent, {
66-
header: 'home.confirmEmail.title',
67+
header: unverifiedEmailsData[0].isMerge
68+
? 'home.confirmEmail.isMerge.title'
69+
: 'home.confirmEmail.isNotMerge.title',
6770
width: '448px',
68-
data: this.unverifiedEmails(),
71+
data: unverifiedEmailsData,
6972
});
7073
}
7174
}

src/app/features/registry/components/registry-revisions/registry-revisions.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export class RegistryRevisionsComponent {
4343

4444
schemaResponses = this.isModeration()
4545
? schemaResponses
46-
: schemaResponses.filter((r) => r.reviewsState === RevisionReviewStates.Approved);
46+
: schemaResponses.filter((r) => r.reviewsState === RevisionReviewStates.Approved || r.isOriginalResponse);
4747

4848
return schemaResponses.map((response, index) => {
4949
const onlyOne = schemaResponses.length === 1;

src/app/features/registry/components/registry-statuses/registry-statuses.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ <h3 class="font-normal">{{ 'registry.overview.statuses.' + registry()?.status +
1111
<span>
1212
{{
1313
'registry.overview.statuses.' + registry()?.status + '.long'
14-
| translate: { embargoEndDate: embargoEndDate }
14+
| translate: { embargoEndDate: embargoEndDate, email: supportEmail }
1515
}}
1616
</span>
1717

src/app/features/registry/components/registry-statuses/registry-statuses.component.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { Button } from 'primeng/button';
88
import { ChangeDetectionStrategy, Component, computed, HostBinding, inject, input } from '@angular/core';
99
import { RouterLink } from '@angular/router';
1010

11+
import { ENVIRONMENT } from '@core/provider/environment.provider';
1112
import { RegistrationReviewStates, RegistryStatus, RevisionReviewStates } from '@osf/shared/enums';
1213
import { CustomConfirmationService, CustomDialogService } from '@osf/shared/services';
1314

@@ -25,6 +26,9 @@ import { WithdrawDialogComponent } from '../withdraw-dialog/withdraw-dialog.comp
2526
export class RegistryStatusesComponent {
2627
@HostBinding('class') classes = 'flex-1 flex';
2728
private readonly customDialogService = inject(CustomDialogService);
29+
private readonly environment = inject(ENVIRONMENT);
30+
31+
readonly supportEmail = this.environment.supportEmail;
2832

2933
registry = input.required<RegistryOverview | null>();
3034
canEdit = input<boolean>(false);

src/app/shared/components/confirm-email/confirm-email.component.html

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,17 @@
11
<div class="flex flex-column gap-6">
22
@if (!isSubmitting()) {
33
<p class="font-normal">
4-
{{ 'home.confirmEmail.description' | translate }}
4+
{{
5+
email.isMerge
6+
? ('home.confirmEmail.isMerge.description' | translate)
7+
: ('home.confirmEmail.isNotMerge.description' | translate)
8+
}}
59
<span class="inline font-bold">{{ email.emailAddress }}</span>
6-
{{ 'home.confirmEmail.description2' | translate }}
10+
{{
11+
email.isMerge
12+
? ('home.confirmEmail.isMerge.description2' | translate)
13+
: ('home.confirmEmail.isNotMerge.description2' | translate)
14+
}}
715
</p>
816

917
<div class="flex w-full justify-content-center gap-2">

src/app/shared/constants/registration-statuses.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,5 @@ export const RegistryStatusMap: Record<RegistryStatus, StatusInfo> = {
2222
[RegistryStatus.PendingModeration]: { label: 'shared.statuses.pendingModeration', severity: 'warn' },
2323
[RegistryStatus.Withdrawn]: { label: 'shared.statuses.withdrawn', severity: 'danger' },
2424
[RegistryStatus.UpdatePendingApproval]: { label: 'shared.statuses.updatePendingApproval', severity: 'warn' },
25+
[RegistryStatus.InitialApproved]: { label: 'shared.statuses.initialApproved', severity: 'warn' },
2526
};

src/app/shared/enums/registry-status.enum.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,5 @@ export enum RegistryStatus {
1313
PendingModeration = 'pendingModeration',
1414
Withdrawn = 'withdrawn',
1515
UpdatePendingApproval = 'updatePendingApproval',
16+
InitialApproved = 'initialApproved',
1617
}

src/app/shared/mappers/registration/map-registry-status.mapper.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@ export function MapRegistryStatus(
1818
registry.reviews_state === RegistrationReviewStates.Accepted
1919
) {
2020
return RegistryStatus.UpdatePendingApproval;
21+
} else if (
22+
registry.reviews_state === RegistrationReviewStates.Pending &&
23+
registry.revision_state === RevisionReviewStates.RevisionPendingModeration
24+
) {
25+
return RegistryStatus.Pending;
2126
} else if (registry.revision_state === RevisionReviewStates.Unapproved) {
2227
return RegistryStatus.Unapproved;
2328
} else if (registry.reviews_state === RegistrationReviewStates.PendingWithdrawRequest) {
@@ -34,6 +39,11 @@ export function MapRegistryStatus(
3439
return RegistryStatus.PendingWithdraw;
3540
} else if (registry.reviews_state === RegistrationReviewStates.Withdrawn) {
3641
return RegistryStatus.Withdrawn;
42+
} else if (
43+
registry.reviews_state === RegistrationReviewStates.Initial &&
44+
registry.revision_state === RevisionReviewStates.Approved
45+
) {
46+
return RegistryStatus.InitialApproved;
3747
} else {
3848
return RegistryStatus.None;
3949
}

src/assets/i18n/en.json

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -388,9 +388,16 @@
388388
}
389389
},
390390
"confirmEmail": {
391-
"title": "Add alternative email",
392-
"description": "Do you want to add ",
393-
"description2": "to your profile ?",
391+
"isMerge": {
392+
"title": "Merge account",
393+
"description": "Would you like to merge ",
394+
"description2": "into your account? This action is irreversible."
395+
},
396+
"isNotMerge": {
397+
"title": "Add alternative email",
398+
"description": "Do you want to add ",
399+
"description2": "to your profile ?"
400+
},
394401
"goToEmails": "Add email",
395402
"emailNotAdded": "{{name}} has not been added to your account.",
396403
"emailVerified": "{{name}} has been added to your account."
@@ -2543,6 +2550,11 @@
25432550
"text": "Update pending",
25442551
"short": "Update pending approval",
25452552
"long": "This registration has an update that is waiting for approval from its contributors. Updates will be made available once approved."
2553+
},
2554+
"initialApproved": {
2555+
"text": "Pending",
2556+
"short": "Pending admin contributor approval",
2557+
"long": "This registration is awaiting approval by all admin contributors or after 48 hours has passed. An email will notify all registration contributors of the decision. If the registration is pending after 48 hours has passed, contact support at {{email}}."
25462558
}
25472559
},
25482560
"metadata": {
@@ -2660,7 +2672,8 @@
26602672
"inProgress": "Update in progress",
26612673
"pendingModeration": "Pending moderation",
26622674
"withdrawn": "Withdrawn",
2663-
"updatePendingApproval": "Update pending approval"
2675+
"updatePendingApproval": "Update pending approval",
2676+
"initialApproved": "Pending"
26642677
}
26652678
},
26662679
"resourceCard": {

0 commit comments

Comments
 (0)