The Launcher works pretty well. Except for the native app...

This commit is contained in:
Scott Idem
2025-10-16 16:07:37 -04:00
parent 8d15a5ba0b
commit 8b22c0fc34
7 changed files with 97 additions and 65 deletions

View File

@@ -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({
</strong>
</div> -->
{#each $lq__event_event_file_obj_li as event_file_obj, index}
<Event_launcher_file_cont
event_file_id={event_file_obj.event_file_id_random}
event_file_obj={event_file_obj}
hide_launch_icon={true}
hide_meta={true}
hide_created_on={true}
hide_os={true}
hide_size={true}
show_bak_download={$ae_loc.trusted_access && $ae_loc.edit_mode}
btn_size={'btn-sm'}
text_size={'text-xs'}
text_size_md={'text-xs'}
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_session_obj?.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}
/>
<button
disabled={!$ae_loc.trusted_access}
onclick={() => {
@@ -194,49 +216,26 @@ let ae_promises: key_val = $state({
{#if $lq__location_event_file_obj_li}
<div class="w-full flex flex-col gap-0.5">
{#each $lq__location_event_file_obj_li as event_file_obj, index}
<button
disabled={!$ae_loc.trusted_access}
onclick={() => {
// ae_promises[event_file_obj.event_file_id_random]
ae_promises[event_file_obj?.event_file_id_random] = api.download_hosted_file({
api_cfg: $ae_api,
hosted_file_id: event_file_obj?.hosted_file_id_random,
return_file: true,
filename: event_file_obj?.filename,
auto_download: true,
log_lvl: 0
});
}}
class="
btn btn-sm
text-xs w-full
preset-tonal-primary
hover:preset-tonal-success
transition-all
"
title={`Download this file:\n${event_file_obj.filename}\n[API] SHA256: ${event_file_obj.hash_sha256.slice(0, 10)}... Hosted ID: ${event_file_obj.hosted_file_id_random} Event File ID: ${event_file_obj.event_file_id_random}`}
>
{#await ae_promises[event_file_obj.event_file_id_random]}
<span class="fas fa-spinner fa-spin mx-1"></span>
<span class="">
Downloading
{#if $ae_sess.api_download_kv[event_file_obj.hosted_file_id_random]}
{$ae_sess.api_download_kv[event_file_obj.hosted_file_id_random].percent_completed}%
{/if}
:
</span>
{:then}
<!-- <span class="fas fa-download mx-1"></span> -->
<span class="fas fa-{ae_util.file_extension_icon(event_file_obj.extension)}"></span>
<!-- <span class="text-sm">
Download:
</span> -->
{/await}
<Event_launcher_file_cont
event_file_id={event_file_obj.event_file_id_random}
event_file_obj={event_file_obj}
hide_launch_icon={true}
hide_meta={true}
hide_created_on={true}
hide_os={true}
hide_size={true}
show_bak_download={$ae_loc.trusted_access && $ae_loc.edit_mode}
btn_size={'btn-sm'}
text_size={'text-xs'}
text_size_md={'text-xs'}
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_session_obj?.name}
<span class="grow">
{ae_util.shorten_filename({filename: event_file_obj.filename, max_length: 30})}
</span>
</button>
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}
</div>
{/if}
@@ -262,7 +261,14 @@ let ae_promises: key_val = $state({
>
<button
onclick={() => {
$events_loc.launcher.show_content__hidden_files = !$events_loc.launcher.show_content__hidden_files;
if ($events_loc.launcher.show_content__hidden_files) {
$events_loc.launcher.show_content__hidden_files = false;
$events_loc.launcher.hide_content__draft_files = true;
} else {
$events_loc.launcher.show_content__hidden_files = true;
$events_loc.launcher.hide_content__draft_files = false;
}
}}
class="
btn btn-sm
@@ -272,6 +278,7 @@ let ae_promises: key_val = $state({
hover:preset-tonal-success
transition-all
"
title="Toggle showing hidden files. Including files marked as 'draft'."
>
{#if $events_loc.launcher.show_content__hidden_files}
<span class="fas fa-eye-slash m-1 text-neutral-800/80"></span>