diff --git a/src/app/features/registry/components/registry-revisions/registry-revisions.component.ts b/src/app/features/registry/components/registry-revisions/registry-revisions.component.ts
index 52f1d27f0..be870a199 100644
--- a/src/app/features/registry/components/registry-revisions/registry-revisions.component.ts
+++ b/src/app/features/registry/components/registry-revisions/registry-revisions.component.ts
@@ -43,7 +43,7 @@ export class RegistryRevisionsComponent {
schemaResponses = this.isModeration()
? schemaResponses
- : schemaResponses.filter((r) => r.reviewsState === RevisionReviewStates.Approved);
+ : schemaResponses.filter((r) => r.reviewsState === RevisionReviewStates.Approved || r.isOriginalResponse);
return schemaResponses.map((response, index) => {
const onlyOne = schemaResponses.length === 1;
diff --git a/src/app/features/registry/components/registry-statuses/registry-statuses.component.html b/src/app/features/registry/components/registry-statuses/registry-statuses.component.html
index eee19584f..04f31e1d1 100644
--- a/src/app/features/registry/components/registry-statuses/registry-statuses.component.html
+++ b/src/app/features/registry/components/registry-statuses/registry-statuses.component.html
@@ -11,7 +11,7 @@
{{ 'registry.overview.statuses.' + registry()?.status +
{{
'registry.overview.statuses.' + registry()?.status + '.long'
- | translate: { embargoEndDate: embargoEndDate }
+ | translate: { embargoEndDate: embargoEndDate, email: supportEmail }
}}
diff --git a/src/app/features/registry/components/registry-statuses/registry-statuses.component.ts b/src/app/features/registry/components/registry-statuses/registry-statuses.component.ts
index 0b179c285..94d0b32da 100644
--- a/src/app/features/registry/components/registry-statuses/registry-statuses.component.ts
+++ b/src/app/features/registry/components/registry-statuses/registry-statuses.component.ts
@@ -8,6 +8,7 @@ import { Button } from 'primeng/button';
import { ChangeDetectionStrategy, Component, computed, HostBinding, inject, input } from '@angular/core';
import { RouterLink } from '@angular/router';
+import { ENVIRONMENT } from '@core/provider/environment.provider';
import { RegistrationReviewStates, RegistryStatus, RevisionReviewStates } from '@osf/shared/enums';
import { CustomConfirmationService, CustomDialogService } from '@osf/shared/services';
@@ -25,6 +26,9 @@ import { WithdrawDialogComponent } from '../withdraw-dialog/withdraw-dialog.comp
export class RegistryStatusesComponent {
@HostBinding('class') classes = 'flex-1 flex';
private readonly customDialogService = inject(CustomDialogService);
+ private readonly environment = inject(ENVIRONMENT);
+
+ readonly supportEmail = this.environment.supportEmail;
registry = input.required();
canEdit = input(false);
diff --git a/src/app/shared/constants/registration-statuses.ts b/src/app/shared/constants/registration-statuses.ts
index 156d7a693..f57867033 100644
--- a/src/app/shared/constants/registration-statuses.ts
+++ b/src/app/shared/constants/registration-statuses.ts
@@ -22,4 +22,5 @@ export const RegistryStatusMap: Record = {
[RegistryStatus.PendingModeration]: { label: 'shared.statuses.pendingModeration', severity: 'warn' },
[RegistryStatus.Withdrawn]: { label: 'shared.statuses.withdrawn', severity: 'danger' },
[RegistryStatus.UpdatePendingApproval]: { label: 'shared.statuses.updatePendingApproval', severity: 'warn' },
+ [RegistryStatus.InitialApproved]: { label: 'shared.statuses.initialApproved', severity: 'warn' },
};
diff --git a/src/app/shared/enums/registry-status.enum.ts b/src/app/shared/enums/registry-status.enum.ts
index 86d2aef10..003f36295 100644
--- a/src/app/shared/enums/registry-status.enum.ts
+++ b/src/app/shared/enums/registry-status.enum.ts
@@ -13,4 +13,5 @@ export enum RegistryStatus {
PendingModeration = 'pendingModeration',
Withdrawn = 'withdrawn',
UpdatePendingApproval = 'updatePendingApproval',
+ InitialApproved = 'initialApproved',
}
diff --git a/src/app/shared/mappers/registration/map-registry-status.mapper.ts b/src/app/shared/mappers/registration/map-registry-status.mapper.ts
index 80e21a2e1..7761172e4 100644
--- a/src/app/shared/mappers/registration/map-registry-status.mapper.ts
+++ b/src/app/shared/mappers/registration/map-registry-status.mapper.ts
@@ -18,6 +18,11 @@ export function MapRegistryStatus(
registry.reviews_state === RegistrationReviewStates.Accepted
) {
return RegistryStatus.UpdatePendingApproval;
+ } else if (
+ registry.reviews_state === RegistrationReviewStates.Pending &&
+ registry.revision_state === RevisionReviewStates.RevisionPendingModeration
+ ) {
+ return RegistryStatus.Pending;
} else if (registry.revision_state === RevisionReviewStates.Unapproved) {
return RegistryStatus.Unapproved;
} else if (registry.reviews_state === RegistrationReviewStates.PendingWithdrawRequest) {
@@ -34,6 +39,11 @@ export function MapRegistryStatus(
return RegistryStatus.PendingWithdraw;
} else if (registry.reviews_state === RegistrationReviewStates.Withdrawn) {
return RegistryStatus.Withdrawn;
+ } else if (
+ registry.reviews_state === RegistrationReviewStates.Initial &&
+ registry.revision_state === RevisionReviewStates.Approved
+ ) {
+ return RegistryStatus.InitialApproved;
} else {
return RegistryStatus.None;
}
diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json
index f87bb75fe..355bd04eb 100644
--- a/src/assets/i18n/en.json
+++ b/src/assets/i18n/en.json
@@ -2543,6 +2543,11 @@
"text": "Update pending",
"short": "Update pending approval",
"long": "This registration has an update that is waiting for approval from its contributors. Updates will be made available once approved."
+ },
+ "initialApproved": {
+ "text": "Pending",
+ "short": "Pending admin contributor approval",
+ "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}}."
}
},
"metadata": {
@@ -2660,7 +2665,8 @@
"inProgress": "Update in progress",
"pendingModeration": "Pending moderation",
"withdrawn": "Withdrawn",
- "updatePendingApproval": "Update pending approval"
+ "updatePendingApproval": "Update pending approval",
+ "initialApproved": "Pending"
}
},
"resourceCard": {