diff --git a/documentation/MODULE__AE_Events_Badge_Templates.md b/documentation/MODULE__AE_Events_Badge_Templates.md index b6371c6e..7ed48f96 100644 --- a/documentation/MODULE__AE_Events_Badge_Templates.md +++ b/documentation/MODULE__AE_Events_Badge_Templates.md @@ -356,9 +356,9 @@ Firefox users can use "Save to PDF" directly — it just works. ## Pending / TODO -- [ ] Wire `style_href` via `` in print page -- [ ] Add `duplex` to `properties_to_save` once backend field exists -- [ ] Add `duplex`-driven `print:hidden` to `badge_back` section in `ae_comp__badge_obj_view.svelte` -- [ ] Make `layout` field drive actual card dimensions in the badge component (currently hard-coded) -- [ ] Remove dead `exhibitor_info` / `presenter_info` / `staff_info` / `vip_info` / `vote_info` `{#if}` blocks from `ae_comp__badge_obj_view.svelte` +- [x] Wire `style_href` via `` in print page — done in `print/+page.svelte`; also in `properties_to_save`. (2026-03-18 verified) +- [x] Add `duplex` to `properties_to_save` — done. (2026-03-18 verified) +- [x] Add `duplex`-driven suppression to `badge_back` section — done in `ae_comp__badge_obj_view_v2.svelte`; `show_badge_back` derived from `duplex` field. Note: v1 (`ae_comp__badge_obj_view.svelte`) was archived to `~/tmp/gemini_trash/`; v2 is canonical. (2026-03-18 verified) +- [ ] Make `layout` field drive actual card dimensions in the badge component — currently the Zebra ZC10L layout CSS (`badge_layout_zebra_zc10l_pvc.css`) sets dimensions correctly via `[data-layout="..."]` scoping, but fanfold layouts still use Tailwind defaults. Needs proper CSS for each layout code. +- [ ] Remove dead `exhibitor_info` / `presenter_info` / `staff_info` / `vip_info` / `vote_info` `{#if}` blocks from `ae_comp__badge_obj_view_v2.svelte` (if they were carried over from v1) - [ ] Improve `ae_comp__badge_template_form.svelte` to edit all relevant fields (currently minimal) diff --git a/documentation/PROJECT__AE_Events_Badges_Review_Print.md b/documentation/PROJECT__AE_Events_Badges_Review_Print.md index 13a75ed9..4f333399 100644 --- a/documentation/PROJECT__AE_Events_Badges_Review_Print.md +++ b/documentation/PROJECT__AE_Events_Badges_Review_Print.md @@ -1,11 +1,11 @@ # PROJECT: AE Events Badges — Review Form & Print Font Controls **Created:** 2026-02-27 -**Last Updated:** 2026-03-12 +**Last Updated:** 2026-03-18 **Branch:** `ae_app_3x_llm` **Priority:** HIGH — first live event is Axonius, NYC, mid-April 2026 **Owner:** Scott Idem / One Sky IT -**Status:** ✅ TASK 1 COMPLETE | ✅ TASK 2 COMPLETE | ✅ TASK 3 COMPLETE | ⏳ TASK 4 NEXT UP +**Status:** ✅ TASK 1 COMPLETE | ✅ TASK 2 COMPLETE | ✅ TASK 3 COMPLETE | ✅ TASK 4.1 COMPLETE | ⏳ TASK 4.0 OPEN --- @@ -105,11 +105,15 @@ badge data, gated by `allow_tracking` on the badge. ## Implementation Status -### ⏳ TASK 4.0: Kiosk Editing — NOT STARTED (2026-03-12) +### ⏳ TASK 4.0: Kiosk Editing — NOT STARTED (updated 2026-03-18) Print page edit access needs to be opened to attendee-level permissions, not just trusted_access. The permission model, field list, and `can_edit()` helper from `ae_comp__badge_review_form.svelte` should be the reference. See Design Intent section above. +**Note (2026-03-18):** `style_href` and `duplex` are both fully implemented and verified in code — +the MODULE doc TODO list was stale. `duplex` is in `properties_to_save`; v2 badge render gates +`show_badge_back` on it. `style_href` loads via `` in `print/+page.svelte`. + ### ✅ TASK 4.1: Auto-Scaling Badge Text v2 — COMPLETE (2026-03-12) **Files created/updated:** - `src/lib/elements/action_fit_text.ts` — Svelte action diff --git a/documentation/TODO__Agents.md b/documentation/TODO__Agents.md index c5c9222d..2536c295 100644 --- a/documentation/TODO__Agents.md +++ b/documentation/TODO__Agents.md @@ -42,16 +42,19 @@ Axonius (mid-April). See `documentation/PROJECT__AE_Events_Zebra_Hardware_Test_D for the full checklist and prep plan. **Pre-test work (do before printer arrives):** -- [ ] **Remove debug outlines** from `print/+page.svelte` print CSS (lime/blue/red/orange/purple/cyan) +- [x] **Debug outlines are gated** — `print/+page.svelte` prints nothing; outlines live in + `static/ae-print-badge.css` behind `html.debug_outlines` class (toggled by the "Show debug + outlines" checkbox in the controls panel, trusted-only). Won't appear in print unless explicitly + enabled. No action needed. (verified 2026-03-18) - [ ] **Zebra ZC10L Linux driver** — install CUPS driver package ahead of time; verify card prints before burning rental time on driver setup. Check Zebra's site for Linux/CUPS driver. -- [ ] **Wire `style_href`** via `` in `print/+page.svelte` — needed so client-specific - CSS loads from the template's `style_href` field. Currently tracked as pending in MODULE doc. -- [ ] **Confirm `duplex=0` hides badge back in print** — `duplex` field not yet on backend; - verify badge_back is suppressed for single-sided PVC. May need a manual print CSS rule until - the backend field lands and `properties_to_save` is updated. +- [x] **`style_href` wired** — `print/+page.svelte` already loads `style_href` via `` + and it's in `properties_to_save`. (verified 2026-03-18) +- [x] **`duplex=0` hides badge back** — `duplex` is in `properties_to_save`; v2 badge render + gates `{#if show_badge_back}` on `duplex != null && !!duplex`. Set `duplex=0` on the template + to suppress the back section for single-sided PVC. (verified 2026-03-18) - [ ] **Set up test event + PVC template** in dev DB with `layout: badge_3.5x5.5_pvc`, - a few badge records with varied name lengths, HTML in fields, different badge_type_codes. + `duplex=0`, a few badge records with varied name lengths, HTML in fields, different badge_type_codes. - [ ] **Test data set:** include edge cases — very long name, HTML markup in name/affiliations, badge with no affiliations, badge with all ticket/option codes set. @@ -98,7 +101,7 @@ Full audit: `src/routes/events/[event_id]/(leads)/` and `src/lib/ae_events/ae_ev ### [General] - [x] **Temp Cleanup:** `cleanup_tmp_files` wired in `launcher_background_sync.svelte`; called at launcher startup. Confirmed working. (2026-03-11) -- **`window.print()` for badge print button:** Wire the existing `handle_print_badge()` to trigger `window.print()`. Browser print works well across Chrome/Chromium/Firefox — no Electron needed. +- [x] **`window.print()` for badge print button:** Wired in `ae_comp__badge_print_controls.svelte` — increments count, fires `window.print()`, redirects to badge search. (done) - **Input Field Audit:** Several input fields are missing `name`/`id` attributes or `data-testid`. Known examples: badge override fields in `ae_comp__badge_obj_view.svelte`; template name input in `ae_comp__badge_template_form.svelte`. Matters for: accessibility, autofill, label associations, and test targeting. (For tests, use `getByLabel()` rather than `input[value*=...]` which only checks the HTML attribute, not the Svelte-bound DOM property.) ## ✅ Completed (2026-03)