From 1c9f2d101df46160557d326bc49d9b4f1721610e Mon Sep 17 00:00:00 2001 From: Mike Swanson Date: Thu, 18 Jun 2026 16:04:31 -0700 Subject: [PATCH] dataforth/testdatadb UI: clear, persistent push feedback (toasts) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The push handlers set the button to 'skipped' then immediately ran search(), which re-rendered the inspector and wiped the text — so a skipped publish flashed and vanished (looked like nothing happened). Replace with persistent toasts that state the outcome explicitly: Published / already up-to-date / Push failed / and for a skip, ' isn't renderable yet, so nothing was sent.' Only refresh the row on an actual publish so the message isn't clobbered. Same for the multi-select Re-push summary. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../testdatadb-fix/public/index.redesign.html | 33 ++++++++++++++----- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/projects/dataforth-dos/testdatadb-fix/public/index.redesign.html b/projects/dataforth-dos/testdatadb-fix/public/index.redesign.html index 4fae138d..3bdbfefa 100644 --- a/projects/dataforth-dos/testdatadb-fix/public/index.redesign.html +++ b/projects/dataforth-dos/testdatadb-fix/public/index.redesign.html @@ -150,6 +150,12 @@ .viewer iframe{display:block;width:100%;min-height:100%;border:1px solid var(--border);border-radius:5px;background:#fff; box-shadow:0 1px 5px rgba(15,23,42,.10)} kbd{font-family:var(--mono);font-size:11px;background:#f1f5f9;border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:4px;padding:0 5px;color:var(--ink-2)} + /* ---------- toast ---------- */ + .toast{position:fixed;right:18px;bottom:18px;max-width:400px;z-index:60;display:flex;flex-direction:column;gap:8px} + .toast .t{background:#fff;border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:8px;box-shadow:0 8px 28px rgba(15,23,42,.18);padding:11px 13px 12px;font-size:12.5px;color:var(--ink-2);cursor:pointer;animation:tin .16s} + .toast .t.ok{border-left-color:var(--pass-ink)} .toast .t.warn{border-left-color:#d97706} .toast .t.err{border-left-color:var(--fail-ink)} + .toast .t b{display:block;margin-bottom:2px;color:var(--ink);font-size:13px} + @keyframes tin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}} /* ---------- responsive ---------- */ @media (max-width:1180px){ main{grid-template-columns:1fr 0} @@ -242,6 +248,7 @@
+