03c5c66eed
- Show entity icons on all cards with fallback defaults (providers, trackers, targets, bots)
- Enrich EventLog with provider_name, tracker_name, assets_count; add DB migration
- Dashboard events: filtering (type, provider, search), sorting, pagination, dynamic page size
- Friendly chat names on telegram target cards (resolve from TelegramChat table)
- Test message button on bot chat items with locale-aware messages
- Album public link validation on tracker save with auto-create dialog
- Support albums without public links: conditional <a href> in templates
- Fetch shared links during poll, enrich events with public_url/protected_url
- Per-asset public_url in template context ({share_url}/photos/{asset_id})
- Common date/location detection: common_date + common_location context vars
- Dual date formats: date_format (datetime) + date_only_format (date only)
- Template clone button, HTML link rendering in template preview
- Fix Telegram asset download 401: pass x-api-key headers through client
- Fix provider external_url matching for API key scoping
- Fix event timestamp timezone (append Z suffix for UTC)
- Localize event filter controls, test messages (EN/RU)
- Template variable UI helpers updated with all new fields
- CLAUDE.md: template system sync rules documentation
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
907 B
907 B
Feature Context: UX & Notification Improvements
Current State
Starting implementation. All entity models already have icon: str fields. EventLog exists with basic fields. Immich client already has shared link CRUD methods. Frontend uses Svelte 5 + Tailwind v4 with inline form/card pattern on all CRUD pages.
Temporary Workarounds
- None yet
Cross-Phase Dependencies
- Phase 3 depends on Phase 2 (enriched event data from API)
- Phase 6 logically follows Phase 5 (link validation informs no-link handling)
- Phases 1, 4 are fully independent
Implementation Notes
- All overlays MUST use
position: fixedwith inline styles andz-index: 9999 - SQLAlchemy async + aiohttp: eager load DB data before aiohttp context
- Jinja2 templates use SandboxedEnvironment
- Icons stored as MDI icon path names (e.g.,
mdiCamera) from@mdi/js - Frontend uses MdiIcon component to render SVG icons