Commit Graph

686 Commits

Author SHA1 Message Date
mihretue
8438bc5122 Merge branch 'dev' of github.com:Tria-plc/emaui into fix/coc-exam-workflow-defects 2026-08-31 14:20:32 +03:00
Nati Nigussie
21191313e3 Merge pull request #51 from Tria-plc/WorkflowChange
Workflow change
2026-08-31 14:10:07 +03:00
Nati Nigussie
6f141baca9 Merge pull request #50 from Tria-plc/estif-branch-1
document vault integration and fixes
2026-08-31 14:09:03 +03:00
Estifanos Terefe
3068e51bd4 Merge pull request #49 from Tria-plc/documentVaultIntegration
Document vault integration
2026-08-31 14:05:35 +03:00
estifanos
eb338f66b9 feat: add StaffRolesCard component for managing license type staff requirements and integrate with existing API endpoints. 2026-08-31 10:26:36 +00:00
estifanos
e5117b1837 feat: add minSource property to Field interface for dynamic configuration binding 2026-08-31 09:37:53 +00:00
mihretue
46f317a73f Merge remote-tracking branch 'origin/dev' into fix/coc-exam-workflow-defects
# Conflicts:
#	apps/portal/src/app/features/licensing/pages/MyApplicationsPage/index.tsx
#	libs/api/src/lib/features/licensing/licensing-api.ts
#	libs/api/src/lib/features/licensing/licensing.types.ts
2026-08-31 09:16:24 +00:00
estifanos
317a1532b1 feat: implement auto-filling of license and registration document slots from personal vault and add UI labels for vault-sourced files 2026-08-31 08:18:27 +00:00
Nati Nigussie
576c2db913 Merge pull request #48 from Tria-plc/WorkflowChange
Workflow change
2026-08-31 11:09:27 +03:00
mihretue
ee64856983 fix(exam): show the back office the real examination state
The COC detail page read the application status alone, so a candidate who had
registered, been marked present, sat the paper and had a PASSED mark published
still appeared to be awaiting an exam — and the officer was offered "Schedule
exam" and "Record exam result" for work already done.

ExamStatePanel reads GET /exams/applications/:id/state, which the server
derives from the registration, the attempt and the published mark. Session,
date and admission number while the exam is ahead; score, outcome and whether
the exam engine or an examiner produced the mark once it is settled. Polled,
because attendance is recorded and papers are marked while the officer has the
page open. Same derivation the applicant's portal reads, so the two cannot
disagree.

The eligible-exams query, the scheduling mutation and the outcome mutation are
gone from the RTK layer along with the endpoints behind them.
2026-08-31 08:04:56 +00:00
Nati Nigussie
f1d6640629 Merge pull request #47 from Tria-plc/estif-branch-1
Estif branch 1
2026-08-31 10:30:03 +03:00
Estifanos Terefe
613d772389 Merge pull request #46 from Tria-plc/featDymanicSeeder
Feat dymanic seeder
2026-08-31 10:28:44 +03:00
Nati Nigussie
272a77dad5 Merge pull request #43 from Tria-plc/estif-branch-1
merge from documentVault
2026-08-31 10:23:56 +03:00
mihretue
6f4878d300 fix(exam): step the exam form, derive portal status, drop queue overrides
Four screens were telling the applicant things that were not true, and two
back-office actions were writing state nobody should be able to write by hand.

The exam form is a stepper. Basic Info and Settings each answer only for their
own fields, and a third step reviews the whole thing before anything is sent —
"Create Exam" exists on that step alone, so there is no path from an earlier
one into the API. Clicking it from Basic Info used to report the Settings
fields as missing: a correct error the user could not act on, since that step
had not been shown yet. The rules move to ./validation, which is what the
per-step check and the final whole-payload check both read, so the two cannot
drift apart. Back keeps everything entered — state lives in the component.

The portal derives the examination stage from the records rather than from the
application status alone. Registering, attendance and the sitting itself all
happen on the registration and the attempt, and the portal read none of them —
which is how an application still said "Awaiting Exam Date" after the back
office had already evaluated the paper. examStageFor() names what the records
add up to: eligible to register, registered, attendance confirmed, sitting,
under evaluation, passed, failed. Both the applications list and the
certificates page use it, and both poll the registrations they read it from,
because attendance is recorded by an invigilator while the candidate is
watching the screen.

EXAM_PAID is no longer a waiting state. Nobody assigns a date: the fee having
cleared is exactly what makes the candidate eligible to pick a published
sitting, so that row now offers Register rather than a disabled button.

Schedule Exam and Record Exam Outcome are gone from the COC queue — actions,
modals, RTK endpoints and strings. Their server endpoints are gone too, so
this is not a hidden button over a live route.
2026-08-31 07:14:59 +00:00
Nati
16ac650f5f feat(applications): add discard functionality for draft applications and update UI 2026-08-31 07:11:05 +00:00
estifanos
4eb9fe1ec2 feat: add inspection, issuance, and renewal toggles to certificate requirement settings 2026-08-31 07:01:09 +00:00
Estifo77
dae24f48db Merge branch 'WorkflowChange' of https://github.com/Tria-plc/emaui into estif-branch-1 2026-08-31 09:19:35 +03:00
Nati Nigussie
d5e34b59ff Merge pull request #45 from Tria-plc/WorkflowChange
Workflow change
2026-08-29 13:04:32 +03:00
Nati Nigussie
9c81731759 Merge branch 'dev' into WorkflowChange 2026-08-29 13:04:22 +03:00
nati14575
a5c875f8f8 Refactor code structure for improved readability and maintainability 2026-08-29 12:56:47 +03:00
Nati
b8dc7274e6 feat(configuration): add BSID to NumberFormatScope and update related UI 2026-08-29 09:53:30 +00:00
Nati
e1f33be0e2 feat(biometric-enrollment): update profile picker to reflect seafarers awaiting enrolment and adjust UI messages
feat(seafarer-registration): add AWAITING_BIOMETRICS and UNDER_REVIEW statuses to registration constants and types
2026-08-29 08:48:49 +00:00
estifanos
e25a786139 feat: add support for license validity defined in days alongside months 2026-08-29 08:41:08 +00:00
estifanos
53c0ec98af refactor: move license validity management to behavior tab and add capital threshold requirement 2026-08-29 08:22:09 +00:00
estifanos
92390ed573 chore: update Amharic translations in backoffice locale file 2026-08-29 08:03:27 +00:00
Nati
760eee9155 Merge branch 'WorkflowChange' of github.com:Tria-plc/emaui into WorkflowChange 2026-08-29 06:52:20 +00:00
Nati
890aca44f4 feat(signature): add signature functionality for officers and seafarers
- Implemented MySignaturePad component for officers to draw and upload their signatures.
- Added signature API endpoints for managing officer signatures in the backoffice.
- Created SignaturePad component for seafarers to manage their specimen signatures.
- Updated ProfilePage to include signature tabs for both officers and seafarers.
- Added translations for signature-related terms in English and Amharic.
- Introduced RankTier options for seafarer registration.
- Added tests for canvas-point utility to ensure accurate pointer mapping on signature pad.
2026-08-29 06:52:14 +00:00
estifanos
2e9083211f feat: add configuration UI for license behavior and multi-stage examination fees 2026-08-29 06:37:58 +00:00
Estifo77
af3fad018a Merge branch 'WorkflowChange' of https://github.com/Tria-plc/emaui into estif-branch-1 2026-08-29 09:03:43 +03:00
fitsum tesfaye
d4bb70cf5e Merge pull request #44 from Tria-plc/logestic_chnage
Logestic chnage
2026-08-28 16:35:25 +03:00
fitse-yotor
fa217fc577 Merge origin/WorkflowChange into logestic_chnage
Resolves conflicts:
- LicenseReviewPage: dropped a duplicated schedule-issuance ActionIcon,
  keeping the Tooltip-wrapped one and adding scheduledPeriod (required
  by the scheduleIssuance mutation) to it.
- portal i18n (en.ts/am.ts): both sides added distinct keys under
  licensing.card (reportDamaged/reissueFailed vs status/statusReason) —
  kept both, additive.
- licensing.helpers.ts: kept sectionAppliesToKind (this branch) and
  switched to the centralized BASE_API_URL import from
  base-api/base-query-with-reauth (WorkflowChange), dropping the local
  duplicate constant.
2026-08-28 16:27:36 +03:00
fitse-yotor
a4fe5a7111 Merge branch into logestic_chnage, resolve licensing-api tag conflict
Kept both new cache tags (PickupOffice/PickupAppointment from this
branch, Department/Rank from origin) — additive, not conflicting.
2026-08-28 15:51:09 +03:00
fitse-yotor
687e3df3c2 feat: add pickup appointment scheduling and management features
- Introduced new pickup appointment functionalities in the licensing API, including scheduling, rescheduling, and managing pickup offices.
- Added UI components for the pickup desk, allowing officers to check in, issue documents, and manage no-show appointments.
- Implemented a new page for managing pickup offices with CRUD operations.
- Enhanced internationalization support for new pickup-related terms and messages.
- Updated licensing types to include new application kinds and issuance periods.
- Created a read-only panel for displaying scheduled pickup appointments in the licensing component.
2026-08-28 15:49:05 +03:00
Estifo77
1384885bc1 Merge branch 'WorkflowChange' of https://github.com/Tria-plc/emaui into estif-branch-1 2026-08-28 15:27:43 +03:00
Estifanos Terefe
a6e36eedd6 Merge pull request #42 from Tria-plc/documentVault
Document vault
2026-08-28 15:26:01 +03:00
Estifanos Terefe
72fc690d53 Merge branch 'estif-branch-1' into documentVault 2026-08-28 15:25:50 +03:00
Mihretu Endeshaw
bff1ae5375 Merge pull request #41 from Tria-plc/feature/fayda-auth-and-email-notifications
Feature/fayda auth and email notifications
2026-08-28 14:43:49 +03:00
Mihretu Endeshaw
f158f3e649 Merge pull request #38 from Tria-plc/feature/fayda-auth-and-email-notifications
Feature/fayda auth and email notifications
2026-08-28 14:43:13 +03:00
estifanos
3b0e5b1eb4 refactor: replace hash-based license badge coloring with a deterministic, collision-resistant palette based on sort order 2026-08-28 11:39:47 +00:00
nati14575
9841092ddc Merge branch 'WorkflowChange' of https://github.com/Tria-plc/emaui into WorkflowChange 2026-08-28 14:39:02 +03:00
nati14575
a66eef352c feat(i18n): add biometric-related translations and update navigation permissions 2026-08-28 14:38:56 +03:00
estifanos
c4b903bc49 feat: implement deterministic color-coding for licence type badges and update default scope badge style 2026-08-28 11:33:07 +00:00
Nati Nigussie
07c2869fbe Merge pull request #40 from Tria-plc/WorkflowChange
Workflow change
2026-08-28 14:29:35 +03:00
Nati Nigussie
25be14f228 Merge pull request #39 from Tria-plc/estif-branch-1
Comments from tade
2026-08-28 14:28:41 +03:00
estifanos
664558146d feat: add debounced search input and clear filter functionality to PersonalDocumentsCard 2026-08-28 11:28:41 +00:00
estifanos
bf083bff82 feat: refactor personal document management to use server-side pagination, grouping, and filtering 2026-08-28 11:17:25 +00:00
estifanos
215487fd0f fix: adjust SeafarerRegistryPage container padding and wrap table in scroll container for responsiveness 2026-08-28 10:54:40 +00:00
estifanos
6f9986acef feat: add support for additional audio file types to document requirements drawer 2026-08-28 10:45:45 +00:00
estifanos
32f5fb4590 feat: implement FilePreviewModal to support image, video, and audio previews alongside PDFs 2026-08-28 10:45:06 +00:00
estifanos
3368c9bd3f feat: implement XHR-based file upload with progress tracking to replace RTK-based mutations for personal documents 2026-08-28 10:42:04 +00:00