diff --git a/src/lib/ae_events/ae_events__event.ts b/src/lib/ae_events/ae_events__event.ts index 2107a5a1..8320e632 100644 --- a/src/lib/ae_events/ae_events__event.ts +++ b/src/lib/ae_events/ae_events__event.ts @@ -96,6 +96,14 @@ export async function load_ae_obj_id__event({ log_lvl }); } + if (inc_template_li) { + ae_promises.load__event_obj.event_badge_template_obj_li = + await load_ae_obj_li__event_badge_template({ + api_cfg, + event_id, + log_lvl + }); + } } return ae_promises.load__event_obj; diff --git a/src/lib/ae_events/db_events.ts b/src/lib/ae_events/db_events.ts index 5d3481e9..618fb78e 100644 --- a/src/lib/ae_events/db_events.ts +++ b/src/lib/ae_events/db_events.ts @@ -197,6 +197,9 @@ export interface Badge_template { id: string; // id_random: string; + event_badge_template_id?: null | string; + event_badge_template_id_random?: null | string; + event_id: string; event_id_random: string; @@ -824,7 +827,7 @@ export class MySubClassedDexie extends Dexie { enable, hide, priority, sort, group, notes, created_on, updated_on`, badge_template: ` - id, event_id, event_id_random`, + id, id_random, event_badge_template_id, badge_template_id, event_id, event_id_random`, device: ` id, id_random, event_device_id_random, event_device_id, 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 1881fb6b..1cf96ba2 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 @@ -58,6 +58,30 @@ }) ); + let lq__event_badge_template_obj = $derived( + liveQuery(async () => { + let results = await db_events.badge_template.get($lq__event_badge_obj?.event_badge_template_id ?? ''); // null or undefined does not reset things like '' does + + if (log_lvl) { + console.log( + `*** LiveQuery: lq__event_badge_template_obj *** event_badge_template_id=${ + $lq__event_badge_obj?.event_badge_template_id ?? '' + }`, + results + ); + } + + // 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 is_review_mode: boolean = $state(false); // *** Functions and Logic @@ -134,6 +158,7 @@ {event_badge_id} lq__event_badge_obj={lq__event_badge_obj} {is_review_mode} + lq__event_badge_template_obj={lq__event_badge_template_obj} /> {/if} {: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 d315c2f9..18692171 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 @@ -3,6 +3,7 @@ event_id: string; event_badge_id: string; lq__event_badge_obj?: any; + lq__event_badge_template_obj?: any; update_status?: string; update_complete?: boolean; is_review_mode?: boolean; @@ -13,6 +14,7 @@ event_id, event_badge_id, lq__event_badge_obj, + lq__event_badge_template_obj, update_status = $bindable('idle'), update_complete = $bindable(true), is_review_mode = false, @@ -109,7 +111,7 @@ $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_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; @@ -175,35 +177,6 @@ // WARNING: This does not currently take into account the total lengths of the strings, only the longest part when split by spaces. This help with wrapping in the tighter spaces of the badge. - let lq__event_badge_template_obj = $derived( - liveQuery(async () => { - let results = await db_events.badge_template.get($lq__event_badge_obj?.event_badge_id ?? ''); // null or undefined does not reset things like '' does - - // 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 @@ -370,8 +343,8 @@ } 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.'); + if (!$lq__event_badge_obj?.event_badge_id) { + console.error('Cannot save changes: event_badge_id is missing.'); return; } @@ -431,7 +404,7 @@ await events_func.update_ae_obj__event_badge({ api_cfg: $ae_api, event_id: event_id, - event_badge_id: $lq__event_badge_obj.event_badge_id_random, + event_badge_id: $lq__event_badge_obj.event_badge_id, data_kv: data_to_update, log_lvl: log_lvl }); @@ -476,12 +449,12 @@ @@ -506,6 +479,15 @@ onkeypress={() => { max-w-[8.5in] overflow-visible " > + + + {#if $lq__event_badge_obj && $lq__event_badge_template_obj} @@ -849,7 +831,6 @@ onkeypress={() => { class="badge_footer {editable_badge_type_code?.toLowerCase()} justify-self-end - min-h-[.25in] max-h-[.50in] max-w-full m-0 p-0 @@ -907,7 +888,7 @@ onkeypress={() => { Generating... {:then result} {#if initial_loading_promise} - missing QR code + missing QR code {/if} {/await} @@ -917,7 +898,7 @@ onkeypress={() => { Generating... {:then result} {#if initial_loading_promise} - missing QR code + missing QR code {/if} {/await} --> @@ -939,7 +920,7 @@ onkeypress={() => { hide_qr ? (hide_qr = false) : (hide_qr = true); }} /> - + {/if} {/await} {/if} @@ -954,7 +935,6 @@ onkeypress={() => { class="badge_back flex flex-col gap-1 items-center justify-between - min-h-[6.0in] max-h-[6.0in] w-[4in] max-w-fit @@ -979,7 +959,6 @@ onkeypress={() => {
- {$lq__event_badge_obj.event_badge_id_random} + {$lq__event_badge_obj.event_badge_id}
{#await qr_data_url} @@ -1222,7 +1201,7 @@ onkeypress={() => { italic " > - {#if allow_tracking} + {#if $lq__event_badge_obj.allow_tracking}

This was allowed at the time your badge was printed. You may opt-out at anytime. @@ -1413,6 +1392,9 @@ onkeypress={() => { + +

+

Debug Information

     {JSON.stringify($lq__event_badge_template_obj, null, 2)}
-
\ No newline at end of file + +
\ No newline at end of file diff --git a/src/routes/events/[event_id]/+layout.ts b/src/routes/events/[event_id]/+layout.ts index 7fac5193..aeb02720 100644 --- a/src/routes/events/[event_id]/+layout.ts +++ b/src/routes/events/[event_id]/+layout.ts @@ -63,6 +63,7 @@ export async function load({ params, parent, url }) { // ae_acct.slct.event_device_obj_li = load_event_obj.event_device_obj_li; ae_acct.slct.event_location_obj_li = load_event_obj.event_location_obj_li; ae_acct.slct.event_session_obj_li = load_event_obj.event_session_obj_li; + ae_acct.slct.badge_template_obj_li = load_event_obj.event_badge_template_obj_li; } // WARNING: Precaution against shared data between sites and sessions.