From 10cc435146033370496e7a3b58ff365bdbad7ac4 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Wed, 19 Nov 2025 18:56:58 -0500 Subject: [PATCH] There have been a lot of changes. For some reason the commit is not working? Trying again. --- src/lib/stores/ae_events_stores.ts | 6 + .../(badges)/badges/[badge_id]/+page.svelte | 32 +- .../[badge_id]/ae_comp__badge_obj_view.svelte | 511 ++++--- .../badges/ae_comp__badge_obj_li.svelte | 164 ++- .../(badges)/badges/print_list/+page.svelte | 102 ++ .../(badges)/templates/+page.svelte | 136 ++ .../ae_comp__badge_template_form.svelte | 204 +++ .../(launcher)/launcher/+layout.svelte | 2 +- src/routes/events_badges/README.md | 2 +- .../old_badges_v1/0_event_badge_main.svelte | 260 ++++ .../0_event_badge_review_search_main.svelte | 282 ++++ .../0_event_badge_template_list_main.svelte | 457 ++++++ .../20_event_badge_details.svelte | 155 ++ .../old_badges_v1/20_event_badge_form.svelte | 543 +++++++ .../20_event_badge_review_badge.svelte | 792 +++++++++++ .../20_event_badge_search_main.svelte | 652 +++++++++ .../20_event_badge_upload_form.svelte | 213 +++ .../20_event_badge_view_badge.svelte | 1263 +++++++++++++++++ .../20_event_badge_view_badge_list.svelte | 168 +++ .../old_badges_v1/30_event_badge_menu.svelte | 710 +++++++++ 20 files changed, 6362 insertions(+), 292 deletions(-) create mode 100644 src/routes/events/[event_id]/(badges)/badges/print_list/+page.svelte create mode 100644 src/routes/events/[event_id]/(badges)/templates/+page.svelte create mode 100644 src/routes/events/[event_id]/(badges)/templates/ae_comp__badge_template_form.svelte create mode 100644 src/routes/events_badges/old_badges_v1/0_event_badge_main.svelte create mode 100644 src/routes/events_badges/old_badges_v1/0_event_badge_review_search_main.svelte create mode 100644 src/routes/events_badges/old_badges_v1/0_event_badge_template_list_main.svelte create mode 100644 src/routes/events_badges/old_badges_v1/20_event_badge_details.svelte create mode 100644 src/routes/events_badges/old_badges_v1/20_event_badge_form.svelte create mode 100644 src/routes/events_badges/old_badges_v1/20_event_badge_review_badge.svelte create mode 100644 src/routes/events_badges/old_badges_v1/20_event_badge_search_main.svelte create mode 100644 src/routes/events_badges/old_badges_v1/20_event_badge_upload_form.svelte create mode 100644 src/routes/events_badges/old_badges_v1/20_event_badge_view_badge.svelte create mode 100644 src/routes/events_badges/old_badges_v1/20_event_badge_view_badge_list.svelte create mode 100644 src/routes/events_badges/old_badges_v1/30_event_badge_menu.svelte diff --git a/src/lib/stores/ae_events_stores.ts b/src/lib/stores/ae_events_stores.ts index d9051e39..256a0c9e 100644 --- a/src/lib/stores/ae_events_stores.ts +++ b/src/lib/stores/ae_events_stores.ts @@ -91,6 +91,12 @@ const events_local_data_struct: key_val = { fulltext_search_qry_str: null, search_badge_type_code: null, + + // New additions for filter states + qry_printed_status: 'all', // Default to all + qry_affiliations: null, // Default to null for no filter + qry_sort_order: '', // Default to empty string for default sort + status_qry__search: null, use_id_li: true, search_status: null, diff --git a/src/routes/events/[event_id]/(badges)/badges/[badge_id]/+page.svelte b/src/routes/events/[event_id]/(badges)/badges/[badge_id]/+page.svelte index 50d01e0a..e3502f87 100644 --- a/src/routes/events/[event_id]/(badges)/badges/[badge_id]/+page.svelte +++ b/src/routes/events/[event_id]/(badges)/badges/[badge_id]/+page.svelte @@ -11,14 +11,14 @@ // import { goto } from '$app/navigation'; // *** Import other supporting libraries - // import { browser } from '$app/environment'; + import { browser } from '$app/environment'; import { liveQuery } from 'dexie'; // *** Import Aether specific variables and functions // import type { key_val } from '$lib/ae_stores'; import { ae_util } from '$lib/ae_utils/ae_utils'; // import { core_func } from '$lib/ae_core_functions'; - // import { ae_snip, ae_loc, ae_sess, ae_api, ae_trig, slct, slct_trigger } from '$lib/ae_stores'; + import { ae_loc } from '$lib/stores/ae_stores'; // import Element_ae_crud from '$lib/element_ae_crud // import Element_data_store from '$lib/element_data_store_v2.svelte'; @@ -58,14 +58,31 @@ }) ); + let is_review_mode: boolean = $state(false); + // *** Functions and Logic - // if (browser) { - // console.log('Browser environment detected.'); + import { onMount } from 'svelte'; + let lq__event_obj = $state(null); - // let url_test_val = data.url.searchParams.get('test_val'); - // console.log(`URL test_val = ${url_test_val}`); - // } + onMount(() => { + const observable = liveQuery(() => db_events.event.get($events_slct?.event_id ?? '')); + const subscription = observable.subscribe((value) => { + lq__event_obj = value; + }); + + if (browser && window.location.hash === '#review') { + is_review_mode = true; + $ae_loc.edit_mode = true; + } else { + is_review_mode = false; + $ae_loc.edit_mode = false; + } + + return () => { + subscription.unsubscribe(); + }; + }); @@ -116,6 +133,7 @@ event_id={$lq__event_badge_obj.event_id} {event_badge_id} {lq__event_badge_obj} + {is_review_mode} /> {:else} diff --git a/src/routes/events/[event_id]/(badges)/badges/[badge_id]/ae_comp__badge_obj_view.svelte b/src/routes/events/[event_id]/(badges)/badges/[badge_id]/ae_comp__badge_obj_view.svelte index ed8c9385..d8395768 100644 --- a/src/routes/events/[event_id]/(badges)/badges/[badge_id]/ae_comp__badge_obj_view.svelte +++ b/src/routes/events/[event_id]/(badges)/badges/[badge_id]/ae_comp__badge_obj_view.svelte @@ -5,6 +5,7 @@ lq__event_badge_obj?: any; update_status?: string; update_complete?: boolean; + is_review_mode?: boolean; log_lvl?: number; } @@ -14,6 +15,7 @@ lq__event_badge_obj, update_status = $bindable('idle'), update_complete = $bindable(true), + is_review_mode = false, log_lvl = 0 }: Props = $props(); @@ -23,27 +25,7 @@ // *** Import other supporting libraries import { liveQuery } from 'dexie'; - // import { - // ArrowDown01, ArrowDown10, ArrowDownUp, - // BetweenVerticalEnd, BetweenVerticalStart, - // BookHeart, BookImage, Bookmark, BookOpenText, BriefcaseBusiness, - // Check, Copy, - // Expand, Eye, EyeOff, - // Flag, FlagOff, FilePlus, Fingerprint, - // Globe, - // Library, - // MessageSquareWarning, Minus, - // Notebook, - // Pencil, Plus, - // RemoveFormatting, - // SquareLibrary, - // Shapes, Share2, ShieldCheck, ShieldMinus, Siren, Skull, - // Tags, Target, ToggleLeft, ToggleRight, Trash2, TypeOutline, - // X - // } from '@lucide/svelte'; - import type { key_val } from '$lib/stores/ae_stores'; - // import { ae_util } from '$lib/ae_utils/ae_utils'; import { core_func } from '$lib/ae_core/ae_core_functions'; import { ae_snip, @@ -100,90 +82,57 @@ let show_event_badge_tools_modal: boolean = $state(false); let show_restricted_fields: boolean = $state(false); - let allow_tracking: null | boolean = $state(null); - let show_allow_tracking: boolean = $state(false); + // Editable fields + let editable_full_name_override: string | null = $state(null); + let editable_professional_title_override: string | null = $state(null); + let editable_affiliations_override: string | null = $state(null); + let editable_location_override: string | null = $state(null); + let editable_allow_tracking: boolean | null = $state(null); + let editable_email: string | null = $state(null); + let editable_badge_type_code: string | null = $state(null); - let edit_full_name_override = $state(false); - let edit_professional_title_override = $state(false); - let edit_affiliations_override = $state(false); - let edit_location_override = $state(false); + // Manage edit state locally + let edit_mode_active: boolean = $state(false); + + // Initialize editable fields when lq__event_badge_obj changes + $effect(() => { + if (lq__event_badge_obj) { + editable_full_name_override = lq__event_badge_obj.full_name_override ?? lq__event_badge_obj.full_name; + editable_professional_title_override = lq__event_badge_obj.professional_title_override ?? lq__event_badge_obj.professional_title; + editable_affiliations_override = lq__event_badge_obj.affiliations_override ?? lq__event_badge_obj.affiliations; + editable_location_override = lq__event_badge_obj.location_override ?? lq__event_badge_obj.location; + editable_allow_tracking = lq__event_badge_obj.allow_tracking ?? null; + editable_email = lq__event_badge_obj.email ?? null; + editable_badge_type_code = lq__event_badge_obj.badge_type_code ?? null; + + if (is_review_mode) { + edit_mode_active = true; + $ae_loc.edit_mode = true; + } else { + edit_mode_active = false; // Ensure it starts off if not in review mode + $ae_loc.edit_mode = false; + } + } + }); let show_print_msg: null | boolean = $state(null); let hide_qr: null | boolean = $state(null); - let use_badge_type = $state(null); - let use_badge_type_code = $state(''); - // let use_badge_type_code_list = []; - // use_badge_type_code_list.push({code: 'current_member', name: 'Member'}); - // use_badge_type_code_list.push({code: 'inactive_member', name: 'Non-Member'}); - - // use_badge_type_code_list.push({code: 'MBR', name: 'Member'}); - // use_badge_type_code_list.push({code: 'AHMB', name: 'Member'}); - - // use_badge_type_code_list.push({code: 'SNMB', name: 'Student/Trainee Non-Member'}); - // use_badge_type_code_list.push({code: 'SMBR', name: 'Student/Trainee Member'}); - - // use_badge_type_code_list.push({code: 'NMBR', name: 'Non-Member'}); - // use_badge_type_code_list.push({code: 'ANHM', name: 'Non-Member'}); - // use_badge_type_code_list.push({code: 'INMB', name: 'Non-Member'}); - - // use_badge_type_code_list.push({code: 'EXO', name: 'Exhibitor Booth Staff'}); - // use_badge_type_code_list.push({code: 'EXALL', name: 'Exhibitor All Access'}); - - // use_badge_type_code_list.push({code: 'GUEST', name: 'Guest'}); - - // use_badge_type_code_list.push({code: 'HEART', name: 'HFTX Core'}); - // use_badge_type_code_list.push({code: 'LUNG', name: 'LTX Core'}); - - // use_badge_type_code_list.push({code: 'STAFF', name: 'Staff'}); - // use_badge_type_code_list.push({code: 'VIP', name: 'VIP'}); - // use_badge_type_code_list.push({code: 'VOL', name: 'Volunteer'}); - - let full_name_override = $state(null); // Usually set by the person or similar - let longest_full_name_override_part = 0; - let full_name = $state(null); // Usually auto generated - - let professional_title_override = $state(null); - let longest_professional_title_override_part = 0; - - let affiliations_override = $state(null); - let longest_affiliations_override_part = 0; - - let location_override = $state(null); - let longest_location_override_part = 0; - - let option_other_1_display_opt: any = $state(null); - let option_other_1_override: any = $state(null); - let option_other_2_display_opt: any = $state(null); - let option_other_2_override: any = $state(null); - - let option_ticket_1_display_opt: any = $state(null); - let option_ticket_1_override: any = $state(null); - let option_ticket_2_display_opt: any = $state(null); - let option_ticket_2_override: any = $state(null); - let option_ticket_3_display_opt: any = $state(null); - let option_ticket_3_override: any = $state(null); - // let option_ticket_4_display_opt = $state(null); - // let option_ticket_5_display_opt = $state(null); - // let option_ticket_6_display_opt = $state(null); - // let option_ticket_7_display_opt = $state(null); - // let option_ticket_8_display_opt = $state(null); + // These variables seem unused or redundant now with editable_ fields + // let use_badge_type = $state(null); + // let use_badge_type_code = $state(''); let slct_badge_type = ''; - // let qr_type = 'mecard'; - // let qr_img_src = $state(null); - // let img_obj_url = $state(null); - /* *** BEGIN *** This should be moved out */ // display options: 'front_bool', 'front_html', 'back_bool', 'back_html' - option_ticket_1_display_opt = 'front_bool'; - option_ticket_2_display_opt = 'front_bool'; - option_ticket_3_display_opt = 'front_bool'; + let option_ticket_1_display_opt = 'front_bool'; + let option_ticket_2_display_opt = 'front_bool'; + let option_ticket_3_display_opt = 'front_bool'; - option_other_1_display_opt = 'back_html'; - option_other_2_display_opt = 'back_html'; + let option_other_1_display_opt = 'back_html'; + let option_other_2_display_opt = 'back_html'; let code_to_html: any = { option_1: {}, option_2: {} }; code_to_html.option_1['1'] = ''; @@ -203,12 +152,6 @@ code_to_html.option_2['True'] = ''; code_to_html.option_2['First Time '] = ''; - // code_to_html.option_2['1-5'] = ''; - // code_to_html.option_2['6-10'] = ''; - // code_to_html.option_2['11-15'] = ''; - // code_to_html.option_2['16-29'] = ''; - // code_to_html.option_2['30+'] = ''; - // code_to_html.option_2['Unknown'] = ''; /* *** END *** This should be moved out */ let full_name_class_size: string = $state('text-[.60in]'); @@ -227,10 +170,14 @@ $lq__event_badge_obj?.event_badge_template_id ); - full_name_override = - $lq__event_badge_obj?.full_name_override ?? $lq__event_badge_obj?.full_name; - longest_full_name_override_part = longest_str_part(full_name_override ?? ''); + // Re-calculate font sizes based on potentially edited values + const current_full_name = editable_full_name_override ?? lq__event_badge_obj?.full_name ?? ''; + const current_professional_title = editable_professional_title_override ?? lq__event_badge_obj?.professional_title ?? ''; + const current_affiliations = editable_affiliations_override ?? lq__event_badge_obj?.affiliations ?? ''; + const current_location = editable_location_override ?? lq__event_badge_obj?.location ?? ''; + + longest_full_name_override_part = longest_str_part(current_full_name); if (longest_full_name_override_part >= 9) { full_name_class_size = 'text-[.45in]'; } else if (longest_full_name_override_part >= 7) { @@ -239,12 +186,7 @@ full_name_class_size = 'text-[.75in]'; } - professional_title_override = - $lq__event_badge_obj?.professional_title_override ?? - $lq__event_badge_obj?.professional_title; - longest_professional_title_override_part = longest_str_part( - professional_title_override ?? '' - ); + longest_professional_title_override_part = longest_str_part(current_professional_title); if (longest_professional_title_override_part >= 13) { professional_title_class_size = 'text-[.35in]'; } else if (longest_professional_title_override_part >= 10) { @@ -255,9 +197,7 @@ professional_title_class_size = 'text-[.35in]'; } - affiliations_override = - $lq__event_badge_obj?.affiliations_override ?? $lq__event_badge_obj?.affiliations; - longest_affiliations_override_part = longest_str_part(affiliations_override ?? ''); + longest_affiliations_override_part = longest_str_part(current_affiliations); if (longest_affiliations_override_part >= 55) { affiliations_class_size = 'text-[.30in]'; } else if (longest_affiliations_override_part >= 45) { @@ -277,9 +217,7 @@ affiliations_class_size = full_name_class_size; } - location_override = - $lq__event_badge_obj?.location_override ?? $lq__event_badge_obj?.location; - longest_location_override_part = longest_str_part(location_override ?? ''); + longest_location_override_part = longest_str_part(current_location); if (longest_location_override_part >= 55) { location_class_size = 'text-[.30in]'; } else if (longest_location_override_part >= 45) { @@ -301,27 +239,12 @@ professional_title_class_size = location_class_size; } - option_other_1_override = - $lq__event_badge_obj?.option_other_1_override ?? - $lq__event_badge_obj?.option_other_1; - option_other_2_override = - $lq__event_badge_obj?.option_other_2_override ?? - $lq__event_badge_obj?.option_other_2; - - option_ticket_1_override = - $lq__event_badge_obj?.option_ticket_1_override ?? - $lq__event_badge_obj?.option_ticket_1; - option_ticket_2_override = - $lq__event_badge_obj?.option_ticket_2_override ?? - $lq__event_badge_obj?.option_ticket_2; - option_ticket_3_override = - $lq__event_badge_obj?.option_ticket_3_override ?? - $lq__event_badge_obj?.option_ticket_3; - // option_ticket_4_override = $lq__event_badge_obj?.option_ticket_4_override ?? $lq__event_badge_obj?.option_ticket_4; - // option_ticket_5_override = $lq__event_badge_obj?.option_ticket_5_override ?? $lq__event_badge_obj?.option_ticket_5; - // option_ticket_6_override = $lq__event_badge_obj?.option_ticket_6_override ?? $lq__event_badge_obj?.option_ticket_6; - // option_ticket_7_override = $lq__event_badge_obj?.option_ticket_7_override ?? $lq__event_badge_obj?.option_ticket_7; - // option_ticket_8_override = $lq__event_badge_obj?.option_ticket_8_override ?? $lq__event_badge_obj?.option_ticket_8; + // These are no longer needed as we use the editable fields directly + // option_other_1_override = $lq__event_badge_obj?.option_other_1_override ?? $lq__event_badge_obj?.option_other_1; + // option_other_2_override = $lq__event_badge_obj?.option_other_2_override ?? $lq__event_badge_obj?.option_other_2; + // option_ticket_1_override = $lq__event_badge_obj?.option_ticket_1_override ?? $lq__event_badge_obj?.option_ticket_1; + // option_ticket_2_override = $lq__event_badge_obj?.option_ticket_2_override ?? $lq__event_badge_obj?.option_ticket_2; + // option_ticket_3_override = $lq__event_badge_obj?.option_ticket_3_override ?? $lq__event_badge_obj?.option_ticket_3; return results; }) @@ -411,6 +334,90 @@ console.error(error); } } + + async function handle_save_changes() { + if (!lq__event_badge_obj?.event_badge_id_random) { + console.error('Cannot save changes: event_badge_id_random is missing.'); + return; + } + + update_status = 'loading'; + update_complete = false; + + const data_to_update: key_val = {}; + + // Only include fields that have actually changed + if (editable_full_name_override !== (lq__event_badge_obj.full_name_override ?? lq__event_badge_obj.full_name)) { + data_to_update.full_name_override = editable_full_name_override; + } + if (editable_professional_title_override !== (lq__event_badge_obj.professional_title_override ?? lq__event_badge_obj.professional_title)) { + data_to_update.professional_title_override = editable_professional_title_override; + } + if (editable_affiliations_override !== (lq__event_badge_obj.affiliations_override ?? lq__event_badge_obj.affiliations)) { + data_to_update.affiliations_override = editable_affiliations_override; + } + if (editable_location_override !== (lq__event_badge_obj.location_override ?? lq__event_badge_obj.location)) { + data_to_update.location_override = editable_location_override; + } + if (editable_allow_tracking !== lq__event_badge_obj.allow_tracking) { + data_to_update.allow_tracking = editable_allow_tracking; + } + if (editable_email !== lq__event_badge_obj.email) { + data_to_update.email = editable_email; + } + if (editable_badge_type_code !== lq__event_badge_obj.badge_type_code) { + data_to_update.badge_type_code = editable_badge_type_code; + } + + if (Object.keys(data_to_update).length === 0) { + console.log('No changes to save.'); + update_status = 'done'; + update_complete = true; + if (!is_review_mode) { + edit_mode_active = false; + $ae_loc.edit_mode = false; + } + return; + } + + try { + await events_func.update_ae_obj__event_badge({ + api_cfg: $ae_api, + event_badge_id: lq__event_badge_obj.event_badge_id_random, + data_kv: data_to_update, + log_lvl: log_lvl + }); + update_status = 'done'; + update_complete = true; + if (!is_review_mode) { + edit_mode_active = false; + $ae_loc.edit_mode = false; + } + // Optionally, refresh the lq__event_badge_obj if needed, though Dexie might handle it + } catch (error) { + console.error('Error saving changes:', error); + update_status = 'error'; + update_complete = true; + } + } + + function handle_cancel_changes() { + if (lq__event_badge_obj) { + editable_full_name_override = lq__event_badge_obj.full_name_override ?? lq__event_badge_obj.full_name; + editable_professional_title_override = lq__event_badge_obj.professional_title_override ?? lq__event_badge_obj.professional_title; + editable_affiliations_override = lq__event_badge_obj.affiliations_override ?? lq__event_badge_obj.affiliations; + editable_location_override = lq__event_badge_obj.location_override ?? lq__event_badge_obj.location; + editable_allow_tracking = lq__event_badge_obj.allow_tracking ?? null; + editable_email = lq__event_badge_obj.email ?? null; + editable_badge_type_code = lq__event_badge_obj.badge_type_code ?? null; + } + if (!is_review_mode) { + edit_mode_active = false; + $ae_loc.edit_mode = false; + } + update_status = 'idle'; + update_complete = true; + } - - - - {#if full_name_override} - {@html full_name_override.trim()} - {:else} - -- no name -- - {/if} - - - + {#if edit_mode_active} + + {:else} + + {#if editable_full_name_override} + {@html editable_full_name_override.trim()} + {:else} + -- no name -- + {/if} + + {/if} - {#if professional_title_override} + {#if editable_professional_title_override || edit_mode_active}
- {@html professional_title_override} + {#if edit_mode_active} + + {:else} + {@html editable_professional_title_override} + {/if}
{/if} - - - - - {#if affiliations_override || location_override} + {#if editable_affiliations_override || editable_location_override || edit_mode_active || editable_email || edit_mode_active || editable_allow_tracking !== null || edit_mode_active}
- {#if affiliations_override} + {#if editable_affiliations_override || edit_mode_active}
- {@html affiliations_override} + {#if edit_mode_active} + + {:else} + {@html editable_affiliations_override} + {/if}
{/if} - {#if location_override} + {#if editable_location_override || edit_mode_active}
- {@html location_override} + {#if edit_mode_active} + + {:else} + {@html editable_location_override} + {/if} +
+ {/if} + + {#if editable_email || edit_mode_active} + + {/if} + + {#if editable_allow_tracking !== null || edit_mode_active} +
+ {#if edit_mode_active} + + {:else} + Allow Tracking: {editable_allow_tracking ? 'Yes' : 'No'} + {/if}
{/if}
{/if} - {#if ['front_bool', 'front_back_bool'].includes(option_ticket_1_display_opt) || ['front_bool', 'front_back_bool'].includes(option_ticket_2_display_opt) || ['front_bool', 'front_back_bool'].includes(option_ticket_3_display_opt) || $lq__event_badge_template_obj.show_qr_front} + {#if ['front_bool', 'front_back_bool'].includes(option_ticket_1_display_opt) || ['front_bool', 'front_back_bool'].includes(option_ticket_2_display_opt) || ['front_bool', 'front_back_bool'].includes(option_ticket_3_display_opt) || $lq__event_badge_template_obj.show_qr_front || edit_mode_active}
- {#if option_ticket_1_override}{/if} @@ -678,7 +739,6 @@ onkeypress={() => { {#if option_ticket_2_override} - {/if} {#if option_ticket_3_override} @@ -704,7 +764,7 @@ onkeypress={() => { + - + {#if event_badge_obj.print_count < 1 || trusted_access} + + + {#if event_badge_obj.hide} + + {:else} + + {/if} + {#if event_badge_obj.print_count >= 1} + + + + {event_badge_obj.print_count}× {/if} + + + {#if event_badge_obj.full_name_override} + {event_badge_obj.full_name_override} + {:else if event_badge_obj.full_name} + {event_badge_obj.full_name} + {:else if event_badge_obj.given_name} + {event_badge_obj.given_name} {event_badge_obj.family_name} + {:else} + -- no name -- + {/if} + + + {:else} + + + {#if event_badge_obj.hide} + + {:else} + + {/if} + {#if event_badge_obj.print_count >= 1} + + + + {event_badge_obj.print_count}× {/if} + + + + {#if event_badge_obj.full_name_override} + {event_badge_obj.full_name_override} + {:else if event_badge_obj.full_name} + {event_badge_obj.full_name} + {:else if event_badge_obj.given_name} + {event_badge_obj.given_name} {event_badge_obj.family_name} + {:else} + -- no name -- + {/if} + + + {/if} + + {#if show_sensitive_fields} + - + + {#if trusted_access} - {event_badge_obj.print_count}× + {event_badge_obj.email} + {:else} + {event_badge_obj.email + ? event_badge_obj.email.replace(/^(.{3}).*@/, '$1...@') + : ''} {/if} - {/if} - + + {/if} + {#if !hide_affiliations} + - + {event_badge_obj?.affiliations ?? '-- no affiliations --'} + {/if} + {#if !hide_location} + - + {event_badge_obj?.location ?? '-- no location --'} + {/if} + {#if !hide_badge_type} + - + {event_badge_obj?.badge_type} + {/if} - - {#if event_badge_obj.full_name_override} - {event_badge_obj.full_name_override} - {:else if event_badge_obj.full_name} - {event_badge_obj.full_name} - {:else if event_badge_obj.given_name} - {event_badge_obj.given_name} {event_badge_obj.family_name} - {:else} - -- no name -- - {/if} - - - - {#if show_sensitive_fields} - - - - - - - {event_badge_obj.email - ? event_badge_obj.email.replace(/^(.{3}).*@/, '$1...@') - : ''} - - {/if} - {#if !hide_affiliations} - - - {event_badge_obj?.affiliations ?? '-- no affiliations --'} - {/if} - {#if !hide_location} - - - {event_badge_obj?.location ?? '-- no location --'} - {/if} - {#if !hide_badge_type} - - - {event_badge_obj?.badge_type} - {/if} - + {#if trusted_access} + Review + {/if} + + {/if} {/each} diff --git a/src/routes/events/[event_id]/(badges)/badges/print_list/+page.svelte b/src/routes/events/[event_id]/(badges)/badges/print_list/+page.svelte new file mode 100644 index 00000000..502fb99f --- /dev/null +++ b/src/routes/events/[event_id]/(badges)/badges/print_list/+page.svelte @@ -0,0 +1,102 @@ + + + + Bulk Print Badges for Event {event_id} + + + +
+

Bulk Print Badges

+ + + + {#await lq__filtered_badges} +

Loading badges for printing...

+ {:then badges_to_print} + {#if badges_to_print.length > 0} +
+ {#each badges_to_print as badge_obj (badge_obj.event_badge_id_random)} +
+ +
+ {/each} +
+ {:else} +

No badges found matching your criteria for printing.

+ {/if} + {:catch error} +

Error loading badges: {error.message}

+ {/await} +
diff --git a/src/routes/events/[event_id]/(badges)/templates/+page.svelte b/src/routes/events/[event_id]/(badges)/templates/+page.svelte new file mode 100644 index 00000000..feab6809 --- /dev/null +++ b/src/routes/events/[event_id]/(badges)/templates/+page.svelte @@ -0,0 +1,136 @@ + + + + Badge Templates - Event {event_id} + + +
+

Badge Templates

+ +
+ +
+ + {#await lq__badge_templates} +

Loading badge templates...

+ {:then templates} + {#if templates.length > 0} +
+
    + {#each templates as template (template.event_badge_template_id_random)} +
  • + {template.name} +
    + + +
    +
  • + {/each} +
+
+ {:else} +

No badge templates found for this event. Click "Add New Template" to create one.

+ {/if} + {:catch error} +

Error loading templates: {error.message}

+ {/await} +
+ +{#if show_create_template_modal} + +
+ +
+
+{/if} + +{#if show_edit_template_modal} + +
+ +
+
+{/if} diff --git a/src/routes/events/[event_id]/(badges)/templates/ae_comp__badge_template_form.svelte b/src/routes/events/[event_id]/(badges)/templates/ae_comp__badge_template_form.svelte new file mode 100644 index 00000000..02139456 --- /dev/null +++ b/src/routes/events/[event_id]/(badges)/templates/ae_comp__badge_template_form.svelte @@ -0,0 +1,204 @@ + + +
+

{template_id ? 'Edit' : 'Create New'} Badge Template

+ + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+ +{#if submit_status === 'success'} +

Template saved successfully!

+{:else if submit_status === 'error'} +

Error saving template. Please try again.

+{/if} diff --git a/src/routes/events/[event_id]/(launcher)/launcher/+layout.svelte b/src/routes/events/[event_id]/(launcher)/launcher/+layout.svelte index 94d6c1eb..ac8b4b48 100644 --- a/src/routes/events/[event_id]/(launcher)/launcher/+layout.svelte +++ b/src/routes/events/[event_id]/(launcher)/launcher/+layout.svelte @@ -1331,7 +1331,7 @@ bodyClass="p-0 space-y-0 overflow-y-auto flex flex-col gap-1 items-center justify-center" headerClass={`fixed top-0 right-0 left-0 p-1 md:p-2 flex flex-row items-center ${$events_loc.launcher.controller == 'remote' ? 'hidden' : ''} bg-white dark:bg-gray-800 opacity-50 ${$events_loc.launcher.hide__modal_header_title ? 'justify-center' : 'justify-between'}`} footerClass="text-center hidden" - onclose={async () => { + on:close={async () => { $events_sess.launcher.modal__open_event_file_id = null; if ( $events_loc.launcher.controller == 'local_push' && diff --git a/src/routes/events_badges/README.md b/src/routes/events_badges/README.md index 6f24eb32..bb76b929 100644 --- a/src/routes/events_badges/README.md +++ b/src/routes/events_badges/README.md @@ -1,4 +1,4 @@ -# Events - Badges Module +# Events - Badges Module (version 2) This document describes the **Events - Badges** module, which is a sub-module of the Events module. It provides functionality for finding, reviewing, and printing badges for event attendees. diff --git a/src/routes/events_badges/old_badges_v1/0_event_badge_main.svelte b/src/routes/events_badges/old_badges_v1/0_event_badge_main.svelte new file mode 100644 index 00000000..9428232a --- /dev/null +++ b/src/routes/events_badges/old_badges_v1/0_event_badge_main.svelte @@ -0,0 +1,260 @@ + + + +
+

Badges

+ + {#if $client.trusted_access || $ae_com.trusted_access } +
+ {#if $ae_events.badges.enable_add_badge_btn && ($client.trusted_access || $ae_com.trusted_access) } + + {/if} + {#if $ae_events.badges.enable_upload_badge_li_btn && ($client.administrator_access || $ae_com.administrator_access) } + + {/if} +
+ {/if} + + {#if $ae_events.badges.enable_mass_print && $client.administrator_access } +
+ + + + + +
+ {/if} + + +
+ + +{#if show_add_edit_event_badge_obj_form} + {show_add_edit_event_badge_obj_form = false;} } + > + + Add or Edit Event Badge for Attendee + + + + + + + + + +
Loaded: {new Date()}
+
+
+{/if} + + +{#if show_event_badge_list_upload_form} + {show_event_badge_list_upload_form=false;} } + > + Badge List File Upload + + + + + + + +{/if} + + + diff --git a/src/routes/events_badges/old_badges_v1/0_event_badge_review_search_main.svelte b/src/routes/events_badges/old_badges_v1/0_event_badge_review_search_main.svelte new file mode 100644 index 00000000..b1d990a0 --- /dev/null +++ b/src/routes/events_badges/old_badges_v1/0_event_badge_review_search_main.svelte @@ -0,0 +1,282 @@ + + + +
+

Review and Update Badge

+ + + +
+ + +
e.key === 'Escape' && handle_cancel_form} class="search_form"> + + +
+ Attendee Search + +
+ +
+ +
+ +
+ +
+
    +
  1. Start typing.
  2. +
  3. Results will appear as you type.
  4. +
  5. Click your name to send an email with a link to review your badge.
  6. +
+
+ +
+
+
+ +
+ {#if (Array.isArray(event_badge_obj_li) && event_badge_obj_li.length <= max_results)} + + + + + + + + + + + + {#each event_badge_obj_li.sort(ae.util.dynamic_sort_multiple('print_count ASC', 'given_name', 'family_name', 'created_on DESC', 'updated_on DESC')) as event_badge_obj, index} + + + + + + + {/each} + +
Email Badge Review URLDetails
+ + +
+ + + + + + {#if event_badge_obj.affiliations && event_badge_obj.affiliations.length} + {event_badge_obj.affiliations} + {:else if event_badge_obj.location} + {event_badge_obj.location} + {:else if event_badge_obj.city && event_badge_obj.state_province} + {event_badge_obj.city}, {event_badge_obj.state_province} + {:else if event_badge_obj.city} + {event_badge_obj.city} + {:else if event_badge_obj.state_province} + {event_badge_obj.state_province} + {:else} + + {/if} + + + + + + {event_badge_obj.badge_type} + + + +
+ +
+ {:else if (Array.isArray(event_badge_obj_li) && event_badge_obj_li.length > max_results)} +
Too many results (max {max_results}). Please narrow down your search.
+ {:else} + {#if search_query_str && search_query_str.length > 0} +
No results.
+ {/if} + {/if} + {#await event_badge_obj_li_get_promise} + searching... + {:then} + {#if event_badge_obj_li_get_promise} + + {:else} + + {/if} + {/await} +
+ +
+ + + + + + diff --git a/src/routes/events_badges/old_badges_v1/0_event_badge_template_list_main.svelte b/src/routes/events_badges/old_badges_v1/0_event_badge_template_list_main.svelte new file mode 100644 index 00000000..55f1fb59 --- /dev/null +++ b/src/routes/events_badges/old_badges_v1/0_event_badge_template_list_main.svelte @@ -0,0 +1,457 @@ + + + +
+ +

Manage Event Badge Templates

+ + + {#await event_badge_template_obj_li_get_promise} + Getting list... + {:then result} + {#if $slct_event_badge_template_obj_li} +

Badge Template(s) for Event

+ {#each $slct_event_badge_template_obj_li as event_badge_template_obj, index} + {@const obj_template = ae.input_template.event_badge_template} + +
+ +

{event_badge_template_obj.name}

+ +
+ + + {obj_template.name.label}: + + {#if event_badge_template_obj.name} +
{event_badge_template_obj.name}
+ {:else} + -- not set -- + {/if} +
+
+ +
+ + + {obj_template.logo_path.label}: + + {#if event_badge_template_obj.logo_path} +
{event_badge_template_obj.logo_path}
+ {:else} + -- not set -- + {/if} +
+
+ +
+ + + {obj_template.header_path.label}: + + {#if event_badge_template_obj.header_path} +
{event_badge_template_obj.header_path}
+ {:else} + -- not set -- + {/if} +
+
+ +
+ + + {obj_template.secondary_header_path.label}: + + {#if event_badge_template_obj.secondary_header_path} +
{event_badge_template_obj.secondary_header_path}
+ {:else} + -- not set -- + {/if} +
+
+ +
+ + + {obj_template.layout.label}: + + {#if event_badge_template_obj.layout} +
{event_badge_template_obj.layout}
+ {:else} + -- not set -- + {/if} +
+
+ +
+ + + {obj_template.style_href.label}: + + {#if event_badge_template_obj.style_href} +
{event_badge_template_obj.style_href}
+ {:else} + -- not set -- + {/if} +
+
+ +
+ + + {obj_template.badge_type_list.label}: + + {#if event_badge_template_obj.badge_type_list} +
{event_badge_template_obj.badge_type_list}
+ {:else} + -- not set -- + {/if} +
+
+ + +
+ + + {obj_template.wireless_ssid.label}: + + {#if event_badge_template_obj.wireless_ssid} +
{event_badge_template_obj.wireless_ssid}
+ {:else} + -- not set -- + {/if} +
+
+ +
+ + + {obj_template.wireless_password.label}: + + {#if event_badge_template_obj.wireless_password} +
{event_badge_template_obj.wireless_password}
+ {:else} + -- not set -- + {/if} +
+
+ +
+ + + {obj_template.show_qr_front.label}: + + {#if event_badge_template_obj.show_qr_front} +
{event_badge_template_obj.show_qr_front}
+ {:else} + -- not set -- + {/if} +
+
+ +
+ + + {obj_template.show_qr_back.label}: + + {#if event_badge_template_obj.show_qr_back} +
{event_badge_template_obj.show_qr_back}
+ {:else} + -- not set -- + {/if} +
+
+ +
+ {/each} + {/if} + {/await} + +
+ + +{#if slct_obj_prop} + {slct_obj_prop=null;} } + > + + Edit Property + + + + + + + +{/if} + + + \ No newline at end of file diff --git a/src/routes/events_badges/old_badges_v1/20_event_badge_details.svelte b/src/routes/events_badges/old_badges_v1/20_event_badge_details.svelte new file mode 100644 index 00000000..8e9c3205 --- /dev/null +++ b/src/routes/events_badges/old_badges_v1/20_event_badge_details.svelte @@ -0,0 +1,155 @@ + + + + +{#if event_badge_qr_get_promise && event_badge_id_qr_get_promise} +
+ +
+ {full_name} + {email} + {full_address} +
+ +
+
{event_badge_obj.given_name}'s QR Code:
+ missing person information QR code +
+ +
+
Badge Lookup QR Code for {event_badge_obj.given_name}:
+ missing QR code +
+ +
+{/if} + + + diff --git a/src/routes/events_badges/old_badges_v1/20_event_badge_form.svelte b/src/routes/events_badges/old_badges_v1/20_event_badge_form.svelte new file mode 100644 index 00000000..154a6256 --- /dev/null +++ b/src/routes/events_badges/old_badges_v1/20_event_badge_form.svelte @@ -0,0 +1,543 @@ + + + +
+ +{#if $ae_events.badges.show_add_badge_help} +
+ + +

Help

+ + {#if $ae_events.badges.ds.event_badge_add_help_staff} + {@html $ae_events.badges.ds.event_badge_add_help_staff} + {:else} +

Add Badge

+
    +
  1. Be sure the correct template is selected. The default is usually what you want.
  2. +
  3. Only the given/first name and badge type are required.
  4. +
  5. Ignore the external ID fields unless asked to use them.
  6. +
  7. Press the "Create Badge" button when ready.
  8. +
+ +

Viewing New Badge

+
    +
  • You will be able to make changes after the badge has been created.
  • +
  • When you press the "Create Badge" button you will be asked to confirm before it is created.
  • +
  • When you press the "Create Badge" button and the badge has been created, you will be asked if you want to view the badge or stay on this badge creation form.
  • +
+ {/if} +
+ +{/if} + + +
e.key === 'Escape' && handle_cancel_form} class="flex_row flex_gap_lg"> + +
+ {#if use_badge_template_obj_list} + + {/if} +
+ + + + + + +
+ IDs + +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ + +
+ Person's Name Parts + +
+ + +
+ + +
+ + +
+ +
+ + +
+ +
+ + +
+ + + + + + + +
+ +
+ Affiliations and Contact + +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ +
+ Badge Options + +
+
+ + {#if use_badge_type_code_list} + + {/if} +
+ +
+
    + {#each use_badge_ticket_list as ticket_option } +
  • + +
  • + {/each} +
+
+ +
+ + + + + + + +
+ +
+ +
+ +
+
+ + + diff --git a/src/routes/events_badges/old_badges_v1/20_event_badge_review_badge.svelte b/src/routes/events_badges/old_badges_v1/20_event_badge_review_badge.svelte new file mode 100644 index 00000000..9285c3f3 --- /dev/null +++ b/src/routes/events_badges/old_badges_v1/20_event_badge_review_badge.svelte @@ -0,0 +1,792 @@ + + + + + {#if event_badge_obj_load_promise} + + {/if} + + + +
+ {#await initial_loading_promise} +
+

Loading badge data...

+
+ {:then} +
+

Review + {#if $slct.event_badge_obj.given_name} + + {@html $slct.event_badge_obj.given_name.trim()} + {@html $slct.event_badge_obj.family_name.trim()}'s + + {:else} + -- no name -- + {/if} + Badge +

+
+ {/await} + + {#if event_badge_obj_load_promise} + + +
+ +
+
+ {$slct.event_badge_obj.given_name}'s QR Code +
+ {#await event_badge_obj_id_qr_img_src_promise} + Generating... + {:then result} + {#if event_badge_obj_id_qr_img_src} + missing QR code + {/if} + {/await} +
+ + + +
+ Badge Type: + + + + + {#if $slct.event_badge_obj.badge_type} + {$slct.event_badge_obj.badge_type.trim()} + {:else} + -- not set -- + {/if} + + + + +
+ +
+ Display Name: + + + + + {#if full_name_override} + {@html full_name_override.trim()} + {:else} + -- no name -- + {/if} + + + + + + + {#if edit_full_name_override} + + + + {:else} + + {/if} + + {#if $slct.event_badge_obj.full_name_override} + + {/if} + +
+ +
+ Degrees/Credentials: + + {#if professional_title_override} + {@html professional_title_override} + {:else} + -- not set -- + {/if} + + + + {#if edit_professional_title_override} + + + + {:else} + + {/if} + + {#if $slct.event_badge_obj.professional_title_override} + + {/if} + +
+ +
+ Affiliations: + + {#if affiliations_override} + {@html affiliations_override} + {:else} + -- not set -- + {/if} + + + + {#if edit_affiliations_override} + + + + {:else} + + {/if} + + {#if $slct.event_badge_obj.affiliations_override} + + {/if} + +
+ +
+ Location: + + {#if location_override} + {@html location_override} + {:else} + -- not set -- + {/if} + + + + {#if edit_location_override} + + + + {:else} + + {/if} + + {#if $slct.event_badge_obj.location_override} + + {/if} + +
+ + + {#if $slct.event_badge_obj.ticket_1_code || $slct.event_badge_obj.ticket_2_code || $slct.event_badge_obj.ticket_3_code} +
+ Access Notes: +
    + {#if $slct.event_badge_obj.ticket_1_code} +
  • {@html $slct.event_badge_obj.event_badge_template.ticket_1_text ?? '-- not set --'}
  • + {/if} + {#if $slct.event_badge_obj.ticket_2_code} +
  • {@html $slct.event_badge_obj.event_badge_template.ticket_2_text ?? '-- not set --'}
  • + {/if} + {#if $slct.event_badge_obj.ticket_3_code} +
  • {@html $slct.event_badge_obj.event_badge_template.ticket_3_tex ?? '-- not set --'}
  • + {/if} +
+
+ {/if} + +
+ + +
+ +
+

Lead Retrieval

+
+

If you attend a session, program or exhibit booth hosted by an exhibitor and/or industry supporter, you understand and agree that when you present your badge for scanning or when you provide personal data, that information will go to a non-ISHLT entity and ISHLT takes no responsibility for how that company uses your personal information. Providing your information to them is optional and you should review their privacy policies to address your particular needs and concerns about how they will treat your personal information. Scanned badge information will include first and last names, company/institution, and email address.

+ + {#if allow_tracking} + +

This is currently set to allowed. To opt-out press the "I Do Not Agree" button below.

+

By allowing this QR code to be scanned by an exhibitor and/or industry supporter, you understand and agree that they may use your personal information.

+ + + + {:else} +

This is currently set to not allowed. To opt-in press the "I Agree" button below.

+

If this QR code is scanned by an exhibitor and/or industry supporter, they will not have access to your personal information.

+ + + + + {/if} +
+
+ +
+ {#if $slct.event_badge_obj.event_badge_template.wireless_ssid} +
WiFi:
+
+
Signal Name: + {$slct.event_badge_obj.event_badge_template.wireless_ssid} +
+
Access Code: + {$slct.event_badge_obj.event_badge_template.wireless_password} +
+
+ {/if} +
+ +
+ + {/if} + + +
+ + + +{#if show_allow_tracking} + {show_allow_tracking = false;} } + > + + Badge Scanning and Lead Retrieval + + + +
+ +

If you attend a session, program or exhibit booth hosted by an exhibitor and/or industry supporter, you understand and agree that when you present your badge for scanning or when you provide personal data, that information will go to a non-ISHLT entity and ISHLT takes no responsibility for how that company uses your personal information. Providing your information to them is optional and you should review their privacy policies to address your particular needs and concerns about how they will treat your personal information. Scanned badge information will include first and last names, company/institution, and email address.

+ + {#if allow_tracking} +

This is currently set to allowed. To opt-out press the "I Do Not Agree" button below.

+

By allowing this QR code to be scanned by an exhibitor and/or industry supporter, you understand and agree that they may use your personal information.

+ + + {:else} +

This is currently set to not allowed. To opt-in press the "I Agree" button below.

+ +

To opt-out, press the "I Do Not Agree" button below or the close button. If your badge is scanned, access to your personal information will not be provided.

+ + + + + {/if} + +
+ + +
+ + +
+{/if} + + + diff --git a/src/routes/events_badges/old_badges_v1/20_event_badge_search_main.svelte b/src/routes/events_badges/old_badges_v1/20_event_badge_search_main.svelte new file mode 100644 index 00000000..db9d0611 --- /dev/null +++ b/src/routes/events_badges/old_badges_v1/20_event_badge_search_main.svelte @@ -0,0 +1,652 @@ + + + +
+
+ +
e.key === 'Escape' && handle_cancel_form} class="search_form"> + + +
+ Attendee Search + +
+ + {#if $client.trusted_access || $ae_com.trusted_access && badge_type_code_li} +
+ + + +
+ {/if} + +
+ +
+ +
+ +
+
    +
  1. Start typing.
  2. + +
  3. Results will appear as you type.
  4. + +
  5. Click your name to review your badge and print.
  6. +
+ +
    +
  • You are only allowed to print your badge once. Please go to the Query desk for reprints or questions.
  • +
+
+ +
+
+ + {#if $ae_events.badges.show_search_qr_scanner} + +
+ + + + +
+ + +
+
+ {:else} + {#if ($client.administrator_access || $ae_com.administrator_access)} +
+ +
+ {/if} + {/if} + +
+ +
+ {#if (Array.isArray(event_badge_obj_li) && event_badge_obj_li.length <= $ae_events.badges.search_max_results)} + + + + {#if $client.trusted_access || $ae_com.trusted_access} + + {/if} + + + + + + + + {#each event_badge_obj_li.sort(ae.util.dynamic_sort_multiple('print_count ASC', 'given_name', 'family_name', 'created_on DESC', 'updated_on DESC')) as event_badge_obj, index} + = 1 && !($client.administrator_access || $ae_com.administrator_access)} class:d_none={event_badge_obj.hide && !($client.administrator_access || $ae_com.administrator_access)}> + + {#if $client.authenticated_access || $ae_com.authenticated_access} + + {/if} + + + + + + + + + + {/each} + +
ReviewView and Print BadgeEmailAffiliations or LocationType
+ + + + + {#if $client.administrator_access || $ae_com.administrator_access} + Review + {/if} + + + + {#if event_badge_obj.print_count < 1 || $client.trusted_access || $ae_com.trusted_access} + + + + + {#if event_badge_obj.full_name_override} + {event_badge_obj.full_name_override} + {:else if event_badge_obj.full_name} + {event_badge_obj.full_name} + {:else if event_badge_obj.given_name && event_badge_obj.family_name} + {event_badge_obj.given_name} {event_badge_obj.family_name} + {:else if event_badge_obj.given_name} + {event_badge_obj.given_name} + {:else} + -- no name -- + {/if} + + + {#if event_badge_obj.print_count >= 1} + {event_badge_obj.print_count}x + {/if} + + {:else} + + {/if} + + {#if event_badge_obj.print_count < 1} + + {#if event_badge_obj.email && event_badge_obj.email.length} + {#if $client.trusted_access || $ae_com.trusted_access} + {event_badge_obj.email} + {:else} + {event_badge_obj.email.substring(0,1)}{'*'.repeat(event_badge_obj.email.indexOf('@')-2)}{event_badge_obj.email.substring(event_badge_obj.email.indexOf('@')-1, event_badge_obj.email.indexOf('@'))}{event_badge_obj.email.substring(event_badge_obj.email.indexOf('@'))} + {/if} + {:else} + -- no email address -- + {/if} + + {:else} + {#if event_badge_obj.email && event_badge_obj.email.length} + {#if $client.trusted_access || $ae_com.trusted_access} + {event_badge_obj.email} + {:else} + {event_badge_obj.email.substring(0,1)}{'*'.repeat(event_badge_obj.email.indexOf('@')-2)}{event_badge_obj.email.substring(event_badge_obj.email.indexOf('@')-1, event_badge_obj.email.indexOf('@'))}{event_badge_obj.email.substring(event_badge_obj.email.indexOf('@'))} + {/if} + {:else} + -- no email address -- + {/if} + {/if} + + {#if event_badge_obj.print_count < 1} + + {#if event_badge_obj.affiliations && event_badge_obj.affiliations.length} + {event_badge_obj.affiliations} + {:else if event_badge_obj.location} + {event_badge_obj.location} + {:else if event_badge_obj.city && event_badge_obj.state_province} + {event_badge_obj.city}, {event_badge_obj.state_province} + {:else if event_badge_obj.city} + {event_badge_obj.city} + {:else if event_badge_obj.state_province} + {event_badge_obj.state_province} + {:else} + -- none -- + {/if} + + {:else} + {#if event_badge_obj.affiliations && event_badge_obj.affiliations.length} + {event_badge_obj.affiliations} + {:else if event_badge_obj.location} + {event_badge_obj.location} + {:else if event_badge_obj.city && event_badge_obj.state_province} + {event_badge_obj.city}, {event_badge_obj.state_province} + {:else if event_badge_obj.city} + {event_badge_obj.city} + {:else if event_badge_obj.state_province} + {event_badge_obj.state_province} + {:else} + -- none -- + {/if} + {/if} + + {event_badge_obj.badge_type} +
+ {:else if (Array.isArray(event_badge_obj_li) && event_badge_obj_li.length > $ae_events.badges.search_max_results)} +
Too many results. Max {$ae_events.badges.search_max_results} attendees. Please narrow down your search.
+ {:else} + {#if search_query_str && search_query_str.length > 0} +
No results.
+ {/if} + {/if} + {#await event_badge_obj_li_get_promise} + searching... + {:then} + {#if event_badge_obj_li_get_promise} + + {:else} + + {/if} + {/await} +
+ +
+ + + +{#if show_event_badge_obj_details} + {show_event_badge_obj_details = false;} } + > + + Attendee Badge QR Code + + + + + + + +
+ {full_name} + {email} + +
+ +
+ +
+
Badge Lookup QR Code for {$slct.event_badge_obj.given_name}:
+ missing QR code +
+ +
+
+
+ +
+
{$slct.event_badge_obj.given_name}'s QR Code MeCard:
+ missing person information QR code +
+
+ + +
Loaded: {new Date()}
+
+
+{/if} + + + diff --git a/src/routes/events_badges/old_badges_v1/20_event_badge_upload_form.svelte b/src/routes/events_badges/old_badges_v1/20_event_badge_upload_form.svelte new file mode 100644 index 00000000..7c390a96 --- /dev/null +++ b/src/routes/events_badges/old_badges_v1/20_event_badge_upload_form.svelte @@ -0,0 +1,213 @@ + + + +
+ +
e.key === 'Escape' && handle_cancel_form} class="event_badge_list_file_upload"> + + + + + + + + + +
+ Browse or Drag and Drop File Here: + +
+ + +
+ {#if $slct.event_obj.event_cfg.some_event_badge_option } + {@html $slct.event_obj.event_cfg.some_event_badge_option} + {:else} + Browse or drag and drop a CSV file to be uploaded. + {/if} +
+
+ + {#await file_upload_post_promise} +
Uploading files...
+ {:then} + {#if file_upload_post_promise} + + {:else} + + {/if} + {/await} +
+ + + + + + + {#await file_upload_post_promise} +
Uploading file...
+ {:then} + {#if file_upload_post_promise} +
Finished uploading files
+ {:else} + + {/if} + {/await} +
+ + +
+ +
+ + + diff --git a/src/routes/events_badges/old_badges_v1/20_event_badge_view_badge.svelte b/src/routes/events_badges/old_badges_v1/20_event_badge_view_badge.svelte new file mode 100644 index 00000000..f01b82ee --- /dev/null +++ b/src/routes/events_badges/old_badges_v1/20_event_badge_view_badge.svelte @@ -0,0 +1,1263 @@ + + + + + {#if event_badge_obj_load_promise} + + {/if} + + + +{#await initial_loading_promise} + Loading badge data... +{:then} + +{/await} + + +{#if event_badge_obj_load_promise} + +{/if} + + +{#await event_badge_obj_load_promise} + Loading... +{:then} + {#if (event_badge_template_obj.badge_type_list.length && event_badge_id == $slct.event_badge_id && slct_this_badge)} + + {/if} +{/await} + +{#if !mass_print} + +{/if} + + +{#if show_allow_tracking && !mass_print} + {show_allow_tracking = false;} } + > + + Attendee Badge Scanning + + + +

If you attend a session, program or exhibit booth hosted by an exhibitor and/or industry supporter, you understand and agree that when you present your badge for scanning or when you provide personal data, that information will go to a non-ISHLT entity and ISHLT takes no responsibility for how that company uses your personal information. Providing your information to them is optional and you should review their privacy policies to address your particular needs and concerns about how they will treat your personal information. Scanned badge information will include first and last names, company/institution, and email address.

+ + {#if allow_tracking} +

This is currently set to allowed. To opt-out press the "I Do Not Agree" button below.

+

By allowing this QR code to be scanned by an exhibitor and/or industry supporter, you understand and agree that they may use your personal information.

+ + + {:else} +

This is currently set to not allowed. To opt-in press the "I Agree" button below.

+

If this QR code is scanned by an exhibitor and/or industry supporter, they will not have access to your personal information.

+ + + + + {/if} +
+
+{/if} + + +{#if show_print_msg} + {show_print_msg = false;} } + > + + Printing Badge + + + +
+ +

Your badge is being printed.

+

You will automatically be returned to the search page in a few seconds.

+ + + + + +
+
+ + + +
+{/if} + + + + diff --git a/src/routes/events_badges/old_badges_v1/20_event_badge_view_badge_list.svelte b/src/routes/events_badges/old_badges_v1/20_event_badge_view_badge_list.svelte new file mode 100644 index 00000000..dd5e9c86 --- /dev/null +++ b/src/routes/events_badges/old_badges_v1/20_event_badge_view_badge_list.svelte @@ -0,0 +1,168 @@ + + + + + {#if event_badge_obj_li_load_promise} + + {/if} + + + +{#await initial_loading_promise} + Getting badge list... +{:then} + +{/await} + + +{#if event_badge_obj_li_load_promise} +
+ + {#each $slct_event_badge_obj_li as event_badge_obj, index} + + {/each} + +
+ + + +{/if} + + + + + + diff --git a/src/routes/events_badges/old_badges_v1/30_event_badge_menu.svelte b/src/routes/events_badges/old_badges_v1/30_event_badge_menu.svelte new file mode 100644 index 00000000..2597d9f6 --- /dev/null +++ b/src/routes/events_badges/old_badges_v1/30_event_badge_menu.svelte @@ -0,0 +1,710 @@ + + + +{#if event_badge_obj} +
+ {#if mass_print}{event_badge_obj.given_name} {event_badge_obj.family_name}{/if} +
+ + + {#if !mass_print} +
+ +
+ {/if} + +
+ + +
+ + + + {#if $client.trusted_access || $ae_com.trusted_access} + + {/if} + + {#if $client.administrator_access || $ae_com.administrator_access} + + {/if} + +
+ + + +
+ + +
+ + + +
+

Modify Badge

+ + +
+

+ Display Name: + + + + +

+ {#if $client.trusted_access || $ae_com.trusted_access} + + {/if} +
+ +
+

+ + Title/Degrees/Credentials: + + + + +

+ +
+ +
+

+ Affiliations: + + + + +

+ +
+ +
+

+ Location: + + + + +

+ +
+ + {#if $client.trusted_access || $ae_com.trusted_access} + + {/if} + + + + {#if $client.trusted_access || $ae_com.trusted_access} + + +
+
    + {#each use_badge_ticket_list as ticket_option } +
  • + + + + + {ticket_option.name} +
  • + {/each} +
+
+ {/if} + +
+
+{/if} + +{#if show_event_badge_render_image} + {show_event_badge_render_image = false;} } + > + + Rendered Badge Body + + + + +
+
+ +
+
+{/if} + + +