Making wrappers for some of the elements that will be expecting LQ variables directly.

This commit is contained in:
Scott Idem
2024-09-18 11:36:59 -04:00
parent 04fd046c53
commit 86b309f048
8 changed files with 165 additions and 177 deletions

View File

@@ -11,13 +11,15 @@ import { events_loc, events_sess, events_slct, events_trigger, events_trig_kv }
import { events_func } from '$lib/ae_events_functions';
import Element_ae_crud from '$lib/element_ae_crud.svelte';
import Comp_event_presenter_obj_li from './ae_comp__event_presenter_obj_li.svelte';
import Comp_event_presenter_obj_li from './ae_comp__event_presenter_obj_li_wrapper.svelte';
import Element_manage_event_file_li_wrap from '$lib/element_manage_event_file_li_all.svelte';
// Exports
export let container_class_li: string|Array<string> = [];
export let lq__event_obj: any;
export let lq__event_presentation_obj_li: any;
export let log_lvl: number = 0;
// It is important that these not be set to a value! It messes with the Dexie LiveQuery.
// export let event_presentation_id_random_li: Array<string>;
let event_presentation_id_random_li: Array<string>;
@@ -333,9 +335,9 @@ Loading...
<!-- Show presenters for this presentation -->
{#if event_presentation_obj?.event_presentation_id_random}
<Comp_event_presenter_obj_li
lq__event_obj={lq__event_obj}
link_to_type={'event_presentation'}
link_to_id={event_presentation_obj?.event_presentation_id_random}
log_lvl={log_lvl}
>
</Comp_event_presenter_obj_li>
{/if}

View File

@@ -1,7 +1,5 @@
<script lang="ts">
// Imports
import { onMount } from 'svelte';
import type { key_val } from '$lib/ae_stores';
// import { ae_util } from '$lib/ae_utils';
// import { api, send_email } from '$lib/api';
@@ -17,116 +15,25 @@ import { events_func } from '$lib/ae_events_functions';
// Exports
export let container_class_li: string|Array<string> = [];
export let lq__event_obj: any;
export let display_mode: string = 'default'; // 'default', 'compact', 'minimal', 'launcher'
export let link_to_type: string;
export let link_to_id: string;
export let event_presenter_id_random_li: Array<string> = [''];
export let allow_basic: boolean = false;
export let allow_moderator: boolean = false;
export let lq__event_presenter_obj_li: any;
export let log_lvl: number = 0;
export let display_mode: string = 'default'; // 'default', 'compact', 'minimal', 'launcher'
// Variables
// This more or less overrides the default access control. Some elements may have their own access control.
if ($ae_loc.administrator_access) {
allow_basic = true;
allow_moderator = true;
} else if ($ae_loc.trusted_access) {
allow_basic = true;
allow_moderator = true;
if (log_lvl) {
console.log(`link_to_type: ${link_to_type}; link_to_id: ${link_to_id}`);
}
// Variables
// let ae_promises: key_val = {};
let ae_tmp: key_val = {};
// let ae_triggers: key_val = {};
// let dq__where_type_val: string = link_to_type; // "event", "event_session", "event_presentation"
let dq__where_type_id_val: string = `${link_to_type}_id_random`;
let dq__where_eq_id_val: string = link_to_id;
// if (dq__where_type_val == 'event_presentation') {
// dq__where_type_val = 'event_session';
// dq__where_id_val = 'event_id_random';
// }
// Functions and Logic
import { browser } from '$app/environment';
if (browser) {
console.log('Browser environment detected.');
}
let lq__event_presentation_obj = liveQuery(
() => db_events.presentations.get($events_slct.event_presentation_id)
);
// let lq_kv__event_presenter_obj_li_2 = liveQuery(
// () => db_events.presenters
// .bulkGet(event_presenter_id_random_li)
// .then(results => {
// // console.log(`LQ Results:`, results);
// // If the results are an array
// if (results.length == 1) {
// // If the first item is undefined we need to do something.
// if (results[0] == undefined) {
// console.log('Something went wrong! No presenters found?');
// // return [];
// // return [{ id: '' }];
// // return 'NOTHING???';
// }
// return results;
// }else if (results.length > 1) {
// return results;
// } else {
// return ['No presenters found.'];
// }
// // return results;
// })
// .catch(error => {
// console.error(`LQ Error: ${error}`);
// return ['No presenters found.'];
// })
// .finally(() => {
// console.log(`LQ Finally:`, $lq_kv__event_presenter_obj_li_2);
// })
// );
// let lq__event_presentation_obj_li = liveQuery(
// () => db_events.presentations
// // .where({event_session_id_random: $events_slct.event_session_id})
// .where('event_session_id_random')
// .equals($events_slct.event_session_id)
// .sortBy('name')
// );
// let lq__event_presenter_obj = liveQuery(
// () => db_events.presenters.get($events_slct.event_presenter_id)
// );
// let lq__event_presenter_obj_li = liveQuery(
// () => db_events.presenters
// // .where({event_presentation_id_random: $events_slct.event_presentation_id})
// .where('event_presentation_id_random')
// .equals($events_slct.event_presentation_id)
// .sortBy('name')
// );
let lq__event_presenter_obj_li = liveQuery(
() => db_events.presenters
.where(dq__where_type_id_val)
.equals(dq__where_eq_id_val)
.sortBy('name')
);
// $slct.person_obj_kv = {}; // This is intended for a person lookup list when generated.
onMount(() => {
console.log('Pres Mgmt [comp]: +ae_comp__event_presenter_obj_li.svelte');
console.log(`link_to_type: ${link_to_type}; link_to_id: ${link_to_id}`);
});
</script>

View File

@@ -0,0 +1,58 @@
<script lang="ts">
// Imports
import Comp_event_presenter_obj_li from './ae_comp__event_presenter_obj_li.svelte';
import { liveQuery } from "dexie";
import { db_events } from "$lib/db_events";
// Exports
export let container_class_li: string|Array<string> = [];
export let display_mode: string = 'default'; // 'default', 'compact', 'minimal', 'launcher'
export let event_presenter_id_random_li: Array<string>;
export let link_to_type: string;
export let link_to_id: string;
// export let lq__event_presentation_obj
export let log_lvl: number = 0;
if (log_lvl) {
console.log(`link_to_type: ${link_to_type}; link_to_id: ${link_to_id}`);
}
// Variables
// let ae_promises: key_val = {};
// let ae_tmp: key_val = {};
// let ae_triggers: key_val = {};
let dq__where_type_id_val: string = `${link_to_type}_id_random`;
let dq__where_eq_id_val: string = link_to_id;
// Functions and Logic
$: lq__event_presenter_obj_li = liveQuery(async () => {
if (link_to_type && link_to_id) {
let results = await db_events.presenters
.where(dq__where_type_id_val)
.equals(dq__where_eq_id_val)
.sortBy('name')
return results;
} else if (event_presenter_id_random_li.length > 0) {
let results = await db_events.presenters
.bulkGet(event_presenter_id_random_li);
return results;
} else {
return null;
}
});
</script>
<Comp_event_presenter_obj_li
container_class_li={container_class_li}
display_mode={display_mode}
link_to_type={link_to_type}
link_to_id={link_to_id}
lq__event_presenter_obj_li={lq__event_presenter_obj_li}
log_lvl={log_lvl}
>
</Comp_event_presenter_obj_li>

View File

@@ -3,40 +3,51 @@
// import type { key_val } from '$lib/ae_stores';
import { ae_util } from '$lib/ae_utils';
import { liveQuery } from "dexie";
import { db_events } from "$lib/db_events";
// import { liveQuery } from "dexie";
// import { db_events } from "$lib/db_events";
// import { ae_snip, ae_loc, ae_sess, ae_api, ae_trig, slct, slct_trigger } from '$lib/ae_stores';
// import { events_loc, events_sess, events_slct, events_trigger, events_trig_kv } from '$lib/ae_events_stores';
// import { events_func } from '$lib/ae_events_functions';
// Exports
export let container_class_li: string|Array<string> = [];
export let event_presenter_id_random_li: Array<string> = [];
export let allow_basic: boolean = false;
export let allow_moderator: boolean = false;
export let display_mode: string = 'default'; // 'default', 'compact', 'minimal', 'launcher'
export let link_to_type: string;
export let link_to_id: string;
export let event_presenter_id_random_li: Array<string>;
export let lq__event_presenter_obj_li: any;
export let log_lvl: number = 0;
// export let allow_basic: boolean = false;
// export let allow_moderator: boolean = false;
export let show_presentation_fields: boolean = false;
export let show_session_fields: boolean = false;
export let display_mode: string = 'default'; // 'default', 'compact', 'minimal', 'launcher'
if (log_lvl) {
console.log(`link_to_type: ${link_to_type}; link_to_id: ${link_to_id}`);
}
// Variables
// let ae_promises: key_val = {};
// let ae_tmp: key_val = {};
// let ae_triggers: key_val = {};
// Functions and Logic
// let lq__event_presenter_obj = liveQuery(
// () => db_events.presenters.get($events_slct.event_presenter_id)
// );
let lq_kv__event_presenter_obj_li = liveQuery(
() => db_events.presenters
.bulkGet(event_presenter_id_random_li)
);
// let lq_kv__event_presenter_obj_li = liveQuery(
// () => db_events.presenters
// .bulkGet(event_presenter_id_random_li)
// );
</script>
<section class="ae_comp event_presenter_obj_tbl container {container_class_li}">
{#if event_presenter_id_random_li && $lq_kv__event_presenter_obj_li && $lq_kv__event_presenter_obj_li?.length > 0 && $lq_kv__event_presenter_obj_li?.length == event_presenter_id_random_li?.length}
{#if event_presenter_id_random_li && $lq__event_presenter_obj_li && $lq__event_presenter_obj_li?.length > 0 && $lq__event_presenter_obj_li?.length == event_presenter_id_random_li?.length}
<div class="overflow-auto space-y-2">
<h2 class="h3">
@@ -44,12 +55,12 @@ let lq_kv__event_presenter_obj_li = liveQuery(
Results:
</span>
{#if $lq_kv__event_presenter_obj_li.length}
{#if $lq__event_presenter_obj_li.length}
<span class="text-3xl font-bold bg-success-100 px-4 border rounded-lg border-success-200"
title="Count {$lq_kv__event_presenter_obj_li.length ?? 'None'}"
title="Count {$lq__event_presenter_obj_li.length ?? 'None'}"
>
<span class="fas fa-list-ol mx-4"></span>
{$lq_kv__event_presenter_obj_li.length ?? 'None'}
{$lq__event_presenter_obj_li.length ?? 'None'}
</span>
{/if}
</h2>
@@ -82,7 +93,7 @@ let lq_kv__event_presenter_obj_li = liveQuery(
</thead>
<tbody
class="">
{#each $lq_kv__event_presenter_obj_li as event_presenter_obj}
{#each $lq__event_presenter_obj_li as event_presenter_obj}
<tr
class:dim={event_presenter_obj?.hide}>
<td class="px-4 py-2">

View File

@@ -0,0 +1,62 @@
<script lang="ts">
// Imports
import Comp_event_presenter_obj_tbl from './ae_comp__event_presenter_obj_tbl.svelte';
import { liveQuery } from "dexie";
import { db_events } from "$lib/db_events";
// Exports
export let container_class_li: string|Array<string> = [];
export let display_mode: string = 'default'; // 'default', 'compact', 'minimal', 'launcher'
export let event_presenter_id_random_li: Array<string>;
export let link_to_type: string;
export let link_to_id: string;
// export let lq__event_presentation_obj
export let log_lvl: number = 0;
export let show_presentation_fields: boolean = false;
export let show_session_fields: boolean = false;
if (log_lvl) {
console.log(`link_to_type: ${link_to_type}; link_to_id: ${link_to_id}`);
}
// Variables
// let ae_promises: key_val = {};
// let ae_tmp: key_val = {};
// let ae_triggers: key_val = {};
let dq__where_type_id_val: string = `${link_to_type}_id_random`;
let dq__where_eq_id_val: string = link_to_id;
// Functions and Logic
$: lq__event_presenter_obj_li = liveQuery(async () => {
if (link_to_type && link_to_id) {
let results = await db_events.presenters
.where(dq__where_type_id_val)
.equals(dq__where_eq_id_val)
.sortBy('name')
return results;
} else if (event_presenter_id_random_li.length > 0) {
let results = await db_events.presenters
.bulkGet(event_presenter_id_random_li);
return results;
} else {
return null;
}
});
</script>
<Comp_event_presenter_obj_tbl
container_class_li={container_class_li}
display_mode={display_mode}
link_to_type={link_to_type}
link_to_id={link_to_id}
event_presenter_id_random_li={event_presenter_id_random_li}
lq__event_presenter_obj_li={lq__event_presenter_obj_li}
log_lvl={log_lvl}
>
</Comp_event_presenter_obj_tbl>

View File

@@ -9,7 +9,7 @@ import { ae_util } from '$lib/ae_utils';
// import { api, send_email } from '$lib/api';
import Element_ae_crud from '$lib/element_ae_crud.svelte';
// import Element_data_store from '$lib/element_data_store_v2.svelte';
import Comp_event_presenter_obj_li from './ae_comp__event_presenter_obj_li.svelte';
import Comp_event_presenter_obj_li from './ae_comp__event_presenter_obj_li_wrapper.svelte';
import Element_manage_event_file_li from '$lib/element_manage_event_file_li_direct.svelte';
import { liveQuery } from "dexie";
@@ -185,6 +185,7 @@ let lq_kv__event_session_obj_li = liveQuery(
link_to_type={'event_session'}
link_to_id={session_obj?.event_session_id_random}
display_mode={'minimal'}
log_lvl={log_lvl}
>
</Comp_event_presenter_obj_li>
{/if}

View File

@@ -6,7 +6,7 @@ import type { key_val } from '$lib/ae_stores';
import { ae_util } from '$lib/ae_utils';
import Element_ae_crud from '$lib/element_ae_crud.svelte';
// import Element_data_store from '$lib/element_data_store_v2.svelte';
import Comp_event_presenter_obj_li from './ae_comp__event_presenter_obj_li.svelte';
import Comp_event_presenter_obj_li from './ae_comp__event_presenter_obj_li_wrapper.svelte';
import Element_manage_event_file_li from '$lib/element_manage_event_file_li_direct.svelte';
// import { liveQuery } from "dexie";
@@ -40,62 +40,7 @@ export let show__session_presentations: boolean = false;
let ae_tmp: key_val = {};
let ae_triggers: key_val = {};
// let dq__where_type_val: string = link_to_type; // "event", "event_location", "event_track"
// let dq__where_type_id_val: string = `${link_to_type}_id_random`;
// let dq__where_eq_id_val: string = link_to_id;
// Functions and Logic
import { browser } from '$app/environment';
if (browser) {
console.log('Browser environment detected.');
}
// let lq__event_obj = liveQuery(
// () => db_events.events.get($events_slct.event_id)
// );
// let lq__event_session_obj_li = liveQuery(
// () => db_events.sessions
// .where(dq__where_type_id_val)
// .equals(dq__where_eq_id_val)
// .sortBy('name')
// );
// let lq_kv__event_session_obj_li = liveQuery(
// () => db_events.sessions
// .bulkGet(event_session_id_random_li)
// .then(results => {
// // console.log(`LQ Results:`, results);
// // If the results are an array
// if (results.length == 1) {
// // If the first item is undefined we need to do something.
// if (results[0] == undefined) {
// console.log('Something went wrong! No sessions found?');
// // return [];
// // return [{ id: '' }];
// // return 'NOTHING???';
// }
// return results;
// }else if (results.length > 1) {
// return results;
// } else {
// return ['No sessions found.'];
// }
// // return results;
// })
// .catch(error => {
// console.error(`LQ Error: ${error}`);
// return ['No sessions found.'];
// })
// .finally(() => {
// console.log(`LQ Finally:`, $lq_kv__event_session_obj_li);
// })
// );
</script>
@@ -172,12 +117,13 @@ if (browser) {
</a>
{#if show__session_presentations && $ae_loc.manager_access}
<!-- <Comp_event_presenter_obj_li
<Comp_event_presenter_obj_li
link_to_type={'event_session'}
link_to_id={session_obj?.event_session_id_random}
display_mode={'minimal'}
log_lvl={log_lvl}
>
</Comp_event_presenter_obj_li> -->
</Comp_event_presenter_obj_li>
{/if}

View File

@@ -11,8 +11,7 @@ import { ae_util } from '$lib/ae_utils';
// import Element_data_store from '$lib/element_data_store_v2.svelte';
import Comp_event_file_obj_tbl from '../../../ae_comp__event_file_obj_tbl.svelte';
import Comp_event_session_obj_tbl from '../../../ae_comp__event_session_obj_tbl.svelte';
// import Comp_event_presenter_obj_li from '../../../ae_comp__event_presenter_obj_li.svelte';
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_wrapper.svelte';
import { liveQuery } from "dexie";
// import { core_func } from '$lib/ae_core_functions';
@@ -589,6 +588,7 @@ async function handle_qry__event_session(
bind:event_presenter_id_random_li={event_presenter_id_random_li}
show_presentation_fields={true}
show_session_fields={true}
log_lvl={log_lvl}
>
</Comp_event_presenter_obj_tbl>
{/if}
@@ -601,6 +601,7 @@ async function handle_qry__event_session(
bind:event_presenter_id_random_li={event_presenter_id_random_li}
show_presentation_fields={true}
show_session_fields={true}
log_lvl={log_lvl}
>
</Comp_event_presenter_obj_tbl>
{/if}