Work on Event reports.
This commit is contained in:
@@ -494,6 +494,10 @@ export async function search__event_presenter(
|
||||
like_search_qry_str = null,
|
||||
like_presentation_search_qry_str = null,
|
||||
like_presenter_search_qry_str = null,
|
||||
enabled = 'enabled',
|
||||
hidden = 'not_hidden',
|
||||
limit = 49,
|
||||
offset = 0,
|
||||
order_by_li = {'priority': 'DESC', 'sort': 'DESC', 'given_name': 'ASC', 'family_name': 'ASC', 'email': 'ASC', 'updated_on': 'DESC', 'created_on': 'DESC'},
|
||||
params = {},
|
||||
try_cache = true,
|
||||
@@ -508,6 +512,10 @@ export async function search__event_presenter(
|
||||
like_search_qry_str?: null|string,
|
||||
like_presentation_search_qry_str?: null|string,
|
||||
like_presenter_search_qry_str?: null|string,
|
||||
enabled?: string,
|
||||
hidden?: string,
|
||||
limit?: number,
|
||||
offset?: number,
|
||||
order_by_li?: key_val,
|
||||
params?: any,
|
||||
try_cache?: boolean,
|
||||
@@ -518,10 +526,10 @@ export async function search__event_presenter(
|
||||
console.log(`*** search__event_presenter() *** event_id=${event_id}`);
|
||||
}
|
||||
|
||||
let enabled: string = (params.qry__enabled ?? 'enabled'); // all, disabled, enabled
|
||||
let hidden: string = (params.qry__hidden ?? 'not_hidden'); // all, hidden, not_hidden
|
||||
let limit: number = (params.qry__limit ?? 25); // 99
|
||||
let offset: number = (params.qry__offset ?? 0); // 0
|
||||
// let enabled: string = (params.qry__enabled ?? 'enabled'); // all, disabled, enabled
|
||||
// let hidden: string = (params.qry__hidden ?? 'not_hidden'); // all, hidden, not_hidden
|
||||
// let limit: number = (params.qry__limit ?? 25); // 99
|
||||
// let offset: number = (params.qry__offset ?? 0); // 0
|
||||
|
||||
let params_json: key_val = {};
|
||||
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
interface Props {
|
||||
// Exports
|
||||
container_class_li?: string|Array<string>;
|
||||
display_mode?: string; // 'default', 'compact', 'minimal', 'launcher'
|
||||
event_presenter_id_random_li: Array<string>;
|
||||
link_to_type: string;
|
||||
link_to_id: string;
|
||||
// display_mode?: string; // 'default', 'compact', 'minimal', 'launcher'
|
||||
event_presenter_id_random_li?: Array<string>;
|
||||
link_to_type?: string;
|
||||
link_to_id?: string;
|
||||
// export let lq__event_presentation_obj
|
||||
log_lvl?: number;
|
||||
show_presentation_fields?: boolean;
|
||||
@@ -14,8 +14,8 @@ interface Props {
|
||||
|
||||
let {
|
||||
container_class_li = [],
|
||||
display_mode = 'default',
|
||||
event_presenter_id_random_li = [],
|
||||
// display_mode = 'default',
|
||||
event_presenter_id_random_li = $bindable([]),
|
||||
link_to_type,
|
||||
link_to_id,
|
||||
log_lvl = 0,
|
||||
@@ -41,19 +41,24 @@ if (log_lvl) {
|
||||
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
|
||||
let lq__event_presenter_obj_li = $derived(liveQuery(async () => {
|
||||
if (link_to_type && link_to_id) {
|
||||
let results = await db_events.presenters
|
||||
let results;
|
||||
|
||||
if (event_presenter_id_random_li.length) {
|
||||
results = await db_events.presenters
|
||||
.bulkGet(event_presenter_id_random_li);
|
||||
|
||||
return results;
|
||||
} else if (link_to_type && link_to_id) {
|
||||
console.log(`Trying where: ${dq__where_type_id_val}; equals: ${dq__where_eq_id_val}`);
|
||||
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;
|
||||
|
||||
@@ -319,12 +319,15 @@ async function handle_search__event_presenter(
|
||||
biography = null,
|
||||
ft_search_str = '',
|
||||
lk_search_str = '',
|
||||
enabled = $events_loc.pres_mgmt.qry_enabled ?? 'enabled',
|
||||
hidden = $events_loc.pres_mgmt.qry_hidden ?? 'not_hidden',
|
||||
limit = $events_loc.pres_mgmt.qry_limit__presenters ?? 150,
|
||||
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,
|
||||
},
|
||||
// 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,
|
||||
}: {
|
||||
@@ -332,14 +335,18 @@ async function handle_search__event_presenter(
|
||||
biography?: null|boolean,
|
||||
ft_search_str?: string,
|
||||
lk_search_str?: string,
|
||||
order_by_li?: key_val, // Order by fields and directions.
|
||||
// search_delay?: number, // In milliseconds
|
||||
// max_tries?: number,
|
||||
params?: key_val,
|
||||
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()');
|
||||
}
|
||||
@@ -360,8 +367,10 @@ async function handle_search__event_presenter(
|
||||
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,
|
||||
params: params,
|
||||
// try_cache: try_cache,
|
||||
log_lvl: log_lvl,
|
||||
})
|
||||
@@ -433,7 +442,9 @@ async function handle_qry__event_session(
|
||||
log_lvl?: number,
|
||||
}
|
||||
) {
|
||||
console.log('handle_qry__event_session()');
|
||||
if (log_lvl) {
|
||||
console.log('handle_qry__event_session()');
|
||||
}
|
||||
|
||||
$events_sess.pres_mgmt.status_qry__search = 'loading';
|
||||
$events_sess.pres_mgmt.status_rpt[$events_loc.pres_mgmt.show_report] = 'loading';
|
||||
@@ -847,168 +858,174 @@ 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}
|
||||
<!-- <div class="overflow-x-auto"> -->
|
||||
<h3 class="h4 text-center">
|
||||
Presenters {#if $events_loc.pres_mgmt.rpt__presenter_agree}Agreed{:else}Not Agreed{/if}
|
||||
<button
|
||||
type="button"
|
||||
onclick={() => {
|
||||
$events_loc.pres_mgmt.rpt__presenter_agree = !$events_loc.pres_mgmt.rpt__presenter_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}
|
||||
<button
|
||||
type="button"
|
||||
onclick={() => {
|
||||
$events_loc.pres_mgmt.rpt__presenter_agree = !$events_loc.pres_mgmt.rpt__presenter_agree;
|
||||
$events_loc.pres_mgmt.show_report = '';
|
||||
|
||||
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,
|
||||
});
|
||||
}}
|
||||
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} -->
|
||||
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,
|
||||
});
|
||||
$events_loc.pres_mgmt.show_report = 'presenters_agree';
|
||||
}}
|
||||
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} -->
|
||||
|
||||
<Comp_event_presenter_obj_tbl
|
||||
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 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}
|
||||
show_presentation_fields={true}
|
||||
show_session_fields={true}
|
||||
log_lvl={log_lvl}
|
||||
>
|
||||
</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' && event_presenter_id_random_li}
|
||||
<h3 class="h4 text-center">Presenters with Bios</h3>
|
||||
<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}
|
||||
show_presentation_fields={true}
|
||||
show_session_fields={true}
|
||||
log_lvl={log_lvl}
|
||||
>
|
||||
</Comp_event_presenter_obj_tbl>
|
||||
<Comp_event_presenter_obj_tbl
|
||||
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}
|
||||
|
||||
<!-- Show overview of presenters (status checklist) -->
|
||||
{#if $events_loc.pres_mgmt.show_report == 'presenters_overview' && event_presenter_id_random_li}
|
||||
<h3 class="h4 text-center">
|
||||
Presenters Overview
|
||||
<!-- Sorting options (presenter name, start_datetime, updated_on) -->
|
||||
<label class="label text-sm">
|
||||
<span class="fas fa-sort m-1"></span>
|
||||
Sort by:
|
||||
<h3 class="h4 text-center">
|
||||
Presenters Overview
|
||||
<!-- 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 m-1 ae_btn_info"
|
||||
bind:value={$events_loc.pres_mgmt.qry__presenter_sort}
|
||||
onchange={(event) => {
|
||||
if (event.target.value) {
|
||||
$events_loc.pres_mgmt.qry__presenter_sort = event.target.value;
|
||||
} else {
|
||||
$events_loc.pres_mgmt.qry__presenter_sort = 'updated_on';
|
||||
}
|
||||
<select
|
||||
class="inline-block select text-sm w-36 m-1 ae_btn_info"
|
||||
bind:value={$events_loc.pres_mgmt.qry__presenter_sort}
|
||||
onchange={(event) => {
|
||||
if (event.target.value) {
|
||||
$events_loc.pres_mgmt.qry__presenter_sort = event.target.value;
|
||||
} else {
|
||||
$events_loc.pres_mgmt.qry__presenter_sort = 'updated_on';
|
||||
}
|
||||
|
||||
if ($events_loc.pres_mgmt.qry__presenter_sort == 'updated_on') {
|
||||
$events_loc.pres_mgmt.qry__presenter_order_by_li = {
|
||||
'updated_on': 'DESC',
|
||||
'priority': 'DESC',
|
||||
'sort': 'DESC',
|
||||
'given_name': 'ASC',
|
||||
'family_name': 'ASC',
|
||||
'email': 'ASC',
|
||||
'created_on': 'DESC',
|
||||
};
|
||||
} else if ($events_loc.pres_mgmt.qry__presenter_sort == 'given_name') {
|
||||
$events_loc.pres_mgmt.qry__presenter_order_by_li = {
|
||||
'given_name': 'ASC',
|
||||
'family_name': 'ASC',
|
||||
'updated_on': 'DESC',
|
||||
'priority': 'DESC',
|
||||
'sort': 'DESC',
|
||||
'email': 'ASC',
|
||||
'created_on': 'DESC',
|
||||
};
|
||||
} else if ($events_loc.pres_mgmt.qry__presenter_sort == 'family_name') {
|
||||
$events_loc.pres_mgmt.qry__presenter_order_by_li = {
|
||||
'family_name': 'ASC',
|
||||
'given_name': 'ASC',
|
||||
'updated_on': 'DESC',
|
||||
'priority': 'DESC',
|
||||
'sort': 'DESC',
|
||||
'email': 'ASC',
|
||||
'created_on': 'DESC',
|
||||
};
|
||||
} else if ($events_loc.pres_mgmt.qry__presenter_sort == 'email') {
|
||||
$events_loc.pres_mgmt.qry__presenter_order_by_li = {
|
||||
'email': 'ASC',
|
||||
'given_name': 'ASC',
|
||||
'family_name': 'ASC',
|
||||
'updated_on': 'DESC',
|
||||
'priority': 'DESC',
|
||||
'sort': 'DESC',
|
||||
'created_on': 'DESC',
|
||||
if ($events_loc.pres_mgmt.qry__presenter_sort == 'updated_on') {
|
||||
$events_loc.pres_mgmt.qry__presenter_order_by_li = {
|
||||
'updated_on': 'DESC',
|
||||
'priority': 'DESC',
|
||||
'sort': 'DESC',
|
||||
'given_name': 'ASC',
|
||||
'family_name': 'ASC',
|
||||
'email': 'ASC',
|
||||
'created_on': 'DESC',
|
||||
};
|
||||
} else if ($events_loc.pres_mgmt.qry__presenter_sort == 'given_name') {
|
||||
$events_loc.pres_mgmt.qry__presenter_order_by_li = {
|
||||
'given_name': 'ASC',
|
||||
'family_name': 'ASC',
|
||||
'updated_on': 'DESC',
|
||||
'priority': 'DESC',
|
||||
'sort': 'DESC',
|
||||
'email': 'ASC',
|
||||
'created_on': 'DESC',
|
||||
};
|
||||
} else if ($events_loc.pres_mgmt.qry__presenter_sort == 'family_name') {
|
||||
$events_loc.pres_mgmt.qry__presenter_order_by_li = {
|
||||
'family_name': 'ASC',
|
||||
'given_name': 'ASC',
|
||||
'updated_on': 'DESC',
|
||||
'priority': 'DESC',
|
||||
'sort': 'DESC',
|
||||
'email': 'ASC',
|
||||
'created_on': 'DESC',
|
||||
};
|
||||
} else if ($events_loc.pres_mgmt.qry__presenter_sort == 'email') {
|
||||
$events_loc.pres_mgmt.qry__presenter_order_by_li = {
|
||||
'email': 'ASC',
|
||||
'given_name': 'ASC',
|
||||
'family_name': 'ASC',
|
||||
'updated_on': 'DESC',
|
||||
'priority': 'DESC',
|
||||
'sort': 'DESC',
|
||||
'created_on': 'DESC',
|
||||
|
||||
};
|
||||
} else if ($events_loc.pres_mgmt.qry__presenter_sort == 'start_datetime') {
|
||||
$events_loc.pres_mgmt.qry__presenter_order_by_li = {
|
||||
'event_presentation_start_datetime': 'ASC',
|
||||
'priority': 'DESC',
|
||||
'sort': 'DESC',
|
||||
'given_name': 'ASC',
|
||||
'family_name': 'ASC',
|
||||
'email': 'ASC',
|
||||
'updated_on': 'DESC',
|
||||
'created_on': 'DESC',
|
||||
};
|
||||
} else {
|
||||
$events_loc.pres_mgmt.qry__presenter_order_by_li = {
|
||||
'updated_on': 'DESC',
|
||||
'priority': 'DESC',
|
||||
'sort': 'DESC',
|
||||
'given_name': 'ASC',
|
||||
'family_name': 'ASC',
|
||||
'email': 'ASC',
|
||||
'created_on': 'DESC',
|
||||
};
|
||||
}
|
||||
handle_search__event_presenter({
|
||||
order_by_li: $events_loc.pres_mgmt.qry__presenter_order_by_li,
|
||||
log_lvl: log_lvl,
|
||||
});
|
||||
$events_loc.pres_mgmt.show_report = 'presenters_overview';
|
||||
}}
|
||||
};
|
||||
} else if ($events_loc.pres_mgmt.qry__presenter_sort == 'start_datetime') {
|
||||
$events_loc.pres_mgmt.qry__presenter_order_by_li = {
|
||||
'event_presentation_start_datetime': 'ASC',
|
||||
'priority': 'DESC',
|
||||
'sort': 'DESC',
|
||||
'given_name': 'ASC',
|
||||
'family_name': 'ASC',
|
||||
'email': 'ASC',
|
||||
'updated_on': 'DESC',
|
||||
'created_on': 'DESC',
|
||||
};
|
||||
} else {
|
||||
$events_loc.pres_mgmt.qry__presenter_order_by_li = {
|
||||
'updated_on': 'DESC',
|
||||
'priority': 'DESC',
|
||||
'sort': 'DESC',
|
||||
'given_name': 'ASC',
|
||||
'family_name': 'ASC',
|
||||
'email': 'ASC',
|
||||
'created_on': 'DESC',
|
||||
};
|
||||
}
|
||||
handle_search__event_presenter({
|
||||
order_by_li: $events_loc.pres_mgmt.qry__presenter_order_by_li,
|
||||
log_lvl: log_lvl,
|
||||
});
|
||||
$events_loc.pres_mgmt.show_report = 'presenters_overview';
|
||||
}}
|
||||
>
|
||||
<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>
|
||||
|
||||
</h3>
|
||||
<Comp_event_presenter_obj_tbl
|
||||
bind:event_presenter_id_random_li={event_presenter_id_random_li}
|
||||
show_presentation_fields={true}
|
||||
show_session_fields={true}
|
||||
log_lvl={log_lvl}
|
||||
>
|
||||
<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>
|
||||
|
||||
</h3>
|
||||
<Comp_event_presenter_obj_tbl
|
||||
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>
|
||||
</Comp_event_presenter_obj_tbl>
|
||||
{/if}
|
||||
|
||||
<!-- Show recently uploaded files -->
|
||||
|
||||
@@ -7,7 +7,7 @@ import { db_events } from "$lib/ae_events/db_events";
|
||||
|
||||
// Exports
|
||||
export let container_class_li: string|Array<string> = [];
|
||||
export let display_mode: string = 'default'; // 'default', 'compact', 'minimal', 'launcher'
|
||||
// export let display_mode: string = 'default'; // 'default', 'compact', 'minimal', 'launcher'
|
||||
export let event_session_id_random_li: Array<string>;
|
||||
export let link_to_type: string;
|
||||
export let link_to_id: string;
|
||||
@@ -52,10 +52,6 @@ $: lq__event_session_obj_li = liveQuery(async () => {
|
||||
|
||||
<Comp_event_session_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_session_id_random_li={event_session_id_random_li}
|
||||
lq__event_session_obj_li={lq__event_session_obj_li}
|
||||
show_location_fields={show_location_fields}
|
||||
log_lvl={log_lvl}
|
||||
|
||||
Reference in New Issue
Block a user