From 3e290d7cb5d573398cf75398d4a6a79e041259ae Mon Sep 17 00:00:00 2001 From: web Date: Thu, 17 Jul 2025 03:30:12 -0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix(rules):=20Change=20rule=20ty?= =?UTF-8?q?pe=20from=20'auto'=20to=20'default'=20and=20update?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/dashboard/rules/import-yaml-rules.tsx | 2 +- apps/admin/app/dashboard/rules/page.tsx | 58 ++++++++++--------- apps/admin/app/dashboard/rules/rule-form.tsx | 7 ++- apps/admin/locales/en-US/rules.json | 5 +- apps/admin/locales/ja-JP/rules.json | 2 - apps/admin/locales/zh-CN/rules.json | 5 +- apps/admin/locales/zh-HK/rules.json | 2 - apps/admin/services/admin/typings.d.ts | 2 +- apps/admin/services/common/typings.d.ts | 2 + apps/user/services/common/typings.d.ts | 2 + apps/user/services/user/typings.d.ts | 2 + 11 files changed, 48 insertions(+), 41 deletions(-) diff --git a/apps/admin/app/dashboard/rules/import-yaml-rules.tsx b/apps/admin/app/dashboard/rules/import-yaml-rules.tsx index 57d029d..429c72a 100644 --- a/apps/admin/app/dashboard/rules/import-yaml-rules.tsx +++ b/apps/admin/app/dashboard/rules/import-yaml-rules.tsx @@ -159,7 +159,7 @@ export default function ImportYamlRules({ onImportSuccess }: ImportYamlRulesProp enable: false, tags: [], icon: '', - type: 'auto', + type: 'default', default: isDefault, }); setImportProgress(i + 1); diff --git a/apps/admin/app/dashboard/rules/page.tsx b/apps/admin/app/dashboard/rules/page.tsx index b2f2458..0bc10d4 100644 --- a/apps/admin/app/dashboard/rules/page.tsx +++ b/apps/admin/app/dashboard/rules/page.tsx @@ -50,7 +50,7 @@ export default function Page() { enable: false, tags: values.tags || [], icon: values.icon || '', - type: values.type || 'auto', + type: values.type || 'default', default: false, }); toast.success(t('createSuccess')); @@ -117,39 +117,41 @@ export default function Page() { /> ), }, - { - accessorKey: 'icon', - header: t('appIcon'), - cell: ({ row }) => - row.getValue('icon') ? ( - {row.getValue('name')} - ) : ( -
- {row.original.name?.slice(0, 2)} -
- ), - }, - - { - accessorKey: 'name', - header: t('name'), - }, { accessorKey: 'type', header: t('type'), cell: ({ row }) => { - const type = row.original.type; - if (type === 'auto') return t('auto'); - if (type === 'ban') return t('ban'); - return type || '--'; + const type = row.original.type || 'default'; + if (type === 'default') { + return {t('default')}; + } + if (type === 'reject') { + return {t('reject')}; + } + if (type === 'direct') { + return {t('direct')}; + } + return {t('default')}; }, }, + { + accessorKey: 'name', + header: t('name'), + cell: ({ row }) => ( +
+ {row.original.icon && ( + {row.original.name} + )} + {row.original.name} +
+ ), + }, { accessorKey: 'tags', header: t('tags'), diff --git a/apps/admin/app/dashboard/rules/rule-form.tsx b/apps/admin/app/dashboard/rules/rule-form.tsx index 8796e04..130a2ea 100644 --- a/apps/admin/app/dashboard/rules/rule-form.tsx +++ b/apps/admin/app/dashboard/rules/rule-form.tsx @@ -43,7 +43,7 @@ const formSchema = z.object({ tags: z.array(z.string()).default([]), rules: z.string().default(''), icon: z.string().default(''), - type: z.string().default('auto'), + type: z.string().default('default'), }); interface RuleFormProps { @@ -172,8 +172,9 @@ export default function RuleForm>({ - {t('auto')} - {t('ban')} + {t('default')} + {t('reject')} + {t('direct')} diff --git a/apps/admin/locales/en-US/rules.json b/apps/admin/locales/en-US/rules.json index 2b3d18f..ae66b2e 100644 --- a/apps/admin/locales/en-US/rules.json +++ b/apps/admin/locales/en-US/rules.json @@ -1,8 +1,6 @@ { "analyzing": "Analyzing...", "appIcon": "Rule Icon", - "auto": "Auto", - "ban": "Ban", "cancel": "Cancel", "confirm": "Confirm", "confirmDelete": "Confirm Deletion", @@ -10,10 +8,12 @@ "createRule": "Add Rule", "createSuccess": "Rule created successfully", "createdAt": "Created At", + "default": "Default", "defaultRule": "Default Rule", "delete": "Delete", "deleteSuccess": "Rule deleted successfully", "deleteWarning": "Are you sure you want to delete this rule? This action cannot be undone.", + "direct": "Direct", "downloadTemplate": "Download Template", "edit": "Edit", "editRule": "Edit Rule", @@ -32,6 +32,7 @@ "noValidRules": "No valid rules found", "pleaseUploadFile": "Please upload a YAML file", "preview": "Preview", + "reject": "Reject", "rulesFormat": "Rule format: rule type,match content,[policy], where policy is optional.\nIf policy is not specified, the current rule group name will be used automatically. Examples:", "rulesLabel": "Rule Content", "searchRule": "Search rule name", diff --git a/apps/admin/locales/ja-JP/rules.json b/apps/admin/locales/ja-JP/rules.json index 0b069b3..659b59a 100644 --- a/apps/admin/locales/ja-JP/rules.json +++ b/apps/admin/locales/ja-JP/rules.json @@ -1,8 +1,6 @@ { "analyzing": "分析中...", "appIcon": "ルールアイコン", - "auto": "自動", - "ban": "ブロック", "cancel": "キャンセル", "confirm": "確認", "confirmDelete": "削除の確認", diff --git a/apps/admin/locales/zh-CN/rules.json b/apps/admin/locales/zh-CN/rules.json index 3ac4826..5272426 100644 --- a/apps/admin/locales/zh-CN/rules.json +++ b/apps/admin/locales/zh-CN/rules.json @@ -1,8 +1,6 @@ { "analyzing": "分析中...", "appIcon": "规则图标", - "auto": "自动", - "ban": "封禁", "cancel": "取消", "confirm": "确认", "confirmDelete": "确认删除", @@ -10,10 +8,12 @@ "createRule": "添加规则", "createSuccess": "创建规则成功", "createdAt": "创建时间", + "default": "默认", "defaultRule": "默认规则", "delete": "删除", "deleteSuccess": "删除规则成功", "deleteWarning": "确定要删除所选规则吗?此操作不可恢复。", + "direct": "直连", "downloadTemplate": "下载模板", "edit": "编辑", "editRule": "编辑规则", @@ -32,6 +32,7 @@ "noValidRules": "没有找到有效的规则", "pleaseUploadFile": "请上传YAML文件", "preview": "预览", + "reject": "拒绝", "rulesFormat": "规则格式说明:规则类型,匹配内容,[策略], 其中策略为可选项。\n不指定策略时,将自动使用当前规则组名称, 示例:", "rulesLabel": "规则内容", "searchRule": "搜索规则名称", diff --git a/apps/admin/locales/zh-HK/rules.json b/apps/admin/locales/zh-HK/rules.json index 03103fd..6748cf7 100644 --- a/apps/admin/locales/zh-HK/rules.json +++ b/apps/admin/locales/zh-HK/rules.json @@ -1,8 +1,6 @@ { "analyzing": "分析中...", "appIcon": "規則圖標", - "auto": "自動", - "ban": "封禁", "cancel": "取消", "confirm": "確認", "confirmDelete": "確認刪除", diff --git a/apps/admin/services/admin/typings.d.ts b/apps/admin/services/admin/typings.d.ts index d872528..0c774da 100644 --- a/apps/admin/services/admin/typings.d.ts +++ b/apps/admin/services/admin/typings.d.ts @@ -1288,8 +1288,8 @@ declare namespace API { type: string; tags: string[]; rules: string; - default: boolean; enable: boolean; + default: boolean; created_at: number; updated_at: number; }; diff --git a/apps/admin/services/common/typings.d.ts b/apps/admin/services/common/typings.d.ts index b03f085..afaa74d 100644 --- a/apps/admin/services/common/typings.d.ts +++ b/apps/admin/services/common/typings.d.ts @@ -696,9 +696,11 @@ declare namespace API { id: number; icon: string; name: string; + type: string; tags: string[]; rules: string; enable: boolean; + default: boolean; created_at: number; updated_at: number; }; diff --git a/apps/user/services/common/typings.d.ts b/apps/user/services/common/typings.d.ts index b03f085..afaa74d 100644 --- a/apps/user/services/common/typings.d.ts +++ b/apps/user/services/common/typings.d.ts @@ -696,9 +696,11 @@ declare namespace API { id: number; icon: string; name: string; + type: string; tags: string[]; rules: string; enable: boolean; + default: boolean; created_at: number; updated_at: number; }; diff --git a/apps/user/services/user/typings.d.ts b/apps/user/services/user/typings.d.ts index e7b9b63..e5925ea 100644 --- a/apps/user/services/user/typings.d.ts +++ b/apps/user/services/user/typings.d.ts @@ -794,9 +794,11 @@ declare namespace API { id: number; icon: string; name: string; + type: string; tags: string[]; rules: string; enable: boolean; + default: boolean; created_at: number; updated_at: number; };