From dae22ca490e91828411c27fe54e3ba3304d45a78 Mon Sep 17 00:00:00 2001 From: zichun Date: Fri, 10 Apr 2026 15:49:39 +0800 Subject: [PATCH] fix(web): add allowed-values + max-length inputs to custom field editor --- web/src/pages/MetadataAdminPage.tsx | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/web/src/pages/MetadataAdminPage.tsx b/web/src/pages/MetadataAdminPage.tsx index eef63fb..2baa0e7 100644 --- a/web/src/pages/MetadataAdminPage.tsx +++ b/web/src/pages/MetadataAdminPage.tsx @@ -145,6 +145,8 @@ export function MetadataAdminPage() { const [cfPii, setCfPii] = useState(false) const [cfLabelEn, setCfLabelEn] = useState('') const [cfLabelZh, setCfLabelZh] = useState('') + const [cfAllowedValues, setCfAllowedValues] = useState('') + const [cfMaxLength, setCfMaxLength] = useState('') const [cfSaving, setCfSaving] = useState(false) // ── Loaders ─────────────────────────────────────────────────────── @@ -192,6 +194,8 @@ export function MetadataAdminPage() { setCfTargetEntity('') setCfFieldKey('') setCfTypeKind('string') + setCfAllowedValues('') + setCfMaxLength('') setCfRequired(false) setCfPii(false) setCfLabelEn('') @@ -222,7 +226,11 @@ export function MetadataAdminPage() { const body: Omit = { key: cfFieldKey, targetEntity: cfTargetEntity, - type: { kind: cfTypeKind }, + type: { + kind: cfTypeKind, + ...(cfTypeKind === 'enum' && cfAllowedValues ? { allowedValues: cfAllowedValues.split(',').map((v) => v.trim()).filter(Boolean) } : {}), + ...(cfTypeKind === 'string' && cfMaxLength ? { maxLength: Number(cfMaxLength) } : {}), + }, required: cfRequired, pii: cfPii, labelTranslations: { @@ -613,6 +621,34 @@ export function MetadataAdminPage() { ))} + {cfTypeKind === 'enum' && ( +
+ + setCfAllowedValues(e.target.value)} + placeholder="LOW, NORMAL, HIGH, URGENT" + className="mt-1 w-full rounded-md border border-slate-300 px-2 py-1.5 text-sm" + /> +
+ )} + {cfTypeKind === 'string' && ( +
+ + setCfMaxLength(e.target.value)} + placeholder="255" + className="mt-1 w-full rounded-md border border-slate-300 px-2 py-1.5 text-sm" + /> +
+ )}