Still working on reports... Why are they not more responsive?

This commit is contained in:
Scott Idem
2025-09-04 18:50:50 -04:00
parent f72a77ba60
commit bd964cac80
3 changed files with 79 additions and 41 deletions

View File

@@ -3,7 +3,8 @@ interface Props {
// Exports // Exports
container_class_li?: string|Array<string>; container_class_li?: string|Array<string>;
// display_mode?: string; // 'default', 'compact', 'minimal', 'launcher' // display_mode?: string; // 'default', 'compact', 'minimal', 'launcher'
event_presenter_id_random_li?: Array<string>; // event_presenter_id_random_li?: Array<string>;
event_presenter_obj_li?: Array<any>;
link_to_type?: string; link_to_type?: string;
link_to_id?: string; link_to_id?: string;
// export let lq__event_presentation_obj // export let lq__event_presentation_obj
@@ -15,10 +16,11 @@ interface Props {
let { let {
container_class_li = [], container_class_li = [],
// display_mode = 'default', // display_mode = 'default',
event_presenter_id_random_li = $bindable([]), // event_presenter_id_random_li = $bindable(),
event_presenter_obj_li = $bindable(),
link_to_type, link_to_type,
link_to_id, link_to_id,
log_lvl = 0, log_lvl = $bindable(0),
show_presentation_fields = false, show_presentation_fields = false,
show_session_fields = false show_session_fields = false
}: Props = $props(); }: Props = $props();
@@ -27,6 +29,7 @@ let {
import Comp_event_presenter_obj_tbl from './ae_comp__event_presenter_obj_tbl.svelte'; import Comp_event_presenter_obj_tbl from './ae_comp__event_presenter_obj_tbl.svelte';
import { liveQuery } from "dexie"; import { liveQuery } from "dexie";
import { events_loc, events_sess, events_slct, events_trigger } from '$lib/ae_events_stores';
import { db_events } from "$lib/ae_events/db_events"; import { db_events } from "$lib/ae_events/db_events";
if (log_lvl) { if (log_lvl) {
@@ -38,6 +41,8 @@ if (log_lvl) {
// let ae_tmp: key_val = {}; // let ae_tmp: key_val = {};
// let ae_triggers: key_val = {}; // let ae_triggers: key_val = {};
let event_presenter_id_random_li: Array<string> = $state([]);
let dq__where_type_id_val: string = `${link_to_type}_id_random`; let dq__where_type_id_val: string = `${link_to_type}_id_random`;
let dq__where_eq_id_val: string = link_to_id; let dq__where_eq_id_val: string = link_to_id;
@@ -45,18 +50,42 @@ let dq__where_eq_id_val: string = link_to_id;
// *** Functions and Logic // *** Functions and Logic
let lq__event_presenter_obj_li = $derived(liveQuery(async () => { let lq__event_presenter_obj_li = $derived(liveQuery(async () => {
let results; let results: any;
if (event_presenter_id_random_li.length) { // let event_presenter_id_random_li = []; // This is to prevent the array from constantly updating and triggering the liveQuery.
results = await db_events.presenters
.bulkGet(event_presenter_id_random_li);
// for (let i = 0; i < $events_sess?.event_presenter_obj_li.length; i++) {
// let event_presenter_obj = $events_sess?.event_presenter_obj_li[i];
// let event_presenter_id_random = event_presenter_obj.event_presenter_id_random;
// event_presenter_id_random_li.push(event_presenter_id_random);
// }
if (event_presenter_obj_li?.length) {
if (log_lvl) {
console.log(`LQ - Using event_presenter_obj_li to get event presenters.`);
}
event_presenter_id_random_li = []; // This is to prevent the array from constantly updating and triggering the liveQuery.
for (let i = 0; i < event_presenter_obj_li.length; i++) {
let event_presenter_obj = event_presenter_obj_li[i];
let event_presenter_id_random = event_presenter_obj.event_presenter_id_random;
event_presenter_id_random_li.push(event_presenter_id_random);
}
// if (event_presenter_id_random_li.length) {
results = await db_events.presenters
.bulkGet(event_presenter_id_random_li);
// }
} else if (link_to_type && link_to_id) { } else if (link_to_type && link_to_id) {
console.log(`Trying where: ${dq__where_type_id_val}; equals: ${dq__where_eq_id_val}`); console.log(`Trying where: ${dq__where_type_id_val}; equals: ${dq__where_eq_id_val}`);
event_presenter_id_random_li = [];
results = await db_events.presenters results = await db_events.presenters
.where(dq__where_type_id_val) .where(dq__where_type_id_val)
.equals(dq__where_eq_id_val) .equals(dq__where_eq_id_val)
.sortBy('name'); .sortBy('name');
} else { } else {
event_presenter_id_random_li = [];
results = []; results = [];
} }
@@ -65,18 +94,19 @@ let lq__event_presenter_obj_li = $derived(liveQuery(async () => {
</script> </script>
{#if $lq__event_presenter_obj_li && $lq__event_presenter_obj_li?.length} <!-- {#if $lq__event_presenter_obj_li && $lq__event_presenter_obj_li?.length} -->
<!-- display_mode={display_mode} --> <!-- {#if event_presenter_id_random_li && event_presenter_id_random_li?.length > 0} -->
<Comp_event_presenter_obj_tbl {#if event_presenter_id_random_li && event_presenter_id_random_li?.length}
container_class_li={container_class_li} <Comp_event_presenter_obj_tbl
lq__event_presenter_obj_li={lq__event_presenter_obj_li} container_class_li={container_class_li}
show_presentation_fields={show_presentation_fields} lq__event_presenter_obj_li={lq__event_presenter_obj_li}
show_session_fields={show_session_fields} show_presentation_fields={show_presentation_fields}
log_lvl={log_lvl} show_session_fields={show_session_fields}
> log_lvl={log_lvl}
</Comp_event_presenter_obj_tbl> >
</Comp_event_presenter_obj_tbl>
{:else} {:else}
<section class="main_content grow px-1 md:px-2 pb-28 flex flex-col gap-1 items-center"> <section class="main_content grow px-1 md:px-2 pb-28 flex flex-col gap-1 items-center">
<p>No presenters available to show. WRAPPER</p> <p>No presenters available to show. WRAPPER</p>
</section> </section>
{/if} {/if}

View File

@@ -48,7 +48,7 @@ let lq__event_obj = $derived(liveQuery(async () => {
let event_file_id_random_li: Array<string> = $state(); let event_file_id_random_li: Array<string> = $state();
let event_session_id_random_li: Array<string> = $state(); let event_session_id_random_li: Array<string> = $state();
// let event_presentation_id_random_li: Array<string>; // let event_presentation_id_random_li: Array<string>;
let event_presenter_id_random_li: Array<string> = $state(); // let event_presenter_id_random_li: Array<string> = $state();
// let load_obj_li_results: Promise<any>|key_val; // let load_obj_li_results: Promise<any>|key_val;
// let search_submit_results: Promise<any>|key_val; // let search_submit_results: Promise<any>|key_val;
@@ -354,6 +354,8 @@ async function handle_search__event_presenter(
$events_sess.pres_mgmt.status_qry__search = 'loading'; $events_sess.pres_mgmt.status_qry__search = 'loading';
$events_sess.pres_mgmt.status_rpt[$events_loc.pres_mgmt.show_report] = 'loading'; $events_sess.pres_mgmt.status_rpt[$events_loc.pres_mgmt.show_report] = 'loading';
$events_slct.event_presenter_obj_li = []; // Clear out any previous results.
// let order_by_li = {'updated_on': 'DESC', 'priority': 'DESC', 'sort': 'DESC', 'given_name': 'ASC', 'family_name': 'ASC', 'email': 'ASC', 'created_on': 'DESC'}; // let order_by_li = {'updated_on': 'DESC', 'priority': 'DESC', 'sort': 'DESC', 'given_name': 'ASC', 'family_name': 'ASC', 'email': 'ASC', 'created_on': 'DESC'};
ae_promises.search__event_presenter = events_func.search__event_presenter({ ae_promises.search__event_presenter = events_func.search__event_presenter({
@@ -378,6 +380,7 @@ async function handle_search__event_presenter(
// Processing the results from the search. // Processing the results from the search.
$events_sess.pres_mgmt.status_qry__search = 'processing'; $events_sess.pres_mgmt.status_qry__search = 'processing';
$events_sess.pres_mgmt.status_rpt[$events_loc.pres_mgmt.show_report] = 'processing'; $events_sess.pres_mgmt.status_rpt[$events_loc.pres_mgmt.show_report] = 'processing';
// $events_sess.event_presenter_obj_li = search_results;
$events_slct.event_presenter_obj_li = search_results; $events_slct.event_presenter_obj_li = search_results;
console.log(search_results); console.log(search_results);
// $events_sess.pres_mgmt.status_qry__search = 'done'; // $events_sess.pres_mgmt.status_qry__search = 'done';
@@ -388,14 +391,14 @@ async function handle_search__event_presenter(
} }
// console.log(`TEST search: ${$lq_kv__event_presenter_obj_li}`); // console.log(`TEST search: ${$lq_kv__event_presenter_obj_li}`);
event_presenter_id_random_li = []; // event_presenter_id_random_li = [];
// We need to loop through the array of objects and get the event_presenter_id_random from each object a new list of event_presenter_id_randoms. Then we can use this list to get the full objects from the database. // We need to loop through the array of objects and get the event_presenter_id_random from each object a new list of event_presenter_id_randoms. Then we can use this list to get the full objects from the database.
let tmp_li = []; // This is to prevent the array from constantly updating and triggering the liveQuery. // let tmp_li = []; // This is to prevent the array from constantly updating and triggering the liveQuery.
for (let i = 0; i < $events_slct.event_presenter_obj_li.length; i++) { // for (let i = 0; i < $events_slct.event_presenter_obj_li.length; i++) {
tmp_li.push($events_slct.event_presenter_obj_li[i].event_presenter_id_random); // tmp_li.push($events_slct.event_presenter_obj_li[i].event_presenter_id_random);
} // }
event_presenter_id_random_li = tmp_li; // event_presenter_id_random_li = tmp_li;
// event_presenter_id_random_li = $events_slct.event_presenter_obj_li.map(presenter_obj => presenter_obj.event_presenter_id_random); // event_presenter_id_random_li = $events_slct.event_presenter_obj_li.map(presenter_obj => presenter_obj.event_presenter_id_random);
@@ -403,10 +406,10 @@ async function handle_search__event_presenter(
$events_sess.pres_mgmt.status_qry__search = 'done'; $events_sess.pres_mgmt.status_qry__search = 'done';
$events_sess.pres_mgmt.status_rpt[$events_loc.pres_mgmt.show_report] = 'done'; $events_sess.pres_mgmt.status_rpt[$events_loc.pres_mgmt.show_report] = 'done';
if (log_lvl > 1) { // if (log_lvl > 1) {
console.log(`TEST SEARCH - event_presenter_id_random_li:`, event_presenter_id_random_li); // console.log(`TEST SEARCH - event_presenter_id_random_li:`, event_presenter_id_random_li);
// console.log(`TEST SEARCH - search live query: ${$lq_kv__event_presenter_obj_li}`); // // console.log(`TEST SEARCH - search live query: ${$lq_kv__event_presenter_obj_li}`);
} // }
}); });
} }
@@ -857,10 +860,11 @@ async function handle_qry__event_session(
<!-- Show presenters that have agreed --> <!-- Show presenters that have agreed -->
{#if $events_loc.pres_mgmt.show_report == 'presenters_agree' && event_presenter_id_random_li} {#if $events_loc.pres_mgmt.show_report == 'presenters_agree' && $events_slct.event_presenter_obj_li}
<!-- <div class="overflow-x-auto"> --> <!-- <div class="overflow-x-auto"> -->
<h3 class="h4 text-center"> <h3 class="h4 text-center">
Presenters {#if $events_loc.pres_mgmt.rpt__presenter_agree}Agreed{:else}Not Agreed{/if} Presenters {#if $events_loc.pres_mgmt.rpt__presenter_agree}Agreed{:else}Not Agreed{/if}
{$events_slct.event_presenter_obj_li.length ?? 0} found
<button <button
type="button" type="button"
onclick={() => { onclick={() => {
@@ -892,12 +896,14 @@ async function handle_qry__event_session(
<p class="text-center text-red-500 font-bold">This report is not complete! Some records will be missing from these results. This report is being worked on.</p> <p class="text-center text-red-500 font-bold">This report is not complete! Some records will be missing from these results. This report is being worked on.</p>
{/if} --> {/if} -->
<!-- bind:event_presenter_id_random_li={event_presenter_id_random_li} -->
<!-- {#if event_presenter_id_random_li && event_presenter_id_random_li?.length } --> <!-- {#if event_presenter_id_random_li && event_presenter_id_random_li?.length } -->
<Comp_event_presenter_obj_tbl <Comp_event_presenter_obj_tbl
bind:event_presenter_id_random_li={event_presenter_id_random_li}
bind:event_presenter_obj_li={$events_slct.event_presenter_obj_li}
show_presentation_fields={true} show_presentation_fields={true}
show_session_fields={true} show_session_fields={true}
log_lvl={log_lvl} log_lvl={2}
> >
</Comp_event_presenter_obj_tbl> </Comp_event_presenter_obj_tbl>
<!-- {:else} <!-- {:else}
@@ -906,11 +912,12 @@ async function handle_qry__event_session(
{/if} {/if}
<!-- Show presenters with bios --> <!-- Show presenters with bios -->
{#if $events_loc.pres_mgmt.show_report == 'presenters_biography' && event_presenter_id_random_li} {#if $events_loc.pres_mgmt.show_report == 'presenters_biography' && $events_slct.event_presenter_obj_li}
<h3 class="h4 text-center">Presenters with Bios</h3> <h3 class="h4 text-center">Presenters with Bios</h3>
<Comp_event_presenter_obj_tbl <Comp_event_presenter_obj_tbl
bind:event_presenter_id_random_li={event_presenter_id_random_li}
bind:event_presenter_obj_li={$events_slct.event_presenter_obj_li}
show_presentation_fields={true} show_presentation_fields={true}
show_session_fields={true} show_session_fields={true}
log_lvl={log_lvl} log_lvl={log_lvl}
@@ -919,7 +926,7 @@ async function handle_qry__event_session(
{/if} {/if}
<!-- Show overview of presenters (status checklist) --> <!-- Show overview of presenters (status checklist) -->
{#if $events_loc.pres_mgmt.show_report == 'presenters_overview' && event_presenter_id_random_li} {#if $events_loc.pres_mgmt.show_report == 'presenters_overview' && $events_slct.event_presenter_obj_li}
<h3 class="h4 text-center"> <h3 class="h4 text-center">
Presenters Overview Presenters Overview
<!-- Sorting options (presenter name, start_datetime, updated_on) --> <!-- Sorting options (presenter name, start_datetime, updated_on) -->
@@ -1020,7 +1027,8 @@ async function handle_qry__event_session(
</h3> </h3>
<Comp_event_presenter_obj_tbl <Comp_event_presenter_obj_tbl
bind:event_presenter_id_random_li={event_presenter_id_random_li}
bind:event_presenter_obj_li={$events_slct.event_presenter_obj_li}
show_presentation_fields={true} show_presentation_fields={true}
show_session_fields={true} show_session_fields={true}
log_lvl={log_lvl} log_lvl={log_lvl}

View File

@@ -299,9 +299,9 @@ if (browser) {
lq__journal_entry_obj_li={lq__journal_entry_obj_li} lq__journal_entry_obj_li={lq__journal_entry_obj_li}
/> />
{:else} {:else}
<section class="main_content grow px-1 md:px-2 pb-28 flex flex-col gap-1 items-center"> <section class="main_content grow px-1 md:px-2 pb-28 flex flex-col gap-1 items-center">
<p>No journal entry available to show.</p> <p>No journal entry available to show.</p>
</section> </section>
{/if} {/if}