Add Phase 8 plan: UI polish, template engine, password change
Some checks failed
Validate / Hassfest (push) Has been cancelled

5 tasks:
1. Server health indicator on cards
2. Album selector filter-by-name
3. Album last update time display
4. Review/improve template engine (Jinja2 with full variable context)
5. Change user password (self + admin reset)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-19 17:16:56 +03:00
parent 5192483fff
commit 431069fbdb

View File

@@ -0,0 +1,40 @@
# Phase 8: UI Polish & Template Engine
**Status**: Pending
**Parent**: [primary-plan.md](primary-plan.md)
---
## Tasks
### 1. Server health indicator on card `[ ]`
- Call `/api/health` or ping the Immich server on load
- Show green/red dot or badge on each server card
- Auto-refresh periodically or on page load
### 2. Album selector filter-by-name `[ ]`
- Add search/filter input above the album checkbox list in tracker form
- Filter albums by name as user types (case-insensitive)
- Show match count
### 3. Album last update time `[ ]`
- Fetch `updatedAt` from Immich album API response
- Display formatted last update time next to each album in the selector
- Format relative ("2 hours ago") or absolute based on locale
### 4. Review and improve message template engine `[ ]`
- Current: simple Python `str.format()` style `{variable}` placeholders
- Blueprint uses Jinja2 with `{% if %}`, `{% for %}`, `| join` filters
- The TemplateConfig stores raw template strings
- Review: should the server render templates using Jinja2 with the full
variable context? Currently `notifier.py` just does simple format()
- Proposal: Switch to full Jinja2 rendering in notifier with all 40+
variables, conditional blocks, loops over assets, filters
- Add template documentation/reference panel in the template-configs UI
- Add a "variable reference" sidebar showing all available variables
with descriptions and example values
### 5. Change user password `[ ]`
- Add password change form to user profile (sidebar footer or /settings page)
- Backend: `PUT /api/auth/password` (current_password + new_password)
- Admin can also reset any user's password via /users page