From 8b22c0fc343a1e7a1ad9ec0acb6eb1a9a180667f Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Thu, 16 Oct 2025 16:07:37 -0400 Subject: [PATCH] The Launcher works pretty well. Except for the native app... --- package.json | 2 +- src/lib/ae_events_stores.ts | 3 + .../(launcher)/launcher_file_cont.svelte | 57 ++++++++---- .../(launcher)/launcher_menu.svelte | 93 ++++++++++--------- .../(launcher)/launcher_presenter_view.svelte | 1 + .../(launcher)/launcher_session_view.svelte | 3 +- .../(launcher)/menu_session_list.svelte | 3 + 7 files changed, 97 insertions(+), 65 deletions(-) diff --git a/package.json b/package.json index a15791bd..18b5da5a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "osit-aether-app-svelte", - "version": "3.9.4", + "version": "3.9.5", "description": "One Sky IT's Aether App created with Svelte, SvelteKit, Tailwind CSS, Lucide, Font Awesome, and Skeleton UI. -Scott Idem", "homepage": "https://oneskyit.com/", "private": true, diff --git a/src/lib/ae_events_stores.ts b/src/lib/ae_events_stores.ts index 805f384b..3b5b8d7c 100644 --- a/src/lib/ae_events_stores.ts +++ b/src/lib/ae_events_stores.ts @@ -126,11 +126,14 @@ let events_local_data_struct: key_val = { hide__ws_messages: true, hide__ws_commands: true, + hide_content__draft_files: true, + show_content__disabled_files: false, show_content__hidden_files: false, show_content__hidden_presentations: false, show_content__hidden_presenters: false, show_content__hidden_sessions: false, + show_content__draft_files: false, // These should be renamed to match the pres_mgmt section. Use "hide" instead of "show". show_content__session_code: true, 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 b3bffd6a..e5454fef 100644 --- a/src/routes/events/[event_id]/(launcher)/launcher_file_cont.svelte +++ b/src/routes/events/[event_id]/(launcher)/launcher_file_cont.svelte @@ -10,9 +10,12 @@ interface Props { hide_created_on?: boolean; hide_os?: boolean; hide_size?: boolean; + hide_draft?: boolean; // Based on the file purpose show_bak_download?: boolean; // export let hide_api_download: boolean = true; btn_size?: string; + text_size?: string; + text_size_md?: string; session_type?: string; // oral, poster, workshop, symposium, roundtable, other open_method?: null|string; // modal, download, native open (download, cache, copy, open), URL modal_title?: string; @@ -23,19 +26,22 @@ interface Props { } let { - log_lvl = 0, + log_lvl = $bindable(0), event_file_id, event_file_obj = $bindable({}), - max_filename_length = 50, - hide_launch_icon = false, - hide_meta = false, - hide_created_on = false, - hide_os = false, - hide_size = false, + max_filename_length = $bindable(50), + hide_launch_icon = $bindable(false), + hide_meta = $bindable(false), + hide_created_on = $bindable(false), + hide_os = $bindable(false), + hide_size = $bindable(false), + hide_draft = $bindable(false), show_bak_download = false, - btn_size = 'btn_md', - session_type = 'oral', - open_method = 'download', + btn_size = $bindable('btn-sm'), + text_size = $bindable('text-sm'), + text_size_md = $bindable('md:text-base'), + session_type = $bindable('oral'), + open_method = $bindable('download'), modal_title = $bindable(''), modal__title = $bindable(''), @@ -262,16 +268,18 @@ function preventDefault(fn) {
{#if open_file_clicked} @@ -306,7 +314,7 @@ function preventDefault(fn) { {/if} - + {#if (session_type == 'poster' || open_method == 'modal')} @@ -455,6 +463,9 @@ function preventDefault(fn) { log_lvl: 1 }); + $events_slct.event_file_id = event_file_id; + $events_slct.event_file_obj = event_file_obj; + // window.postMessage({ type: 'download_event_file', event_file_id: event_file_id, filename: event_file_obj.filename, auto_download: true }, '*'); if ($events_loc.launcher.controller == 'local_push') { @@ -464,15 +475,18 @@ function preventDefault(fn) { // tick(); } }} + + class:outline-2={$events_slct.event_file_id == event_file_id} class=" - btn btn-sm + btn {btn_size} + gap-1 + min-w-full w-full max-w-96 preset-tonal-primary border border-primary-500 - min-w-72 lg:min-w-96 " title={`Download this file:\n${event_file_obj.filename}\n[API] SHA256: ${event_file_obj.hash_sha256.slice(0, 10)}...\nHosted ID: ${event_file_obj.hosted_file_id_random} Event File ID: ${event_file_id}`} > {#await ae_promises[event_file_id]} - + Downloading @@ -483,7 +497,7 @@ function preventDefault(fn) { {:then result} - + {event_file_obj.extension} {#if result === null} @@ -495,7 +509,12 @@ function preventDefault(fn) { {/await} - + {ae_util.shorten_string({string: event_file_obj.filename_no_ext, begin_length: 45, max_length: 65})} diff --git a/src/routes/events/[event_id]/(launcher)/launcher_menu.svelte b/src/routes/events/[event_id]/(launcher)/launcher_menu.svelte index 2c15092f..d96a1dd0 100644 --- a/src/routes/events/[event_id]/(launcher)/launcher_menu.svelte +++ b/src/routes/events/[event_id]/(launcher)/launcher_menu.svelte @@ -75,6 +75,7 @@ import { ae_snip, ae_loc, ae_sess, ae_api, ae_trig, slct, slct_trigger } from '$ import { events_loc, events_sess, events_slct, events_trigger } from '$lib/ae_events_stores'; import { events_func } from '$lib/ae_events_functions'; +import Event_launcher_file_cont from './launcher_file_cont.svelte'; import Menu_location_list_menu from './menu_location_list.svelte'; import Menu_session_list_menu from './menu_session_list.svelte'; @@ -129,6 +130,27 @@ let ae_promises: key_val = $state({
--> {#each $lq__event_event_file_obj_li as event_file_obj, index} + + + 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} {/if} @@ -262,7 +261,14 @@ let ae_promises: key_val = $state({ >