From 3466d6552c2a02ffb1a00afc5a2518c58d03a4c0 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Tue, 2 Jun 2026 17:27:40 -0400 Subject: [PATCH] feat(badges): show print status strip for trusted staff on printed badges MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds a compact print info row below each printed badge for trusted users (not in edit mode — debug row already covers that): Printed 2× · First: June 9 9:14 AM · Last: June 9 11:32 AM Gives staff quick at-a-glance confirmation that a badge was printed and when, without needing to enter edit mode. Also fixes a logic bug in the attendee "Checked in" card: the "last print" line was comparing == (same datetime) instead of !== (different datetime), so it only appeared when first = last (single print) — backwards. Fixed to show only when multiple prints have occurred. Co-Authored-By: Claude Sonnet 4.6 --- .../badges/ae_comp__badge_obj_li.svelte | 28 ++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/src/routes/events/[event_id]/(badges)/badges/ae_comp__badge_obj_li.svelte b/src/routes/events/[event_id]/(badges)/badges/ae_comp__badge_obj_li.svelte index 2dc5dd73..f69dbe3c 100644 --- a/src/routes/events/[event_id]/(badges)/badges/ae_comp__badge_obj_li.svelte +++ b/src/routes/events/[event_id]/(badges)/badges/ae_comp__badge_obj_li.svelte @@ -228,13 +228,17 @@ let visible_badge_obj_li = $derived(
{display_name} - + Checked in · {print_count}× {#if event_badge_obj.print_first_datetime} - · First: {ae_util.iso_datetime_formatter(event_badge_obj.print_first_datetime, 'datetime_iso_12_no_seconds')} + · + {ae_util.iso_datetime_formatter(event_badge_obj.print_first_datetime, 'date_full_no_year')} + {ae_util.iso_datetime_formatter(event_badge_obj.print_first_datetime, 'time_12_long')} {/if} - {#if event_badge_obj.print_last_datetime} - · Last: {ae_util.iso_datetime_formatter(event_badge_obj.print_last_datetime, 'datetime_iso_12_no_seconds')} + {#if event_badge_obj.print_last_datetime && event_badge_obj.print_last_datetime !== event_badge_obj.print_first_datetime} + · last print: + {ae_util.iso_datetime_formatter(event_badge_obj.print_last_datetime, 'date_full_no_year')} + {ae_util.iso_datetime_formatter(event_badge_obj.print_last_datetime, 'time_12_long')} {/if}
@@ -359,6 +363,22 @@ let visible_badge_obj_li = $derived( + + {#if is_trusted && is_printed && !is_edit_mode} +
+ + Printed {print_count}× + {#if event_badge_obj.print_first_datetime} + · + First: {ae_util.iso_datetime_formatter(event_badge_obj.print_first_datetime, 'date_full_no_year')} {ae_util.iso_datetime_formatter(event_badge_obj.print_first_datetime, 'time_12_long')} + {/if} + {#if event_badge_obj.print_last_datetime && event_badge_obj.print_last_datetime !== event_badge_obj.print_first_datetime} + · + Last: {ae_util.iso_datetime_formatter(event_badge_obj.print_last_datetime, 'date_full_no_year')} {ae_util.iso_datetime_formatter(event_badge_obj.print_last_datetime, 'time_12_long')} + {/if} +
+ {/if} + {#if is_edit_mode && is_trusted}