[object Object]

← back to Wallco Ai

cactus-curator: bulk Publish now animates published cards out of the grid (matches per-card Publish) — fixes 'select row + Publish does nothing' (published server-side but no visible feedback)

1ac66167f43a1d3dcc891e5cce0fed60ba664c69 · 2026-05-30 12:11:46 -0700 · Steve Abrams

Files touched

Diff

commit 1ac66167f43a1d3dcc891e5cce0fed60ba664c69
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Sat May 30 12:11:46 2026 -0700

    cactus-curator: bulk Publish now animates published cards out of the grid (matches per-card Publish) — fixes 'select row + Publish does nothing' (published server-side but no visible feedback)
---
 public/admin/cactus-curator.html | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/public/admin/cactus-curator.html b/public/admin/cactus-curator.html
index 32cab01..a9a0515 100644
--- a/public/admin/cactus-curator.html
+++ b/public/admin/cactus-curator.html
@@ -856,7 +856,14 @@ async function bulk(action){
       else if(action==='unpublish'){ if(d){d.is_published=false;d.web_viewer=false;} el?.classList.add('moved-to-etsy'); setTimeout(()=>el?.remove(),300); }
       else if(action==='etsy'){    if(d){d.in_etsy_bucket=true;} el?.classList.add('moved-to-etsy'); setTimeout(()=>el?.remove(),300); }
       else if(action==='fix'){     if(d){d.needs_fixing_at=today();} }
-      else if(action==='live'){    if(d){d.is_published=true;d.web_viewer=true;d.user_removed=false;d.needs_fixing_at=null;d.digital_file_at=null;} }
+      else if(action==='live'){    if(d){d.is_published=true;d.web_viewer=true;d.user_removed=false;d.needs_fixing_at=null;d.digital_file_at=null;}
+        // Animate published cards out of the grid so the bulk-Publish gives the
+        // SAME visible feedback as per-card Publish + the other bulk actions —
+        // without this the cards published fine server-side but sat there
+        // unchanged, so a bulk-Publish "did nothing" from Steve's POV (2026-05-30).
+        // Skip gate-held cards (they stay, re-flagged as needs-fixing below).
+        const held=(j.results||[]).some(rr=>rr&&rr.id===id&&rr.gate_held);
+        if(!held){ el?.classList.add('moved-to-etsy'); setTimeout(()=>el?.remove(),300); } }
     });
 
     // 'live' gate-held items come back parked as needs-fixing — reflect that.

← dfe2bce elements/img: fall back to source tile by-id when baked deri  ·  back to Wallco Ai  ·  security-monitor.sh: add cron + service-unit drift checks c0ef0e8 →