Work on event reports. Making them easier to manage.
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "osit-aether-app-svelte",
|
"name": "osit-aether-app-svelte",
|
||||||
"version": "3.3.1",
|
"version": "3.3.2",
|
||||||
"description": "One Sky IT's Aether App created with Svelte, SvelteKit, Tailwind CSS, Lucide, Font Awesome, and Skeleton UI. -Scott Idem",
|
"description": "One Sky IT's Aether App created with Svelte, SvelteKit, Tailwind CSS, Lucide, Font Awesome, and Skeleton UI. -Scott Idem",
|
||||||
"homepage": "https://oneskyit.com/",
|
"homepage": "https://oneskyit.com/",
|
||||||
"private": true,
|
"private": true,
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ interface Props {
|
|||||||
// export let allow_moderator: boolean = false;
|
// export let allow_moderator: boolean = false;
|
||||||
show_presentation_fields?: boolean;
|
show_presentation_fields?: boolean;
|
||||||
show_session_fields?: boolean;
|
show_session_fields?: boolean;
|
||||||
|
hide_session_code?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
let {
|
let {
|
||||||
@@ -15,7 +16,8 @@ let {
|
|||||||
lq__event_presenter_obj_li,
|
lq__event_presenter_obj_li,
|
||||||
log_lvl = $bindable(0),
|
log_lvl = $bindable(0),
|
||||||
show_presentation_fields = false,
|
show_presentation_fields = false,
|
||||||
show_session_fields = false
|
show_session_fields = false,
|
||||||
|
hide_session_code = false,
|
||||||
}: Props = $props();
|
}: Props = $props();
|
||||||
|
|
||||||
// Imports
|
// Imports
|
||||||
@@ -81,6 +83,9 @@ if (log_lvl) {
|
|||||||
<th class="px-4 py-2">Files</th>
|
<th class="px-4 py-2">Files</th>
|
||||||
|
|
||||||
{#if show_session_fields}
|
{#if show_session_fields}
|
||||||
|
<th class="px-4 py-2" class:hidden={hide_session_code}>
|
||||||
|
Code
|
||||||
|
</th>
|
||||||
<th class="px-4 py-2">
|
<th class="px-4 py-2">
|
||||||
Session
|
Session
|
||||||
</th>
|
</th>
|
||||||
@@ -127,6 +132,12 @@ if (log_lvl) {
|
|||||||
<td class="px-4 py-2">{event_presenter_obj?.file_count ?? '0'}</td>
|
<td class="px-4 py-2">{event_presenter_obj?.file_count ?? '0'}</td>
|
||||||
|
|
||||||
{#if show_session_fields}
|
{#if show_session_fields}
|
||||||
|
<td
|
||||||
|
class="px-4 py-2 lg:text-xs"
|
||||||
|
class:hidden={hide_session_code}
|
||||||
|
>
|
||||||
|
{event_presenter_obj?.event_session_code ?? '-- not set --'}
|
||||||
|
</td>
|
||||||
<td class="px-4 py-2 lg:text-xs">
|
<td class="px-4 py-2 lg:text-xs">
|
||||||
<span class="fas fa-chalkboard-teacher"></span>
|
<span class="fas fa-chalkboard-teacher"></span>
|
||||||
<a
|
<a
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ interface Props {
|
|||||||
log_lvl?: number;
|
log_lvl?: number;
|
||||||
show_presentation_fields?: boolean;
|
show_presentation_fields?: boolean;
|
||||||
show_session_fields?: boolean;
|
show_session_fields?: boolean;
|
||||||
|
hide_session_code?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
let {
|
let {
|
||||||
@@ -22,7 +23,8 @@ let {
|
|||||||
link_to_id,
|
link_to_id,
|
||||||
log_lvl = $bindable(0),
|
log_lvl = $bindable(0),
|
||||||
show_presentation_fields = false,
|
show_presentation_fields = false,
|
||||||
show_session_fields = false
|
show_session_fields = false,
|
||||||
|
hide_session_code = false,
|
||||||
}: Props = $props();
|
}: Props = $props();
|
||||||
|
|
||||||
// Imports
|
// Imports
|
||||||
@@ -115,6 +117,7 @@ let lq__event_presenter_obj_li = $derived(liveQuery(async () => {
|
|||||||
lq__event_presenter_obj_li={lq__event_presenter_obj_li}
|
lq__event_presenter_obj_li={lq__event_presenter_obj_li}
|
||||||
show_presentation_fields={show_presentation_fields}
|
show_presentation_fields={show_presentation_fields}
|
||||||
show_session_fields={show_session_fields}
|
show_session_fields={show_session_fields}
|
||||||
|
hide_session_code={hide_session_code}
|
||||||
log_lvl={log_lvl}
|
log_lvl={log_lvl}
|
||||||
>
|
>
|
||||||
</Comp_event_presenter_obj_tbl>
|
</Comp_event_presenter_obj_tbl>
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import { events_loc, events_sess, events_slct, events_trigger } from '$lib/ae_ev
|
|||||||
import { events_func } from '$lib/ae_events_functions';
|
import { events_func } from '$lib/ae_events_functions';
|
||||||
|
|
||||||
import Event_reports_page_menu from './event_reports_page_menu.svelte';
|
import Event_reports_page_menu from './event_reports_page_menu.svelte';
|
||||||
|
import Reports_presenters from './reports_presenters.svelte';
|
||||||
|
|
||||||
|
|
||||||
// Quickly save the data passed from the parent(s) to the Svelte stores, localStorage, and other.
|
// Quickly save the data passed from the parent(s) to the Svelte stores, localStorage, and other.
|
||||||
@@ -70,27 +71,27 @@ if ($events_loc.pres_mgmt.show_report == 'sessions_poc_agree') {
|
|||||||
handle_qry__event_session({
|
handle_qry__event_session({
|
||||||
qry_files: false,
|
qry_files: false,
|
||||||
});
|
});
|
||||||
} else if ($events_loc.pres_mgmt.show_report == 'presenters_agree') {
|
// } else if ($events_loc.pres_mgmt.show_report == 'presenters_agree') {
|
||||||
handle_search__event_presenter({
|
// handle_search__event_presenter({
|
||||||
agree: $events_loc.pres_mgmt.rpt__presenter_agree ?? false,
|
// agree: $events_loc.pres_mgmt.rpt__presenter_agree ?? false,
|
||||||
ft_search_str: '',
|
// ft_search_str: '',
|
||||||
lk_search_str: '',
|
// lk_search_str: '',
|
||||||
log_lvl: log_lvl,
|
// log_lvl: log_lvl,
|
||||||
});
|
// });
|
||||||
} else if ($events_loc.pres_mgmt.show_report == 'presenters_biography') {
|
// } else if ($events_loc.pres_mgmt.show_report == 'presenters_biography') {
|
||||||
handle_search__event_presenter({
|
// handle_search__event_presenter({
|
||||||
biography: true,
|
// biography: true,
|
||||||
ft_search_str: '',
|
// ft_search_str: '',
|
||||||
lk_search_str: '',
|
// lk_search_str: '',
|
||||||
log_lvl: log_lvl,
|
// log_lvl: log_lvl,
|
||||||
});
|
// });
|
||||||
} else if ($events_loc.pres_mgmt.show_report == 'presenters_overview') {
|
// } else if ($events_loc.pres_mgmt.show_report == 'presenters_overview') {
|
||||||
// NOT READY YET: Show overview of presenters' statuses. (for LCI)
|
// // NOT READY YET: Show overview of presenters' statuses. (for LCI)
|
||||||
handle_search__event_presenter({
|
// handle_search__event_presenter({
|
||||||
ft_search_str: '',
|
// ft_search_str: '',
|
||||||
lk_search_str: '',
|
// lk_search_str: '',
|
||||||
log_lvl: log_lvl,
|
// log_lvl: log_lvl,
|
||||||
});
|
// });
|
||||||
} else if ($events_loc.pres_mgmt.show_report == 'recent_files') {
|
} else if ($events_loc.pres_mgmt.show_report == 'recent_files') {
|
||||||
handle_qry__event_file({
|
handle_qry__event_file({
|
||||||
created_on_offset: $events_loc.pres_mgmt.qry__files_offset_seconds ?? 0,
|
created_on_offset: $events_loc.pres_mgmt.qry__files_offset_seconds ?? 0,
|
||||||
@@ -866,9 +867,26 @@ async function handle_qry__event_session(
|
|||||||
</Comp_event_session_obj_tbl>
|
</Comp_event_session_obj_tbl>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
<Reports_presenters
|
||||||
|
lq__event_obj={lq__event_obj}
|
||||||
|
event_presenter_obj_li={$events_sess.event_presenter_obj_li}
|
||||||
|
|
||||||
|
rpt__name={$events_loc.pres_mgmt.show_report}
|
||||||
|
rpt__sort={$events_loc.pres_mgmt.qry__presenter_sort}
|
||||||
|
rpt__enabled={$events_loc.pres_mgmt.qry_enabled}
|
||||||
|
rpt__hidden={$events_loc.pres_mgmt.qry_hidden}
|
||||||
|
rpt__limit={$events_loc.pres_mgmt.qry_limit__presenters}
|
||||||
|
|
||||||
|
qry__status={$events_sess.pres_mgmt.status_qry__search}
|
||||||
|
qry__count={$events_sess.event_presenter_obj_li?.length ?? 0}
|
||||||
|
|
||||||
|
hide_session_code={$events_loc.pres_mgmt?.hide__session_code}
|
||||||
|
|
||||||
|
log_lvl={log_lvl}
|
||||||
|
/>
|
||||||
|
|
||||||
<!-- Show presenters that have agreed -->
|
<!-- Show presenters that have agreed -->
|
||||||
{#if $events_loc.pres_mgmt.show_report == 'presenters_agree' && $events_sess.event_presenter_obj_li}
|
{#if 1==3 && $events_loc.pres_mgmt.show_report == 'presenters_agree' && $events_sess.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}
|
||||||
@@ -919,7 +937,7 @@ 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' && $events_sess.event_presenter_obj_li}
|
{#if 1==3 && $events_loc.pres_mgmt.show_report == 'presenters_biography' && $events_sess.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
|
||||||
@@ -932,7 +950,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' && $events_sess.event_presenter_obj_li}
|
{#if 1==3 && $events_loc.pres_mgmt.show_report == 'presenters_overview' && $events_sess.event_presenter_obj_li}
|
||||||
<header class="w-full flex flex-row flex-wrap items-center justify-center gap-1">
|
<header class="w-full flex flex-row flex-wrap items-center justify-center gap-1">
|
||||||
<h3 class="h4 text-center">
|
<h3 class="h4 text-center">
|
||||||
Presenters Overview
|
Presenters Overview
|
||||||
|
|||||||
414
src/routes/events/[event_id]/reports/reports_presenters.svelte
Normal file
414
src/routes/events/[event_id]/reports/reports_presenters.svelte
Normal file
@@ -0,0 +1,414 @@
|
|||||||
|
<script lang="ts">
|
||||||
|
interface Props {
|
||||||
|
log_lvl?: number;
|
||||||
|
lq__event_obj: any;
|
||||||
|
|
||||||
|
event_presenter_obj_li?: any[];
|
||||||
|
|
||||||
|
rpt__name?: string;
|
||||||
|
rpt__sort?: string;
|
||||||
|
rpt__order_by_li?: any;
|
||||||
|
rpt__enabled?: string;
|
||||||
|
rpt__hidden?: string;
|
||||||
|
rpt__limit?: number;
|
||||||
|
|
||||||
|
qry__status?: string;
|
||||||
|
qry__count?: number;
|
||||||
|
|
||||||
|
qry__trigger?: boolean;
|
||||||
|
|
||||||
|
show_presentation_fields?: boolean;
|
||||||
|
show_session_fields?: boolean;
|
||||||
|
hide_session_code?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
let {
|
||||||
|
log_lvl = $bindable(0),
|
||||||
|
lq__event_obj, // This is the live query so it updates automatically anyways?
|
||||||
|
|
||||||
|
event_presenter_obj_li = $bindable([]),
|
||||||
|
|
||||||
|
rpt__name = $bindable('presenters_overview'), // presenters_agree, presenters_biography, presenters_overview
|
||||||
|
rpt__sort = $bindable('updated_on'), // updated_on, given_name, family_name, email, start_datetime
|
||||||
|
rpt__order_by_li = $bindable({'updated_on': 'DESC', 'priority': 'DESC', 'sort': 'DESC', 'given_name': 'ASC', 'family_name': 'ASC', 'email': 'ASC', 'created_on': 'DESC'}),
|
||||||
|
rpt__enabled = $bindable('enabled'), // enabled, disabled, all
|
||||||
|
rpt__hidden = $bindable('not_hidden'), // hidden, not_hidden, all
|
||||||
|
rpt__limit = $bindable(150),
|
||||||
|
|
||||||
|
qry__status = $bindable(''), // loading, processing, done
|
||||||
|
qry__count = $bindable(0),
|
||||||
|
|
||||||
|
qry__trigger = $bindable(true),
|
||||||
|
|
||||||
|
show_presentation_fields = false,
|
||||||
|
show_session_fields = false,
|
||||||
|
hide_session_code = false,
|
||||||
|
}: Props = $props();
|
||||||
|
|
||||||
|
// *** Import Svelte specific
|
||||||
|
|
||||||
|
// *** Import other supporting libraries
|
||||||
|
|
||||||
|
// *** Import Aether specific variables and functions
|
||||||
|
import type { key_val } from '$lib/ae_stores';
|
||||||
|
// import { ae_util } from '$lib/ae_utils/ae_utils';
|
||||||
|
import { ae_snip, ae_loc, ae_sess, ae_api, ae_trig, slct, slct_trigger } from '$lib/ae_stores';
|
||||||
|
// import { db_events } from "$lib/ae_events/db_events";
|
||||||
|
import { events_loc, events_sess, events_slct, events_trigger } from '$lib/ae_events_stores';
|
||||||
|
import { events_func } from '$lib/ae_events_functions';
|
||||||
|
import Comp_event_presenter_obj_tbl from './../presenter/ae_comp__event_presenter_obj_tbl_wrapper.svelte';
|
||||||
|
|
||||||
|
let ae_promises: key_val = $state({});
|
||||||
|
|
||||||
|
let sort_option_kv: key_val = {
|
||||||
|
'updated_on': {
|
||||||
|
name: 'Updated On',
|
||||||
|
field_kv: {
|
||||||
|
'event_presentation_start_datetime': 'ASC',
|
||||||
|
'priority': 'DESC',
|
||||||
|
'sort': 'DESC',
|
||||||
|
'given_name': 'ASC',
|
||||||
|
'family_name': 'ASC',
|
||||||
|
'email': 'ASC',
|
||||||
|
'updated_on': 'DESC',
|
||||||
|
'created_on': 'DESC',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'given_name': {
|
||||||
|
name: 'Given Name',
|
||||||
|
field_kv: {
|
||||||
|
'given_name': 'ASC',
|
||||||
|
'family_name': 'ASC',
|
||||||
|
'updated_on': 'DESC',
|
||||||
|
'priority': 'DESC',
|
||||||
|
'sort': 'DESC',
|
||||||
|
'email': 'ASC',
|
||||||
|
'created_on': 'DESC',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'family_name': {
|
||||||
|
name: 'Family Name',
|
||||||
|
field_kv: {
|
||||||
|
'family_name': 'ASC',
|
||||||
|
'given_name': 'ASC',
|
||||||
|
'updated_on': 'DESC',
|
||||||
|
'priority': 'DESC',
|
||||||
|
'sort': 'DESC',
|
||||||
|
'email': 'ASC',
|
||||||
|
'created_on': 'DESC',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'email': {
|
||||||
|
name: 'Email',
|
||||||
|
field_kv: {
|
||||||
|
'email': 'ASC',
|
||||||
|
'given_name': 'ASC',
|
||||||
|
'family_name': 'ASC',
|
||||||
|
'updated_on': 'DESC',
|
||||||
|
'priority': 'DESC',
|
||||||
|
'sort': 'DESC',
|
||||||
|
'created_on': 'DESC',
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'start_datetime': {
|
||||||
|
name: 'Start Date Time',
|
||||||
|
field_kv: {
|
||||||
|
'event_presentation_start_datetime': 'ASC',
|
||||||
|
'priority': 'DESC',
|
||||||
|
'sort': 'DESC',
|
||||||
|
'given_name': 'ASC',
|
||||||
|
'family_name': 'ASC',
|
||||||
|
'email': 'ASC',
|
||||||
|
'updated_on': 'DESC',
|
||||||
|
'created_on': 'DESC',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
$effect(() => {
|
||||||
|
if (qry__trigger) {
|
||||||
|
qry__trigger = false;
|
||||||
|
if (rpt__name == 'presenters_agree') {
|
||||||
|
handle_search__event_presenter({
|
||||||
|
agree: $events_loc.pres_mgmt.rpt__presenter_agree ?? false,
|
||||||
|
ft_search_str: '',
|
||||||
|
lk_search_str: '',
|
||||||
|
order_by_li: rpt__order_by_li,
|
||||||
|
log_lvl: log_lvl,
|
||||||
|
});
|
||||||
|
} else if (rpt__name == 'presenters_biography') {
|
||||||
|
handle_search__event_presenter({
|
||||||
|
biography: true,
|
||||||
|
ft_search_str: '',
|
||||||
|
lk_search_str: '',
|
||||||
|
order_by_li: rpt__order_by_li,
|
||||||
|
log_lvl: log_lvl,
|
||||||
|
});
|
||||||
|
} else if (rpt__name == 'presenters_overview') {
|
||||||
|
// NOT READY YET: Show overview of presenters' statuses. (for LCI)
|
||||||
|
handle_search__event_presenter({
|
||||||
|
ft_search_str: '',
|
||||||
|
lk_search_str: '',
|
||||||
|
order_by_li: rpt__order_by_li,
|
||||||
|
log_lvl: log_lvl,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
async function handle_search__event_presenter(
|
||||||
|
{
|
||||||
|
agree = null,
|
||||||
|
biography = null,
|
||||||
|
ft_search_str = '',
|
||||||
|
lk_search_str = '',
|
||||||
|
enabled = rpt__hidden,
|
||||||
|
hidden = rpt__enabled,
|
||||||
|
limit = rpt__limit,
|
||||||
|
order_by_li = {'updated_on': 'DESC', 'priority': 'DESC', 'sort': 'DESC', 'given_name': 'ASC', 'family_name': 'ASC', 'email': 'ASC', 'created_on': 'DESC'},
|
||||||
|
// params = {
|
||||||
|
// 'qry__enabled': $events_loc.pres_mgmt.qry_enabled ?? 'enabled',
|
||||||
|
// 'qry__hidden': $events_loc.pres_mgmt.qry_hidden ?? 'not_hidden',
|
||||||
|
// 'qry__limit': $events_loc.pres_mgmt.qry_limit__presenters ?? 199,
|
||||||
|
// },
|
||||||
|
// try_cache = true,
|
||||||
|
log_lvl = 0,
|
||||||
|
}: {
|
||||||
|
agree?: null|boolean,
|
||||||
|
biography?: null|boolean,
|
||||||
|
ft_search_str?: string,
|
||||||
|
lk_search_str?: string,
|
||||||
|
// search_delay?: number, // In milliseconds
|
||||||
|
// max_tries?: number,
|
||||||
|
enabled?: string,
|
||||||
|
hidden?: string,
|
||||||
|
limit?: number,
|
||||||
|
order_by_li?: key_val, // Order by fields and directions.
|
||||||
|
// params?: key_val,
|
||||||
|
// try_cache?: boolean,
|
||||||
|
log_lvl?: number,
|
||||||
|
}
|
||||||
|
) {
|
||||||
|
log_lvl = 2;
|
||||||
|
if (log_lvl) {
|
||||||
|
console.log('handle_search__event_presenter()');
|
||||||
|
}
|
||||||
|
|
||||||
|
$events_sess.pres_mgmt.status_qry__search = 'loading';
|
||||||
|
$events_sess.pres_mgmt.status_rpt[rpt__name] = 'loading';
|
||||||
|
qry__status = 'loading';
|
||||||
|
qry__count = 0;
|
||||||
|
|
||||||
|
$events_sess.event_presenter_obj_li = [];
|
||||||
|
$events_slct.event_presenter_obj_li = []; // Clear out any previous results.
|
||||||
|
event_presenter_obj_li = [];
|
||||||
|
|
||||||
|
// 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({
|
||||||
|
api_cfg: $ae_api,
|
||||||
|
event_id: $events_slct.event_id,
|
||||||
|
agree: agree,
|
||||||
|
biography: biography,
|
||||||
|
fulltext_search_qry_str: ft_search_str,
|
||||||
|
ft_presenter_search_qry_str: null,
|
||||||
|
like_search_qry_str: lk_search_str,
|
||||||
|
like_presentation_search_qry_str: lk_search_str,
|
||||||
|
like_presenter_search_qry_str: lk_search_str,
|
||||||
|
// external_event_id: $events_loc.pres_mgmt.default__external_registration_id,
|
||||||
|
enabled: enabled,
|
||||||
|
hidden: hidden,
|
||||||
|
limit: limit,
|
||||||
|
order_by_li: order_by_li,
|
||||||
|
// try_cache: try_cache,
|
||||||
|
log_lvl: log_lvl,
|
||||||
|
})
|
||||||
|
.then(function (search_results) {
|
||||||
|
// Processing the results from the search.
|
||||||
|
$events_sess.pres_mgmt.status_qry__search = 'processing';
|
||||||
|
$events_sess.pres_mgmt.status_rpt[rpt__name] = 'processing';
|
||||||
|
qry__status = 'processing';
|
||||||
|
qry__count = search_results?.length ?? 0;
|
||||||
|
|
||||||
|
$events_sess.event_presenter_obj_li = search_results;
|
||||||
|
// $events_slct.event_presenter_obj_li = search_results;
|
||||||
|
event_presenter_obj_li = search_results;
|
||||||
|
console.log(event_presenter_obj_li);
|
||||||
|
// $events_sess.pres_mgmt.status_qry__search = 'done';
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
if (log_lvl) {
|
||||||
|
console.log('TEST SEARCH - Search done. Pulling out the event_presenter_id_randoms.');
|
||||||
|
}
|
||||||
|
// console.log(`TEST search: ${$lq_kv__event_presenter_obj_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;
|
||||||
|
|
||||||
|
// event_presenter_id_random_li = $events_slct.event_presenter_obj_li.map(presenter_obj => presenter_obj.event_presenter_id_random);
|
||||||
|
|
||||||
|
// Finally done with the search.
|
||||||
|
$events_sess.pres_mgmt.status_qry__search = 'done';
|
||||||
|
$events_sess.pres_mgmt.status_rpt[rpt__name] = 'done';
|
||||||
|
|
||||||
|
qry__status = '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}`);
|
||||||
|
// }
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Show presenters that have agreed -->
|
||||||
|
{#if rpt__name == 'presenters_agree'}
|
||||||
|
<!-- <div class="overflow-x-auto"> -->
|
||||||
|
<h3 class="h4 text-center">
|
||||||
|
Presenters {#if $events_loc.pres_mgmt.rpt__presenter_agree}Agreed{:else}Not Agreed{/if}
|
||||||
|
{event_presenter_obj_li.length ?? 0} found
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
onclick={() => {
|
||||||
|
$events_loc.pres_mgmt.rpt__presenter_agree = !$events_loc.pres_mgmt.rpt__presenter_agree;
|
||||||
|
// rpt__name = '';
|
||||||
|
|
||||||
|
// ae_promises.handle_search__event_presenter = handle_search__event_presenter({
|
||||||
|
// agree: $events_loc.pres_mgmt.rpt__presenter_agree ?? false,
|
||||||
|
// ft_search_str: '',
|
||||||
|
// lk_search_str: '',
|
||||||
|
// log_lvl: log_lvl,
|
||||||
|
// });
|
||||||
|
rpt__name = 'presenters_agree';
|
||||||
|
qry__trigger = true;
|
||||||
|
}}
|
||||||
|
class="ae_btn_info btn btn-sm m-1"
|
||||||
|
>
|
||||||
|
{#if $events_loc.pres_mgmt.rpt__presenter_agree}
|
||||||
|
<!-- <span class="fas fa-check m-1"></span> -->
|
||||||
|
<span class="fas fa-toggle-on m-1"></span>
|
||||||
|
Agreed
|
||||||
|
{:else}
|
||||||
|
<!-- <span class="fas fa-times m-1"></span> -->
|
||||||
|
<span class="fas fa-toggle-off m-1"></span>
|
||||||
|
Not Agreed
|
||||||
|
{/if}
|
||||||
|
</button>
|
||||||
|
</h3>
|
||||||
|
<!-- {#if !$events_loc.pres_mgmt.rpt__presenter_agree}
|
||||||
|
<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_obj_li={event_presenter_obj_li}
|
||||||
|
show_presentation_fields={true}
|
||||||
|
show_session_fields={true}
|
||||||
|
log_lvl={2}
|
||||||
|
>
|
||||||
|
</Comp_event_presenter_obj_tbl> -->
|
||||||
|
<!-- {:else}
|
||||||
|
<p class="text-center text-red-500 font-bold">No presenters found for this report.</p>
|
||||||
|
{/if} -->
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Show presenters with bios -->
|
||||||
|
{#if $events_loc.pres_mgmt.show_report == 'presenters_biography'}
|
||||||
|
<h3 class="h4 text-center">Presenters with Bios</h3>
|
||||||
|
|
||||||
|
<!-- <Comp_event_presenter_obj_tbl
|
||||||
|
bind:event_presenter_obj_li={event_presenter_obj_li}
|
||||||
|
show_presentation_fields={true}
|
||||||
|
show_session_fields={true}
|
||||||
|
log_lvl={log_lvl}
|
||||||
|
>
|
||||||
|
</Comp_event_presenter_obj_tbl> -->
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Show overview of presenters (status checklist) -->
|
||||||
|
{#if $events_loc.pres_mgmt.show_report == 'presenters_overview'}
|
||||||
|
<header class="w-full flex flex-row flex-wrap items-center justify-center gap-1">
|
||||||
|
<h3 class="h4 text-center">
|
||||||
|
Presenters Overview
|
||||||
|
</h3>
|
||||||
|
{#if qry__status == 'loading'}
|
||||||
|
<span class="fas fa-spinner fa-spin m-1"></span>
|
||||||
|
<span>Loading...</span>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
<div class="flex flex-row items-center justify-center">
|
||||||
|
<!-- Sorting options (presenter name, start_datetime, updated_on) -->
|
||||||
|
<label class="label text-sm">
|
||||||
|
<span class="fas fa-sort m-1"></span>
|
||||||
|
Sort by:
|
||||||
|
|
||||||
|
<select
|
||||||
|
class="inline-block select text-sm w-36 px-1 m-1 ae_btn_info"
|
||||||
|
bind:value={rpt__sort}
|
||||||
|
onchange={(event) => {
|
||||||
|
if (event.target.value) {
|
||||||
|
rpt__sort = event.target.value;
|
||||||
|
} else {
|
||||||
|
rpt__sort = 'updated_on';
|
||||||
|
}
|
||||||
|
|
||||||
|
rpt__order_by_li = sort_option_kv[rpt__sort]?.field_kv ?? sort_option_kv['updated_on'].field_kv;
|
||||||
|
|
||||||
|
// ae_promises.handle_search__event_presenter = handle_search__event_presenter({
|
||||||
|
// // ft_search_str: '',
|
||||||
|
// // lk_search_str: '',
|
||||||
|
// order_by_li: $events_loc.pres_mgmt.qry__presenter_order_by_li,
|
||||||
|
// log_lvl: log_lvl,
|
||||||
|
// });
|
||||||
|
rpt__name = 'presenters_overview';
|
||||||
|
qry__trigger = true;
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<option value="updated_on">Updated On</option>
|
||||||
|
<option value="given_name">Given Name</option>
|
||||||
|
<option value="family_name">Family Name</option>
|
||||||
|
<option value="email">Email</option>
|
||||||
|
<option value="start_datetime">Start Date Time</option>
|
||||||
|
<!-- <option value="created_on">Created On</option> -->
|
||||||
|
<!-- <option value="sort">Sort</option> -->
|
||||||
|
<!-- <option value="priority">Priority</option> -->
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<!-- <Comp_event_presenter_obj_tbl
|
||||||
|
bind:event_presenter_obj_li={event_presenter_obj_li}
|
||||||
|
show_presentation_fields={true}
|
||||||
|
show_session_fields={true}
|
||||||
|
log_lvl={log_lvl}
|
||||||
|
>
|
||||||
|
</Comp_event_presenter_obj_tbl> -->
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
|
||||||
|
{#if event_presenter_obj_li}
|
||||||
|
<Comp_event_presenter_obj_tbl
|
||||||
|
bind:event_presenter_obj_li={event_presenter_obj_li}
|
||||||
|
show_presentation_fields={true}
|
||||||
|
show_session_fields={true}
|
||||||
|
hide_session_code={hide_session_code}
|
||||||
|
log_lvl={log_lvl}
|
||||||
|
>
|
||||||
|
</Comp_event_presenter_obj_tbl>
|
||||||
|
{/if}
|
||||||
Reference in New Issue
Block a user