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.
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user