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"
}
}