Working on handling received messages. Open a session.

This commit is contained in:
Scott Idem
2024-10-08 12:13:27 -04:00
parent 0799f9a1ab
commit a6b9115865
8 changed files with 140 additions and 61 deletions

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -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}
<Launcher_session_view
slct_event_session_id={$events_slct.event_session_id}
lq__event_location_obj={lq__event_location_obj}
lq__event_session_obj={lq__event_session_obj}
>
</Launcher_session_view>

View File

@@ -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.

View File

@@ -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() {

View File

@@ -1,6 +1,7 @@
<script lang="ts">
import { goto } from '$app/navigation';
// import { liveQuery } from "dexie";
import { tick } from 'svelte';
import type { key_val } from '$lib/ae_stores';
import { ae_util } from '$lib/ae_utils/ae_utils';
@@ -8,7 +9,6 @@ import { ae_util } from '$lib/ae_utils/ae_utils';
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_func } from '$lib/ae_events_functions';
import { tick } from 'svelte';
export let data_url: any;
// export let slct_event_session_id: any;
@@ -111,6 +111,15 @@ let hover_timer: any = null;
console.log(new_url);
goto(new_url, {replaceState: false});
});
if ($events_loc.launcher.controller == 'local_push') {
console.log(`Local Push Controller Command: ae_load:event_session=${event_session_obj?.id}`);
$events_sess.launcher.controller_cmd = `ae_load:event_session=${event_session_obj?.id}`;
$events_sess.launcher.controller_trigger_send = true;
}
// await tick();
// ae_promises.slct_event_presentation_li = await events_func.load_ae_obj_li__event_presentation({

View File

@@ -209,7 +209,7 @@ let ae_triggers: key_val = {};
{#if show__launcher_link}
<a
href="/events/{session_obj?.event_id_random}/launcher/{session_obj?.event_location_id_random}"
href="/events/{session_obj?.event_id_random}/launcher/{session_obj?.event_location_id_random}?session_id={session_obj?.event_session_id_random}"
class="btn btn-sm variant-glass-surface hover:variant-filled-secondary text-xs lg:text-sm"
title="Launcher: {session_obj?.event_location_name} {session_obj?.event_location_id_random}"
>

View File

@@ -326,7 +326,7 @@ $: if ($lq__event_session_obj) {
<a
data-sveltekit-preload-data="false"
data-sveltekit-reload="true"
href="/events/{$lq__event_session_obj?.event_id_random}/launcher/{$lq__event_session_obj?.event_location_id_random}"
href="/events/{$lq__event_session_obj?.event_id_random}/launcher/{$lq__event_session_obj?.event_location_id_random}?session_id={$lq__event_session_obj?.event_session_id_random}"
class="text-blue-500 hover:text-blue-800 hover:underline"
title="Launcher: {$lq__event_session_obj?.event_location_name} {$lq__event_session_obj?.event_location_id_random}"
>