From 4a1b0dac8615b318d6eb735494df2336faf9093b Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Thu, 2 Apr 2026 15:53:55 -0400 Subject: [PATCH] pres_mgmt config: remove legacy launcher option, add back button + dirty state to config UI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove show__launcher_link_legacy from PressMgmtRemoteCfg, PresMgmtLocState, and pres_mgmt_loc_defaults — the Flask/legacy launcher is retired - Sync function now hardcodes hide__launcher_link_legacy=true (always hidden) - Config page: back button to pres_mgmt, save buttons disabled until changes made - Fix {#each} key expressions in config page - Migrate e_app_access_type and element_manage_event_file_li to pres_mgmt_loc store - Add temporary svelte type augments file (src/types/) Co-Authored-By: Claude Sonnet 4.6 --- src/lib/ae_events/ae_events__event.ts | 4 +- .../app_components/e_app_access_type.svelte | 9 +-- .../element_manage_event_file_li.svelte | 7 +- .../ae_events_stores__pres_mgmt_defaults.ts | 3 - .../(pres_mgmt)/pres_mgmt/config/+page.svelte | 25 ++++--- src/types/temporary-svelte-augments.d.ts | 65 +++++++++++++++++++ 6 files changed, 93 insertions(+), 20 deletions(-) create mode 100644 src/types/temporary-svelte-augments.d.ts diff --git a/src/lib/ae_events/ae_events__event.ts b/src/lib/ae_events/ae_events__event.ts index 468828d7..7c88f7c1 100644 --- a/src/lib/ae_events/ae_events__event.ts +++ b/src/lib/ae_events/ae_events__event.ts @@ -1050,8 +1050,8 @@ export function sync_config__event_pres_mgmt({ // Launcher links (show__ in remote → invert to hide__ in local display state) loc.hide__launcher_link = !(pres_mgmt_cfg_remote?.show__launcher_link ?? false); - loc.hide__launcher_link_legacy = - !(pres_mgmt_cfg_remote?.show__launcher_link_legacy ?? false); + // Legacy Flask launcher is retired — always hide regardless of remote config + loc.hide__launcher_link_legacy = true; // Navigation / UI constraints loc.limit__navigation = diff --git a/src/lib/app_components/e_app_access_type.svelte b/src/lib/app_components/e_app_access_type.svelte index ebb27ebe..70e7b199 100644 --- a/src/lib/app_components/e_app_access_type.svelte +++ b/src/lib/app_components/e_app_access_type.svelte @@ -31,6 +31,7 @@ import { // import { core_func } from '$lib/ae_core/ae_core_functions'; // Ideally the Event related stores should not be imported here? import { events_loc } from '$lib/stores/ae_events_stores'; +import { pres_mgmt_loc } from '$lib/stores/ae_events_stores__pres_mgmt.svelte'; // import { db_events } from "$lib/db_events"; // export let hidden: boolean = false; @@ -364,10 +365,10 @@ function handle_clear_access() { type="button" onclick={() => { $ae_loc.sync_local_config = false; - $events_loc.pres_mgmt.sync_local_config = false; + pres_mgmt_loc.current.sync_local_config = false; $ae_loc.lock_config = false; - $events_loc.pres_mgmt.lock_config = false; + pres_mgmt_loc.current.lock_config = false; // dispatch_sync_local_config_changed(); // tick(); @@ -383,10 +384,10 @@ function handle_clear_access() { type="button" onclick={() => { $ae_loc.sync_local_config = true; - $events_loc.pres_mgmt.sync_local_config = true; + pres_mgmt_loc.current.sync_local_config = true; $ae_loc.lock_config = true; - $events_loc.pres_mgmt.lock_config = true; + pres_mgmt_loc.current.lock_config = true; // dispatch_sync_local_config_changed(); // tick(); diff --git a/src/lib/elements/element_manage_event_file_li.svelte b/src/lib/elements/element_manage_event_file_li.svelte index 9d218b82..5c9b42d2 100644 --- a/src/lib/elements/element_manage_event_file_li.svelte +++ b/src/lib/elements/element_manage_event_file_li.svelte @@ -23,6 +23,7 @@ import { events_slct, events_trigger } from '$lib/stores/ae_events_stores'; +import { pres_mgmt_loc } from '$lib/stores/ae_events_stores__pres_mgmt.svelte'; import { events_func } from '$lib/ae_events/ae_events_functions'; import AE_Comp_Hosted_Files_Download_Button from '$lib/ae_core/ae_comp__hosted_files_download_button.svelte'; import { @@ -76,7 +77,7 @@ let { let ae_promises: key_val = $state({}); let ae_tmp: key_val = $state({}); ae_tmp.show__file_li = true; -ae_tmp.show__direct_download = $events_loc.pres_mgmt.show__direct_download; +ae_tmp.show__direct_download = pres_mgmt_loc.current.show__direct_download; // let ae_triggers: key_val = {}; onMount(() => { @@ -674,8 +675,8 @@ async function handle_convert_pdf_to_image(event_file_obj: key_val) { value={null} selected={!event_file_obj.file_purpose} >-- purpose not set -- - {#if $events_loc.pres_mgmt?.file_purpose_option_kv} - {#each Object.entries($events_loc.pres_mgmt.file_purpose_option_kv as any) as [key, file_purpose_option] (key)} + {#if pres_mgmt_loc.current.file_purpose_option_kv} + {#each Object.entries(pres_mgmt_loc.current.file_purpose_option_kv as any) as [key, file_purpose_option] (key)}