mirror of
https://github.com/Tria-plc/emaui.git
synced 2026-09-07 17:45:43 +00:00
fix(exam): stop Create/Update Exam form from silently failing to submit
Three bugs compounded into a button that looked unwired: - cuttingPoint carried a native HTML required attribute while sitting on the hidden Settings tab (Mantine keeps inactive tab panels mounted with display:none). The browser blocked form submission entirely, silently - no toast, no error, nothing. Replaced required with withAsterisk and moved validation into JS. - Manual required-field validation never checked type/form/adminMethod/ evalMethod/cuttingPoint at all, so even without the native block above a half-filled Settings tab would silently no-op. Validation now covers every required field on both tabs and switches to whichever tab has the problem. - Filling only the English Direction field (leaving Amharic blank) passed frontend validation but the backend hard-rejects it, producing a 400 with a confusing error. Frontend now requires both-or-neither, matching the same rule already applied to MCQ options. Also translates the previously hardcoded validation message in both locales. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -254,6 +254,9 @@ export const am: Translations = {
|
||||
random: "በዘፈቀደ",
|
||||
cuttingPoint: "የማለፊያ ነጥብ",
|
||||
cuttingPointPlaceholder: "ለማለፍ ዝቅተኛ ነጥብ",
|
||||
fillRequiredBasic: "በመሠረታዊ መረጃ ውስጥ ያሉ አስፈላጊ መስኮችን ይሙሉ።",
|
||||
fillRequiredSettings: "በቅንብሮች ውስጥ ያሉ አስፈላጊ መስኮችን ይሙሉ — ዓይነት፣ ቅጽ፣ የአስተዳደር ዘዴ፣ የግምገማ ዘዴ እና የማለፊያ ነጥብ።",
|
||||
directionBothLanguages: "መመሪያ በሁለቱም እንግሊዝኛ እና አማርኛ ጽሑፍ ያስፈልገዋል፣ ወይም ሁለቱንም ባዶ ይተዉ።",
|
||||
status: "ሁኔታ",
|
||||
statusPlaceholder: "የፈተና ሁኔታ",
|
||||
pending: "በመጠባበቅ ላይ",
|
||||
|
||||
@@ -251,6 +251,9 @@ export const en = {
|
||||
random: 'Random',
|
||||
cuttingPoint: 'Cutting Point (Pass Mark)',
|
||||
cuttingPointPlaceholder: 'Minimum score to pass',
|
||||
fillRequiredBasic: 'Please fill all required fields in Basic Info.',
|
||||
fillRequiredSettings: 'Please fill all required fields in Settings — type, form, administration method, evaluation method, and cutting point.',
|
||||
directionBothLanguages: 'Direction needs text in both English and Amharic, or leave both empty.',
|
||||
status: 'Status',
|
||||
statusPlaceholder: 'Exam status',
|
||||
pending: 'Pending',
|
||||
|
||||
Reference in New Issue
Block a user