From 14fc1ee146e65fd205b953122e4239cabbad02c3 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Thu, 8 Aug 2024 19:51:03 -0400 Subject: [PATCH] Now I am trying to get the presentation list to display... Why won't this work...? Adding URL params seems to have helped some. --- src/lib/ae_events__event_session.ts | 3 + src/lib/db_events.ts | 13 ++ .../(launcher)/launcher/[slug]/+page.ts | 23 ++- .../launcher/[slug]/+page@(launcher).svelte | 62 ++++++-- .../launcher/[slug]/launcher_menu.svelte | 141 +----------------- .../[slug]/launcher_session_view.svelte | 84 +++++++---- .../launcher/[slug]/menu_session_list.svelte | 110 +++++++++----- 7 files changed, 216 insertions(+), 220 deletions(-) diff --git a/src/lib/ae_events__event_session.ts b/src/lib/ae_events__event_session.ts index f3bc548c..2cc1d2aa 100644 --- a/src/lib/ae_events__event_session.ts +++ b/src/lib/ae_events__event_session.ts @@ -325,6 +325,9 @@ export function handle_db_save_ae_obj_li__event_session( event_location_code: obj.event_location_code, event_location_name: obj.event_location_name, + + // A key value list of the presentations + event_presentation_kv: obj.event_presentation_kv, }); // console.log(`Put obj with ID: ${obj.event_session_id_random} or ${id_random}`); } catch (error) { diff --git a/src/lib/db_events.ts b/src/lib/db_events.ts index 714786c9..b1b69ccc 100644 --- a/src/lib/db_events.ts +++ b/src/lib/db_events.ts @@ -295,6 +295,11 @@ export interface Location { internal_use_count?: null|number; event_name?: null|string; + + // A key value list of the sessions + event_session_kv?: null|key_val; + // A key value list of the files + event_file_kv?: null|key_val; } @@ -362,6 +367,11 @@ export interface Session { event_location_code?: null|string; event_location_name?: null|string; + + // A key value list of the presentations + event_presentation_kv?: null|key_val; + // A key value list of the files + event_file_kv?: null|key_val; } @@ -498,6 +508,9 @@ export interface Presenter { person_affiliations?: null|string; person_primary_email?: null|string; person_passcode?: null|string; + + // A key value list of the files + event_file_kv?: null|key_val; } 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 3f6d7d09..ced51214 100644 --- a/src/routes/events_pres_mgmt/(launcher)/launcher/[slug]/+page.ts +++ b/src/routes/events_pres_mgmt/(launcher)/launcher/[slug]/+page.ts @@ -5,7 +5,7 @@ console.log(`ae pres_mgmt launcher [slug] +page.ts: start`); import { browser } from '$app/environment'; import { events_func } from '$lib/ae_events_functions'; -export async function load({ params, parent }) { // route +export async function load({ params, parent, url }) { // route let log_lvl = 0; let data = await parent(); @@ -32,6 +32,7 @@ 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; @@ -74,18 +75,30 @@ export async function load({ params, parent }) { // route ae_acct.slct.id_li__event_location = id_li__event_location; } + let for_obj_type = 'event'; + let for_obj_id = event_id; + + // ae_acct.trig.event_session_obj_li = true; + + if (browser) { + // if (url.searchParams.get('location_id')) { + // console.log(`url.searchParams.get('location_id') = `, url.searchParams.get('location_id')); + // for_obj_type = 'event_location'; + // for_obj_id = url.searchParams.get('location_id'); + // } + 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, + for_obj_type: for_obj_type, + for_obj_id: for_obj_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; + // ae_acct.trig.event_session_obj_li = false; }); 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); @@ -102,6 +115,8 @@ export async function load({ params, parent }) { // route 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; + } else { + console.log(`ae pres_mgmt launcher [slug] +page.ts: browser = false`); } // 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 d8a16216..7a621bc8 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 @@ -84,6 +84,44 @@ if (!$events_loc.launcher.slct) { }; } +if (browser) { + console.log(`data.url.searchParams.get('location_id') = `, data.url.searchParams.get('location_id')); + // let for_obj_type = 'event_location'; + // let for_obj_id = data.url.searchParams.get('location_id'); + + // ae_acct.slct.event_location_id = for_obj_id; + + // ae_acct.trig.event_session_obj_li = false; + // let load_event_session_obj_li = events_func.handle_load_ae_obj_li__event_session({ + // api_cfg: ae_acct.api, + // for_obj_type: for_obj_type, + // for_obj_id: for_obj_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 = false; + // }); + // 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); + // $events_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; + // $events_slct.id_li__event_session = ae_acct.slct.id_li__event_session ?? ['']; +} + if (ae_acct.slct.event_id) { $events_loc.launcher.slct.event_id = ae_acct.slct.event_id; } @@ -225,15 +263,15 @@ let lq_get__event_session_obj_li = liveQuery( 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'; + + // $events_loc.launcher.slct.event_location_id = data.url.searchParams.get('location_id'); + // $events_loc.launcher.slct.event_session_id = data.url.searchParams.get('session_id'); } onMount(() => { console.log('Pres Mgmt Launcher [slug]: +page@(launcher).svelte'); - - // $events_trigger = 'event_location_li'; }); @@ -279,19 +317,18 @@ onMount(() => { class="event_launcher_menu container h-full flex flex-col gap-4 py-1 px-1 basis-1/5 - min-w-48 + min-w-72 max-w-xs border-r border-gray-200 " > - {#await $events_slct.id_li__event_location} + {#if $lq__event_obj && $events_slct.event_location_obj_li} { {:else}
- Loading location list... b + Loading location list...
{/if} - {/await} + @@ -339,11 +376,8 @@ onMount(() => { slct_event_session_id={$events_slct.event_session_id} 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 751b6b88..c51888a3 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 @@ -19,34 +19,11 @@ import { events_func } from '$lib/ae_events_functions'; import Menu_session_list_menu from './menu_session_list.svelte'; export let data_url: any; -// export let slct_event_id: string; + let slct_event_location_id: string; -export let slct_event_session_id: null|string; - -// export let bi_trig__event_location: any; -// export let bi_id_li__event_location: string[] = []; -// export let event_session_id_li: string[] = []; - -// export let event_location_obj_li: any[] = []; - -// export let dq__event_obj: any -// export let dq__where_type_id_val: string = 'event_id'; -// export let dq__where_eq_id_val: string; - -// console.log(`bi_id_li__event_location:`, bi_id_li__event_location); $events_trigger = null; -// let tmp_li = []; // This is to prevent the array from constantly updating and triggering the liveQuery. - -// for (let i = 0; i < event_location_obj_li.length; i++) { -// let event_location_obj = 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); - export let lq__event_obj: any; export let lq__event_location_obj: any; // export let lq__event_location_obj_li: any; @@ -55,36 +32,6 @@ export let lq__event_session_obj: any; // export let lq__event_session_obj_li: any; export let lq_get__event_session_obj_li: any; -// let lq__event_location_obj_li = liveQuery( -// () => db_events.locations -// .where('event_id') -// .equals(dq__event_obj.id) -// .sortBy('name') -// ); - -// let lq_kv__event_location_obj_li = liveQuery( -// () => db_events.locations -// .bulkGet(bi_id_li__event_location) -// ); - -// let lq__event_session_obj_li = liveQuery( -// () => db_events.sessions -// .where('event_location_id') -// .equals(event_location_id ?? '7mYbLvYMPho') -// .sortBy('name') -// ); - -// let lq_kv__event_session_obj_li = liveQuery( -// () => db_events.sessions -// .bulkGet(event_session_id_li) -// ); - -// let lq__event_presenter_obj_li = liveQuery( -// () => db_events.presenters -// .where(dq__where_type_id_val) -// .equals(dq__where_eq_id_val) -// .sortBy('name') -// ); let qry__enabled = 'enabled'; let qry__hidden = 'not_hidden'; @@ -101,91 +48,18 @@ if ($ae_loc.administrator_access) { let ae_promises: key_val = {}; -let load_obj_li__event_session: any = {}; -// $: if (event_location_id) { -// console.log(`event_location_id:`, event_location_id); -// dq__where_type_id_val = 'event_location_id'; -// dq__where_eq_id_val = event_location_id; - -// // $slct.event_location_id = event_location_id; -// // $slct_trigger = 'event_location_li'; - -// $events_slct.event_location_id = event_location_id; -// $events_trigger = 'event_location_li'; - -// load_obj_li__event_session = events_func.handle_load_ae_obj_li__event_session({ -// api_cfg: $ae_api, -// for_obj_type: 'event_location', -// for_obj_id: event_location_id, -// params: {qry__enabled: qry__enabled, qry__limit: 550}, -// try_cache: false, -// log_lvl: 1, -// }) -// .then(function (load_results) { -// console.log(`load_results = `, load_results); - -// 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 < load_results.length; i++) { -// let event_session_obj = load_results[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); - -// return load_results; -// }); -// // console.log(`load_obj_li__event_session = `, load_obj_li__event_session); -// } - - - -// $: if ($slct.event_session_obj_li) { -// 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 < $slct.event_session_obj_li.length; i++) { -// let event_session_obj = $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; -// } - - -// $: if ($lq__event_session_obj_li && $lq__event_session_obj_li.length && $events_trigger == 'event_location_id') { -// console.log(`$lq__event_session_obj_li:`, $lq__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 < $lq__event_session_obj_li.length; i++) { -// let event_session_obj = $lq__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); -// } -

{$lq__event_obj?.cfg_json.short_name ?? 'loading...'}

{#if $lq_get__event_location_obj_li && $lq_get__event_location_obj_li.length > 0} - + Locations: {#if $ae_loc.administrator_access} ({$lq_get__event_location_obj_li?.length}) {/if} + {#await ae_promises[slct_event_location_id]} {:then result} @@ -198,7 +72,7 @@ let load_obj_li__event_session: any = {}; on:change={async () => { // console.log(`slct_event_location_id:`, slct_event_location_id); - console.log('Remove the passcode from the URL.'); + console.log('Remove fields from the URL.'); data_url.searchParams.delete('location_id'); data_url.searchParams.delete('presentation_id'); data_url.searchParams.delete('presenter_id'); @@ -230,7 +104,7 @@ let load_obj_li__event_session: any = {}; // $events_trigger = 'event_location_li'; $events_slct.id_li__event_session = []; - // await tick(); + await tick(); ae_promises[slct_event_location_id] = events_func.handle_load_ae_obj_li__event_session({ api_cfg: $ae_api, for_obj_type: 'event_location', @@ -254,11 +128,12 @@ let load_obj_li__event_session: any = {}; event_session_id_li = tmp_li; console.log(`event_session_id_li:`, event_session_id_li); $events_slct.id_li__event_session = event_session_id_li; - $events_slct = {...$events_slct}; + // $events_slct = {...$events_slct}; // await tick(); return load_results; }); + await tick(); } else { // This will hide the selected session if the location is changed to false. @@ -295,7 +170,7 @@ let load_obj_li__event_session: any = {}; {#if lq_get__event_session_obj_li} {/if} diff --git a/src/routes/events_pres_mgmt/(launcher)/launcher/[slug]/launcher_session_view.svelte b/src/routes/events_pres_mgmt/(launcher)/launcher/[slug]/launcher_session_view.svelte index c7c328a7..4a422363 100644 --- a/src/routes/events_pres_mgmt/(launcher)/launcher/[slug]/launcher_session_view.svelte +++ b/src/routes/events_pres_mgmt/(launcher)/launcher/[slug]/launcher_session_view.svelte @@ -16,10 +16,14 @@ import { events_func } from '$lib/ae_events_functions'; export let slct_event_session_id: string; +// export let lq__event_file_obj: any; +// export let lq_get__event_file_obj_li: any; export let lq__event_location_obj: any; -export let lq__event_location_obj_li: any; +// export let lq__event_presentation_obj: any; +// export let lq_get__event_presentation_obj_li: any; +// export let lq__event_presenter_obj: any; +// export let lq_get__event_presenter_obj_li: any; export let lq__event_session_obj: any; -export let lq__event_session_obj_li: any; let load_event_session_obj = events_func.handle_load_ae_obj_id__event_session({ api_cfg: $ae_api, @@ -42,6 +46,25 @@ export let hide_description: boolean = true; export let show_designations: boolean = false; export let show_email: boolean = false; +// Event Presentation +let lq__event_presentation_obj = liveQuery( + () => db_events.presentations + .get($events_loc.launcher.slct.event_presentation_id) +); + +let lq__event_presentation_obj_li = liveQuery( + () => db_events.presentations + .where('event_session_id_random') + .equals($events_loc.launcher.slct.event_session_id) + .sortBy('name') +); + +let lq_get__event_presentation_obj_li = liveQuery( + () => db_events.presentations + .bulkGet($events_slct.id_li__event_presentation) +); + + let show_modal_upload_files: boolean = false; let link_to_type: null|string = null; let link_to_id: null|string = null; @@ -49,25 +72,25 @@ let link_to_id: null|string = null; -{$events_slct.event_session_id} +
- {#if $events_slct.event_session_obj && $events_slct.event_session_obj.event_session_id_random} + {#if $lq__event_session_obj && $lq__event_session_obj.event_session_id_random}
- {ae_util.iso_datetime_formatter($events_slct.event_session_obj.start_datetime, 'week_long')} - {ae_util.iso_datetime_formatter($events_slct.event_session_obj.start_datetime, 'date_long_month_day')} - {ae_util.iso_datetime_formatter($events_slct.event_session_obj.start_datetime, 'time_short')} + {ae_util.iso_datetime_formatter($lq__event_session_obj.start_datetime, 'week_long')} + {ae_util.iso_datetime_formatter($lq__event_session_obj.start_datetime, 'date_long_month_day')} + {ae_util.iso_datetime_formatter($lq__event_session_obj.start_datetime, 'time_short')} – - {ae_util.iso_datetime_formatter($events_slct.event_session_obj.end_datetime, 'time_short')} + {ae_util.iso_datetime_formatter($lq__event_session_obj.end_datetime, 'time_short')}

- - + {$lq__event_session_obj?.name} {#if $lq__event_session_obj?.code} @@ -78,10 +101,10 @@ let link_to_id: null|string = null;

- {@html $events_slct.event_session_obj.description} + {@html $lq__event_session_obj.description}
- {#if $events_slct.event_session_obj?.event_file_list && $events_slct.event_session_obj?.event_file_list.length } + {#if $lq__event_session_obj?.event_file_list && $lq__event_session_obj?.event_file_list.length }
Session Files: @@ -89,7 +112,7 @@ let link_to_id: null|string = null;
    - {#each $events_slct.event_session_obj.event_file_list as event_file_obj, index} + {#each $lq__event_session_obj.event_file_list as event_file_obj, index}
  • - +
  • {/each}
@@ -108,22 +131,27 @@ let link_to_id: null|string = null; {/if}
- - {#if $events_slct.event_presentation_obj_li && $events_slct.event_presentation_obj_li.length} +
Presentations:
+ + + {$lq_get__event_presentation_obj_li?.length} + + {#if $lq_get__event_presentation_obj_li} + Presentations:
    - {#each $events_slct.event_presentation_obj_li as event_presentation_obj, index} + {#each $lq_get__event_presentation_obj_li as event_presentation_obj}
  • - {#if event_presentation_obj.start_datetime} - {ae_util.iso_datetime_formatter(event_presentation_obj.start_datetime, 'time_short')} + {#if event_presentation_obj?.start_datetime} + {ae_util.iso_datetime_formatter(event_presentation_obj?.start_datetime, 'time_short')} {/if} - {event_presentation_obj.name} + {event_presentation_obj?.name}
    - {#if event_presentation_obj.event_presenter_list.length} + -
  • +
  • --> + +
  • {/each}
diff --git a/src/routes/events_pres_mgmt/(launcher)/launcher/[slug]/menu_session_list.svelte b/src/routes/events_pres_mgmt/(launcher)/launcher/[slug]/menu_session_list.svelte index 2032429d..274a9d82 100644 --- a/src/routes/events_pres_mgmt/(launcher)/launcher/[slug]/menu_session_list.svelte +++ b/src/routes/events_pres_mgmt/(launcher)/launcher/[slug]/menu_session_list.svelte @@ -1,43 +1,47 @@ + + + + + {#if $lq_get__event_session_obj_li && $lq_get__event_session_obj_li.length > 0} - + Sessions: {#if $ae_loc.administrator_access} ({$lq_get__event_session_obj_li?.length}) {/if} + + {#await ae_promises.slct_event_session_id} + + {:then result} + + {/await}
    @@ -85,7 +115,5 @@ export let lq_get__event_session_obj_li: any; {:else}

    No sessions found. -

    {/if} - \ No newline at end of file