Commit Graph

22 Commits

Author SHA1 Message Date
mihretue
df9db6a36e feat(question): add CHOICE options inline while creating, not after
Create a CHOICE question and the options fields were hidden behind a
'save first' message — had to save, then reopen via Edit, to actually add
options. Added an inline options editor (local state, same bilingual
fields/correct-checkbox as the existing edit-mode one) directly in the
create form. On submit: create the question, then immediately call
setOptions with the drafted options using the new question's id — one
action from the user's point of view, two API calls under the hood.
Edit mode is unchanged, still uses the existing QuestionOptionsEditor
against the real question id.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-18 12:00:15 +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
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
mihretue
84ff644ebb fix(question): show both language fields for MCQ options
Options editor used a single toggle-based bilingual field (BilingualInput)
that swapped English/Amharic in place via a tiny, easy-to-miss button.
Authors were filling English only and never noticing Amharic was empty.

- QuestionOptionsEditor: show separate always-visible English/Amharic
  TextInputs per option instead of the toggle field.
- BilingualInput (shared): for other callers still using the toggle,
  add a tooltip and a red dot indicator when the hidden language is
  empty, so the gap is visible without switching.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-17 08:26:21 +00:00
mihretue
14b5bb83f9 feat(question): MCQ options authoring editor (Phase 2 domain foundation)
Backend now supports MCQ options + a separate answer-key table
(PUT /questions/:id/options). Frontend side of that, authoring only —
no candidate exam-taking UI.

- Question type gains options?: QuestionOption[] (no correctness field —
  the API never returns one, matching the backend's split-table design)
- New question-api hooks: getQuestionWithOptions, setQuestionOptions
- New QuestionOptionsEditor component (separate file, not inlined into
  QuestionPage) — add/remove/reorder options, mark correct, bilingual text
- Wired into the question edit form, shown only for an existing CHOICE
  question (options attach to an id, matching the backend's replace
  endpoint)
- en/am i18n strings for the new editor

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-13 19:28:03 +00:00
Nati
6852fc86c6 feat: implement permission-based access control across various pages and components
- Added RequirePermission component to manage access based on user permissions.
- Integrated permission checks in MySeaRecordsPage, SeafarerRegistrationPage, VesselRegistrationPage, WaiverPage, and PortalLayout.
- Updated router to enforce permissions for specific routes.
- Introduced PORTAL_PERMISSIONS and LICENSE_PERMISSIONS constants for consistent permission management.
- Enhanced usePermissions hook to fetch permissions from the server and determine access rights.
- Refactored UI components to conditionally render based on user permissions, improving security and user experience.
2026-08-13 12:58:11 +00:00
Nati
220ed2d018 Merge branch 'dev' of github.com:Tria-plc/emaui into Refactor
Resolved by unifying on the lib/data AdvancedTable (PR #10) as the canonical
table component: kept its API plus teammate i18n/feature work, kept the
folder-per-table structure (index.tsx + columns.tsx + actions.tsx) across all
27 tables, removed the parallel lib/table implementation, and fixed
pre-existing compile breaks in ExamDetailPage/QuestionAssigner/RecordResultModal.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 11:31:27 +00:00
Nati
2af9e60800 feat(vessel-registration): add vessel registration page with incident reporting and certificate download functionality
feat(waiver): implement waiver page with application tracking and letter download feature

feat(ui): introduce AdvancedTable component for enhanced table functionality across the application

chore: update package-lock.json to remove unnecessary dependencies
2026-08-13 09:11:50 +00:00
estifanos
7c9f78c680 feat: replace Paper with Modal in CertificationPage, ConfigurationPage, ExamPage, and QuestionPage for consistent UI 2026-08-12 07:55:43 +00:00
estifanos
7c3a25245f UI fixes 2026-08-11 11:48:09 +00:00
estifanos
70b6562045 fixes 2026-08-08 06:32:03 +00:00
Estifo77
23675005fc Refactor imports and improve LoginPage validation logic 2026-08-08 09:26:47 +03:00
Estifo77
203d2e5026 Merge branch 'dev' of https://github.com/Tria-plc/emaui into estif-branch-1 2026-08-08 09:03:50 +03:00
Mulu Mehari
7c968c7093 Adding more functionalities for all the license types 2026-08-07 11:50:07 +03:00
estifanos
bbae230ad5 feat: implement ModalFooter component for consistent modal action layout 2026-08-05 08:50:38 +00:00
estifanos
5fb6927d1a fix: remove hardcoded page size from useServerTable in multiple pages for consistency 2026-08-05 07:30:10 +00:00
estifanos
599dc4aa83 feat(i18n): add new translations for refresh, view, toggle columns, and no results
refactor(payment): remove payment API client and related tests, consolidating payment logic

refactor(payment): delete payment modal and associated constants, hooks, and types

fix(ui): enhance AdvancedTable with refresh button and column toggle functionality

fix(ui): implement pagination in useServerTable for better data handling
2026-08-03 09:22:02 +00:00
estifanos
8f7c163b9e feat: integrate error handling across various components
- Added `useErrorHandler` hook to centralize error handling logic.
- Updated components in the backoffice and portal applications to utilize the new error handling mechanism, replacing direct notify calls with `handleError` for improved error messaging.
- Enhanced localization files to include generic error messages for better user feedback.
- Refactored error handling in forms and API interactions to ensure consistent user experience across the application.
2026-07-24 09:08:41 +00:00
mengstabketemaw
9fd59f52ed feat: add i18n support and localized labels to certification and profession features commit 2026-06-30 15:57:25 +03:00
Mengisteab
ae78c54c51 fix: update the exam module 2026-06-30 07:52:47 +00:00
mengstabketemaw
b78b43a5c1 feat: add description field to question entity commit 2026-06-27 10:20:41 +03:00
mengstabketemaw
d7420d2de6 feat: added exam modules 2026-06-26 12:10:38 +03:00