Files
notify-bridge/plans/ux-notification-improvements/CONTEXT.md
T
alexei.dolgolyov 03c5c66eed feat: UX & notification improvements — icons, events, chat names, link validation, templates
- 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>
2026-03-20 16:18:03 +03:00

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: fixed with inline styles and z-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