diff --git a/apps/admin/app/dashboard/nodes/node-form.tsx b/apps/admin/app/dashboard/nodes/node-form.tsx index 34fa15b..726eb3e 100644 --- a/apps/admin/app/dashboard/nodes/node-form.tsx +++ b/apps/admin/app/dashboard/nodes/node-form.tsx @@ -26,7 +26,7 @@ import { Combobox } from '@workspace/ui/custom-components/combobox'; import { EnhancedInput } from '@workspace/ui/custom-components/enhanced-input'; import TagInput from '@workspace/ui/custom-components/tag-input'; import { useTranslations } from 'next-intl'; -import { useEffect, useMemo } from 'react'; +import { useEffect, useMemo, useState } from 'react'; import { useForm } from 'react-hook-form'; import { toast } from 'sonner'; import { z } from 'zod'; @@ -77,6 +77,7 @@ export default function NodeForm(props: { const { trigger, title, loading, initialValues, onSubmit } = props; const t = useTranslations('nodes'); const Scheme = useMemo(() => buildSchema(t), [t]); + const [open, setOpen] = useState(false); const form = useForm({ resolver: zodResolver(Scheme), @@ -159,12 +160,15 @@ export default function NodeForm(props: { async function submit(values: NodeFormValues) { const ok = await onSubmit(values); - if (ok) form.reset(); + if (ok) { + form.reset(); + setOpen(false); + } return ok; } return ( - + @@ -295,7 +299,7 @@ export default function NodeForm(props: { - + )} + { + setLoading(true); + try { + await createServer(values as unknown as API.CreateServerRequest); + toast.success(t('created')); + ref.current?.refresh(); + setLoading(false); + return true; + } catch (e) { + setLoading(false); + return false; + } + }} + /> + ), }} columns={[ @@ -156,17 +192,16 @@ export default function ServersPage() { id: 'status', header: t('status'), cell: ({ row }) => { - const s = (row.original.status ?? {}) as API.ServerStatus; - const on = !!(Array.isArray(s.online) && s.online.length > 0); + const offline = row.original.status.status === 'offline'; return (
- {on ? t('online') : t('offline')} + {offline ? t('offline') : t('online')}
); }, diff --git a/apps/admin/app/dashboard/servers/server-form.tsx b/apps/admin/app/dashboard/servers/server-form.tsx index b778722..3ed03a7 100644 --- a/apps/admin/app/dashboard/servers/server-form.tsx +++ b/apps/admin/app/dashboard/servers/server-form.tsx @@ -33,7 +33,7 @@ import { EnhancedInput } from '@workspace/ui/custom-components/enhanced-input'; import { Icon } from '@workspace/ui/custom-components/icon'; import { useTranslations } from 'next-intl'; import { useEffect, useMemo, useState } from 'react'; -import { useFieldArray, useForm, useWatch } from 'react-hook-form'; +import { useForm, useWatch } from 'react-hook-form'; import { toast } from 'sonner'; import { FINGERPRINTS, @@ -99,7 +99,6 @@ export default function ServerForm({ const form = useForm({ resolver: zodResolver(formSchema), defaultValues }); const { control } = form; - const { fields, append, remove } = useFieldArray({ control, name: 'protocols' }); const protocolsValues = useWatch({ control, name: 'protocols' }); diff --git a/apps/admin/locales/cs-CZ/servers.json b/apps/admin/locales/cs-CZ/servers.json index db47bd5..13228c8 100644 --- a/apps/admin/locales/cs-CZ/servers.json +++ b/apps/admin/locales/cs-CZ/servers.json @@ -56,6 +56,10 @@ "id": "ID", "ipAddresses": "IP adresy", "memory": "Paměť", + "migrate": "Migrace dat", + "migrateFailed": "Migrace dat se nezdařila", + "migrated": "Data byla úspěšně migrována", + "migrating": "Probíhá migrace...", "name": "Název", "noData": "Žádná data", "notAvailable": "Není k dispozici", diff --git a/apps/admin/locales/de-DE/servers.json b/apps/admin/locales/de-DE/servers.json index 0078edf..9f7e48d 100644 --- a/apps/admin/locales/de-DE/servers.json +++ b/apps/admin/locales/de-DE/servers.json @@ -56,6 +56,10 @@ "id": "ID", "ipAddresses": "IP-Adressen", "memory": "Speicher", + "migrate": "Daten migrieren", + "migrateFailed": "Datenmigration fehlgeschlagen", + "migrated": "Daten erfolgreich migriert", + "migrating": "Wird migriert...", "name": "Name", "noData": "Keine Daten", "notAvailable": "Nicht verfügbar", diff --git a/apps/admin/locales/en-US/servers.json b/apps/admin/locales/en-US/servers.json index ee5eacc..aed8fbb 100644 --- a/apps/admin/locales/en-US/servers.json +++ b/apps/admin/locales/en-US/servers.json @@ -1,5 +1,4 @@ { - "address": "Address", "address": "Address", "address_placeholder": "Server address", "cancel": "Cancel", @@ -57,6 +56,10 @@ "id": "ID", "ipAddresses": "IP addresses", "memory": "Memory", + "migrate": "Migrate Data", + "migrateFailed": "Data migration failed", + "migrated": "Data migrated successfully", + "migrating": "Migrating...", "name": "Name", "noData": "No data", "notAvailable": "N/A", diff --git a/apps/admin/locales/es-ES/servers.json b/apps/admin/locales/es-ES/servers.json index fb8edf6..1d86271 100644 --- a/apps/admin/locales/es-ES/servers.json +++ b/apps/admin/locales/es-ES/servers.json @@ -56,6 +56,10 @@ "id": "ID", "ipAddresses": "Direcciones IP", "memory": "Memoria", + "migrate": "Migrar datos", + "migrateFailed": "La migración de datos falló", + "migrated": "Datos migrados con éxito", + "migrating": "Migrando...", "name": "Nombre", "noData": "Sin datos", "notAvailable": "N/A", diff --git a/apps/admin/locales/es-MX/servers.json b/apps/admin/locales/es-MX/servers.json index 5ca8e70..b18c3ba 100644 --- a/apps/admin/locales/es-MX/servers.json +++ b/apps/admin/locales/es-MX/servers.json @@ -56,6 +56,10 @@ "id": "ID", "ipAddresses": "Direcciones IP", "memory": "Memoria", + "migrate": "Migrar datos", + "migrateFailed": "La migración de datos falló", + "migrated": "Datos migrados con éxito", + "migrating": "Migrando...", "name": "Nombre", "noData": "Sin datos", "notAvailable": "N/A", diff --git a/apps/admin/locales/fa-IR/servers.json b/apps/admin/locales/fa-IR/servers.json index c778894..1f0fb8b 100644 --- a/apps/admin/locales/fa-IR/servers.json +++ b/apps/admin/locales/fa-IR/servers.json @@ -56,6 +56,10 @@ "id": "شناسه", "ipAddresses": "آدرس‌های IP", "memory": "حافظه", + "migrate": "انتقال داده", + "migrateFailed": "انتقال داده ناموفق بود", + "migrated": "داده با موفقیت منتقل شد", + "migrating": "در حال انتقال...", "name": "نام", "noData": "هیچ داده‌ای", "notAvailable": "غیرقابل دسترسی", diff --git a/apps/admin/locales/fi-FI/servers.json b/apps/admin/locales/fi-FI/servers.json index 3724c9c..8b55d41 100644 --- a/apps/admin/locales/fi-FI/servers.json +++ b/apps/admin/locales/fi-FI/servers.json @@ -56,6 +56,10 @@ "id": "ID", "ipAddresses": "IP-osoitteet", "memory": "Muisti", + "migrate": "Siirrä tiedot", + "migrateFailed": "Tietojen siirto epäonnistui", + "migrated": "Tiedot siirretty onnistuneesti", + "migrating": "Siirretään...", "name": "Nimi", "noData": "Ei tietoja", "notAvailable": "Ei saatavilla", diff --git a/apps/admin/locales/fr-FR/servers.json b/apps/admin/locales/fr-FR/servers.json index 2dab1af..6eced4b 100644 --- a/apps/admin/locales/fr-FR/servers.json +++ b/apps/admin/locales/fr-FR/servers.json @@ -56,6 +56,10 @@ "id": "ID", "ipAddresses": "Adresses IP", "memory": "Mémoire", + "migrate": "Migrer les données", + "migrateFailed": "Échec de la migration des données", + "migrated": "Données migrées avec succès", + "migrating": "Migration en cours...", "name": "Nom", "noData": "Aucune donnée", "notAvailable": "N/A", diff --git a/apps/admin/locales/hi-IN/servers.json b/apps/admin/locales/hi-IN/servers.json index 38e7a47..a3776d9 100644 --- a/apps/admin/locales/hi-IN/servers.json +++ b/apps/admin/locales/hi-IN/servers.json @@ -56,6 +56,10 @@ "id": "आईडी", "ipAddresses": "आईपी पते", "memory": "मेमोरी", + "migrate": "डेटा माइग्रेट करें", + "migrateFailed": "डेटा माइग्रेशन विफल", + "migrated": "डेटा सफलतापूर्वक माइग्रेट किया गया", + "migrating": "माइग्रेट किया जा रहा है...", "name": "नाम", "noData": "कोई डेटा नहीं", "notAvailable": "उपलब्ध नहीं", diff --git a/apps/admin/locales/hu-HU/servers.json b/apps/admin/locales/hu-HU/servers.json index 060d20d..d7cd3de 100644 --- a/apps/admin/locales/hu-HU/servers.json +++ b/apps/admin/locales/hu-HU/servers.json @@ -56,6 +56,10 @@ "id": "ID", "ipAddresses": "IP címek", "memory": "Memória", + "migrate": "Adatok migrálása", + "migrateFailed": "Az adatok migrálása sikertelen", + "migrated": "Az adatok sikeresen migrálva", + "migrating": "Migrálás...", "name": "Név", "noData": "Nincs adat", "notAvailable": "N/A", diff --git a/apps/admin/locales/ja-JP/servers.json b/apps/admin/locales/ja-JP/servers.json index 0d50881..e187db4 100644 --- a/apps/admin/locales/ja-JP/servers.json +++ b/apps/admin/locales/ja-JP/servers.json @@ -56,6 +56,10 @@ "id": "ID", "ipAddresses": "IPアドレス", "memory": "メモリ", + "migrate": "データを移行する", + "migrateFailed": "データの移行に失敗しました", + "migrated": "データが正常に移行されました", + "migrating": "移行中...", "name": "名前", "noData": "データなし", "notAvailable": "利用不可", diff --git a/apps/admin/locales/ko-KR/servers.json b/apps/admin/locales/ko-KR/servers.json index 8b3cb16..b850e85 100644 --- a/apps/admin/locales/ko-KR/servers.json +++ b/apps/admin/locales/ko-KR/servers.json @@ -56,6 +56,10 @@ "id": "ID", "ipAddresses": "IP 주소", "memory": "메모리", + "migrate": "데이터 마이그레이션", + "migrateFailed": "데이터 마이그레이션 실패", + "migrated": "데이터가 성공적으로 마이그레이션되었습니다", + "migrating": "마이그레이션 중...", "name": "이름", "noData": "데이터 없음", "notAvailable": "사용 불가", diff --git a/apps/admin/locales/no-NO/servers.json b/apps/admin/locales/no-NO/servers.json index d665095..30c17b9 100644 --- a/apps/admin/locales/no-NO/servers.json +++ b/apps/admin/locales/no-NO/servers.json @@ -56,6 +56,10 @@ "id": "ID", "ipAddresses": "IP-adresser", "memory": "Minne", + "migrate": "Migrer data", + "migrateFailed": "Datamigrering mislyktes", + "migrated": "Data migrert med suksess", + "migrating": "Migrerer...", "name": "Navn", "noData": "Ingen data", "notAvailable": "Ikke tilgjengelig", diff --git a/apps/admin/locales/pl-PL/servers.json b/apps/admin/locales/pl-PL/servers.json index d2070bb..625e401 100644 --- a/apps/admin/locales/pl-PL/servers.json +++ b/apps/admin/locales/pl-PL/servers.json @@ -56,6 +56,10 @@ "id": "ID", "ipAddresses": "Adresy IP", "memory": "Pamięć", + "migrate": "Migracja danych", + "migrateFailed": "Migracja danych nie powiodła się", + "migrated": "Dane zostały pomyślnie zmigrowane", + "migrating": "Migracja...", "name": "Nazwa", "noData": "Brak danych", "notAvailable": "N/D", diff --git a/apps/admin/locales/pt-BR/servers.json b/apps/admin/locales/pt-BR/servers.json index 18dbbf3..606aebc 100644 --- a/apps/admin/locales/pt-BR/servers.json +++ b/apps/admin/locales/pt-BR/servers.json @@ -56,6 +56,10 @@ "id": "ID", "ipAddresses": "Endereços IP", "memory": "Memória", + "migrate": "Migrar Dados", + "migrateFailed": "A migração de dados falhou", + "migrated": "Dados migrados com sucesso", + "migrating": "Migrando...", "name": "Nome", "noData": "Sem dados", "notAvailable": "N/D", diff --git a/apps/admin/locales/ro-RO/servers.json b/apps/admin/locales/ro-RO/servers.json index 416b92a..b1ff9a7 100644 --- a/apps/admin/locales/ro-RO/servers.json +++ b/apps/admin/locales/ro-RO/servers.json @@ -56,6 +56,10 @@ "id": "ID", "ipAddresses": "Adrese IP", "memory": "Memorie", + "migrate": "Migrați datele", + "migrateFailed": "Migrarea datelor a eșuat", + "migrated": "Datele au fost migrate cu succes", + "migrating": "Se migrează...", "name": "Nume", "noData": "Fără date", "notAvailable": "N/A", diff --git a/apps/admin/locales/ru-RU/servers.json b/apps/admin/locales/ru-RU/servers.json index c567854..e6516bc 100644 --- a/apps/admin/locales/ru-RU/servers.json +++ b/apps/admin/locales/ru-RU/servers.json @@ -56,6 +56,10 @@ "id": "ID", "ipAddresses": "IP-адреса", "memory": "Память", + "migrate": "Перенести данные", + "migrateFailed": "Ошибка при переносе данных", + "migrated": "Данные успешно перенесены", + "migrating": "Перенос данных...", "name": "Имя", "noData": "Нет данных", "notAvailable": "Недоступно", diff --git a/apps/admin/locales/th-TH/servers.json b/apps/admin/locales/th-TH/servers.json index d2f92eb..bf68fe0 100644 --- a/apps/admin/locales/th-TH/servers.json +++ b/apps/admin/locales/th-TH/servers.json @@ -56,6 +56,10 @@ "id": "ID", "ipAddresses": "ที่อยู่ IP", "memory": "หน่วยความจำ", + "migrate": "ย้ายข้อมูล", + "migrateFailed": "การย้ายข้อมูลล้มเหลว", + "migrated": "ย้ายข้อมูลสำเร็จ", + "migrating": "กำลังย้ายข้อมูล...", "name": "ชื่อ", "noData": "ไม่มีข้อมูล", "notAvailable": "ไม่สามารถใช้ได้", diff --git a/apps/admin/locales/tr-TR/servers.json b/apps/admin/locales/tr-TR/servers.json index 25b6482..39ae113 100644 --- a/apps/admin/locales/tr-TR/servers.json +++ b/apps/admin/locales/tr-TR/servers.json @@ -56,6 +56,10 @@ "id": "ID", "ipAddresses": "IP adresleri", "memory": "Bellek", + "migrate": "Veri Taşı", + "migrateFailed": "Veri taşıma işlemi başarısız oldu", + "migrated": "Veri başarıyla taşındı", + "migrating": "Taşınıyor...", "name": "İsim", "noData": "Veri yok", "notAvailable": "Mevcut değil", diff --git a/apps/admin/locales/uk-UA/servers.json b/apps/admin/locales/uk-UA/servers.json index dbef609..3be3750 100644 --- a/apps/admin/locales/uk-UA/servers.json +++ b/apps/admin/locales/uk-UA/servers.json @@ -56,6 +56,10 @@ "id": "ID", "ipAddresses": "IP адреси", "memory": "Пам'ять", + "migrate": "Міграція даних", + "migrateFailed": "Міграція даних не вдалася", + "migrated": "Дані успішно мігрували", + "migrating": "Міграція...", "name": "Ім'я", "noData": "Немає даних", "notAvailable": "Н/Д", diff --git a/apps/admin/locales/vi-VN/servers.json b/apps/admin/locales/vi-VN/servers.json index a30dd1b..f42e923 100644 --- a/apps/admin/locales/vi-VN/servers.json +++ b/apps/admin/locales/vi-VN/servers.json @@ -56,6 +56,10 @@ "id": "ID", "ipAddresses": "Địa chỉ IP", "memory": "Bộ nhớ", + "migrate": "Di chuyển dữ liệu", + "migrateFailed": "Di chuyển dữ liệu thất bại", + "migrated": "Dữ liệu đã được di chuyển thành công", + "migrating": "Đang di chuyển...", "name": "Tên", "noData": "Không có dữ liệu", "notAvailable": "Không khả dụng", diff --git a/apps/admin/locales/zh-CN/servers.json b/apps/admin/locales/zh-CN/servers.json index 4409f1a..596af81 100644 --- a/apps/admin/locales/zh-CN/servers.json +++ b/apps/admin/locales/zh-CN/servers.json @@ -1,5 +1,4 @@ { - "address": "地址", "address": "地址", "address_placeholder": "服务器地址", "cancel": "取消", @@ -57,6 +56,10 @@ "id": "编号", "ipAddresses": "IP 地址", "memory": "内存", + "migrate": "迁移数据", + "migrateFailed": "数据迁移失败", + "migrated": "数据迁移成功", + "migrating": "迁移中...", "name": "名称", "noData": "暂无数据", "notAvailable": "—", diff --git a/apps/admin/locales/zh-HK/servers.json b/apps/admin/locales/zh-HK/servers.json index 32d4f67..4427807 100644 --- a/apps/admin/locales/zh-HK/servers.json +++ b/apps/admin/locales/zh-HK/servers.json @@ -56,6 +56,10 @@ "id": "ID", "ipAddresses": "IP 地址", "memory": "內存", + "migrate": "遷移數據", + "migrateFailed": "數據遷移失敗", + "migrated": "數據已成功遷移", + "migrating": "正在遷移...", "name": "名稱", "noData": "無數據", "notAvailable": "不可用", diff --git a/apps/admin/services/admin/typings.d.ts b/apps/admin/services/admin/typings.d.ts index e67bbac..a9c0c57 100644 --- a/apps/admin/services/admin/typings.d.ts +++ b/apps/admin/services/admin/typings.d.ts @@ -1741,6 +1741,7 @@ declare namespace API { disk: number; protocol: string; online: ServerOnlineUser[]; + status: string; }; type ServerTotalDataResponse = {