feat(badges): implement badge print controls panel and refine badge overrides
- Create ae_comp__badge_print_controls.svelte: A fixed-right-edge panel for per-field accordion controls, font size adjustments, and inline editing. - Refactor print/+page.svelte to integrate the new controls panel and standardize font size state management via $bindable() props. - Update ae_comp__badge_obj_view.svelte and ae_comp__badge_review_form.svelte to correctly sync badge_type_code_override and badge_type_override. - Improve badge_type_name derivation logic to prioritize staff overrides. - Hide unused receipt/ticket sections in badge view pending future redesign. - Update documentation (PROJECT and TODO) to reflect completion of Task 3.
This commit is contained in:
@@ -8,17 +8,37 @@
|
||||
- [ ] **Step 3:** Implement formal error boundaries for 403/401 API responses to provide user-friendly "Session Expired" or "Access Denied" UI.
|
||||
|
||||
## 🚧 Upcoming High Priority
|
||||
|
||||
### [Badges] Remaining badge work before first live event
|
||||
- **QR code on badge front:** `ae_comp__badge_obj_view.svelte` — display QR on the printed
|
||||
face when template has `show_qr` (or equivalent) toggled on. Use same QR generation as
|
||||
review form (`core_func.js_generate_qr_code`). See TASK 4 in `PROJECT__AE_Events_Badges_Review_Print.md`.
|
||||
- **Badge print controls UX polish:** Scott has improvements in mind — TBD next session.
|
||||
File: `ae_comp__badge_print_controls.svelte`.
|
||||
|
||||
### [Leads] Exhibitor Lead Scanning — NEXT MAJOR FEATURE
|
||||
QR code scan at exhibitor booth → capture attendee badge data. Gated by `allow_tracking` on
|
||||
the badge. Check if `documentation/MODULE__AE_Events_Leads.md` exists for full spec.
|
||||
Key questions before starting: which routes, does the Electron app scan, what does the
|
||||
lead record look like in the DB?
|
||||
|
||||
### [General]
|
||||
- **CRUD v2 Refactor:** Finalize retirement of `Element_ae_crud_v2.svelte` in favor of V3 Editor.
|
||||
- **Temp Cleanup:** Auto-removal of native `.tmp` files older than 24h.
|
||||
- **`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.
|
||||
- **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 Recently
|
||||
- [x] **[Badges]** **Badge Print Controls Panel:** New `ae_comp__badge_print_controls.svelte` — per-field accordion with inline edit forms, font size controls, access-level gating. Fixed-right-edge layout replaces collapsed `flex-1` panel. (2026-03-02, branch `ae_app_3x_llm`)
|
||||
- [x] **[Badges]** **badge_type_override coupling:** Selecting badge type from dropdown now saves both `badge_type_code_override` AND `badge_type_override` in `ae_comp__badge_obj_view.svelte`, `ae_comp__badge_review_form.svelte`, and `ae_comp__badge_print_controls.svelte`.
|
||||
- [x] **[Badges]** **Layout CSS system:** `data-layout` attribute, `@page` injection, `style_href` for per-template CSS files. Two templates: `badge_layout_epson_4x5_fanfold.css`, `badge_layout_zebra_zc10l_pvc.css`.
|
||||
- [x] **[Badges]** **Duplex field wiring:** Badge back hidden for single-sided templates.
|
||||
- [x] **[Badges]** **Badge Review Form:** Complete with QR code, field edits, access-level gating, accessibility toggle, help modal. (`ae_comp__badge_review_form.svelte`)
|
||||
- [x] **[API]** **V3 Lookup System Integration:** Implemented standardized `/v3/lookup/` endpoints for Countries, Subdivisions, and Time Zones. Added support for `only_priority` filtering in IDAA editors.
|
||||
- [x] **[UI]** **Events Launcher Location Fix:** Resolved room select list issues by ensuring all enabled/hidden locations are proactively loaded and synced.
|
||||
- [x] **[API]** **Event File V3 Mapping:** Implemented `inc_hosted_file` support and mapped prefixed backend fields (`hosted_file_hash_sha256`, etc.) to flat properties.
|
||||
- [x] **[UI]** **Badge Rendering Fix:** Refactored `badge_template` lookup to use V3 Triple ID pattern.
|
||||
- [x] **[API]** **event_session Search Fix:** Resolved 400 error (`Unauthorized search field 'account_id'`) via backend update.
|
||||
- [x] **[API]** **event_session Search Fix:** Resolved 400 error (`Unauthorized search field ‘account_id’`) via backend update.
|
||||
- [x] **[Security]** Purged redundant `x-aether-api-token` from frontend and notified backend.
|
||||
- [x] **[Security]** Fixed misplaced `Access-Control-Allow-Origin` request headers.
|
||||
- [x] **[Security]** Implemented "Account ID Scavenging" to fix hydration race conditions.
|
||||
|
||||
Reference in New Issue
Block a user