From 25b80f5deaa1f0be8175b19044958f880ae985c1 Mon Sep 17 00:00:00 2001 From: Ross Date: Sat, 6 Dec 2025 21:57:21 +0000 Subject: [PATCH] . --- .../templates/cards/_card_inner_design5.html | 5 +++- cards/templates/cards/print.html | 29 +++++++++++++++++++ cards/templates/cards/printable.html | 14 +++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) diff --git a/cards/templates/cards/_card_inner_design5.html b/cards/templates/cards/_card_inner_design5.html index be0095a..14cf8d3 100644 --- a/cards/templates/cards/_card_inner_design5.html +++ b/cards/templates/cards/_card_inner_design5.html @@ -1,5 +1,8 @@ {# Shared inner fragment for Design 5 - core card markup only #} -
+
+ {% if card.background and card.background.image %} + + {% endif %}
{{ card.name }}
diff --git a/cards/templates/cards/print.html b/cards/templates/cards/print.html index 49f03a0..d86a5be 100644 --- a/cards/templates/cards/print.html +++ b/cards/templates/cards/print.html @@ -37,6 +37,12 @@
+
+ +
@@ -143,6 +149,29 @@ var scaleInput = qs('input[name="scale"]'); if(sel) sel.addEventListener('change', updatePreview); if(scaleInput) scaleInput.addEventListener('input', updatePreview); + + // Select all / none handling for card checkboxes + var selectAll = qs('#select-all-cards'); + function updateSelectAllState(){ + var boxes = qsa('input[type="checkbox"][name="cards"]'); + if(!selectAll || !boxes.length) return; + var checkedCount = boxes.filter(function(b){ return b.checked; }).length; + selectAll.checked = (checkedCount === boxes.length); + selectAll.indeterminate = (checkedCount > 0 && checkedCount < boxes.length); + } + // initialize state + updateSelectAllState(); + if(selectAll){ + selectAll.addEventListener('change', function(){ + var boxes = qsa('input[type="checkbox"][name="cards"]'); + boxes.forEach(function(b){ b.checked = selectAll.checked; }); + selectAll.indeterminate = false; + }); + } + // Keep select-all updated when individual checkboxes change + qsa('input[type="checkbox"][name="cards"]').forEach(function(b){ + b.addEventListener('change', updateSelectAllState); + }); // Hide/show controls for the floating panel var hideBtn = qs('#sample-hide-btn'); var panel = qs('#sample-panel'); diff --git a/cards/templates/cards/printable.html b/cards/templates/cards/printable.html index 9a47397..d2f5331 100644 --- a/cards/templates/cards/printable.html +++ b/cards/templates/cards/printable.html @@ -41,6 +41,8 @@ /* Print fallback: show actual fallbacks (added into fragments) during printing because some browsers do not print CSS background-images by default. */ .print-card .print-hero-bg{display:none} + /* DEBUG: temporarily force fallback visible in all modes to verify rendering */ + .print-card .print-hero-bg.debug-force-visible{display:block !important; outline:2px solid rgba(255,0,0,0.8);} @media print{ /* Hide CSS background-images and show the fallback for reliability */ .print-card .hero-image{background-image:none !important} @@ -137,4 +139,16 @@
{% endfor %} +