From 07572e0f5c48dc1ca3d845ac2621d207fdb7a889 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Fri, 16 Jan 2026 12:44:30 -0500 Subject: [PATCH] The badge does not yet render and are not fully working on the badge view ID page, but I am saving anyways. It at least works and seems to finally be moving in the right direction. It is partially related to the badge_template records not being saved to the badge_template. --- .../(badges)/badges/[badge_id]/+page.svelte | 6 +- .../[badge_id]/ae_comp__badge_obj_view.svelte | 271 ++++++++++-------- 2 files changed, 155 insertions(+), 122 deletions(-) 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 e3502f87..1881fb6b 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 @@ -128,14 +128,14 @@ - + {#if $lq__event_badge_obj} - + {/if} {:else}

No IDB record found for ID: {event_badge_id}

{/if} 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 6eaf91bd..d315c2f9 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 @@ -96,19 +96,22 @@ // Initialize editable fields when lq__event_badge_obj changes $effect(() => { - if (lq__event_badge_obj) { + if ($lq__event_badge_obj) { + if (log_lvl) { + console.log('Initializing editable fields from lq__event_badge_obj'); + } editable_full_name_override = - lq__event_badge_obj.full_name_override ?? lq__event_badge_obj.full_name; + $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; + $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; + $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; + $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; + 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; @@ -125,7 +128,13 @@ // These variables seem unused or redundant now with editable_ fields // let use_badge_type = $state(null); - // let use_badge_type_code = $state(''); + let use_badge_type_code = $state(''); + let option_ticket_1_override = $state(''); + let option_ticket_2_override = $state(''); + let option_ticket_3_override = $state(''); + let option_other_1_override = $state(''); + let option_other_2_override = $state(''); + let slct_badge_type = ''; @@ -168,98 +177,113 @@ let lq__event_badge_template_obj = $derived( liveQuery(async () => { - if (log_lvl) { - console.log(`*** LiveQuery: lq__event_obj *** event_id=${$events_slct.event_id}`); - } - let results = await db_events.badge_template.get( - $lq__event_badge_obj?.event_badge_template_id - ); + let results = await db_events.badge_template.get($lq__event_badge_obj?.event_badge_id ?? ''); // null or undefined does not reset things like '' does - // 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) { - full_name_class_size = 'text-[.60in]'; - } else { - full_name_class_size = 'text-[.75in]'; - } - - 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) { - professional_title_class_size = 'text-[.35in]'; - } else if (longest_professional_title_override_part >= 7) { - professional_title_class_size = 'text-[.35in]'; - } else { - professional_title_class_size = 'text-[.35in]'; - } - - 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) { - affiliations_class_size = 'text-[.35in]'; - } else if (longest_affiliations_override_part >= 35) { - affiliations_class_size = 'text-[.35in]'; - } else if (longest_affiliations_override_part >= 25) { - affiliations_class_size = 'text-[.40in]'; - } else if (longest_affiliations_override_part >= 20) { - affiliations_class_size = 'text-[.40in]'; - } else if (longest_affiliations_override_part >= 7) { - affiliations_class_size = 'text-[.40in]'; - } else { - affiliations_class_size = 'text-[.60in]'; - } - if (affiliations_class_size > full_name_class_size) { - affiliations_class_size = full_name_class_size; - } - - 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) { - location_class_size = 'text-[.35in]'; - } else if (longest_location_override_part >= 35) { - location_class_size = 'text-[.35in]'; - } else if (longest_location_override_part >= 25) { - location_class_size = 'text-[.35in]'; - } else if (longest_location_override_part >= 20) { - location_class_size = 'text-[.35in]'; - } else if (longest_location_override_part >= 15) { - location_class_size = 'text-[.35in]'; - } else { - location_class_size = 'text-[.35in]'; - } - if (location_class_size > professional_title_class_size) { - location_class_size = professional_title_class_size; - } else if (professional_title_class_size > location_class_size) { - professional_title_class_size = location_class_size; - } - - // 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; + // Check if results are different than the current session version stored under $events_slct + // if ($events_slct.event_badge_obj && results) { + // if (JSON.stringify($events_slct.event_badge_obj) !== JSON.stringify(results)) { + // $events_slct.event_badge_obj = { ...results }; + // } + // } return results; }) ); + // let lq__event_badge_template_obj: any = $state(null); + + // $effect(() => { + // if ($lq__event_badge_obj?.event_badge_template_id) { + // const sub = liveQuery(() => + // db_events.badge_template.get($lq__event_badge_obj.event_badge_template_id) + // ).subscribe((val) => { + // lq__event_badge_template_obj = val; + // }); + // return () => sub.unsubscribe(); + // } else { + // lq__event_badge_template_obj = null; + // } + // }); + + $effect(() => { + // Re-calculate font sizes based on potentially edited values + // Only run if we have the badge object + if (!$lq__event_badge_obj) return; + + 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 ?? ''; + + let 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) { + full_name_class_size = 'text-[.60in]'; + } else { + full_name_class_size = 'text-[.75in]'; + } + + let 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) { + professional_title_class_size = 'text-[.35in]'; + } else if (longest_professional_title_override_part >= 7) { + professional_title_class_size = 'text-[.35in]'; + } else { + professional_title_class_size = 'text-[.35in]'; + } + + let 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) { + affiliations_class_size = 'text-[.35in]'; + } else if (longest_affiliations_override_part >= 35) { + affiliations_class_size = 'text-[.35in]'; + } else if (longest_affiliations_override_part >= 25) { + affiliations_class_size = 'text-[.40in]'; + } else if (longest_affiliations_override_part >= 20) { + affiliations_class_size = 'text-[.40in]'; + } else if (longest_affiliations_override_part >= 7) { + affiliations_class_size = 'text-[.40in]'; + } else { + affiliations_class_size = 'text-[.60in]'; + } + if (affiliations_class_size > full_name_class_size) { + affiliations_class_size = full_name_class_size; + } + + let 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) { + location_class_size = 'text-[.35in]'; + } else if (longest_location_override_part >= 35) { + location_class_size = 'text-[.35in]'; + } else if (longest_location_override_part >= 25) { + location_class_size = 'text-[.35in]'; + } else if (longest_location_override_part >= 20) { + location_class_size = 'text-[.35in]'; + } else if (longest_location_override_part >= 15) { + location_class_size = 'text-[.35in]'; + } else { + location_class_size = 'text-[.35in]'; + } + if (location_class_size > professional_title_class_size) { + location_class_size = professional_title_class_size; + } else if (professional_title_class_size > location_class_size) { + professional_title_class_size = location_class_size; + } + }); + // *** Functions and Logic function preventDefault(fn: (event: T) => void) { return function (event: T) { @@ -346,7 +370,7 @@ } async function handle_save_changes() { - if (!lq__event_badge_obj?.event_badge_id_random) { + if (!$lq__event_badge_obj?.event_badge_id_random) { console.error('Cannot save changes: event_badge_id_random is missing.'); return; } @@ -359,36 +383,36 @@ // 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) + ($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) + ($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) + ($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) + ($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) { + 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) { + 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) { + if (editable_badge_type_code !== $lq__event_badge_obj.badge_type_code) { data_to_update.badge_type_code = editable_badge_type_code; } @@ -406,7 +430,8 @@ try { await events_func.update_ae_obj__event_badge({ api_cfg: $ae_api, - event_badge_id: lq__event_badge_obj.event_badge_id_random, + event_id: event_id, + event_badge_id: $lq__event_badge_obj.event_badge_id_random, data_kv: data_to_update, log_lvl: log_lvl }); @@ -416,7 +441,7 @@ edit_mode_active = false; $ae_loc.edit_mode = false; } - // Optionally, refresh the lq__event_badge_obj if needed, though Dexie might handle it + // 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'; @@ -425,19 +450,19 @@ } function handle_cancel_changes() { - if (lq__event_badge_obj) { + if ($lq__event_badge_obj) { editable_full_name_override = - lq__event_badge_obj.full_name_override ?? lq__event_badge_obj.full_name; + $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; + $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; + $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; + $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; @@ -787,7 +812,7 @@ onkeypress={() => { {/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 || edit_mode_active} + {#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} - {#if $lq__event_badge_template_obj.show_qr_front} + {#if lq__event_badge_template_obj.show_qr_front} {#await qr_data_url} Generating... {:then result} @@ -876,7 +901,7 @@ onkeypress={() => { {/if}
- {/if} - +
 {
         ">
     {JSON.stringify($lq__event_badge_obj, null, 2)}
 
+ +
+    {JSON.stringify($lq__event_badge_template_obj, null, 2)}
+
\ No newline at end of file