Commit Graph

312 Commits

Author SHA1 Message Date
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
272a77dad5 Merge pull request #43 from Tria-plc/estif-branch-1
merge from documentVault
2026-08-31 10:23:56 +03:00
Nati
16ac650f5f feat(applications): add discard functionality for draft applications and update UI 2026-08-31 07:11:05 +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
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
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
Estifo77
af3fad018a Merge branch 'WorkflowChange' of https://github.com/Tria-plc/emaui into estif-branch-1 2026-08-29 09:03:43 +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
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
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
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
Estifo77
c53c1b8a45 Merge branch 'WorkflowChange' of https://github.com/Tria-plc/emaui into estif-branch-1 2026-08-28 12:47:46 +03:00
Estifo77
4dc1ee18b9 revert 2026-08-28 11:59:23 +03:00
estifanos
f255621672 feat: add support for global personal document requirements in applicant vaults 2026-08-28 08:54:10 +00:00
estifanos
627fcfbfde UI fixes 2026-08-28 08:18:19 +00:00
Nati
5006e4685b feat: add biometric enrollment and viewing capabilities with API integration 2026-08-28 08:15:39 +00:00
estifanos
c26528dad5 feat: implement DocumentVaultPage to display seafarer licenses, medical certificates, and official documents with PDF preview functionality. 2026-08-28 07:56:04 +00:00
estifanos
c1005cf927 refactor: replace dimmed text hint with an alert box and remove opacity styling on locked license cards 2026-08-28 07:40:58 +00:00
estifanos
7f69cb2cba feat: disable unavailable licenses in catalogue and add explanation with link to operations management 2026-08-28 07:38:47 +00:00
estifanos
82b316e90b feat: localize license status labels and display detailed status reasons in LicenseCard 2026-08-28 07:37:43 +00:00
estifanos
6d2c01ae73 feat: allow applicants to view declared personal licenses in the catalogue by expanding the filter to include non-logistics family types present in the user declaration 2026-08-28 07:32:31 +00:00
estifanos
51627f9918 feat: add inspection rescheduling workflow and unlock dependencies for flagged document sections 2026-08-28 06:46:06 +00:00
mihretue
c4e1f61691 Merge branch 'feature/fayda-auth-and-email-notifications' of github.com:Tria-plc/emaui into feature/fayda-auth-and-email-notifications 2026-08-27 17:08:20 +03:00
mihretue
7792128573 Merge branch 'dev' of github.com:Tria-plc/emaui into feature/fayda-auth-and-email-notifications 2026-08-27 17:07:31 +03:00
mihretue
22e4b84e23 Merge remote-tracking branch 'origin/dev' into feature/fayda-auth-and-email-notifications
# Conflicts:
#	apps/backoffice/src/app/features/user-management/UserManagementPage.tsx
2026-08-27 14:03:33 +00:00
mihretue
53edd90330 Merge remote-tracking branch 'origin/dev' into feature/exam-attempt-domain 2026-08-27 13:19:51 +00:00
mihretue
12ffa72cb2 fix(exam): gate Take Exam on confirmed attendance
The registrations table mirrored the server's old attendance deny-list —
ABSENT/WITHDRAWN/DISQUALIFIED — so the default REGISTERED fell through and
"Take exam" appeared before any invigilator had confirmed the candidate was
there. It is an allow-list now, PRESENT and LATE only, matching
ExamAttemptService.MAY_SIT.

A blocked candidate gets a reason rather than an empty cell: "Awaiting
attendance" with a tooltip while nobody has called the register, "Not sitting"
once attendance was taken and they are not. useExamAttempt does the same for
the direct-link path, and translates attendance_not_confirmed /
candidate_not_present instead of showing a raw error key on a Start button
that cannot work. The server refuses either way — this only makes the refusal
legible.

ScheduleExamModal no longer promises an admission number: scheduling makes a
sitting available, and the candidate registers for it themselves.
2026-08-27 13:10:46 +00:00
estifanos
e86375e761 refactor: update application locking logic to handle staff remarks and itemized rounds 2026-08-27 12:37:04 +00:00
Nati Nigussie
b163aa4d3c Merge branch 'WorkflowChange' into logestic_chnage 2026-08-27 11:23:14 +03:00
fitse-yotor
12e7927d01 feat(certificate-designer): add custom page size options and update related components 2026-08-27 10:53:11 +03:00
estifanos
f01c0ec31e feat: add INSPECTION_FAILED state, enforce inspection scheduling locks, and improve adjustment round UI for section locking and remark labeling 2026-08-27 07:36:07 +00:00
estifanos
4ec585f407 feat: include location and physical attributes in seafarer registration default answers 2026-08-27 06:47:44 +00:00
estifanos
3955dab014 adding bypass payment 2026-08-26 12:17:46 +00:00
estifanos
32ac18adc2 endorcement 2026-08-26 11:52:13 +00:00
Estifo77
08e9b73b8f Merge branch 'WorkflowChange' of https://github.com/Tria-plc/emaui into estif-branch-1 2026-08-26 13:27:12 +03:00
estifanos
b099870370 fix: prevent out-of-bounds wizard steps and remove duplicate FieldCondition property definition 2026-08-26 09:52:31 +00:00
estifanos
13c3e8974d feat: consolidate CoC and GOC endorsement workflows into a new ENDORSEMENT_SEAFARER type and add anyOf support to conditional form field logic. 2026-08-26 09:44:08 +00:00
Nati
207994df69 Implement nationality-based document requirements and add cancellation feature for seafarer registration 2026-08-26 09:14:45 +00:00
mihretue
c753009ed9 refactor(api): resolve the backend URL in one place
VITE_BASE_API_URL with a localhost:3001/api fallback was re-derived in six
files across libs/api, libs/auth, the portal and the backoffice — and a seventh
site (UserManagementPage) read the env raw with no fallback at all, handing the
IAM user-management app an undefined apiUrl whenever no .env was present.

BASE_API_URL in base-query-with-reauth.ts is now the single definition,
exported from @ema-platform/api; every other site imports it. Trims the env
value and treats blank as unset, matching how the backend reads its own keys.
2026-08-26 09:09:25 +00:00
Estifo77
a86f4750bc Merge branch 'WorkflowChange' of https://github.com/Tria-plc/emaui into estif-branch-1 2026-08-26 08:43:31 +03:00
mihretue
baea9f2b57 chore(dev): serve the portal on 3000 for the Fayda redirect
The Fayda redirect URI registered for local testing is
http://localhost:3000/callback, matched exactly by the provider, so the portal
has to be the thing listening there. Its dev and preview servers move from 4200
to 3000 and the API moves to 3001.

Every hardcoded fallback to http://localhost:3000/api follows — six copies of
the same default across libs/api, libs/auth, the portal and the backoffice —
otherwise a developer without a .env would have had the app calling itself.

e2e is unaffected: it binds its own ports (3011/4302/4303) explicitly.
2026-08-25 19:04:27 +00:00
mihretue
0582c311c9 feat(signup): serve the Fayda callback at /callback too
Fayda matches the registered redirect URI exactly, and the value being
registered first is a bare /callback. The descriptive path stays so the route
still reads as part of signup once that can be changed.
2026-08-25 13:24:29 +00:00