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

@@ -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": "Океан",