feat: redesign admin settings with tree navigation and compact layout

- Replace flat sidebar with collapsible tree groups (7 groups, 52 sub-items)
- Map all 61 backend category keys to sidebar navigation
- Add QuickToggles panel for boolean settings
- Replace card-style SettingRow with compact SettingsTableRow
- Add breadcrumb navigation for tree sub-items
- Add source badges (modified/DB/ENV) on settings
- Implement two-level mobile navigation with group chips
- Add i18n translations for all new keys (en, ru, zh, fa)
This commit is contained in:
Fringg
2026-03-29 02:38:52 +03:00
parent 88c93e2b5f
commit 21813ef82e
13 changed files with 1334 additions and 344 deletions

View File

@@ -1836,8 +1836,11 @@
"title": "System Settings",
"allCategories": "All categories",
"noSettings": "No settings found",
"quickToggles": "Quick Toggles",
"modified": "Modified",
"readOnly": "Read only",
"badgeDb": "DB",
"badgeEnv": "ENV",
"reset": "Reset",
"categoriesCount": "categories",
"settingsCount": "settings",
@@ -1910,6 +1913,84 @@
"quickPresets": "Quick presets",
"resetAllColors": "Reset all colors",
"statusColors": "Status colors",
"favorites": "Favorites",
"branding": "Branding",
"theme": "Theme",
"payments": "Payments",
"subscriptions": "Subscriptions",
"interface": "Interface",
"notifications": "Notifications",
"database": "Database",
"system": "System",
"users": "Users",
"customization": "Customization",
"settingsLabel": "Settings",
"backToAdmin": "Back to admin",
"totalCount": "{{count}} total",
"modifiedCount": "{{count}} modified",
"groups": {
"payments": "Payments",
"subscriptions": "Subscriptions",
"interface": "Interface",
"users": "Users",
"notifications": "Notifications",
"database": "Database",
"system": "System"
},
"tree": {
"payments_general": "General",
"payments_stars": "Telegram Stars",
"payments_yookassa": "YooKassa",
"payments_cryptobot": "CryptoBot",
"payments_cloudpayments": "CloudPayments",
"payments_freekassa": "FreeKassa",
"payments_kassa_ai": "Kassa AI",
"payments_platega": "Platega",
"payments_pal24": "PAL24",
"payments_heleket": "Heleket",
"payments_mulenpay": "MulenPay",
"payments_tribute": "Tribute",
"payments_wata": "Wata",
"payments_riopay": "RioPay",
"payments_severpay": "SeverPay",
"subs_core": "Core",
"subs_trial": "Trial",
"subs_pricing": "Pricing",
"subs_periods": "Periods",
"subs_traffic": "Traffic",
"subs_simple": "Simple subscription",
"subs_autopay": "Auto-pay",
"iface_general": "General",
"iface_connect": "Connect button",
"iface_miniapp": "MiniApp",
"iface_happ": "HAPP",
"iface_widget": "Login Widget",
"iface_oidc": "OIDC",
"iface_skip": "Skip steps",
"iface_additional": "Additional",
"users_support": "Support",
"users_referral": "Referral",
"users_channel": "Channel",
"users_localization": "Localization",
"users_moderation": "Moderation",
"notif_user": "User notifications",
"notif_admin": "Admin notifications",
"notif_reports": "Reports",
"db_general": "General",
"db_postgres": "PostgreSQL",
"db_sqlite": "SQLite",
"db_redis": "Redis",
"sys_core": "Core & Debug",
"sys_remnawave": "RemnaWave",
"sys_webapi": "Web API",
"sys_webhook": "Webhook",
"sys_server": "Server status",
"sys_monitoring": "Monitoring",
"sys_maintenance": "Maintenance",
"sys_backup": "Backup",
"sys_version": "Version",
"sys_logging": "Logging"
},
"categories": {
"TELEGRAM_WIDGET": "Telegram Login Widget",
"TELEGRAM_OIDC": "Telegram Login (OIDC)"

View File

@@ -1497,6 +1497,7 @@
"title": "تنظیمات سیستم",
"allCategories": "همه دسته‌ها",
"noSettings": "تنظیماتی یافت نشد",
"quickToggles": "تغییر سریع",
"modified": "تغییر یافته",
"readOnly": "فقط خواندنی",
"reset": "بازنشانی",
@@ -1571,6 +1572,86 @@
"quickPresets": "پیش‌تنظیم‌های سریع",
"resetAllColors": "بازنشانی همه رنگ‌ها",
"statusColors": "رنگ‌های وضعیت",
"favorites": "علاقه‌مندی‌ها",
"branding": "برندسازی",
"theme": "پوسته",
"payments": "پرداخت‌ها",
"subscriptions": "اشتراک‌ها",
"interface": "رابط کاربری",
"notifications": "اعلان‌ها",
"database": "پایگاه داده",
"system": "سیستم",
"users": "کاربران",
"customization": "سفارشی‌سازی",
"settingsLabel": "تنظیمات",
"backToAdmin": "بازگشت به مدیریت",
"totalCount": "{{count}} مورد",
"modifiedCount": "{{count}} تغییر یافته",
"badgeDb": "پایگاه داده",
"badgeEnv": "متغیر محیطی",
"groups": {
"payments": "پرداخت‌ها",
"subscriptions": "اشتراک‌ها",
"interface": "رابط کاربری",
"users": "کاربران",
"notifications": "اعلان‌ها",
"database": "پایگاه داده",
"system": "سیستم"
},
"tree": {
"payments_general": "عمومی",
"payments_stars": "Telegram Stars",
"payments_yookassa": "YooKassa",
"payments_cryptobot": "CryptoBot",
"payments_cloudpayments": "CloudPayments",
"payments_freekassa": "FreeKassa",
"payments_kassa_ai": "Kassa AI",
"payments_platega": "Platega",
"payments_pal24": "PAL24",
"payments_heleket": "Heleket",
"payments_mulenpay": "MulenPay",
"payments_tribute": "Tribute",
"payments_wata": "Wata",
"payments_riopay": "RioPay",
"payments_severpay": "SeverPay",
"subs_core": "هسته",
"subs_trial": "آزمایشی",
"subs_pricing": "قیمت‌گذاری",
"subs_periods": "دوره‌ها",
"subs_traffic": "ترافیک",
"subs_simple": "اشتراک ساده",
"subs_autopay": "پرداخت خودکار",
"iface_general": "عمومی",
"iface_connect": "دکمه اتصال",
"iface_miniapp": "MiniApp",
"iface_happ": "HAPP",
"iface_widget": "ویجت ورود",
"iface_oidc": "OIDC",
"iface_skip": "رد کردن مراحل",
"iface_additional": "اضافی",
"users_support": "پشتیبانی",
"users_referral": "معرفی",
"users_channel": "کانال",
"users_localization": "بومی‌سازی",
"users_moderation": "مدیریت محتوا",
"notif_user": "اعلان‌های کاربر",
"notif_admin": "اعلان‌های مدیر",
"notif_reports": "گزارش‌ها",
"db_general": "عمومی",
"db_postgres": "PostgreSQL",
"db_sqlite": "SQLite",
"db_redis": "Redis",
"sys_core": "هسته و اشکال‌زدایی",
"sys_remnawave": "RemnaWave",
"sys_webapi": "Web API",
"sys_webhook": "Webhook",
"sys_server": "وضعیت سرور",
"sys_monitoring": "نظارت",
"sys_maintenance": "نگهداری",
"sys_backup": "پشتیبان‌گیری",
"sys_version": "نسخه",
"sys_logging": "لاگ‌ها"
},
"categories": {
"TELEGRAM_WIDGET": "Telegram Login Widget",
"TELEGRAM_OIDC": "Telegram Login (OIDC)"

View File

@@ -1861,8 +1861,11 @@
"title": "Настройки системы",
"allCategories": "Все категории",
"noSettings": "Настройки не найдены",
"quickToggles": "Быстрые переключатели",
"modified": "Изменено",
"readOnly": "Только чтение",
"badgeDb": "БД",
"badgeEnv": "ENV",
"reset": "Сбросить",
"categoriesCount": "категорий",
"settingsCount": "настроек",
@@ -1936,6 +1939,74 @@
"googleLabelPlaceholder": "Например: AbCdEfGhIjKl",
"googleLabelHint": "Метка конверсии для отслеживания событий",
"analyticsHint": "Счётчики автоматически встраиваются на все страницы кабинета. После сохранения ID скрипты подключаются при следующей загрузке страницы. Для удаления счётчика очистите поле и сохраните.",
"customization": "Кастомизация",
"settingsLabel": "Настройки",
"backToAdmin": "Назад к админке",
"totalCount": "{{count}} всего",
"modifiedCount": "{{count}} изменено",
"groups": {
"payments": "Платежи",
"subscriptions": "Подписки",
"interface": "Интерфейс",
"users": "Пользователи",
"notifications": "Уведомления",
"database": "База данных",
"system": "Система"
},
"tree": {
"payments_general": "Основные",
"payments_stars": "Telegram Stars",
"payments_yookassa": "YooKassa",
"payments_cryptobot": "CryptoBot",
"payments_cloudpayments": "CloudPayments",
"payments_freekassa": "FreeKassa",
"payments_kassa_ai": "Kassa AI",
"payments_platega": "Platega",
"payments_pal24": "PAL24",
"payments_heleket": "Heleket",
"payments_mulenpay": "MulenPay",
"payments_tribute": "Tribute",
"payments_wata": "Wata",
"payments_riopay": "RioPay",
"payments_severpay": "SeverPay",
"subs_core": "Основные",
"subs_trial": "Пробный период",
"subs_pricing": "Цены",
"subs_periods": "Периоды",
"subs_traffic": "Трафик",
"subs_simple": "Простая подписка",
"subs_autopay": "Автоплатёж",
"iface_general": "Основные",
"iface_connect": "Кнопка подключения",
"iface_miniapp": "MiniApp",
"iface_happ": "HAPP",
"iface_widget": "Виджет входа",
"iface_oidc": "OIDC",
"iface_skip": "Пропуск шагов",
"iface_additional": "Дополнительно",
"users_support": "Поддержка",
"users_referral": "Реферальная система",
"users_channel": "Канал",
"users_localization": "Локализация",
"users_moderation": "Модерация",
"notif_user": "Уведомления пользователей",
"notif_admin": "Уведомления админов",
"notif_reports": "Отчёты",
"db_general": "Основные",
"db_postgres": "PostgreSQL",
"db_sqlite": "SQLite",
"db_redis": "Redis",
"sys_core": "Ядро и отладка",
"sys_remnawave": "RemnaWave",
"sys_webapi": "Web API",
"sys_webhook": "Webhook",
"sys_server": "Статус сервера",
"sys_monitoring": "Мониторинг",
"sys_maintenance": "Обслуживание",
"sys_backup": "Бэкап",
"sys_version": "Версия",
"sys_logging": "Логи"
},
"presets": {
"standard": "Стандарт",
"ocean": "Океан",

View File

@@ -1535,6 +1535,7 @@
"title": "系统设置",
"allCategories": "所有分类",
"noSettings": "未找到设置",
"quickToggles": "快速开关",
"modified": "已修改",
"readOnly": "只读",
"reset": "重置",
@@ -1609,6 +1610,86 @@
"quickPresets": "快速预设",
"resetAllColors": "重置所有颜色",
"statusColors": "状态颜色",
"favorites": "收藏",
"branding": "品牌",
"theme": "主题",
"payments": "支付",
"subscriptions": "订阅",
"interface": "界面",
"notifications": "通知",
"database": "数据库",
"system": "系统",
"users": "用户",
"customization": "自定义",
"settingsLabel": "设置",
"backToAdmin": "返回管理面板",
"totalCount": "共 {{count}} 项",
"modifiedCount": "已修改 {{count}} 项",
"badgeDb": "数据库",
"badgeEnv": "环境变量",
"groups": {
"payments": "支付",
"subscriptions": "订阅",
"interface": "界面",
"users": "用户",
"notifications": "通知",
"database": "数据库",
"system": "系统"
},
"tree": {
"payments_general": "通用",
"payments_stars": "Telegram Stars",
"payments_yookassa": "YooKassa",
"payments_cryptobot": "CryptoBot",
"payments_cloudpayments": "CloudPayments",
"payments_freekassa": "FreeKassa",
"payments_kassa_ai": "Kassa AI",
"payments_platega": "Platega",
"payments_pal24": "PAL24",
"payments_heleket": "Heleket",
"payments_mulenpay": "MulenPay",
"payments_tribute": "Tribute",
"payments_wata": "Wata",
"payments_riopay": "RioPay",
"payments_severpay": "SeverPay",
"subs_core": "核心",
"subs_trial": "试用",
"subs_pricing": "定价",
"subs_periods": "周期",
"subs_traffic": "流量",
"subs_simple": "简单订阅",
"subs_autopay": "自动支付",
"iface_general": "通用",
"iface_connect": "连接按钮",
"iface_miniapp": "MiniApp",
"iface_happ": "HAPP",
"iface_widget": "登录小部件",
"iface_oidc": "OIDC",
"iface_skip": "跳过步骤",
"iface_additional": "附加",
"users_support": "支持",
"users_referral": "推荐",
"users_channel": "频道",
"users_localization": "本地化",
"users_moderation": "审核",
"notif_user": "用户通知",
"notif_admin": "管理员通知",
"notif_reports": "报告",
"db_general": "通用",
"db_postgres": "PostgreSQL",
"db_sqlite": "SQLite",
"db_redis": "Redis",
"sys_core": "核心与调试",
"sys_remnawave": "RemnaWave",
"sys_webapi": "Web API",
"sys_webhook": "Webhook",
"sys_server": "服务器状态",
"sys_monitoring": "监控",
"sys_maintenance": "维护",
"sys_backup": "备份",
"sys_version": "版本",
"sys_logging": "日志"
},
"categories": {
"TELEGRAM_WIDGET": "Telegram Login Widget",
"TELEGRAM_OIDC": "Telegram Login (OIDC)"