diff --git a/apps/backoffice/src/app/features/endorsement/pages/EndorsementQueuePage.tsx b/apps/backoffice/src/app/features/endorsement/pages/EndorsementQueuePage.tsx deleted file mode 100644 index 4ef48ada3..000000000 --- a/apps/backoffice/src/app/features/endorsement/pages/EndorsementQueuePage.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { Container } from '@mantine/core'; -import { FeatureUnavailable } from '@ema-platform/ui'; - -/** - * Placeholder until this feature has a backend. - * - * This page previously rendered hardcoded sample records, which were - * indistinguishable from real ones. - */ -export function EndorsementQueuePage() { - return ( - - - - ); -} - -export default EndorsementQueuePage; diff --git a/apps/backoffice/src/app/features/endorsement/pages/EndorsementReviewPage.tsx b/apps/backoffice/src/app/features/endorsement/pages/EndorsementReviewPage.tsx deleted file mode 100644 index 7bd998cbc..000000000 --- a/apps/backoffice/src/app/features/endorsement/pages/EndorsementReviewPage.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { Container } from '@mantine/core'; -import { FeatureUnavailable } from '@ema-platform/ui'; - -/** - * Placeholder until this feature has a backend. - * - * This page previously rendered hardcoded sample records, which were - * indistinguishable from real ones. - */ -export function EndorsementReviewPage() { - return ( - - - - ); -} - -export default EndorsementReviewPage; diff --git a/apps/backoffice/src/app/features/license-review/config/license-types.ts b/apps/backoffice/src/app/features/license-review/config/license-types.ts index fd8e62505..8b6901481 100644 --- a/apps/backoffice/src/app/features/license-review/config/license-types.ts +++ b/apps/backoffice/src/app/features/license-review/config/license-types.ts @@ -3,6 +3,7 @@ import { IconArrowsExchange, IconFileDescription, IconId, + IconRubberStamp, IconShip, IconTruck, IconUsers, @@ -97,6 +98,18 @@ const PRESENTATION: Record = { // no capital threshold, no staff roles. detailSections: ['overview', 'documents'], }, + ENDORSEMENT_COC: { + key: 'ENDORSEMENT_COC', + icon: IconRubberStamp, + // Person-centric, same as seafarer registration: no company entity, no + // capital threshold, no staff roles, no inspection. + detailSections: ['overview', 'documents'], + }, + ENDORSEMENT_GOC: { + key: 'ENDORSEMENT_GOC', + icon: IconRubberStamp, + detailSections: ['overview', 'documents'], + }, }; /** Falls back to a generic presentation so an unseeded type still renders. */ diff --git a/apps/backoffice/src/app/features/license-review/pages/LicenseQueuePage.tsx b/apps/backoffice/src/app/features/license-review/pages/LicenseQueuePage.tsx index 5b965d8a5..76fe108a4 100644 --- a/apps/backoffice/src/app/features/license-review/pages/LicenseQueuePage.tsx +++ b/apps/backoffice/src/app/features/license-review/pages/LicenseQueuePage.tsx @@ -97,6 +97,8 @@ const APPLICANT_NAME_TYPE_KEYS = [ "CERTIFICATE_OF_PROFICIENCY", "VESSEL_REGISTRATION", "VESSEL_OWNERSHIP_TRANSFER", + "ENDORSEMENT_COC", + "ENDORSEMENT_GOC", ]; function applicantOrCompanyName(app: LicenseApplication): string | undefined { diff --git a/apps/backoffice/src/app/i18n/locales/am.ts b/apps/backoffice/src/app/i18n/locales/am.ts index b6d3536ed..01c0f4e1a 100644 --- a/apps/backoffice/src/app/i18n/locales/am.ts +++ b/apps/backoffice/src/app/i18n/locales/am.ts @@ -38,6 +38,10 @@ export const am: Translations = { typeMto: "የብዝሃ-ሁነታ ትራንስፖርት አንቀሳቃሽ", typeSEAFARER_REGISTRATION: "የመርከበኞች ምዝገባ", typeVESSEL_OWNERSHIP_TRANSFER: "የመርከብ ባለቤትነት ዝውውር", + typeCERTIFICATE_OF_COMPETENCY: "የብቃት ማረጋገጫ ምስክር ወረቀት", + typeCERTIFICATE_OF_PROFICIENCY: "የብቃት ምስክር ወረቀት", + typeENDORSEMENT_COC: "የCoC ማረጋገጫ", + typeENDORSEMENT_GOC: "የGOC ማረጋገጫ", primary: "ዋና", destinations: "ወደ", noResults: "ምንም አልተገኘም", @@ -74,7 +78,8 @@ export const am: Translations = { seamanBookQueue: "የመርከበኞች መጽሐፍ ወረፋ", cocQueue: "የCoC ወረፋ", copQueue: "የCoP ወረፋ", - endorsementQueue: "የማረጋገጫ ወረፋ", + endorsementCocQueue: "የCoC ማረጋገጫ ወረፋ", + endorsementGocQueue: "የGOC ማረጋገጫ ወረፋ", vesselRegistrations: "የመርከብ ምዝገባ", // vesselRegistrationReport: 'የምዝገባ ሪፖርት', vesselTransfers: "የመርከብ ባለቤትነት ዝውውር", diff --git a/apps/backoffice/src/app/i18n/locales/en.ts b/apps/backoffice/src/app/i18n/locales/en.ts index aeafa7c65..be502f3b8 100644 --- a/apps/backoffice/src/app/i18n/locales/en.ts +++ b/apps/backoffice/src/app/i18n/locales/en.ts @@ -36,6 +36,10 @@ export const en = { typeMto: 'Multimodal Transport Operator', typeSEAFARER_REGISTRATION: 'Seafarer Registration', typeVESSEL_OWNERSHIP_TRANSFER: 'Vessel Ownership Transfer', + typeCERTIFICATE_OF_COMPETENCY: 'Certificate of Competency', + typeCERTIFICATE_OF_PROFICIENCY: 'Certificate of Proficiency', + typeENDORSEMENT_COC: 'CoC Endorsement', + typeENDORSEMENT_GOC: 'GOC Endorsement', primary: 'Primary', destinations: 'Go to', noResults: 'Nothing found', @@ -72,7 +76,8 @@ export const en = { postWaiverQueue: 'Post-Waiver Queue', cocQueue: 'CoC Queue', copQueue: 'CoP Queue', - endorsementQueue: 'Endorsement Queue', + endorsementCocQueue: 'CoC Endorsement Queue', + endorsementGocQueue: 'GOC Endorsement Queue', vesselRegistrations: 'Vessel Registration', vesselTransfers: 'Vessel Ownership Transfer', seafarerRegistry: 'Seafarer Registry', diff --git a/apps/backoffice/src/app/layouts/nav-config.ts b/apps/backoffice/src/app/layouts/nav-config.ts index 07e7c259a..e17382ae4 100644 --- a/apps/backoffice/src/app/layouts/nav-config.ts +++ b/apps/backoffice/src/app/layouts/nav-config.ts @@ -115,7 +115,8 @@ export const NAV_SECTIONS: NavSection[] = [ { to: '/licence-review/type/CERTIFICATE_OF_COMPETENCY', label: 'nav.cocQueue', icon: IconShieldCheck }, { to: '/licence-review/type/CERTIFICATE_OF_PROFICIENCY', label: 'nav.copQueue', icon: IconShieldCheck }, { to: '/seaman-book-queue', label: 'nav.seamanBookQueue', icon: IconBook2, soon: true }, - { to: '/endorsement-queue', label: 'nav.endorsementQueue', icon: IconRubberStamp, soon: true }, + { to: '/licence-review/type/ENDORSEMENT_COC', label: 'nav.endorsementCocQueue', icon: IconRubberStamp }, + { to: '/licence-review/type/ENDORSEMENT_GOC', label: 'nav.endorsementGocQueue', icon: IconRubberStamp }, { to: '/medical-verification', label: 'nav.medicalVerification', icon: IconHeart }, ], }, diff --git a/apps/backoffice/src/app/router/index.tsx b/apps/backoffice/src/app/router/index.tsx index 9837201f5..0ece345bd 100644 --- a/apps/backoffice/src/app/router/index.tsx +++ b/apps/backoffice/src/app/router/index.tsx @@ -19,8 +19,6 @@ import { ConfigurationPage } from '../features/configuration/pages/Configuration import { LocationPage } from '../features/location/pages/LocationPage'; import { AnalyticsPage } from '../features/analytics/pages/AnalyticsPage'; import { ApplicationReviewPage } from '../features/applications/pages/ApplicationReviewPage'; -import { EndorsementQueuePage } from '../features/endorsement/pages/EndorsementQueuePage'; -import { EndorsementReviewPage } from '../features/endorsement/pages/EndorsementReviewPage'; import { MedicalVerificationPage } from '../features/medical-verification/pages/MedicalVerificationPage'; import { PaymentConfigPage } from '../features/payment-config/pages/PaymentConfigPage'; import { SeafarerRegistryPage } from '../features/seafarer-registry/pages/SeafarerRegistryPage'; @@ -73,8 +71,9 @@ const router = createBrowserRouter([ // CoC/CoP review happens in the config-driven licence queue. { path: 'coc-queue', element: }, { path: 'coc-queue/:id', element: }, - { path: 'endorsement-queue', element: }, - { path: 'endorsement-queue/:id', element: }, + // Endorsement review happens in the config-driven licence queue. + { path: 'endorsement-queue', element: }, + { path: 'endorsement-queue/:id', element: }, { path: 'medical-verification', element: }, { path: 'payment-config', element: }, { path: 'seafarer-registry', element: },