Add frontend for TrackingConfig + TemplateConfig, fix locale, simplify trackers
Some checks failed
Validate / Hassfest (push) Has been cancelled

New pages:
- /tracking-configs: Full CRUD with event tracking, asset display,
  periodic summary, scheduled assets, and memory mode sections.
  Collapsible sub-sections that show/hide based on enabled state.
- /template-configs: Full CRUD with all 21 template slots organized
  into 5 fieldsets (event messages, asset formatting, date/location,
  scheduled messages, telegram). Preview support per slot.

Updated pages:
- Targets: added tracking_config_id + template_config_id selectors
  (dropdowns populated from configs). Configs are reusable.
- Trackers: simplified to album selection + scan interval + targets.
  Added Test, Test Periodic, Test Memory buttons per tracker.
- Nav: replaced Templates with Tracking + Templates config links

Other fixes:
- Language button: now triggers window.location.reload() to force
  all child pages to re-evaluate t() calls
- Dark theme buttons: changed primary color to dark gray in dark mode
- Removed old /templates page (replaced by /template-configs)
- Added .gitignore for __pycache__ in server package

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-19 17:10:34 +03:00
parent 90b4713d5c
commit b708b14f32
12 changed files with 619 additions and 192 deletions

View File

@@ -7,7 +7,8 @@
"dashboard": "Dashboard",
"servers": "Servers",
"trackers": "Trackers",
"templates": "Templates",
"trackingConfigs": "Tracking",
"templateConfigs": "Templates",
"targets": "Targets",
"users": "Users",
"logout": "Logout"
@@ -157,6 +158,75 @@
"confirmDelete": "Delete this user?",
"joined": "joined"
},
"trackingConfig": {
"title": "Tracking Configs",
"description": "Define what events and assets to react to",
"newConfig": "New Config",
"name": "Name",
"namePlaceholder": "Default tracking",
"noConfigs": "No tracking configs yet.",
"eventTracking": "Event Tracking",
"assetsAdded": "Assets added",
"assetsRemoved": "Assets removed",
"albumRenamed": "Album renamed",
"albumDeleted": "Album deleted",
"trackImages": "Track images",
"trackVideos": "Track videos",
"favoritesOnly": "Favorites only",
"assetDisplay": "Asset Display",
"includePeople": "Include people",
"includeDetails": "Include asset details",
"maxAssets": "Max assets to show",
"sortBy": "Sort by",
"sortOrder": "Sort order",
"periodicSummary": "Periodic Summary",
"enabled": "Enabled",
"intervalDays": "Interval (days)",
"startDate": "Start date",
"times": "Times (HH:MM)",
"scheduledAssets": "Scheduled Assets",
"albumMode": "Album mode",
"limit": "Limit",
"assetType": "Asset type",
"minRating": "Min rating",
"memoryMode": "Memory Mode (On This Day)",
"test": "Test"
},
"templateConfig": {
"title": "Template Configs",
"description": "Define how notification messages are formatted",
"newConfig": "New Config",
"name": "Name",
"namePlaceholder": "Default EN",
"noConfigs": "No template configs yet.",
"eventMessages": "Event Messages",
"assetsAdded": "Assets added",
"assetsRemoved": "Assets removed",
"albumRenamed": "Album renamed",
"albumDeleted": "Album deleted",
"assetFormatting": "Asset Formatting",
"imageTemplate": "Image item",
"videoTemplate": "Video item",
"assetsWrapper": "Assets wrapper",
"moreMessage": "More message",
"peopleFormat": "People format",
"dateLocation": "Date & Location",
"dateFormat": "Date format",
"commonDate": "Common date",
"uniqueDate": "Per-asset date",
"locationFormat": "Location format",
"commonLocation": "Common location",
"uniqueLocation": "Per-asset location",
"favoriteIndicator": "Favorite indicator",
"scheduledMessages": "Scheduled Messages",
"periodicSummary": "Periodic summary",
"periodicAlbum": "Per-album item",
"scheduledAssets": "Scheduled assets",
"memoryMode": "Memory mode",
"telegramSettings": "Telegram",
"videoWarning": "Video warning",
"preview": "Preview"
},
"common": {
"loading": "Loading...",
"save": "Save",
@@ -171,6 +241,8 @@
"theme": "Theme",
"light": "Light",
"dark": "Dark",
"system": "System"
"system": "System",
"test": "Test",
"create": "Create"
}
}

View File

@@ -7,7 +7,8 @@
"dashboard": "Главная",
"servers": "Серверы",
"trackers": "Трекеры",
"templates": "Шаблоны",
"trackingConfigs": "Отслеживание",
"templateConfigs": "Шаблоны",
"targets": "Получатели",
"users": "Пользователи",
"logout": "Выход"
@@ -157,6 +158,75 @@
"confirmDelete": "Удалить этого пользователя?",
"joined": "зарегистрирован"
},
"trackingConfig": {
"title": "Конфигурации отслеживания",
"description": "Определите, на какие события и файлы реагировать",
"newConfig": "Новая конфигурация",
"name": "Название",
"namePlaceholder": "Основное отслеживание",
"noConfigs": "Конфигураций отслеживания пока нет.",
"eventTracking": "Отслеживание событий",
"assetsAdded": "Добавлены файлы",
"assetsRemoved": "Удалены файлы",
"albumRenamed": "Альбом переименован",
"albumDeleted": "Альбом удалён",
"trackImages": "Фото",
"trackVideos": "Видео",
"favoritesOnly": "Только избранные",
"assetDisplay": "Отображение файлов",
"includePeople": "Включать людей",
"includeDetails": "Включать детали",
"maxAssets": "Макс. файлов",
"sortBy": "Сортировка",
"sortOrder": "Порядок",
"periodicSummary": "Периодическая сводка",
"enabled": "Включено",
"intervalDays": "Интервал (дни)",
"startDate": "Дата начала",
"times": "Время (ЧЧ:ММ)",
"scheduledAssets": "Запланированные фото",
"albumMode": "Режим альбомов",
"limit": "Лимит",
"assetType": "Тип файлов",
"minRating": "Мин. рейтинг",
"memoryMode": "Воспоминания (В этот день)",
"test": "Тест"
},
"templateConfig": {
"title": "Конфигурации шаблонов",
"description": "Определите формат уведомлений",
"newConfig": "Новая конфигурация",
"name": "Название",
"namePlaceholder": "По умолчанию RU",
"noConfigs": "Конфигураций шаблонов пока нет.",
"eventMessages": "Сообщения о событиях",
"assetsAdded": "Добавлены файлы",
"assetsRemoved": "Удалены файлы",
"albumRenamed": "Альбом переименован",
"albumDeleted": "Альбом удалён",
"assetFormatting": "Форматирование файлов",
"imageTemplate": "Шаблон фото",
"videoTemplate": "Шаблон видео",
"assetsWrapper": "Обёртка списка",
"moreMessage": "Сообщение \"ещё\"",
"peopleFormat": "Формат людей",
"dateLocation": "Дата и место",
"dateFormat": "Формат даты",
"commonDate": "Общая дата",
"uniqueDate": "Дата файла",
"locationFormat": "Формат места",
"commonLocation": "Общее место",
"uniqueLocation": "Место файла",
"favoriteIndicator": "Индикатор избранного",
"scheduledMessages": "Запланированные сообщения",
"periodicSummary": "Периодическая сводка",
"periodicAlbum": "Элемент альбома",
"scheduledAssets": "Запланированные фото",
"memoryMode": "Воспоминания",
"telegramSettings": "Telegram",
"videoWarning": "Предупреждение о видео",
"preview": "Предпросмотр"
},
"common": {
"loading": "Загрузка...",
"save": "Сохранить",
@@ -171,6 +241,8 @@
"theme": "Тема",
"light": "Светлая",
"dark": "Тёмная",
"system": "Системная"
"system": "Системная",
"test": "Тест",
"create": "Создать"
}
}