From 79bc148e852c7ab6ba5351be56913b0042079b84 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Wed, 9 Oct 2024 20:47:46 -0400 Subject: [PATCH] We can now download files remotely! --- src/app.postcss | 6 +++ .../[event_id]/(launcher)/+layout.svelte | 39 +++++++++++++++++-- .../(launcher)/launcher_file_cont.svelte | 7 ++++ .../ae_comp__event_presenter_obj_li.svelte | 2 + 4 files changed, 51 insertions(+), 3 deletions(-) diff --git a/src/app.postcss b/src/app.postcss index 5cd27709..d7c57dd8 100644 --- a/src/app.postcss +++ b/src/app.postcss @@ -338,6 +338,12 @@ img.qr_code:focus { opacity: 0.5; color: hsla(0, 0%, 50%, .95); } +.dim_warning { + opacity: 0.5; + /* color: hsla(0, 100%, 50%, .95); */ + /* background should be hash marks */ + background-image: repeating-linear-gradient(-45deg, hsla(0, 100%, 50%, .25), hsla(0, 100%, 50%, .25) 10px, transparent 10px, transparent 20px); +} @media (max-width: 767px) { diff --git a/src/routes/events/[event_id]/(launcher)/+layout.svelte b/src/routes/events/[event_id]/(launcher)/+layout.svelte index 571c1556..71119f54 100644 --- a/src/routes/events/[event_id]/(launcher)/+layout.svelte +++ b/src/routes/events/[event_id]/(launcher)/+layout.svelte @@ -11,6 +11,7 @@ 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 { api } from '$lib/api'; 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'; @@ -167,7 +168,14 @@ function handle_ws_recv(event) { if (event.detail.type == 'cmd' && event.detail.cmd) { let cmd = event.detail.cmd; - console.log(cmd); + // console.log(cmd); + + if ($events_loc.launcher.controller != 'remote') { + if (log_lvl) { + console.log('Controller is not set to remote. Ignoring command.', cmd); + } + return; + } // AE Load (event session ID) if (cmd.startsWith('ae_load:')) { @@ -213,6 +221,33 @@ function handle_ws_recv(event) { let new_url_str = new_url.toString(); goto(new_url_str, {replaceState: false}); } + // AE Download (event file ID) + } else if (cmd.startsWith('ae_download:')) { + log_lvl = 1; + + let cmd_parts = cmd.split(':'); + let obj_parts = cmd_parts[1].split('='); + let obj_type = obj_parts[0]; + let obj_id = obj_parts[1]; + let obj_filename = cmd_parts[2]; + let obj_extension = cmd_parts[3]; + + if (log_lvl) { + console.log(`ae_download: ${obj_type} ${obj_id} ${obj_filename} ${obj_extension}`); + } + if (log_lvl > 1) { + console.log(cmd); + } + + ae_promises[obj_id] = api.download_hosted_file({ + api_cfg: $ae_api, + hosted_file_id: obj_id, // +'x' + return_file: true, + filename: `${obj_filename}`, + auto_download: true, + log_lvl: 1 + }); + // AE Open (event file ID) } else if (cmd.startsWith('ae_open:')) { @@ -227,8 +262,6 @@ function handle_ws_recv(event) { if (log_lvl > 1) { console.log(cmd); } - console.log(`ae_open: ${obj_type} ${obj_id}`); - // alert('ae_open: ' + obj_type + ' ' + obj_id); // NOTE: This is not finished yet. if (obj_type == 'event_file') { 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 dbc38e01..d30faf1c 100644 --- a/src/routes/events/[event_id]/(launcher)/launcher_file_cont.svelte +++ b/src/routes/events/[event_id]/(launcher)/launcher_file_cont.svelte @@ -388,6 +388,13 @@ async function handle_open_file() { }); // window.postMessage({ type: 'download_event_file', event_file_id: event_file_obj.event_file_id_random, filename: event_file_obj.filename, auto_download: true }, '*'); + + if ($events_loc.launcher.controller == 'local_push') { + console.log(`Local Push Controller Command: ae_download:hosted_file=${event_file_obj.hosted_file_id_random}`); + $events_sess.launcher.controller_cmd = `ae_download:hosted_file=${event_file_obj.hosted_file_id_random}:${new_filename}:${event_file_obj.extension}`; + $events_sess.launcher.controller_trigger_send = true; + // tick(); + } }} class=" btn btn-sm md:btn-md lg:btn-lg diff --git a/src/routes/events/[event_id]/presenter/ae_comp__event_presenter_obj_li.svelte b/src/routes/events/[event_id]/presenter/ae_comp__event_presenter_obj_li.svelte index 8f007d56..3398b9fd 100644 --- a/src/routes/events/[event_id]/presenter/ae_comp__event_presenter_obj_li.svelte +++ b/src/routes/events/[event_id]/presenter/ae_comp__event_presenter_obj_li.svelte @@ -101,6 +101,8 @@ let lq__event_presentation_obj = liveQuery(