- 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.
5.8 KiB
5.8 KiB
Frontend Agent Task List
Use this file to track steps for complex features or bug fixes. Status: 🔴 Sev-1 Security Incident Recovery / Stabilized.
📋 Active Task: Post-Incident Security Recovery
- Step 1: Conduct full audit of
PUBLIC_AE_API_SECRET_KEYusage. Determine if it can be moved to server-side only. - Step 2: Replace simulation tests (
tests/verify_jwt_logic.js) with real Playwright integration tests hitting the local dev API. - 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 hasshow_qr(or equivalent) toggled on. Use same QR generation as review form (core_func.js_generate_qr_code). See TASK 4 inPROJECT__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.sveltein favor of V3 Editor. - Temp Cleanup: Auto-removal of native
.tmpfiles older than 24h. window.print()for badge print button: Wire the existinghandle_print_badge()to triggerwindow.print(). Browser print works well across Chrome/Chromium/Firefox — no Electron needed.- Input Field Audit: Several input fields are missing
name/idattributes ordata-testid. Known examples: badge override fields inae_comp__badge_obj_view.svelte; template name input inae_comp__badge_template_form.svelte. Matters for: accessibility, autofill, label associations, and test targeting. (For tests, usegetByLabel()rather thaninput[value*=...]which only checks the HTML attribute, not the Svelte-bound DOM property.)
✅ Completed Recently
- [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 collapsedflex-1panel. (2026-03-02, branchae_app_3x_llm) - [Badges] badge_type_override coupling: Selecting badge type from dropdown now saves both
badge_type_code_overrideANDbadge_type_overrideinae_comp__badge_obj_view.svelte,ae_comp__badge_review_form.svelte, andae_comp__badge_print_controls.svelte. - [Badges] Layout CSS system:
data-layoutattribute,@pageinjection,style_hreffor per-template CSS files. Two templates:badge_layout_epson_4x5_fanfold.css,badge_layout_zebra_zc10l_pvc.css. - [Badges] Duplex field wiring: Badge back hidden for single-sided templates.
- [Badges] Badge Review Form: Complete with QR code, field edits, access-level gating, accessibility toggle, help modal. (
ae_comp__badge_review_form.svelte) - [API] V3 Lookup System Integration: Implemented standardized
/v3/lookup/endpoints for Countries, Subdivisions, and Time Zones. Added support foronly_priorityfiltering in IDAA editors. - [UI] Events Launcher Location Fix: Resolved room select list issues by ensuring all enabled/hidden locations are proactively loaded and synced.
- [API] Event File V3 Mapping: Implemented
inc_hosted_filesupport and mapped prefixed backend fields (hosted_file_hash_sha256, etc.) to flat properties. - [UI] Badge Rendering Fix: Refactored
badge_templatelookup to use V3 Triple ID pattern. - [API] event_session Search Fix: Resolved 400 error (
Unauthorized search field ‘account_id’) via backend update. - [Security] Purged redundant
x-aether-api-tokenfrom frontend and notified backend. - [Security] Fixed misplaced
Access-Control-Allow-Originrequest headers. - [Security] Implemented "Account ID Scavenging" to fix hydration race conditions.
- [API] Unified all CRUD helpers to standard V3
/v3/crud/...paths. - [Framework] Implemented
AE_Obj_Field_Editor_V3with Svelte 5 Runes. - [IDAA] Verify Bulletin Board and Recovery Meetings functionality.
- [Badges] Multi-word fulltext search fix: Split query on whitespace, apply AND logic per word.
"scott idem"now matches records containing both words. (dc0f3066) - [Badges] Print button implemented:
handle_print_badge()incrementsprint_count, recordsprint_first_datetime/print_last_datetime. Button has loading/done/error states. (d1ded2d4) - [Badges]
data-testidattributes added to badge view interactive elements (badge-edit-btn,badge-save-btn,badge-cancel-btn,badge-print-btn,badge-professional-title-input) for reliable test targeting. - [Tests] Attendee badge workflow test passing:
event_badge_attendee_workflow.test.ts— navigate → edit professional title → save (verify PATCH body) → print (verify count/timestamps) → return to search. (d1ded2d4) - [Tests] All badge data integrity tests fixed: All 6 tests in
event_badge_data_integrity.test.tsnow pass. Root causes: (1) search mock used nested URL instead of flat/v3/crud/event_badge/search, (2) template list mock used nested URL instead of flat withfor_obj_id, (3) missing_randomID fields in mock badge objects, (4) CSSinput[value*=...]selector doesn’t work for Svelte-bound inputs — fixed togetByLabel(). (f5e98b8c)