From 4141524d8355959fb02e9e86d0caebbbb7d8b712 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Thu, 8 Aug 2024 15:48:49 -0400 Subject: [PATCH] Just saving things... Not making good progress today. --- src/lib/ae_events_stores.ts | 18 +- .../(launcher)/launcher/[slug]/+page.ts | 50 +++- .../launcher/[slug]/+page@(launcher).svelte | 216 ++++++++++++------ .../launcher/[slug]/launcher_menu.svelte | 184 ++++++++------- .../launcher/[slug]/menu_session_list.svelte | 16 +- .../event/[slug]/+page.svelte | 6 +- 6 files changed, 316 insertions(+), 174 deletions(-) diff --git a/src/lib/ae_events_stores.ts b/src/lib/ae_events_stores.ts index 1a9af79f..1a05ec6c 100644 --- a/src/lib/ae_events_stores.ts +++ b/src/lib/ae_events_stores.ts @@ -421,11 +421,25 @@ export let events_slct = writable(events_slct_obj_template); export let events_trigger: any = writable(null); // console.log(`AE Events Stores - Events Trigger:`, events_trigger); +let tmp__events_trig: key_val = { + 'event_id': null, + 'event_id_li': [], + 'event_location_id': null, + 'event_location_id_li': [], + 'event_session_id': null, + 'event_session_id_li': [], + 'event_presentation_id': null, + 'event_presentation_id_li': [], + 'event_presenter_id': null, + 'event_presenter_id_li': [], +}; +// console.log(`AE Stores - Events Trigger:`, events_trig); +export let events_trig: Writable = writable(tmp__events_trig); /* *** BEGIN *** TESTING Initialize trig_resp */ // The idea behind this is for a shared (Svelte app (within Events for now)) trigger and response. In theory this could be used to monitor multiple downloads or have a universal status area. Intended for temporary session storage. // Updated 2024-06-25 -let events_trig_kv_tmp: key_val = {}; +let tmp__events_trig_kv: key_val = {}; // { // 'example-1': // { @@ -440,4 +454,4 @@ let events_trig_kv_tmp: key_val = {}; // 'a-rand-id-6': Promise.resolve('This is a test promise.'), // }, // }; -export let events_trig_kv = writable(events_trig_kv_tmp); \ No newline at end of file +export let events_trig_kv = writable(tmp__events_trig_kv); \ No newline at end of file diff --git a/src/routes/events_pres_mgmt/(launcher)/launcher/[slug]/+page.ts b/src/routes/events_pres_mgmt/(launcher)/launcher/[slug]/+page.ts index 143e4bf8..3f6d7d09 100644 --- a/src/routes/events_pres_mgmt/(launcher)/launcher/[slug]/+page.ts +++ b/src/routes/events_pres_mgmt/(launcher)/launcher/[slug]/+page.ts @@ -31,8 +31,10 @@ export async function load({ params, parent }) { // route }); } + ae_acct.trig = {}; if (ae_acct.slct.event_id !== event_id) { ae_acct.slct.event_id = event_id; + ae_acct.trig.event_id = true; // let load_event_obj = events_func.handle_load_ae_obj_id__event({ // api_cfg: ae_acct.api, @@ -44,26 +46,62 @@ export async function load({ params, parent }) { // route } if (browser) { - let load_event_location_obj_li = events_func.handle_load_ae_obj_li__event_location({ + ae_acct.trig.event_location_obj_li = false; + let load_event_location_obj_li = await events_func.handle_load_ae_obj_li__event_location({ api_cfg: ae_acct.api, event_id: event_id, params: {qry__enabled: 'enabled', qry__limit: 550}, try_cache: true + }) + .finally(() => { + // console.log(`load_event_location_obj_li = `, load_event_location_obj_li); + ae_acct.trig.event_location_obj_li = true; }); - console.log(`load_event_location_obj_li = `, load_event_location_obj_li); - ae_acct.slct.event_location_obj_li = load_event_location_obj_li; + // console.log(`ae_acct.slct.event_location_obj_li = `, ae_acct.slct.event_location_obj_li); - let load_event_session_obj_li = events_func.handle_load_ae_obj_li__event_session({ + let id_li__event_location = []; + + let tmp_li = []; // This is to prevent the array from constantly updating and triggering the liveQuery. + + for (let i = 0; i < load_event_location_obj_li.length; i++) { + let event_location_obj = load_event_location_obj_li[i]; + let event_location_id_random = event_location_obj.event_location_id_random; + tmp_li.push(event_location_id_random); + } + id_li__event_location = tmp_li; + console.log(`id_li__event_location:`, id_li__event_location); + ae_acct.slct.id_li__event_location = id_li__event_location; + } + + if (browser) { + ae_acct.trig.event_session_obj_li = false; + let load_event_session_obj_li = await events_func.handle_load_ae_obj_li__event_session({ api_cfg: ae_acct.api, for_obj_type: 'event', for_obj_id: event_id, params: {qry__enabled: 'enabled', qry__limit: 550}, try_cache: true + }) + .finally(() => { + // console.log(`load_event_session_obj_li = `, load_event_session_obj_li); + ae_acct.trig.event_session_obj_li = true; }); - console.log(`load_event_session_obj_li = `, load_event_session_obj_li); - ae_acct.slct.event_session_obj_li = load_event_session_obj_li; + // console.log(`ae_acct.slct.event_session_obj_li = `, ae_acct.slct.event_session_obj_li); + + let id_li__event_session = []; + + let tmp_li = []; // This is to prevent the array from constantly updating and triggering the liveQuery. + + for (let i = 0; i < load_event_session_obj_li.length; i++) { + let event_session_obj = load_event_session_obj_li[i]; + let event_session_id_random = event_session_obj.event_session_id_random; + tmp_li.push(event_session_id_random); + } + id_li__event_session = tmp_li; + console.log(`id_li__event_session:`, id_li__event_session); + ae_acct.slct.id_li__event_session = id_li__event_session; } // WARNING: Precaution against shared data between sites and sessions. diff --git a/src/routes/events_pres_mgmt/(launcher)/launcher/[slug]/+page@(launcher).svelte b/src/routes/events_pres_mgmt/(launcher)/launcher/[slug]/+page@(launcher).svelte index 831ed8fc..069fe4ef 100644 --- a/src/routes/events_pres_mgmt/(launcher)/launcher/[slug]/+page@(launcher).svelte +++ b/src/routes/events_pres_mgmt/(launcher)/launcher/[slug]/+page@(launcher).svelte @@ -17,7 +17,7 @@ import { liveQuery } from "dexie"; // import { db_core } from "$lib/db_core"; import { db_events } from "$lib/db_events"; import { ae_snip, ae_loc, ae_sess, ae_api, ae_trig, slct, slct_trigger } from '$lib/ae_stores'; -import { events_loc, events_sess, events_slct, events_trigger } from '$lib/ae_events_stores'; +import { events_loc, events_sess, events_slct, events_trigger, events_trig } from '$lib/ae_events_stores'; import { events_func } from '$lib/ae_events_functions'; @@ -52,10 +52,19 @@ let ae_acct = data[$slct.account_id]; console.log(`ae_acct.slct.event_id:`, ae_acct.slct.event_id); $events_slct.event_id = ae_acct.slct.event_id; // $events_slct.event_obj = ae_acct.slct.event_obj; -$events_slct.event_location_obj_li = ae_acct.slct.event_location_obj_li; -$events_slct.event_session_obj_li = ae_acct.slct.event_session_obj_li; +$events_slct.event_location_obj_li = ae_acct.slct.event_location_obj_li ?? ['']; +$events_slct.id_li__event_location = ae_acct.slct.id_li__event_location ?? ['']; +console.log(`$events_slct.event_location_obj_li:`, $events_slct.event_location_obj_li); +$events_slct.event_session_obj_li = ae_acct.slct.event_session_obj_li ?? ['']; +$events_slct.id_li__event_session = ae_acct.slct.id_li__event_session ?? ['']; + +$events_trig = ae_acct.trig; +$events_trig.event_location_li = true; +$events_trig.event_session_li = true; + // $events_trigger = 'event_location_li'; +// Set the local storage values if (!$events_loc.launcher) { $events_loc.launcher = {}; $events_loc.launcher.slct = { @@ -70,19 +79,110 @@ if (!$events_loc.launcher.slct) { event_id: null, event_location_id: null, event_session_id: null, + event_presentation_id: null, + event_presenter_id: null, }; } -$events_loc.launcher.slct.event_id = ae_acct.slct.event_id; +if (ae_acct.slct.event_id) { + $events_loc.launcher.slct.event_id = ae_acct.slct.event_id; +} +if (ae_acct.slct.event_location_id) { + $events_loc.launcher.slct.event_location_id = ae_acct.slct.event_location_id; +} +if (ae_acct.slct.event_session_id) { + $events_loc.launcher.slct.event_session_id = ae_acct.slct.event_session_id; +} +if (ae_acct.slct.event_presentation_id) { + $events_loc.launcher.slct.event_presentation_id = ae_acct.slct.event_presentation_id; +} +if (ae_acct.slct.event_presenter_id) { + $events_loc.launcher.slct.event_presenter_id = ae_acct.slct.event_presenter_id; +} + +// Set the session storage values if (!$events_sess.launcher) { $events_sess.launcher = {}; } +$events_sess.launcher.show_content__session_code = true; +$events_sess.launcher.show_content__presentation_code = true; +$events_sess.launcher.show_content__presenter_code = true; + +// Process the location list to pull out just the IDs. +// let tmp_li = []; // This is to prevent the array from constantly updating and triggering the liveQuery. +// let bi_id_li__event_location: string[] = []; +// for (let i = 0; i < $events_slct.event_location_obj_li.length; i++) { +// let event_location_obj = $events_slct.event_location_obj_li[i]; +// let event_location_id_random = event_location_obj.event_location_id_random; +// tmp_li.push(event_location_id_random); +// } +// bi_id_li__event_location = tmp_li; +// console.log(`bi_id_li__event_location:`, bi_id_li__event_location); + +// Variables that will be used with Svelte bind are prefixed with 'bi_'. + +let bi_trig__event_location: any = null; +let bi_id_li__event_location: string[] = []; +// $: if ($events_trigger == 'event_location_li' && $events_slct.event_location_obj_li && $events_slct.event_location_obj_li.length > 0) { +// $: if (bi_trig__event_location == 'event_location_li' && $events_slct.event_location_obj_li && $events_slct.event_location_obj_li.length > 0) { +$: if (ae_acct.trig.event_location_obj_li) { + console.log(`$events_slct.event_location_obj_li:`, $events_slct.event_location_obj_li); + // $events_trigger = null; + bi_trig__event_location = null; + + bi_id_li__event_location = []; + + let tmp_li = []; // This is to prevent the array from constantly updating and triggering the liveQuery. + + for (let i = 0; i < $events_slct.event_location_obj_li.length; i++) { + let event_location_obj = $events_slct.event_location_obj_li[i]; + let event_location_id_random = event_location_obj.event_location_id_random; + tmp_li.push(event_location_id_random); + } + bi_id_li__event_location = tmp_li; + console.log(`bi_id_li__event_location:`, bi_id_li__event_location); + $events_slct.id_li__event_location = bi_id_li__event_location; +} + +let bi_trig__event_session: any = null; +let bi_id_li__event_session: string[] = []; +// $: if ($events_trigger == 'event_session_li' && $events_slct.event_session_obj_li && $events_slct.event_session_obj_li.length) { +// $: if (bi_trig__event_session == 'event_session_li' && $events_slct.event_session_obj_li && $events_slct.event_session_obj_li.length) { +// $: if ($events_slct.id_li__event_session) { +// console.log(`$events_slct.event_session_obj_li:`, $events_slct.event_session_obj_li); +// // $events_trigger = null; +// bi_trig__event_session = null; + +// bi_id_li__event_session = []; + +// let tmp_li = []; // This is to prevent the array from constantly updating and triggering the liveQuery. + +// for (let i = 0; i < $events_slct.event_session_obj_li.length; i++) { +// let event_session_obj = $events_slct.event_session_obj_li[i]; +// let event_session_id_random = event_session_obj.event_session_id_random; +// tmp_li.push(event_session_id_random); +// } +// bi_id_li__event_session = tmp_li; +// console.log(`bi_id_li__event_session:`, bi_id_li__event_session); +// $events_slct.id_li__event_session = bi_id_li__event_session; +// } + + +// let lq__event_session_obj = liveQuery( +// () => db_events.sessions.get($events_slct.event_session_id) +// ); + + + +// Event let lq__event_obj = liveQuery( - () => db_events.events.get($events_loc.launcher.slct.event_id) + () => db_events.events + .get($events_loc.launcher.slct.event_id) ); +// Event Location let lq__event_location_obj = liveQuery( () => db_events.locations .get($events_loc.launcher.slct.event_location_id) @@ -95,6 +195,12 @@ let lq__event_location_obj_li = liveQuery( .sortBy('name') ); +let lq_get__event_location_obj_li = liveQuery( + () => db_events.locations + .bulkGet($events_slct.id_li__event_location ?? ['']) +); + +// Event Session let lq__event_session_obj = liveQuery( () => db_events.sessions .get($events_loc.launcher.slct.event_session_id) @@ -107,76 +213,34 @@ let lq__event_session_obj_li = liveQuery( .sortBy('name') ); - -let event_location_id_li: string[] = []; -$: if ($events_trigger == 'event_location_li' && $events_slct.event_location_obj_li && $events_slct.event_location_obj_li.length > 0) { - console.log(`$events_slct.event_location_obj_li:`, $events_slct.event_location_obj_li); - $events_trigger = null; - - event_location_id_li = []; - - let tmp_li = []; // This is to prevent the array from constantly updating and triggering the liveQuery. - - for (let i = 0; i < $events_slct.event_location_obj_li.length; i++) { - let event_location_obj = $events_slct.event_location_obj_li[i]; - let event_location_id_random = event_location_obj.event_location_id_random; - tmp_li.push(event_location_id_random); - } - event_location_id_li = tmp_li; - console.log(`event_location_id_li:`, event_location_id_li); -} - - -let event_session_id_li: string[] = []; -$: if ($events_slct.event_session_obj_li && $events_slct.event_session_obj_li.length && $events_trigger == 'event_session_li') { - console.log(`$events_slct.event_session_obj_li:`, $events_slct.event_session_obj_li); - $events_trigger = null; - - event_session_id_li = []; - - let tmp_li = []; // This is to prevent the array from constantly updating and triggering the liveQuery. - - for (let i = 0; i < $events_slct.event_session_obj_li.length; i++) { - let event_session_obj = $events_slct.event_session_obj_li[i]; - let event_session_id_random = event_session_obj.event_session_id_random; - tmp_li.push(event_session_id_random); - } - event_session_id_li = tmp_li; - console.log(`event_session_id_li:`, event_session_id_li); -} - - -// let lq__event_session_obj = liveQuery( -// () => db_events.sessions.get($events_slct.event_session_id) -// ); - -if (!$events_loc.launcher) { - $events_loc.launcher = {}; -} -if (!$events_sess.launcher) { - $events_sess.launcher = {}; -} - -$events_sess.launcher.show_content__session_code = true; -$events_sess.launcher.show_content__presentation_code = true; -$events_sess.launcher.show_content__presenter_code = true; +let lq_get__event_session_obj_li = liveQuery( + () => db_events.sessions + .bulkGet($events_slct.id_li__event_session ?? ['']) +); // Functions and Logic +if (browser) { + console.log(`Browser: ${browser}`); + // $events_trigger = 'event_location_li'; + bi_trig__event_location = 'event_location_li'; + bi_trig__event_session = 'event_session_li'; +} + onMount(() => { - console.log('Pres Mgmt Launcher [slug]: +page.svelte'); + console.log('Pres Mgmt Launcher [slug]: +page@(launcher).svelte'); - $events_trigger = 'event_location_li'; + // $events_trigger = 'event_location_li'; }); - - Launcher: {ae_util.shorten_string({ string: $lq__event_obj?.name ?? '', max_length: 20, begin_length: 10, end_length: 4 })} + Launcher: + {ae_util.shorten_string({ string: $lq__event_obj?.name ?? '', max_length: 20, begin_length: 10, end_length: 4 })} ({$lq__event_obj?.event_id ?? 'loading...'}) - Pres Mgmt - {$ae_loc?.title} @@ -190,6 +254,9 @@ onMount(() => {

Æ Presentation Launcher

{$lq__event_obj?.name}

+

{$lq__event_location_obj?.name} + {$events_loc.launcher.slct.event_location_id} +

{/if} @@ -215,17 +282,17 @@ onMount(() => { border-r border-gray-200 " > - {#await $events_slct.event_location_obj_li} - Loading location list... + {#await $events_slct.id_li__event_location} + Loading location list... a {:then event_location_obj_li} - {#if $lq__event_obj && event_location_obj_li && event_location_obj_li.length > 0} + + {#if $lq__event_obj && bi_id_li__event_location && bi_id_li__event_location.length > 0} { lq__event_location_obj={lq__event_location_obj} lq__event_location_obj_li={lq__event_location_obj_li} + lq_get__event_location_obj_li={lq_get__event_location_obj_li} lq__event_session_obj={lq__event_session_obj} lq__event_session_obj_li={lq__event_session_obj_li} + lq_get__event_session_obj_li={lq_get__event_session_obj_li} > + {:else} +
+ + Loading location list... b +
{/if} {/await} @@ -272,8 +346,10 @@ onMount(() => { lq__event_location_obj={lq__event_location_obj} lq__event_location_obj_li={lq__event_location_obj_li} + lq_get__event_location_obj_li={lq_get__event_location_obj_li} lq__event_session_obj={lq__event_session_obj} lq__event_session_obj_li={lq__event_session_obj_li} + lq_get__event_session_obj_li={lq_get__event_session_obj_li} > {/if} diff --git a/src/routes/events_pres_mgmt/(launcher)/launcher/[slug]/launcher_menu.svelte b/src/routes/events_pres_mgmt/(launcher)/launcher/[slug]/launcher_menu.svelte index eff2d0d9..6c1f295f 100644 --- a/src/routes/events_pres_mgmt/(launcher)/launcher/[slug]/launcher_menu.svelte +++ b/src/routes/events_pres_mgmt/(launcher)/launcher/[slug]/launcher_menu.svelte @@ -1,4 +1,6 @@ -{#if $lq_kv__event_session_obj_li && $lq_kv__event_session_obj_li.length > 0} +{#if $lq_get__event_session_obj_li && $lq_get__event_session_obj_li.length > 0} Sessions: {#if $ae_loc.administrator_access} - ({$lq_kv__event_session_obj_li?.length}) + ({$lq_get__event_session_obj_li?.length}) {/if}