Skip to content

Nodes and Core Configs Page Modified #1776

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Apr 20, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions dashboard/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@
"tailwind-merge": "^2.6.0",
"tailwindcss-animate": "^1.0.7",
"ufo": "^1.5.4",
"uuid": "^11.1.0",
"vaul": "^1.1.2",
"vite-tsconfig-paths": "^5.1.4",
"zod": "^3.24.1",
Expand Down
9 changes: 9 additions & 0 deletions dashboard/pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

77 changes: 64 additions & 13 deletions dashboard/public/statics/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
"manageHosts": "Manage and control hosts.",
"settings": "Settings",
"general": "General",
"core": "Core",
"core": "Core Configs",
"activeUsers": "Active Users",
"apply": "Apply",
"cancel": "Cancel",
Expand Down Expand Up @@ -100,7 +100,12 @@
"core.socket.connecting": "Connecting...",
"core.socket.not_connected": "Not Connected",
"core.successMessage": "Core settings updated successfully",
"core.title": "Core Settings",
"core.title": "Core Configs Settings",
"core.toggleSuccess": "Core \"{name}\" has been toggled successfully",
"core.toggleFailed": "Failed to toggle core \"{name}\"",
"core.deleteSuccess": "Core \"{name}\" has been deleted successfully",
"core.deleteFailed": "Failed to delete core \"{name}\"",
"core.deleteConfirm": "Are you sure you want to delete <b>{name}</b>?",
"createNewUser": "Create new user",
"createUser": "Create User",
"createGroup": "Create Group",
Expand Down Expand Up @@ -423,19 +428,12 @@
"nodes.addNodeSuccess": "Node {{name}} added successfully",
"nodes.apply": "editNode",
"nodes.certificate": "Certificate",
"nodes.certificateCopied": "Certificate copied to clipboard",
"nodes.certificateDownloaded": "Certificate downloaded successfully",
"nodes.certificateDescription": "To set up a node, you need to configure this certificate to establish a secure connection between the main server and the node",
"nodes.connection-hint": "To setup a Marzban Node, you need to set this certificate on the node to initialize a secure connection between main server and the node",
"nodes.download-certificate": "Download certificate",
"nodes.editNode": "Update Node",
"nodes.hide-certificate": "Hide certificate",
"nodes.nodeAPIPort": "API Port",
"nodes.nodeName": "Name",
"nodes.nodePort": "Port",
"nodes.reconnect": "Reconnect",
"nodes.reconnecting": "Reconnecting...",
"nodes.show-certificate": "Show certificate",
"nodes.title": "Using Marzban-Node, you are able to scale up your connection quality by adding different nodes on different servers.",
"nodes.usageCoefficient": "Usage Ratio",
"on_hold": "On Hold",
Expand Down Expand Up @@ -580,21 +578,74 @@
"certificate": "Certificate",
"certificatePlaceholder": "Enter certificate",
"status": "Node Status",
"statusCheck": "Check Connection Status",
"statusCheckSuccess": "Node is connected successfully",
"statusCheckFailed": "Failed to connect to node",
"statusChecking": "Checking connection...",
"errorDetails": "Error Details",
"connectionError": "Connection Error",
"retryConnection": "Retry Connection",
"configurationError": "Configuration Error",
"validateConfig": "Validate Configuration",
"fillRequiredFields": "Please fill out all required fields before checking status"
"fillRequiredFields": "Please fill out all required fields before checking status",
"apiKey": "API Key",
"apiKeyPlaceholder": "Enter the node's API Key",
"generateUUID": "Generate UUID",
"coreConfig": "Core Configuration",
"hours": "Hours",
"selectCoreConfig": "Select Core Configuration",
"hideDetails": "Hide Details",
"showDetails": "Show Details",
"statusCheck": "Check Status",
"statusChecking": "Checking..."
},
"theme": {
"toggle": "Toggle theme",
"dark": "Dark",
"light": "Light",
"system": "System"
}
},
"coreConfigModal": {
"addConfig": "Add Core Configuration",
"createNewConfig": "Create a new core configuration",
"editCore": "Edit Core Configuration",
"invalidJson": "Invalid JSON configuration",
"createSuccess": "Core Configuration «{{name}}» has been created successfully",
"createFailed": "Failed to create Core Configuration «{{name}}»",
"editSuccess": "Core Configuration «{{name}}» has been updated successfully",
"editFailed": "Failed to update Core Configuration «{{name}}»",
"keyPairGenerated": "Key pair generated successfully",
"shortIdGenerated": "Short ID generated successfully",
"shortId": "Short ID",
"shortIdCopied": "Short ID copied to clipboard",
"publicKeyCopied": "Public key copied to clipboard",
"privateKeyCopied": "Private key copied to clipboard",
"jsonConfig": "JSON Configuration",
"editJson": "Edit JSON configuration",
"name": "Name",
"namePlaceholder": "Enter configuration name",
"fallback": "Fallback",
"selectFallback": "Select fallback",
"excludedInbound": "Excluded inbound",
"selectInbound": "Select inbound",
"inbound": "Inbound",
"generateKeyPair": "Generate Key Pair",
"generateShortId": "Generate Short ID",
"publicKey": "Public Key",
"privateKey": "Private Key"
},
"settings.cores": {
"title": "Cores",
"description": "Manage Your Cores",
"addCore": "Add Core",
"noCores": "No cores available. Add one to get started.",
"duplicateSuccess": "Core config «{{name}}» duplicated successfully",
"duplicateFailed": "Failed to duplicate core config «{{name}}»",
"deleteSuccess": "Core has been deleted successfully",
"deleteFailed": "Failed to delete core",
"duplicateInfo": "Prepare to create a copy of «{{name}}». Make changes if needed and click Save.",
"coreNotFound": "Core not found"
},
"createdAt": "Created at",
"toggle": "Toggle status",
"close": "Close",
"copy": "Copy"
}
87 changes: 71 additions & 16 deletions dashboard/public/statics/locales/fa.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"manageHosts": "مدیریت و کنترل هاست‌ها.",
"settings": "تنظیمات",
"general": "عمومی",
"core": "هسته",
"core": "هسته‌ها",
"activeUsers": "کاربران فعال",
"apply": "تایید",
"cancel": "لغو",
Expand Down Expand Up @@ -513,15 +513,15 @@
"name": "نام",
"nodeModal": {
"title": "افزودن گره",
"description": "افزودن گره جدید به شبکه شما",
"description": "افزودن یک گره جدید به شبکه",
"name": "نام گره",
"namePlaceholder": "نام گره را وارد کنید",
"address": "آدرس گره",
"addressPlaceholder": "آدرس گره را وارد کنید",
"port": "پورت گره",
"portPlaceholder": "پورت گره را وارد کنید",
"usageRatio": "ضریب مصرف",
"usageRatioPlaceholder": "ضریب مصرف را وارد کنید",
"usageRatio": "نسبت استفاده",
"usageRatioPlaceholder": "نسبت استفاده را وارد کنید",
"maxLogs": "حداکثر لاگ‌ها",
"maxLogsPlaceholder": "حداکثر لاگ‌ها را وارد کنید",
"connectionType": "نوع اتصال",
Expand All @@ -530,19 +530,27 @@
"days": "روز",
"minutes": "دقیقه",
"seconds": "ثانیه",
"certificate": "گواهینامه",
"certificatePlaceholder": "گواهینامه را وارد کنید",
"certificate": "گواهی",
"certificatePlaceholder": "گواهی را وارد کنید",
"status": "وضعیت گره",
"statusCheck": "بررسی وضعیت اتصال",
"statusCheckSuccess": "گره با موفقیت متصل شد",
"statusCheckFailed": "اتصال به گره ناموفق بود",
"statusChecking": "در حال بررسی اتصال...",
"statusCheckFailed": "اتصال به گره با شکست مواجه شد",
"errorDetails": "جزئیات خطا",
"connectionError": "خطای اتصال",
"retryConnection": "تلاش مجدد برای اتصال",
"retryConnection": "تلاش مجدد اتصال",
"configurationError": "خطای پیکربندی",
"validateConfig": "اعتبارسنجی پیکربندی",
"fillRequiredFields": "لطفاً تمام فیلدهای ضروری را قبل از بررسی وضعیت پر کنید"
"fillRequiredFields": "لطفا تمام فیلدهای الزامی را قبل از بررسی وضعیت پر کنید",
"apiKey": "کلید API",
"apiKeyPlaceholder": "کلید API گره را وارد کنید",
"generateUUID": "تولید UUID",
"coreConfig": "پیکربندی هسته",
"selectCoreConfig": "هسته را انتخاب کنید",
"hours": "ساعت",
"hideDetails": "مخفی کردن جزئیات",
"showDetails": "نمایش جزئیات",
"statusCheck": "بررسی وضعیت",
"statusChecking": "در حال بررسی..."
},
"nodes": {
"title": "گره‌ها",
Expand Down Expand Up @@ -575,10 +583,7 @@
"enableFailed": "فعال کردن گره «{{name}}» ناموفق بود",
"disableSuccess": "گره «{{name}}» با موفقیت غیرفعال شد",
"disableFailed": "غیرفعال کردن گره «{{name}}» ناموفق بود",
"certificate": "گواهی",
"certificateCopied": "گواهی در کلیپ‌بورد کپی شد",
"certificateDownloaded": "گواهی با موفقیت دانلود شد",
"certificateDescription": "برای راه‌اندازی گره، شما نیاز به پیکربندی این گواهی برای برقراری اتصال امن بین سرور اصلی و گره دارید"
"certificate": "گواهی"
},
"success": "موفق",
"error": "خطا",
Expand All @@ -587,5 +592,55 @@
"dark": "تاریک",
"light": "روشن",
"system": "سیستم"
}
},
"coreConfigModal": {
"addConfig": "افزودن پیکربندی هسته",
"createNewConfig": "ایجاد پیکربندی جدید هسته",
"editCore": "ویرایش پیکربندی هسته",
"invalidJson": "پیکربندی JSON نامعتبر است",
"createSuccess": "پیکربندی هسته «{{name}}» با موفقیت ایجاد شد",
"createFailed": "ایجاد پیکربندی هسته «{{name}}» با خطا مواجه شد",
"editSuccess": "پیکربندی هسته «{{name}}» با موفقیت به‌روزرسانی شد",
"editFailed": "به‌روزرسانی پیکربندی هسته «{{name}}» با خطا مواجه شد",
"keyPairGenerated": "جفت کلید با موفقیت تولید شد",
"shortIdGenerated": "شناسه کوتاه با موفقیت ایجاد شد",
"shortId": "شناسه کوتاه",
"shortIdCopied": "شناسه کوتاه در کلیپ‌بورد کپی شد",
"publicKeyCopied": "کلید عمومی در کلیپ‌بورد کپی شد",
"privateKeyCopied": "کلید خصوصی در کلیپ‌بورد کپی شد",
"jsonConfig": "پیکربندی JSON",
"editJson": "ویرایش پیکربندی JSON",
"name": "نام",
"namePlaceholder": "نام پیکربندی را وارد کنید",
"fallback": "پشتیبان",
"selectFallback": "پشتیبان را انتخاب کنید",
"excludedInbound": "ورودی‌های مستثنی",
"selectInbound": "ورودی را انتخاب کنید",
"inbound": "ورودی",
"generateKeyPair": "تولید جفت کلید",
"generateShortId": "تولید شناسه کوتاه",
"publicKey": "کلید عمومی",
"privateKey": "کلید خصوصی"
},
"settings.cores": {
"title": "هسته‌ها",
"description": "مدیریت هسته‌های شما",
"addCore": "افزودن هسته",
"noCores": "هیچ هسته‌ای موجود نیست. یکی اضافه کنید تا شروع کنید.",
"duplicateSuccess": "پیکربندی هسته «{{name}}» با موفقیت کپی شد",
"duplicateFailed": "خطا در کپی پیکربندی هسته «{{name}}»",
"deleteSuccess": "هسته با موفقیت حذف شد",
"deleteFailed": "حذف هسته با خطا مواجه شد",
"duplicateInfo": "آماده ایجاد کپی از «{{name}}». در صورت نیاز تغییرات را اعمال کرده و ذخیره کنید.",
"coreNotFound": "هسته یافت نشد"
},
"createdAt": "تاریخ ایجاد",
"toggle": "تغییر وضعیت",
"core.toggleSuccess": "هسته «{{name}}» با موفقیت تغییر وضعیت داده شد",
"core.toggleFailed": "تغییر وضعیت هسته «{{name}}» با خطا مواجه شد",
"core.deleteSuccess": "هسته «{{name}}» با موفقیت حذف شد",
"core.deleteFailed": "حذف هسته «{{name}}» با خطا مواجه شد",
"core.deleteConfirm": "آیا مطمئن هستید که می‌خواهید هسته «{{name}}» را حذف کنید؟",
"close": "بستن",
"copy": "کپی"
}
Loading