From a6b91158651593cd4fd3aa04abd7352994f591d6 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Tue, 8 Oct 2024 12:13:27 -0400 Subject: [PATCH] Working on handling received messages. Open a session. --- src/lib/ae_events__event_session.ts | 7 +- src/lib/element_websocket_v2.svelte | 23 +++-- .../[event_id]/(launcher)/+layout.svelte | 96 ++++++++++++++----- .../events/[event_id]/(launcher)/+layout.ts | 16 +++- .../(launcher)/launcher_file_cont.svelte | 44 ++++----- .../(launcher)/menu_session_list.svelte | 11 ++- .../ae_comp__event_session_obj_li.svelte | 2 +- .../events_pres_mgmt/session_view.svelte | 2 +- 8 files changed, 140 insertions(+), 61 deletions(-) diff --git a/src/lib/ae_events__event_session.ts b/src/lib/ae_events__event_session.ts index daa68e36..e6bb3767 100644 --- a/src/lib/ae_events__event_session.ts +++ b/src/lib/ae_events__event_session.ts @@ -63,7 +63,12 @@ export async function load_ae_obj_id__event_session( }); if (log_lvl) { - console.log('ae_promises.load__event_session_obj:', ae_promises.load__event_session_obj); + console.log('ae_promises.load__event_session_obj:', ae_promises?.load__event_session_obj); + } + + if (ae_promises?.load__event_session_obj === null) { + console.log('No results returned.'); + return null; } if (inc_file_li) { diff --git a/src/lib/element_websocket_v2.svelte b/src/lib/element_websocket_v2.svelte index 785496af..e9fda941 100644 --- a/src/lib/element_websocket_v2.svelte +++ b/src/lib/element_websocket_v2.svelte @@ -55,13 +55,13 @@ function ws_connect_group_id({group_id, client_id}) { 'status': 'connected' }); - ws_connection.send(JSON.stringify({ - client_id: client_id, - target: 'echo', - type: 'hello', - group_id: group_id, - msg: 'You are connected!' - })); + // ws_connection.send(JSON.stringify({ + // client_id: client_id, + // target: 'echo', + // type: 'hello', + // group_id: group_id, + // msg: 'You are connected!' + // })); ws_connection.send(JSON.stringify({ client_id: client_id, @@ -73,11 +73,14 @@ function ws_connect_group_id({group_id, client_id}) { }; ws_connection.onmessage = function(event) { - console.log('WS: message received'); - console.log(event); + if (log_lvl) { + console.log('WS: message received', event); + } let ws_recv_data = JSON.parse(event.data); - console.log(ws_recv_data); + if (log_lvl) { + console.log('WS: Received data:', ws_recv_data); + } if (client_id == ws_recv_data.client_id) { if (log_lvl) { diff --git a/src/routes/events/[event_id]/(launcher)/+layout.svelte b/src/routes/events/[event_id]/(launcher)/+layout.svelte index 44498837..ceecfd61 100644 --- a/src/routes/events/[event_id]/(launcher)/+layout.svelte +++ b/src/routes/events/[event_id]/(launcher)/+layout.svelte @@ -4,13 +4,17 @@ export let data: any; let log_lvl = 1; import { onMount, tick } from 'svelte'; +import { goto } from '$app/navigation'; import { sineIn } from 'svelte/easing'; import { liveQuery } from "dexie"; import { Drawer, Footer, Modal } from 'flowbite-svelte'; + +import type { key_val } from '$lib/ae_stores'; import { ae_util } from '$lib/ae_utils/ae_utils'; import { db_events } from '$lib/db_events'; import { ae_snip, ae_loc, ae_sess, ae_api, ae_trig, slct, slct_trigger, time } from '$lib/ae_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'; import Launcher_cfg from './launcher_cfg.svelte'; import Launcher_menu from './launcher_menu.svelte'; @@ -39,20 +43,30 @@ if (!$events_loc?.launcher) { } -console.log(`event_id: ${data.params.event_id}`); +if (log_lvl > 1) { + console.log(`$events_loc.launcher:`, $events_loc.launcher); +} +if (log_lvl) { + console.log(`event_id: ${data.params.event_id}`); + console.log(`event_location_id: ${data.params.event_location_id}`); + console.log(`event_session_id: ${data.url.searchParams.get('session_id')}`); +} $events_slct.event_id = data.params.event_id; - -console.log(`event_location_id: ${data.params.event_location_id}`); - $events_slct.event_location_id = data.params.event_location_id; +$events_slct.event_session_id = data.url.searchParams.get('session_id'); -console.log(`ae_acct.slct.event_id:`, ae_acct.slct.event_id); -$events_slct.event_id = ae_acct.slct.event_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.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); +if (log_lvl > 1) { + console.log(`$events_slct.event_location_obj_li:`, $events_slct.event_location_obj_li); + console.log(`$events_slct.id_li__event_location:`, $events_slct.id_li__event_location); +} + + // Event $: lq__event_obj = liveQuery(async () => { @@ -116,6 +130,11 @@ $: lq__event_session_obj_li = liveQuery(async () => { // } // } +let ae_promises: key_val = { + slct_event_session_id: null, + slct_event_presentation_li: null +}; + onMount(() => { console.log('Events - Launcher: +layout.svelte'); // Hide the AppShell shell header (id="shell-header") and footer @@ -142,8 +161,9 @@ function handle_ws_conn(event) { // When this is called something seems to go wrong. It creates a loop when connected. function handle_ws_recv(event) { - console.log('*** handle_ws_recv() ***'); - console.log(event); + if (log_lvl) { + console.log('*** handle_ws_recv() ***', event); + } if (event.detail.type == 'cmd' && event.detail.cmd) { let cmd = event.detail.cmd; @@ -151,17 +171,47 @@ function handle_ws_recv(event) { // AE Load (event session ID) if (cmd.startsWith('ae_load:')) { - console.log(); let cmd_parts = cmd.split(':'); let obj_parts = cmd_parts[1].split('='); let obj_type = obj_parts[0]; let obj_id = obj_parts[1]; + if (log_lvl) { + console.log(`ae_load: ${obj_type} ${obj_id}`); + } + if (log_lvl > 1) { + console.log(cmd); + } if (obj_type == 'event_session') { - $slct.event_session_id = obj_id; - $slct_trigger = 'event_session'; - $events_sess.launcher.show_launcher_message = false; + $events_slct.event_session_id = obj_id; + // $slct_trigger = 'event_session'; + // $events_sess.launcher.show_launcher_message = false; + + // data.url.searchParams.set('session_id', $events_slct.event_session_id); + + // let new_url = data.url.toString(); + // console.log(new_url); + // goto(new_url, {replaceState: false}); + + ae_promises.slct_event_session_id = events_func.load_ae_obj_id__event_session({ + api_cfg: $ae_api, + event_session_id: $events_slct.event_session_id, + inc_file_li: true, + inc_presentation_li: true, + try_cache: true, + log_lvl: log_lvl + }) + .then(async (load_results) => { + + }); + + data.url.searchParams.set('session_id', $events_slct.event_session_id); + + let new_url = data.url.toString(); + console.log(new_url); + goto(new_url, {replaceState: false}); } + // AE Open (event file ID) } else if (cmd.startsWith('ae_open:')) { let cmd_parts = cmd.split(':'); @@ -220,7 +270,7 @@ function handle_ws_recv(event) { if (what == 'event_file_modal') { $events_sess.launcher.modal__open = false; - // $slct.event_file_id = null; + // $events_slct.event_file_id = null; // $slct_trigger = 'event_file'; // $events_sess.launcher.event_file_open.open_status = 'close'; } @@ -241,7 +291,9 @@ function handle_ws_recv(event) { } } } else { - console.log('Unrecognized command'); + if (log_lvl) { + console.log('Unrecognized WS event received. Probably just a message.'); + } } } @@ -258,7 +310,7 @@ function handle_ws_sent(event) { /* *** END *** Handle WebSocket events */ -$: if ($slct_trigger == 'event_file' && $slct.event_file_id && $events_sess.launcher?.event_file_open.open_status == 'open') { +$: if ($slct_trigger == 'event_file' && $events_slct.event_file_id && $events_sess.launcher?.event_file_open.open_status == 'open') { $slct_trigger = null; // handle_event_file_open(); } @@ -271,12 +323,12 @@ $: if ($slct_trigger == 'event_file' && $events_sess.launcher?.event_file_open.o async function handle_event_file_open () { let event_file_obj; - if ($slct.event_file_obj && $slct.event_file_obj.event_file_id_random) { - console.log($slct.event_file_obj); - event_file_obj = $slct.event_file_obj; + if ($events_slct.event_file_obj && $events_slct.event_file_obj.event_file_id_random) { + console.log($events_slct.event_file_obj); + event_file_obj = $events_slct.event_file_obj; } else { console.log('Need to look up the event file details first.'); - // let get_event_file_obj_result = await get_event_file_obj({event_file_id: $slct.event_file_id}); + // let get_event_file_obj_result = await get_event_file_obj({event_file_id: $events_slct.event_file_id}); // event_file_obj = get_event_file_obj_result; // console.log(event_file_obj); @@ -472,10 +524,6 @@ export let close_event_file_as_modal = function close_event_file_as_modal({}) { {#if $events_slct.event_session_id && $lq__event_session_obj} diff --git a/src/routes/events/[event_id]/(launcher)/+layout.ts b/src/routes/events/[event_id]/(launcher)/+layout.ts index 173acd00..7ea1a8c8 100644 --- a/src/routes/events/[event_id]/(launcher)/+layout.ts +++ b/src/routes/events/[event_id]/(launcher)/+layout.ts @@ -5,7 +5,7 @@ import { error } from '@sveltejs/kit'; 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(); @@ -69,6 +69,20 @@ export async function load({ params, parent }) { // route }); console.log(`load_event_location_obj_li = `, load_event_location_obj_li); ae_acct.slct.event_location_obj_li = load_event_location_obj_li; + + + let event_session_id = url.searchParams.get('session_id'); + if (event_session_id) { + let load_event_session_obj = events_func.load_ae_obj_id__event_session({ + api_cfg: ae_acct.api, + event_session_id: event_session_id, + try_cache: true + }); + ae_acct.slct.event_session_id = event_session_id; + console.log(`load_event_session_obj = `, load_event_session_obj); + ae_acct.slct.event_session_obj = load_event_session_obj; + } + } // WARNING: Precaution against shared data between sites and sessions. diff --git a/src/routes/events/[event_id]/(launcher)/launcher_file_cont.svelte b/src/routes/events/[event_id]/(launcher)/launcher_file_cont.svelte index 2f911316..9eb8c6f5 100644 --- a/src/routes/events/[event_id]/(launcher)/launcher_file_cont.svelte +++ b/src/routes/events/[event_id]/(launcher)/launcher_file_cont.svelte @@ -89,34 +89,34 @@ onMount(() => { // $ae_event_launcher = $ae_event_launcher; } - window.addEventListener('message', function(event) { - console.log('Message received in event file uploaded manage component:'); - console.log(event); + // window.addEventListener('message', function(event) { + // console.log('Message received in event file uploaded manage component:'); + // console.log(event); - if (event.data.type == 'api_download_blob') { - console.log('Download blob (file) message received:'); - console.log(event.data); + // if (event.data.type == 'api_download_blob') { + // console.log('Download blob (file) message received:'); + // console.log(event.data); - // Get the event_file_id from the event.data.endpoint value. - // Example: /event/file/abc123/download + // // Get the event_file_id from the event.data.endpoint value. + // // Example: /event/file/abc123/download - let endpoint = event.data.endpoint; - let event_file_id = endpoint.split('/')[3]; + // let endpoint = event.data.endpoint; + // let event_file_id = endpoint.split('/')[3]; - ae_downloads[event_file_id] = { - 'size_total': event.data.size_total, - 'size_loaded': event.data.size_loaded, - 'percent_completed': event.data.percent_completed, - }; + // ae_downloads[event_file_id] = { + // 'size_total': event.data.size_total, + // 'size_loaded': event.data.size_loaded, + // 'percent_completed': event.data.percent_completed, + // }; - // let event_file_id = event.data.event_file_id; - // let filename = event.data.filename; - // let auto_download = event.data.auto_download; + // // let event_file_id = event.data.event_file_id; + // // let filename = event.data.filename; + // // let auto_download = event.data.auto_download; - // ae_promises[event_file_id] - // ae_promises[event_file_id] = download_event_file({ 'event_file_id': event_file_id, 'return_file': true, filename: filename, auto_download: auto_download, log_lvl: 1 }); - } - }); + // // ae_promises[event_file_id] + // // ae_promises[event_file_id] = download_event_file({ 'event_file_id': event_file_id, 'return_file': true, filename: filename, auto_download: auto_download, log_lvl: 1 }); + // } + // }); }); async function handle_open_file() { diff --git a/src/routes/events/[event_id]/(launcher)/menu_session_list.svelte b/src/routes/events/[event_id]/(launcher)/menu_session_list.svelte index 8468a0a3..c8f6af18 100644 --- a/src/routes/events/[event_id]/(launcher)/menu_session_list.svelte +++ b/src/routes/events/[event_id]/(launcher)/menu_session_list.svelte @@ -1,6 +1,7 @@