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
container_class_li?: string|Array<string>;
// 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_id?: string;
// export let lq__event_presentation_obj
@@ -15,10 +16,11 @@ interface Props {
let {
container_class_li = [],
// 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_id,
log_lvl = 0,
log_lvl = $bindable(0),
show_presentation_fields = false,
show_session_fields = false
}: Props = $props();
@@ -27,6 +29,7 @@ let {
import Comp_event_presenter_obj_tbl from './ae_comp__event_presenter_obj_tbl.svelte';
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";
if (log_lvl) {
@@ -38,6 +41,8 @@ if (log_lvl) {
// let ae_tmp: 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_eq_id_val: string = link_to_id;
@@ -45,18 +50,42 @@ let dq__where_eq_id_val: string = link_to_id;
// *** Functions and Logic
let lq__event_presenter_obj_li = $derived(liveQuery(async () => {
let results;
let results: any;
if (event_presenter_id_random_li.length) {
results = await db_events.presenters
.bulkGet(event_presenter_id_random_li);
// let event_presenter_id_random_li = []; // This is to prevent the array from constantly updating and triggering the liveQuery.
// 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) {
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
.where(dq__where_type_id_val)
.equals(dq__where_eq_id_val)
.sortBy('name');
} else {
event_presenter_id_random_li = [];
results = [];
}
@@ -65,18 +94,19 @@ let lq__event_presenter_obj_li = $derived(liveQuery(async () => {
</script>
{#if $lq__event_presenter_obj_li && $lq__event_presenter_obj_li?.length}
<!-- display_mode={display_mode} -->
<Comp_event_presenter_obj_tbl
container_class_li={container_class_li}
lq__event_presenter_obj_li={lq__event_presenter_obj_li}
show_presentation_fields={show_presentation_fields}
show_session_fields={show_session_fields}
log_lvl={log_lvl}
>
</Comp_event_presenter_obj_tbl>
<!-- {#if $lq__event_presenter_obj_li && $lq__event_presenter_obj_li?.length} -->
<!-- {#if event_presenter_id_random_li && event_presenter_id_random_li?.length > 0} -->
{#if event_presenter_id_random_li && event_presenter_id_random_li?.length}
<Comp_event_presenter_obj_tbl
container_class_li={container_class_li}
lq__event_presenter_obj_li={lq__event_presenter_obj_li}
show_presentation_fields={show_presentation_fields}
show_session_fields={show_session_fields}
log_lvl={log_lvl}
>
</Comp_event_presenter_obj_tbl>
{:else}
<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>
</section>
<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>
</section>
{/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_session_id_random_li: Array<string> = $state();
// 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 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_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'};
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.
$events_sess.pres_mgmt.status_qry__search = '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;
console.log(search_results);
// $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}`);
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.
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++) {
tmp_li.push($events_slct.event_presenter_obj_li[i].event_presenter_id_random);
}
event_presenter_id_random_li = tmp_li;
// 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++) {
// 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 = $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_rpt[$events_loc.pres_mgmt.show_report] = 'done';
if (log_lvl > 1) {
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}`);
}
// if (log_lvl > 1) {
// 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}`);
// }
});
}
@@ -857,10 +860,11 @@ async function handle_qry__event_session(
<!-- 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"> -->
<h3 class="h4 text-center">
Presenters {#if $events_loc.pres_mgmt.rpt__presenter_agree}Agreed{:else}Not Agreed{/if}
{$events_slct.event_presenter_obj_li.length ?? 0} found
<button
type="button"
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>
{/if} -->
<!-- bind:event_presenter_id_random_li={event_presenter_id_random_li} -->
<!-- {#if event_presenter_id_random_li && event_presenter_id_random_li?.length } -->
<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_session_fields={true}
log_lvl={log_lvl}
log_lvl={2}
>
</Comp_event_presenter_obj_tbl>
<!-- {:else}
@@ -906,11 +912,12 @@ async function handle_qry__event_session(
{/if}
<!-- 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>
<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_session_fields={true}
log_lvl={log_lvl}
@@ -919,7 +926,7 @@ async function handle_qry__event_session(
{/if}
<!-- 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">
Presenters Overview
<!-- Sorting options (presenter name, start_datetime, updated_on) -->
@@ -1020,7 +1027,8 @@ async function handle_qry__event_session(
</h3>
<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_session_fields={true}
log_lvl={log_lvl}

View File

@@ -299,9 +299,9 @@ if (browser) {
lq__journal_entry_obj_li={lq__journal_entry_obj_li}
/>
{:else}
<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>
</section>
<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>
</section>
{/if}