From 2cb2a115b017a8eff11a154aac21d11e6f91c67e Mon Sep 17 00:00:00 2001 From: Adrian Astles <49412215+adrianeastles@users.noreply.github.com> Date: Thu, 7 Aug 2025 23:14:24 +0800 Subject: [PATCH] align template rules table columns with resource rules page --- .../ruleTemplate/TemplateRulesManager.tsx | 91 +++++++++++++------ 1 file changed, 61 insertions(+), 30 deletions(-) diff --git a/src/components/ruleTemplate/TemplateRulesManager.tsx b/src/components/ruleTemplate/TemplateRulesManager.tsx index 540e38ce..1a9b4b7e 100644 --- a/src/components/ruleTemplate/TemplateRulesManager.tsx +++ b/src/components/ruleTemplate/TemplateRulesManager.tsx @@ -76,6 +76,17 @@ export function TemplateRulesManager({ templateId, orgId }: TemplateRulesManager const [loading, setLoading] = useState(true); const [addingRule, setAddingRule] = useState(false); + const RuleAction = { + ACCEPT: t('alwaysAllow'), + DROP: t('alwaysDeny') + } as const; + + const RuleMatch = { + PATH: t('path'), + IP: "IP", + CIDR: t('ipAddressRange') + } as const; + const form = useForm>({ resolver: zodResolver(addRuleSchema), defaultValues: { @@ -183,72 +194,93 @@ export function TemplateRulesManager({ templateId, orgId }: TemplateRulesManager const columns: ColumnDef[] = [ { accessorKey: "priority", - header: ({ column }) => ( - - ), + header: ({ column }) => { + return ( + + ); + }, cell: ({ row }) => ( + className="w-[75px]" + type="number" + onBlur={(e) => { + const parsed = z.coerce + .number() + .int() + .optional() + .safeParse(e.target.value); + + if (!parsed.data) { + toast({ + variant: "destructive", + title: t('rulesErrorInvalidIpAddress'), + description: t('rulesErrorInvalidPriorityDescription') + }); + return; + } + updateRule(row.original.ruleId, { - priority: parseInt(e.target.value, 10) - }) - } + priority: parsed.data + }); + }} /> ) }, { accessorKey: "action", - header: "Action", + header: t('rulesAction'), cell: ({ row }) => ( ) }, { accessorKey: "match", - header: "Match", + header: t('rulesMatchType'), cell: ({ row }) => ( ) }, { accessorKey: "value", - header: "Value", + header: t('value'), cell: ({ row }) => ( ( ( ) }