From 431069fbdbe42abf80eb8cbca7ede285cf0e7595 Mon Sep 17 00:00:00 2001 From: "alexei.dolgolyov" Date: Thu, 19 Mar 2026 17:16:56 +0300 Subject: [PATCH] Add Phase 8 plan: UI polish, template engine, password change 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) --- plans/phase-8-ui-polish.md | 40 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 plans/phase-8-ui-polish.md diff --git a/plans/phase-8-ui-polish.md b/plans/phase-8-ui-polish.md new file mode 100644 index 0000000..330a055 --- /dev/null +++ b/plans/phase-8-ui-polish.md @@ -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