From 7b61145a66dee24581ed98de856e408f5fdbe175 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Fri, 6 Feb 2026 16:45:10 -0500 Subject: [PATCH] refactor: ensure robust event file retrieval from Dexie cache - Reverted 'element_manage_event_file_li_direct.svelte' to use 'for_type' and 'for_id' for cache-aware filtering. - Enhanced 'element_manage_event_file_li_all.svelte' with a combined filter for specific and generic IDs. - Verified that ID synchronization in 'process_ae_obj__event_file_props' supports these retrieval patterns. --- src/lib/elements/element_manage_event_file_li_all.svelte | 9 +++++++++ .../elements/element_manage_event_file_li_direct.svelte | 6 ++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/lib/elements/element_manage_event_file_li_all.svelte b/src/lib/elements/element_manage_event_file_li_all.svelte index 5d5c3ac7..59634dec 100644 --- a/src/lib/elements/element_manage_event_file_li_all.svelte +++ b/src/lib/elements/element_manage_event_file_li_all.svelte @@ -48,6 +48,15 @@ let results = await db_events.file .where(dq__where_val) .equals(dq__where_eq_val) + .or('for_id') + .equals(dq__where_eq_val) + .filter((file) => { + // If using for_id, we should also verify for_type to avoid accidental cross-links + if (file.for_id === dq__where_eq_val) { + return file.for_type === link_to_type; + } + return true; + }) .reverse() .sortBy('created_on'); // .toArray() diff --git a/src/lib/elements/element_manage_event_file_li_direct.svelte b/src/lib/elements/element_manage_event_file_li_direct.svelte index 0eeb4948..91b12457 100644 --- a/src/lib/elements/element_manage_event_file_li_direct.svelte +++ b/src/lib/elements/element_manage_event_file_li_direct.svelte @@ -39,8 +39,9 @@ ae_tmp.show__direct_download = false; // let ae_triggers: key_val = {}; - let dq__where_val: string = `${link_to_type}_id`; - let dq__where_eq_val: string = link_to_id; + let dq__where_val: string = `for_type`; + let dq__where_eq_val: string = link_to_type; + let dq__where_for_id_eq_val: string = link_to_id; // This should only include files that are directly linked to an object (event, location, session, presenter, etc.). // I am not sure why, but doing reverse() and then sortBy() seems to sort in descending order. @@ -49,6 +50,7 @@ let results = await db_events.file .where(dq__where_val) .equals(dq__where_eq_val) + .and((file) => file.for_id == dq__where_for_id_eq_val) .reverse() .sortBy('created_on'); // .toArray()