Commit Graph

405 Commits

Author SHA1 Message Date
estifanos
7e19ce9cc9 Revert "mock data for test"
This reverts commit 02b9c73caf.
2026-08-18 09:38:54 +00:00
estifanos
02b9c73caf mock data for test 2026-08-18 09:35:47 +00:00
Estifo77
fbe9129fb7 Merge branch 'estif-branch-1' of https://github.com/Tria-plc/emaui into estif-branch-1 2026-08-18 11:59:52 +03:00
Estifo77
eb0b1b7d80 fixes 2026-08-18 11:59:46 +03:00
estifanos
2b95454b4b feat: implement interactive vessel registration reporting page with filters, charts, and data tables 2026-08-18 08:57:51 +00:00
estifanos
1dc82d943a feat: update document review progress tooltip with detailed counts and formatting 2026-08-18 07:46:51 +00:00
estifanos
3d508acc41 feat: implement 18+ age validation, enforce document review completion for approvals, and refactor DecisionBar UI 2026-08-18 07:43:48 +00:00
Estifo77
c6ecb2dd48 fix 2026-08-18 10:22:12 +03:00
Estifo77
6a717eb761 Merge branch 'WorkflowChange' of https://github.com/Tria-plc/emaui into estif-branch-1 2026-08-18 09:56:16 +03:00
Nati
c7bd69eecb fix(seafarer): route registration through the application wizard
/seafarer-registration had a page of its own that wrote the profile directly
and created no application at all. A "submitted" registration was therefore
never reviewed, never approved and never numbered — there was nothing for an
officer to open. The shared wizard, the review queue and the approval side
effects all already existed; only the route pointed away from them.

The page is deleted rather than repaired. It was a second wizard maintained
alongside the config-driven one, and the seed already describes every step it
was hand-rolling — including the physical characteristics and medical details
added this release, which it would not have known about. /seafarer-registration
now redirects, so navigation, deep links and the profile gate keep working.

Also adds Configuration -> Number Formats, for the shape of generated seafarer,
seaman book and BTC numbers. The sample is rendered by the server rather than
formatted here, so the preview cannot drift from what an approval will actually
generate, and asking for one never consumes a number.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 14:48:26 +00:00
Nati
13c4e09f88 Fix 2026-08-17 12:03:19 +00:00
Nati
50679614fb Application Commit 2026-08-17 11:33:14 +00:00
estifanos
366f75a84d fixes 2026-08-17 10:34:00 +00:00
estifanos
ecd875adf4 fixes 2026-08-17 10:30:03 +00:00
estifanos
903b178527 UI 2026-08-17 10:25:40 +00:00
estifanos
0ad617510e fixes 2026-08-17 10:22:32 +00:00
estifanos
023af2dca4 fixes 2026-08-17 10:19:29 +00:00
Estifo77
84e3500352 Merge branch 'certficate' of https://github.com/Tria-plc/emaui into estif-branch-1 2026-08-17 13:16:22 +03:00
Nati
7f45df04e0 feat(seafarer-registration): remove standalone registration page and redirect to licensing flow; update profile handling and eligibility checks 2026-08-17 09:15:39 +00:00
Nati
3e3d20174c feat(certificates): enhance eligibility checks for CoC/CoP application with tooltips and alerts 2026-08-17 08:19:33 +00:00
estifanos
aa3b6e834b localization fixes 2026-08-17 08:10:53 +00:00
estifanos
73f7127ac8 Localization on Portal 2026-08-17 07:52:09 +00:00
Nati
ad9b14d716 fix(profile): change update method from PATCH to PUT for profile updates 2026-08-17 07:45:22 +00:00
Nati
ef3a59e617 Information Update 2026-08-17 07:36:44 +00:00
Nati
1f2261a68b feat(seafarer-registration): update profile handling and address submission logic 2026-08-17 07:23:23 +00:00
estifanos
28ae9f393d fixes 2026-08-17 07:13:34 +00:00
Nati
4ed2057a45 feat(onboarding): enhance navigation after registration by using selected keys 2026-08-17 07:11:07 +00:00
estifanos
2341f90107 fix: redirect to home instead of login on auth failure in backoffice and portal stores 2026-08-17 07:09:36 +00:00
estifanos
4a33347853 refactor: redirect to root path instead of login page on logout in Backoffice and Portal layouts 2026-08-17 07:05:28 +00:00
nati14575
c698f381b9 fix(api): update BASE_API_URL to use localhost:3000 for consistency 2026-08-17 09:58:51 +03:00
fitse-yotor
fa7eb3dc5f feat(backoffice): restore Mengestab's seafarer register and wire it up
The approved single-page register -- with the detail modal that shows a
seafarer's full standing -- had been replaced by a three-file grid that
carried no profile view. That is why the seafarer profile appeared
missing from the backoffice entirely.

Restores his page and points it at /seafarer-registry. The list is
served whole and filtered in the browser: the filters are instant facets
over a page-sized list, and a round trip per keystroke would make the
search feel slower than the data it searches.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 07:15:08 +03:00
fitse-yotor
c52d739e18 fix(portal): stop the profile gate hiding the approved registration wizard
/seafarer-registration was wrapped in RequireSeafarerProfile, which sends
an applicant with an incomplete profile to /profile first. That gate
belongs to the replacement design, where registration is filled in from
the profile. Mengestab's approved wizard asks for those same personal,
identity and contact details itself across its four steps, so the gate
bounced the applicant out before they ever saw the form -- which is why
the approved UI looked missing rather than merely unreachable.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 07:05:43 +03:00
fitse-yotor
29f400618e feat(portal): wire the certificates and endorsement screens to the API
Both listed hardcoded samples -- a CoC application permanently awaiting
examination, an endorsement from Greece. They now show the seafarer's
own certificates and applications.

Status badges are keyed by the workflow's own values rather than display
strings, so a status the map has not seen falls back to grey instead of
rendering colourless, and the label is derived from the status itself
rather than stored beside it where the two can disagree.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 06:57:36 +03:00
fitse-yotor
35c7987047 feat(portal): wire the medical, BST and seaman-book screens to the API
These three carried hardcoded sample data -- a certificate expiring in
2026, a fully-ticked training list, an eligibility checklist that always
passed. They now read the portal endpoints and show the seafarer's own
record.

Expiry is taken from the server rather than recomputed in the browser:
it is the same figure the eligibility gate uses, and a client clock that
is wrong or in another timezone would otherwise show a seafarer a
different number than the officer sees. Eligibility likewise -- the
screen asks whether it may apply rather than deciding for itself, so it
cannot offer a button the API then refuses.

The seaman-book stepper is derived from the application's status instead
of a stored timeline, because the status is what the workflow actually
moves; a second record of the same journey would only drift out of step.
Status colours are keyed by the workflow's own values, so an unmapped
status falls back to grey rather than vanishing.

/medical and /basic-safety-training had no route at all -- both silently
fell through to the dashboard, which is why the pages looked unreachable
rather than merely unwired.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 01:18:59 +03:00
fitse-yotor
702496202f fix(portal): make the restored seafarer/vessel UI compile
Restores three pages the current router imports that Mengestab's branch
never had -- MySeaRecordsPage, VesselTransferPage,
VesselRegistrationStatusPage -- from history, along with the vessel
mock module the status page reads.

Also fixes a dead comparison in VesselRegistrationPage: the block only
renders while a registration is *not* approved, so the nested
`status === 'Approved'` inside it is provably false and TypeScript
refuses it. Rendering behaviour is unchanged.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-16 23:27:27 +03:00
fitse-yotor
eabaae36a0 feat(portal): restore Mengestab's client-approved seafarer and vessel UI
Copied verbatim from the pre-override branch so the approved screens are
recoverable at this exact commit before any wiring changes them.

Brings back the richer flows the client signed off: a four-step seafarer
registration wizard with bilingual inputs and an Ethiopic date picker,
the vessel-owner portal (its own register/login/dashboard), ownership
transfer, and the seaman book, certificate, medical and endorsement
screens.

Six of these pages already call an API; ten are mockups carrying
hardcoded data. Both are committed as-is here -- the wiring that follows
is a separate commit so the diff shows exactly what changed from what
the client approved.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-16 23:19:08 +03:00
fitse-yotor
f294f67ced fix(portal,backoffice): six reported issues in registration and the designer
Seafarer and vessel registration were filtered out of the operations
step by `requiresOperatorMode !== false`, so someone registering as a
seafarer or vessel owner landed on an onboarding screen that did not
describe them. Both now appear, grouped apart from the company modes:
declaring "I am a seafarer" is a different kind of statement from "my
company forwards freight".

The designer's preview was gated on the Handlebars source alone, which a
canvas layout does not have until the server compiles it on save -- so
the button was dead for exactly the designs the canvas exists for.

Editing looked broken rather than deliberately read-only: every seeded
template is PUBLISHED, and a published design is immutable because
certificates were issued from it. Says so, and offers the new-version
action that is the way forward.

Reviewing officers saw company, capital and staff tabs on seafarer
certificate applications, because PRESENTATION is keyed by the generic
licence keys and the fifty-odd rank-specific CoC/CoP keys fell through
to the company default. Matched by prefix instead, so a certificate
configured tomorrow gets the right presentation without a code change.

Seaman book and BTC are wired to the newly seeded licence types and no
longer marked "soon".

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-16 22:21:00 +03:00
fitse-yotor
c58a727a96 Merge branch 'feature/seaman' of https://github.com/Tria-plc/emaui into certficate 2026-08-15 12:44:39 +03:00
fitse-yotor
7772a93f26 feat: add allowScripts configuration for specific package versions in package.json 2026-08-15 12:43:23 +03:00
fitse-yotor
0ac75669d4 feat: add ExamStageActions component for exam fee handling
- Implemented ExamStageActions component to manage actions related to exam booking and payment based on application status.
- Added mock-base-query for development, providing a partial mock backend for various API endpoints.
- Introduced mock-data for simulating responses in the mock-base-query, covering profiles, vessels, applications, licenses, exams, and notifications.
2026-08-15 11:51:14 +03:00
Estifo77
31934f5933 loader rollout 2026-08-15 11:43:02 +03:00
Estifo77
fc2730f60b loader roleout on backoffice 2026-08-15 11:33:28 +03:00
Estifo77
6330c9ea55 applying loader on pages 2026-08-15 11:25:30 +03:00
estifanos
51cf0fbd17 UI landing page route fix 2026-08-15 07:02:37 +00:00
Estifo77
57682188de UI improvments on landing page 2026-08-14 15:33:14 +03:00
Estifo77
c00a19dd99 UI improvements 2026-08-14 15:10:41 +03:00
Estifo77
7733fe8efd UI improvements 2026-08-14 15:03:02 +03:00
Estifo77
9a7b93cfb6 loader UI improvements 2026-08-14 14:45:57 +03:00
estifanos
f31e75c3de feat: implement PageLoader component and register maritime loader as the default theme loader 2026-08-14 11:35:34 +00:00
Estifo77
652503d1de Merge branch 'dev' of https://github.com/Tria-plc/emaui into estif-branch-1 2026-08-14 13:45:31 +03:00