Files
OSIT-AE-App-Svelte/src/routes/events
Scott Idem 334c3a21bc feat: leads QR scanner — Auto/Multi modes, 4-mode fancy selector, UX polish
Scanner modes (now 4, persisted per exhibit):
- Rapid:   confirm tap → auto-reset (existing, fixed)
- Qualify: confirm tap → navigate to lead detail (existing, fixed)
- Auto:    badge found → auto-add immediately, no confirmation tap needed
- Multi:   BarcodeDetector batch scan → responsive grid of confirm cards

Multi scanner (new ae_comp__lead_qr_scanner_multi.svelte):
- Native BarcodeDetector API (Chrome/Edge/Safari 17+); Firefox fallback message
- 16:9 viewfinder with corner guides + "Align up to 4 badges flat" overlay
- Capture Batch tap → up to 8 QR codes detected in one frame
- Per-card states: loading skeleton, ready (Add/Skip), blocked (opt-out),
  already-captured (View/OK), adding spinner, success (auto-fade), error
- Add All (N) bulk action; cards fade+scale out smoothly on dismiss

Mode selector (ae_tab__add.svelte):
- Replaces Rapid/Qualify toggle with collapsible 4-mode fancy select
- Trigger shows active mode icon (color-coded) + name + description
- 2×2 options grid expands on tap, closes on selection

QR scanner element (element_qr_scanner_v3.svelte):
- object-fit: cover eliminates 4:3 camera letterbox dead zone
- 7-second start timeout with actionable error message
- Starting/error overlays with high-contrast styling
- Try Again button with RefreshCw icon

Style guide updated: icon+text button rule (§8), btn/preset-filled workaround (§12)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 16:30:38 -04:00
..

Events - Presentation Management Module

This module provides the user interface for managing the core components of an event, with a focus on sessions, presentations, and associated files. It allows event organizers to structure the event program, manage presentation details, and handle related content.

This directory (src/routes/events) contains the Svelte components and pages that constitute the user interface for this feature.

Features

  • Event Program Structure: The UI allows for viewing and managing the hierarchy of an event, including its sessions and the presentations within those sessions.
  • Session Management: View lists of sessions for an event, wrapped in various UI components for different display needs (li, tbl).
  • Presentation Management: View lists of presentations associated with sessions.
  • File Management: A key feature is the ability to manage event-related files. This includes uploading new files and viewing lists of existing files associated with the event.

UI Components & Pages

  • +page.svelte: The main landing page that displays a list of all events.
  • [event_id]/+page.svelte: The main page for a single event, which serves as the hub for managing its details.
  • ae_comp__event_session_obj_li.svelte / ..._tbl.svelte: Components that render lists of event sessions in different formats.
  • ae_comp__event_presentation_obj_li.svelte: A component that renders a list of presentations for a session.
  • ae_comp__event_file_obj_tbl.svelte: A component for displaying a table of files related to the event.
  • ae_comp__event_files_upload.svelte: A component providing the UI for uploading files.
  • ae_comp__events_menu_nav.svelte / ..._opts.svelte: Navigation and option menus specific to the events module.

Core Logic & Data Models

The underlying data models, API interactions, and database logic for this module are located in src/lib/ae_events/. The key data models include:

  • Event: The top-level object for an event.
  • EventSession: Represents a session within an event.
  • EventPresentation: Represents a presentation within a session.
  • EventPresenter: Represents a speaker for a presentation.
  • EventFile: Represents a file associated with any part of the event.