feat(badges): badge review form + expand properties_to_save

ae_comp__badge_review_form.svelte:
- Full implementation of the badge review form (Task 1)
- Editable fields gated by access level (attendee / trusted / admin)
- Save/cancel with change detection, override revert buttons
- QR code display (hover zoom + click expand)
- Print status section, options/tickets, T&C block
- HTML rendering for name/title/affiliations/location fields
- Accessibility font-size toggle (text-2xl ↔ text-4xl)
- Help modal (Flowbite) with 6 sections
- Local edit mode — never writes to $ae_loc.edit_mode

ae_events__event_badge.ts:
- Add missing fields to properties_to_save so they are persisted to IDB:
  pronouns_override, phone, phone_override, registration_type(_code/_override),
  allow_tracking, agree_to_tc, other_1-8_code, ticket_1-8_code

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Scott Idem
2026-02-27 19:02:56 -05:00
parent 4b17ca9f59
commit 9939d94970
2 changed files with 1119 additions and 283 deletions

View File

@@ -510,6 +510,7 @@ export const properties_to_save = [
'event_id',
'event_badge_template_id',
'pronouns',
'pronouns_override',
'informal_name',
'title_names',
'given_name',
@@ -524,6 +525,8 @@ export const properties_to_save = [
'affiliations_override',
'email',
'email_override',
'phone',
'phone_override',
'address_line_1',
'address_line_2',
'address_line_3',
@@ -542,6 +545,10 @@ export const properties_to_save = [
'badge_type_code',
'badge_type_override',
'badge_type_code_override',
'registration_type',
'registration_type_code',
'registration_type_override',
'registration_type_code_override',
'external_event_id',
'external_id',
'external_person_id',
@@ -558,6 +565,24 @@ export const properties_to_save = [
'print_count',
'print_first_datetime',
'print_last_datetime',
'allow_tracking',
'agree_to_tc',
'other_1_code',
'other_2_code',
'other_3_code',
'other_4_code',
'other_5_code',
'other_6_code',
'other_7_code',
'other_8_code',
'ticket_1_code',
'ticket_2_code',
'ticket_3_code',
'ticket_4_code',
'ticket_5_code',
'ticket_6_code',
'ticket_7_code',
'ticket_8_code',
'tmp_sort_1',
'tmp_sort_2',
'person_external_id',