read.markets/app/static/js
Giorgio Gilestro 736d161990 ui: portfolio actions row + AI analysis regenerate
Two small UX changes to the portfolio panel:

1. "Forget this pie" is destructive enough to belong in edit-mode
   only. The button now hides by default and only surfaces when the
   #portfolio-panel.pf-editing class is on the panel (same surface
   that already shows per-row × and the add-position form). The
   element stays in the DOM so the existing click handler keeps
   working without re-mount.

2. "Generate AI analysis" disappears once an analysis exists. In its
   place a small "Regenerate" button is rendered inside the
   collapsible analysis box — in the summary header, right-aligned
   next to the timestamp. The button stops the summary's default
   toggle action so a click regenerates without collapsing the
   panel. runAnalysis() now tolerates either pf-analyze or pf-regen
   as the trigger, and showAnalysis() takes an optional
   onRegenerate callback so callers can wire the button to the
   current pie/enriched closure context. Re-hydration after the
   60s portfolio refresh passes the same callback so the button
   survives a refresh cycle.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-29 15:04:08 +02:00
..
chat.js ui: fix chat pending class, invented CSS vars, .pf-secondary scope 2026-05-27 19:19:42 +02:00
htmx.min.js initial commit — cassandra v0.1 2026-05-15 21:56:10 +01:00
portfolio-sync.js sync: detect orphaned blobs (pepper rotation) + fix AESGCM arg order 2026-05-25 12:49:11 +02:00
portfolio.js ui: portfolio actions row + AI analysis regenerate 2026-05-29 15:04:08 +02:00
portfolio_edit.js portfolio-edit: form is edit-mode only; submit becomes a + glyph 2026-05-27 15:22:13 +02:00
settings-import.js settings: extract sync + import widget JS to static files 2026-05-27 20:55:49 +02:00
settings-sync.js settings: extract sync + import widget JS to static files 2026-05-27 20:55:49 +02:00