Commit Graph

544 Commits

Author SHA1 Message Date
estifanos
10d2a8935a fixes 2026-08-18 11:49:08 +00:00
estifanos
98277924a3 UI improvements 2026-08-18 11:46:52 +00:00
mihretue
ae3af7777e fix(exam,result,question): kebab-icon action menus, status change as a picker
Two follow-ups on the dropdown-actions pass:
- All four action menus (exams, results, questions, candidates panel) now
  trigger off a plain three-dot icon button instead of a text 'Actions'
  button with a chevron.
- Exam status change no longer lists all six statuses flat in the dropdown
  (bad UX, looked like six always-visible options). 'Status' is now one
  menu item that opens a small picker modal (current status + a Select +
  Update) rather than the full edit form.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-18 11:46:16 +00:00
estifanos
de78052429 feat: add in-flight registration application tracking and status dashboard to vessel registration page 2026-08-18 11:43:11 +00:00
mihretue
80db201676 fix(exam,result): collapse row actions into a dropdown menu everywhere
Same treatment as the questions table, applied consistently: exams list,
exam results list, and the exam-detail candidates panel all now show a
single Actions button opening a dropdown instead of a row of inline
buttons/icons. Also fixes the exams list's action column header, which was
rendering the literal untranslated key ('exam.columns.actions') — missing
a fallback string, same pattern already used elsewhere in this file.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-18 11:40:13 +00:00
mihretue
896a19bd5d Merge remote-tracking branch 'origin/feature/exam-attempt-domain' into feature/exam-attempt-domain 2026-08-18 11:40:01 +00:00
estifanos
1509f8ca1f refactor: update vessel registration route and clarify navigation logic in OperationsOnboardingPage 2026-08-18 11:36:35 +00:00
mihretue
3ca5c342c3 fix(question): collapse row actions into a dropdown menu
Matches the exams table's action pattern — a single Actions button opening
a menu, instead of a row of inline buttons/icons that got crowded once a
question had submit/approve/reject/retire/edit/delete all applicable at
once.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-18 11:32:42 +00:00
estifanos
2257989821 feat: add account type synchronization to operations form based on selected license types 2026-08-18 11:23:30 +00:00
estifanos
581eac7466 UI changes 2026-08-18 10:57:37 +00:00
Estifo77
007c0e3d71 feat: configure vite settings for portal and backoffice apps with shared environment directory 2026-08-18 13:47:45 +03:00
estifanos
cb19928bde UI fixes 2026-08-18 10:41:44 +00:00
estifanos
5897e73442 feat: add status filtering and display to medical and sea service verification queues 2026-08-18 10:37:57 +00:00
estifanos
de0dcbfbe8 feat: add workflow profiles to restrict status filtering and sync queue counts by license type 2026-08-18 10:07:22 +00:00
estifanos
2d91092a6b refactor: remove VesselRegistrationHeadDashboardPage and associated navigation links 2026-08-18 09:54:13 +00:00
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
Fistum
1931e69594 Add error context and media files for seafarer registration tests
- Created error context markdown files for failed tests in seafarer registration, detailing validation errors related to profile details.
- Added binary files (PNG, ZIP, WEBM) for test results, including snapshots and traces for debugging purposes.
- Updated test cases to include new error context and media files for better analysis of failures.
2026-08-18 09:20:36 +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
Yonas Tewabe
a513c5d0b9 Update deploy.yml 2026-08-18 11:08:34 +03:00
Yonas Tewabe
ca82408dd8 Merge pull request #17 from Tria-plc/env
Env
2026-08-18 11:03:47 +03:00
Yonas Tewabe
d580379130 Change project name from 'edr' to 'ema' 2026-08-18 11:03:20 +03:00
Yonas Tewabe
94abc33392 Update deploy.yml 2026-08-18 11:01:40 +03:00
Yonas Tewabe
21e34295f1 Create sync-env-from-env-manager.sh 2026-08-18 10:57:57 +03: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
mihretue
2b653ac13b Merge branch 'feature/exam-attempt-domain' of github.com:Tria-plc/emaui into feature/exam-attempt-domain 2026-08-18 10:16:30 +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
mihretue
f0443b84b1 fix(exam): lock the exam form to CHOICE when administration is Online
Matches the new backend rule (online_exam_requires_choice_form) — picking
Online in the exam form now auto-sets Form to Choice and disables that
field with an explanatory hint, instead of letting the user pick Essay
and only finding out at save time.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-17 17:20:16 +00: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
mihretue
8239d7ebe2 feat(exam,result): quick status action, per-row publish
Two UX gaps found in testing:

- Exams list: changing status (e.g. PENDING -> ACTIVE) required opening the
  full Edit modal for a one-field change. Added a status menu (teal toggle
  icon) directly in the row actions, calling PUT /exams/:id with just
  {status} — the backend DTO was already PartialType, nothing to change
  there.
- Exam Results: publishing required first picking the exam in a page-level
  filter to un-grey the header Publish button — not discoverable, and an
  extra step disconnected from the row you actually care about. Added a
  Publish action directly on any APPROVED result's row, confirm-gated since
  it publishes every approved result for that exam (not just the one row)
  and notifies every candidate. The header filter+button still works too,
  for publishing a batch at once.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-17 12:20:21 +00:00
Nati
13c4e09f88 Fix 2026-08-17 12:03:19 +00:00
mihretue
74eee3ad48 Merge branch 'feature/exam-attempt-domain' of github.com:Tria-plc/emaui into feature/exam-attempt-domain 2026-08-17 15:02:08 +03:00
mihretue
83d309248d feat(exam): regrade action + stop inviting a re-take on a finished exam
Two fixes surfaced by actual candidate-flow testing:

- Portal 'My registrations' always showed 'Take exam' regardless of whether
  the candidate had already finished — clicking it just hit
  attempt_already_submitted server-side. The registrations/mine response
  now carries the attempt's status; the row shows a Completed/Time expired
  badge once finished, or 'Resume exam' while still in progress, and only
  invites a fresh start when there's genuinely nothing yet.
- Backoffice candidates panel: a Regrade button next to a SUBMITTED/EXPIRED
  sitting, calling the new POST /exam-attempts/:id/regrade — the officer's
  path to the same staff-triggered regrade, no SQL needed.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-17 12:00:45 +00:00
mihretue
d13fa4ba15 Merge branch 'feature/exam-attempt-domain' of github.com:Tria-plc/emaui into feature/exam-attempt-domain 2026-08-17 14:43:45 +03:00
Nati
50679614fb Application Commit 2026-08-17 11:33:14 +00:00
mihretue
e97e12d979 Merge remote-tracking branch 'origin/certficate' into feature/exam-attempt-domain 2026-08-17 11:19:17 +00:00
Nati Nigussie
df556c7526 Merge pull request #15 from Tria-plc/certficate
Certficate
2026-08-17 14:09:07 +03:00
mihretue
2ba07c6865 Merge branch 'feature/exam-attempt-domain' of github.com:Tria-plc/emaui into feature/exam-attempt-domain 2026-08-17 13:41:39 +03: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
mihretue
4a7d36369f fix(exam): print real MCQ options, evaluation-method-aware cutting point check
Print showed blank A/B/C/D fill-in lines for every CHOICE question instead
of the real options — the detail page never fetched option data at all
(GET /exams/:id?i=questions, no nested options), and the print template
hardcoded the blanks regardless. Now requests
?i=questions,questions.options and prints the real option text, falling
back to blank lines only when a question genuinely has none on record.

Also fixed the print-time cutting-point guard: it compared raw point sum
to cutting point regardless of evaluationMethod, wrongly blocking valid
low-point-sum PERCENTAGE papers from printing. Now branches the same way
RecordResultModal's grading preview already does, and surfaces the
matching backend validation error (paper_cannot_reach_cutting_point) added
server-side for the same reason.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-17 09:43:09 +00: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