From 0bc04bf8997c3aa531e12d618f13ced70c679236 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Mon, 13 Oct 2025 18:17:32 -0400 Subject: [PATCH] Things are looking and working better. Note the Modal size is set to "". This allows it to stretch to the full width of the screen. --- .../(launcher)/launcher/+layout.svelte | 55 +++++++++++++------ .../(launcher)/launcher_file_cont.svelte | 6 +- .../(launcher)/launcher_presenter_view.svelte | 4 ++ .../launcher_presenter_view_posters.svelte | 10 +++- .../(launcher)/launcher_session_view.svelte | 23 ++++++++ 5 files changed, 77 insertions(+), 21 deletions(-) diff --git a/src/routes/events/[event_id]/(launcher)/launcher/+layout.svelte b/src/routes/events/[event_id]/(launcher)/launcher/+layout.svelte index 1a2bff4e..3f4bf067 100644 --- a/src/routes/events/[event_id]/(launcher)/launcher/+layout.svelte +++ b/src/routes/events/[event_id]/(launcher)/launcher/+layout.svelte @@ -437,15 +437,13 @@ function handle_ws_recv(ws_recv_status: any) { // NOTE: This is not finished yet. if (obj_type == 'event_file') { + // We are assuming this is for digital posters and needs to be opened in the modal. + + $events_sess.launcher.modal__open_event_file_id = null; clearInterval(idle_timer_interval); $events_slct.event_file_id = obj_id; - - let modal_title = null; - if (!modal_title) { - modal_title = '*'; // event_file_obj.filename; - } - $events_sess.launcher.modal__title = modal_title; + $events_sess.launcher.modal__title = $events_sess.launcher.modal__title ?? '*'; $events_sess.launcher.modal__open_event_file_id = $events_slct.event_file_id; // $events_sess.launcher.modal__event_file_obj = event_file_obj; @@ -1105,19 +1103,24 @@ $effect(() => { - - - + + { $events_sess.launcher.modal__open_event_file_id = null; if ($events_loc.launcher.controller == 'local_push' && $events_sess.launcher.ws_connect_status == 'connected') { @@ -1135,6 +1138,26 @@ $effect(() => { }} > + {#snippet header()} + +

+ {$events_sess.launcher?.modal__title ?? 'Digital Poster Display'} +

+ + + {/snippet} + {#if $events_sess.launcher.modal__open_event_file_id} 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 8de58236..b60c56a2 100644 --- a/src/routes/events/[event_id]/(launcher)/launcher_file_cont.svelte +++ b/src/routes/events/[event_id]/(launcher)/launcher_file_cont.svelte @@ -60,7 +60,6 @@ import { events_loc, events_sess, events_slct, events_trigger } from '$lib/ae_ev import { events_func } from '$lib/ae_events_functions'; import Element_ae_crud from '$lib/element_ae_crud.svelte'; - import { modal } from 'flowbite-svelte'; // *** Functions and Logic @@ -384,12 +383,13 @@ async function handle_open_file() { > {#if (screen_saver_exts.includes(event_file_obj.extension))} - Open Poster {event_file_id} + Open Poster + {:else} {ae_util.shorten_filename({filename: event_file_obj.filename, max_length: max_filename_length})} {/if} - {$events_sess.launcher.modal__open_event_file_id ?? '-- not set --'} + diff --git a/src/routes/events/[event_id]/(launcher)/launcher_presenter_view.svelte b/src/routes/events/[event_id]/(launcher)/launcher_presenter_view.svelte index 75c914c9..d7821d79 100644 --- a/src/routes/events/[event_id]/(launcher)/launcher_presenter_view.svelte +++ b/src/routes/events/[event_id]/(launcher)/launcher_presenter_view.svelte @@ -85,6 +85,10 @@ let lq__event_file_obj_li = $derived(liveQuery(async () => { session_type={event_file_obj?.event_session_type_code ?? 'oral'} open_method={event_file_obj?.event_session_type_code == 'poster' ? 'modal' : null} modal_title={lq__event_presenter_obj?.event_presentation_name} + + bind:modal__title={$events_sess.launcher.modal__title} + bind:modal__open_event_file_id={$events_sess.launcher.modal__open_event_file_id} + bind:modal__event_file_obj={$events_sess.launcher.modal__event_file_obj} /> {/each} diff --git a/src/routes/events/[event_id]/(launcher)/launcher_presenter_view_posters.svelte b/src/routes/events/[event_id]/(launcher)/launcher_presenter_view_posters.svelte index c0280f2c..a3b8ede9 100644 --- a/src/routes/events/[event_id]/(launcher)/launcher_presenter_view_posters.svelte +++ b/src/routes/events/[event_id]/(launcher)/launcher_presenter_view_posters.svelte @@ -2,9 +2,13 @@ interface Props { // export let slct_event_presenter_id: string; lq__event_presenter_obj: any; // This is not actually the LiveQuery object. This was pulled from the list of presenters for a presentation. With Svelte 5 this should not matter. + hide_name?: boolean; } -let { lq__event_presenter_obj }: Props = $props(); +let { + lq__event_presenter_obj, + hide_name = false +}: Props = $props(); import type { key_val } from '$lib/ae_stores'; // import { ae_util } from '$lib/ae_utils/ae_utils'; @@ -39,7 +43,9 @@ let lq__event_file_obj_li = $derived(liveQuery(async () => { - + {#if lq__event_presenter_obj?.given_name && lq__event_presenter_obj?.given_name != 'Group'} {lq__event_presenter_obj?.full_name} diff --git a/src/routes/events/[event_id]/(launcher)/launcher_session_view.svelte b/src/routes/events/[event_id]/(launcher)/launcher_session_view.svelte index 0bb0fdf2..96eef2b4 100644 --- a/src/routes/events/[event_id]/(launcher)/launcher_session_view.svelte +++ b/src/routes/events/[event_id]/(launcher)/launcher_session_view.svelte @@ -404,9 +404,30 @@ let ae_promises: key_val = $state({}); {event_presentation_obj?.name} + + + {#if $lq__event_presenter_obj_li} + {#each $lq__event_presenter_obj_li as event_presenter_obj, index} + {#if event_presenter_obj.event_presentation_id_random == event_presentation_obj.event_presentation_id_random} + + {#if $lq__event_presenter_obj_li[index]?.given_name && $lq__event_presenter_obj_li[index]?.given_name != 'Group'} + + {$lq__event_presenter_obj_li[index]?.full_name} + {:else if $lq__event_presenter_obj_li[index]?.given_name == 'Group'} + + {$lq__event_presenter_obj_li[index]?.affiliations} + {:else} + --not set-- + {/if } + + + {/if} + {/each} + {/if} + {#if $lq__event_presenter_obj_li && $lq__event_presenter_obj_li.length}
    {#each $lq__event_presenter_obj_li as event_presenter_obj, index} @@ -424,12 +445,14 @@ let ae_promises: key_val = $state({}); {#if type_code == 'poster'} {:else} {/if} + {/if} {/each}