🐛 fix(node): Add country and city fields to the form schema and localization files

This commit is contained in:
web@ppanel 2025-01-16 14:15:40 +07:00
parent 770932e957
commit 8775fb620e
27 changed files with 114 additions and 18 deletions

View File

@ -92,6 +92,8 @@ const protocolConfigSchema = z.discriminatedUnion('protocol', [
const baseFormSchema = z.object({ const baseFormSchema = z.object({
name: z.string(), name: z.string(),
tags: z.array(z.string()).nullish().default([]), tags: z.array(z.string()).nullish().default([]),
country: z.string().nullish(),
city: z.string().nullish(),
server_addr: z.string(), server_addr: z.string(),
speed_limit: z.number().nullish(), speed_limit: z.number().nullish(),
traffic_ratio: z.number().default(1), traffic_ratio: z.number().default(1),

View File

@ -160,23 +160,61 @@ export default function NodeForm<T extends { [x: string]: any }>({
)} )}
/> />
</div> </div>
<FormField <div className='grid grid-cols-5 gap-2'>
control={form.control} <FormField
name='tags' control={form.control}
render={({ field }) => ( name='tags'
<FormItem> render={({ field }) => (
<FormLabel>{t('form.tags')}</FormLabel> <FormItem className='col-span-3'>
<FormControl> <FormLabel>{t('form.tags')}</FormLabel>
<TagInput <FormControl>
placeholder={t('form.tagsPlaceholder')} <TagInput
value={field.value || []} placeholder={t('form.tagsPlaceholder')}
onChange={(value) => form.setValue(field.name, value)} value={field.value || []}
/> onChange={(value) => form.setValue(field.name, value)}
</FormControl> />
<FormMessage /> </FormControl>
</FormItem> <FormMessage />
)} </FormItem>
/> )}
/>
<FormField
control={form.control}
name='country'
render={({ field }) => (
<FormItem>
<FormLabel>{t('form.country')}</FormLabel>
<FormControl>
<EnhancedInput
{...field}
onValueChange={(value) => {
form.setValue(field.name, value);
}}
/>
</FormControl>
<FormMessage />
</FormItem>
)}
/>
<FormField
control={form.control}
name='city'
render={({ field }) => (
<FormItem>
<FormLabel>{t('form.city')}</FormLabel>
<FormControl>
<EnhancedInput
{...field}
onValueChange={(value) => {
form.setValue(field.name, value);
}}
/>
</FormControl>
<FormMessage />
</FormItem>
)}
/>
</div>
<div className='grid grid-cols-3 gap-2'> <div className='grid grid-cols-3 gap-2'>
<FormField <FormField
control={form.control} control={form.control}

View File

@ -123,6 +123,16 @@ export default function NodeTable() {
{ {
accessorKey: 'server_addr', accessorKey: 'server_addr',
header: t('serverAddr'), header: t('serverAddr'),
cell: ({ row }) => {
return (
<div className='flex gap-1'>
<Badge variant='outline'>
{row.original.country} - {row.original.city}
</Badge>
<Badge variant='outline'>{row.getValue('server_addr')}</Badge>
</div>
);
},
}, },
{ {
accessorKey: 'status', accessorKey: 'status',

View File

@ -66,7 +66,9 @@
"form": { "form": {
"allowInsecure": "Povolit nezabezpečené", "allowInsecure": "Povolit nezabezpečené",
"cancel": "Zrušit", "cancel": "Zrušit",
"city": "Město",
"confirm": "Potvrdit", "confirm": "Potvrdit",
"country": "Země",
"edit": "Upravit", "edit": "Upravit",
"editSecurity": "Upravit nastavení zabezpečení", "editSecurity": "Upravit nastavení zabezpečení",
"enableTLS": "Povolit TLS", "enableTLS": "Povolit TLS",

View File

@ -66,7 +66,9 @@
"form": { "form": {
"allowInsecure": "Unsicher zulassen", "allowInsecure": "Unsicher zulassen",
"cancel": "Abbrechen", "cancel": "Abbrechen",
"city": "Stadt",
"confirm": "Bestätigen", "confirm": "Bestätigen",
"country": "Land",
"edit": "Bearbeiten", "edit": "Bearbeiten",
"editSecurity": "Sicherheitskonfiguration bearbeiten", "editSecurity": "Sicherheitskonfiguration bearbeiten",
"enableTLS": "TLS aktivieren", "enableTLS": "TLS aktivieren",

View File

@ -66,7 +66,9 @@
"form": { "form": {
"allowInsecure": "Allow Insecure", "allowInsecure": "Allow Insecure",
"cancel": "Cancel", "cancel": "Cancel",
"city": "City",
"confirm": "Confirm", "confirm": "Confirm",
"country": "Country",
"edit": "Edit", "edit": "Edit",
"editSecurity": "Edit Security Configuration", "editSecurity": "Edit Security Configuration",
"enableTLS": "Enable TLS", "enableTLS": "Enable TLS",

View File

@ -66,7 +66,9 @@
"form": { "form": {
"allowInsecure": "Permitir inseguro", "allowInsecure": "Permitir inseguro",
"cancel": "Cancelar", "cancel": "Cancelar",
"city": "Ciudad",
"confirm": "Confirmar", "confirm": "Confirmar",
"country": "País",
"edit": "Editar", "edit": "Editar",
"editSecurity": "Editar configuración de seguridad", "editSecurity": "Editar configuración de seguridad",
"enableTLS": "Habilitar TLS", "enableTLS": "Habilitar TLS",

View File

@ -66,7 +66,9 @@
"form": { "form": {
"allowInsecure": "Permitir inseguro", "allowInsecure": "Permitir inseguro",
"cancel": "Cancelar", "cancel": "Cancelar",
"city": "Ciudad",
"confirm": "Confirmar", "confirm": "Confirmar",
"country": "País",
"edit": "Editar", "edit": "Editar",
"editSecurity": "Editar configuración de seguridad", "editSecurity": "Editar configuración de seguridad",
"enableTLS": "Habilitar TLS", "enableTLS": "Habilitar TLS",

View File

@ -66,7 +66,9 @@
"form": { "form": {
"allowInsecure": "اجازه به ناامن", "allowInsecure": "اجازه به ناامن",
"cancel": "لغو", "cancel": "لغو",
"city": "شهر",
"confirm": "تأیید", "confirm": "تأیید",
"country": "کشور",
"edit": "ویرایش", "edit": "ویرایش",
"editSecurity": "ویرایش تنظیمات امنیتی", "editSecurity": "ویرایش تنظیمات امنیتی",
"enableTLS": "فعال‌سازی TLS", "enableTLS": "فعال‌سازی TLS",

View File

@ -66,7 +66,9 @@
"form": { "form": {
"allowInsecure": "Salli epävarma", "allowInsecure": "Salli epävarma",
"cancel": "Peruuta", "cancel": "Peruuta",
"city": "Kaupunki",
"confirm": "Vahvista", "confirm": "Vahvista",
"country": "Maa",
"edit": "Muokkaa", "edit": "Muokkaa",
"editSecurity": "Muokkaa suojausasetuksia", "editSecurity": "Muokkaa suojausasetuksia",
"enableTLS": "Ota TLS käyttöön", "enableTLS": "Ota TLS käyttöön",

View File

@ -66,7 +66,9 @@
"form": { "form": {
"allowInsecure": "Autoriser l'insécurité", "allowInsecure": "Autoriser l'insécurité",
"cancel": "Annuler", "cancel": "Annuler",
"city": "Ville",
"confirm": "Confirmer", "confirm": "Confirmer",
"country": "Pays",
"edit": "Éditer", "edit": "Éditer",
"editSecurity": "Éditer la configuration de sécurité", "editSecurity": "Éditer la configuration de sécurité",
"enableTLS": "Activer TLS", "enableTLS": "Activer TLS",

View File

@ -66,7 +66,9 @@
"form": { "form": {
"allowInsecure": "असुरक्षित की अनुमति दें", "allowInsecure": "असुरक्षित की अनुमति दें",
"cancel": "रद्द करें", "cancel": "रद्द करें",
"city": "शहर",
"confirm": "पुष्टि करें", "confirm": "पुष्टि करें",
"country": "देश",
"edit": "संपादित करें", "edit": "संपादित करें",
"editSecurity": "सुरक्षा कॉन्फ़िगरेशन संपादित करें", "editSecurity": "सुरक्षा कॉन्फ़िगरेशन संपादित करें",
"enableTLS": "TLS सक्षम करें", "enableTLS": "TLS सक्षम करें",

View File

@ -66,7 +66,9 @@
"form": { "form": {
"allowInsecure": "Nem biztonságos engedélyezése", "allowInsecure": "Nem biztonságos engedélyezése",
"cancel": "Mégse", "cancel": "Mégse",
"city": "Város",
"confirm": "Megerősít", "confirm": "Megerősít",
"country": "Ország",
"edit": "Szerkesztés", "edit": "Szerkesztés",
"editSecurity": "Biztonsági beállítások szerkesztése", "editSecurity": "Biztonsági beállítások szerkesztése",
"enableTLS": "TLS engedélyezése", "enableTLS": "TLS engedélyezése",

View File

@ -66,7 +66,9 @@
"form": { "form": {
"allowInsecure": "安全でないことを許可", "allowInsecure": "安全でないことを許可",
"cancel": "キャンセル", "cancel": "キャンセル",
"city": "市",
"confirm": "確認", "confirm": "確認",
"country": "国",
"edit": "編集", "edit": "編集",
"editSecurity": "セキュリティ設定を編集", "editSecurity": "セキュリティ設定を編集",
"enableTLS": "TLSを有効化", "enableTLS": "TLSを有効化",

View File

@ -66,7 +66,9 @@
"form": { "form": {
"allowInsecure": "비보안 허용", "allowInsecure": "비보안 허용",
"cancel": "취소", "cancel": "취소",
"city": "도시",
"confirm": "확인", "confirm": "확인",
"country": "국가",
"edit": "편집", "edit": "편집",
"editSecurity": "보안 설정 편집", "editSecurity": "보안 설정 편집",
"enableTLS": "TLS 활성화", "enableTLS": "TLS 활성화",

View File

@ -66,7 +66,9 @@
"form": { "form": {
"allowInsecure": "Tillat usikker", "allowInsecure": "Tillat usikker",
"cancel": "Avbryt", "cancel": "Avbryt",
"city": "By",
"confirm": "Bekreft", "confirm": "Bekreft",
"country": "Land",
"edit": "Rediger", "edit": "Rediger",
"editSecurity": "Rediger sikkerhetskonfigurasjon", "editSecurity": "Rediger sikkerhetskonfigurasjon",
"enableTLS": "Aktiver TLS", "enableTLS": "Aktiver TLS",

View File

@ -66,7 +66,9 @@
"form": { "form": {
"allowInsecure": "Zezwól na niebezpieczne", "allowInsecure": "Zezwól na niebezpieczne",
"cancel": "Anuluj", "cancel": "Anuluj",
"city": "Miasto",
"confirm": "Potwierdź", "confirm": "Potwierdź",
"country": "Kraj",
"edit": "Edytuj", "edit": "Edytuj",
"editSecurity": "Edytuj konfigurację bezpieczeństwa", "editSecurity": "Edytuj konfigurację bezpieczeństwa",
"enableTLS": "Włącz TLS", "enableTLS": "Włącz TLS",

View File

@ -66,7 +66,9 @@
"form": { "form": {
"allowInsecure": "Permitir Inseguro", "allowInsecure": "Permitir Inseguro",
"cancel": "Cancelar", "cancel": "Cancelar",
"city": "Cidade",
"confirm": "Confirmar", "confirm": "Confirmar",
"country": "País",
"edit": "Editar", "edit": "Editar",
"editSecurity": "Editar Configuração de Segurança", "editSecurity": "Editar Configuração de Segurança",
"enableTLS": "Habilitar TLS", "enableTLS": "Habilitar TLS",

View File

@ -66,7 +66,9 @@
"form": { "form": {
"allowInsecure": "Permite nesigur", "allowInsecure": "Permite nesigur",
"cancel": "Anulează", "cancel": "Anulează",
"city": "Oraș",
"confirm": "Confirmă", "confirm": "Confirmă",
"country": "Țară",
"edit": "Editează", "edit": "Editează",
"editSecurity": "Editează configurația de securitate", "editSecurity": "Editează configurația de securitate",
"enableTLS": "Activează TLS", "enableTLS": "Activează TLS",

View File

@ -66,7 +66,9 @@
"form": { "form": {
"allowInsecure": "Разрешить небезопасное", "allowInsecure": "Разрешить небезопасное",
"cancel": "Отмена", "cancel": "Отмена",
"city": "Город",
"confirm": "Подтвердить", "confirm": "Подтвердить",
"country": "Страна",
"edit": "Редактировать", "edit": "Редактировать",
"editSecurity": "Редактировать настройки безопасности", "editSecurity": "Редактировать настройки безопасности",
"enableTLS": "Включить TLS", "enableTLS": "Включить TLS",

View File

@ -66,7 +66,9 @@
"form": { "form": {
"allowInsecure": "อนุญาตไม่ปลอดภัย", "allowInsecure": "อนุญาตไม่ปลอดภัย",
"cancel": "ยกเลิก", "cancel": "ยกเลิก",
"city": "เมือง",
"confirm": "ยืนยัน", "confirm": "ยืนยัน",
"country": "ประเทศ",
"edit": "แก้ไข", "edit": "แก้ไข",
"editSecurity": "แก้ไขการตั้งค่าความปลอดภัย", "editSecurity": "แก้ไขการตั้งค่าความปลอดภัย",
"enableTLS": "เปิดใช้งานTLS", "enableTLS": "เปิดใช้งานTLS",

View File

@ -66,7 +66,9 @@
"form": { "form": {
"allowInsecure": "Güvensizliğe izin ver", "allowInsecure": "Güvensizliğe izin ver",
"cancel": "İptal", "cancel": "İptal",
"city": "Şehir",
"confirm": "Onayla", "confirm": "Onayla",
"country": "Ülke",
"edit": "Düzenle", "edit": "Düzenle",
"editSecurity": "Güvenlik Ayarlarını Düzenle", "editSecurity": "Güvenlik Ayarlarını Düzenle",
"enableTLS": "TLS'i Etkinleştir", "enableTLS": "TLS'i Etkinleştir",

View File

@ -66,7 +66,9 @@
"form": { "form": {
"allowInsecure": "Дозволити небезпечні з'єднання", "allowInsecure": "Дозволити небезпечні з'єднання",
"cancel": "Скасувати", "cancel": "Скасувати",
"city": "Місто",
"confirm": "Підтвердити", "confirm": "Підтвердити",
"country": "Країна",
"edit": "Редагувати", "edit": "Редагувати",
"editSecurity": "Редагувати налаштування безпеки", "editSecurity": "Редагувати налаштування безпеки",
"enableTLS": "Увімкнути TLS", "enableTLS": "Увімкнути TLS",

View File

@ -66,7 +66,9 @@
"form": { "form": {
"allowInsecure": "Cho phép không an toàn", "allowInsecure": "Cho phép không an toàn",
"cancel": "Hủy", "cancel": "Hủy",
"city": "Thành phố",
"confirm": "Xác nhận", "confirm": "Xác nhận",
"country": "Quốc gia",
"edit": "Chỉnh sửa", "edit": "Chỉnh sửa",
"editSecurity": "Chỉnh sửa cấu hình bảo mật", "editSecurity": "Chỉnh sửa cấu hình bảo mật",
"enableTLS": "Kích hoạt TLS", "enableTLS": "Kích hoạt TLS",

View File

@ -66,7 +66,9 @@
"form": { "form": {
"allowInsecure": "允许不安全", "allowInsecure": "允许不安全",
"cancel": "取消", "cancel": "取消",
"city": "城市",
"confirm": "确认", "confirm": "确认",
"country": "国家",
"edit": "编辑", "edit": "编辑",
"editSecurity": "编辑安全性配置", "editSecurity": "编辑安全性配置",
"enableTLS": "启用TLS", "enableTLS": "启用TLS",

View File

@ -66,7 +66,9 @@
"form": { "form": {
"allowInsecure": "允許不安全", "allowInsecure": "允許不安全",
"cancel": "取消", "cancel": "取消",
"city": "城市",
"confirm": "確認", "confirm": "確認",
"country": "國家",
"edit": "編輯", "edit": "編輯",
"editSecurity": "編輯安全性配置", "editSecurity": "編輯安全性配置",
"enableTLS": "啟用TLS", "enableTLS": "啟用TLS",

View File

@ -1,5 +1,5 @@
// @ts-ignore // @ts-ignore
// API 更新时间: // API 更新时间:
// API 唯一标识: // API 唯一标识:
import * as announcement from './announcement'; import * as announcement from './announcement';