From 945c943c6147934c638224a8e0f3cc754b71184b Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Thu, 11 Jul 2024 17:01:44 -0400 Subject: [PATCH] Added a reports section and the first report. Agreed presenters. --- src/lib/ae_events__event_presenter.ts | 125 ++++++ src/lib/ae_events_functions.ts | 2 + src/lib/ae_events_stores.ts | 3 + src/lib/db_events.ts | 8 +- .../ae_comp__event_presenter_obj_li.svelte | 39 +- .../ae_comp__event_presenter_obj_tbl.svelte | 100 +++++ .../ae_comp__event_session_obj_li.svelte | 4 +- .../event/[slug]/+page.svelte | 6 +- .../event/[slug]/reports/+page.svelte | 359 ++++++++++++++++++ .../events_pres_mgmt/presenter_view.svelte | 12 +- .../session/[slug]/+page.svelte | 2 +- 11 files changed, 649 insertions(+), 11 deletions(-) create mode 100644 src/routes/events_pres_mgmt/ae_comp__event_presenter_obj_tbl.svelte rename src/routes/events_pres_mgmt/{event/[slug] => }/ae_comp__event_session_obj_li.svelte (99%) create mode 100644 src/routes/events_pres_mgmt/event/[slug]/reports/+page.svelte diff --git a/src/lib/ae_events__event_presenter.ts b/src/lib/ae_events__event_presenter.ts index fc8f014d..ce43ecee 100644 --- a/src/lib/ae_events__event_presenter.ts +++ b/src/lib/ae_events__event_presenter.ts @@ -221,6 +221,129 @@ export async function handle_update_ae_obj__event_presenter( } +// Updated 2024-07-11 +export async function handle_search__event_presenter( + { + api_cfg, + event_id, + agree = null, + fulltext_search_qry_str, + ft_presenter_search_qry_str, + like_search_qry_str = null, + like_presentation_search_qry_str = null, + like_presenter_search_qry_str = null, + params = {}, + try_cache = true, + log_lvl = 0 + }: { + api_cfg: any, + event_id: any, + agree?: null|boolean, + fulltext_search_qry_str?: null|string, + ft_presenter_search_qry_str?: null|string, + like_search_qry_str?: null|string, + like_presentation_search_qry_str?: null|string, + like_presenter_search_qry_str?: null|string, + params?: any, + try_cache?: boolean, + log_lvl?: number + } + ) { + console.log(`*** handle_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 params_json: key_val = {}; + + // if (!fulltext_search_qry_str && !like_search_qry_str) { + // console.log('No search string provided!!!'); + // return false; // Returning false instead of [] because no search was performed. + // } + + if (fulltext_search_qry_str || ft_presenter_search_qry_str) { + params_json['ft_qry'] = {}; + if (fulltext_search_qry_str && fulltext_search_qry_str.length > 2) { + params_json['ft_qry']['default_qry_str'] = fulltext_search_qry_str; + } + + if (ft_presenter_search_qry_str && ft_presenter_search_qry_str.length > 2) { + params_json['ft_qry']['event_presenter_li_qry_str'] = ft_presenter_search_qry_str; + } + } + + // Use the AND (AND LIKE) query + // if (like_search_qry_str || like_presenter_search_qry_str) { + // params_json['and_like'] = {}; + // if (like_search_qry_str && like_search_qry_str.length > 2) { + // params_json['and_like']['default_qry_str'] = like_search_qry_str; + // } + // if (like_presenter_search_qry_str && like_presenter_search_qry_str.length > 2) { + // params_json['and_like']['event_presenter_li_qry_str'] = like_presenter_search_qry_str; + // } + // } + + // Use the AND (OR LIKE) query + if (like_search_qry_str || like_presentation_search_qry_str || like_presenter_search_qry_str) { + params_json['or_like'] = {}; + if (like_search_qry_str && like_search_qry_str.length > 2) { + params_json['or_like']['default_qry_str'] = like_search_qry_str; + } + if (like_presentation_search_qry_str && like_presentation_search_qry_str.length > 2) { + params_json['or_like']['event_presentation_li_qry_str'] = like_presentation_search_qry_str; + } + if (like_presenter_search_qry_str && like_presenter_search_qry_str.length > 2) { + params_json['or_like']['event_presenter_li_qry_str'] = like_presenter_search_qry_str; + } + } + + params_json['and_qry'] = {}; + + if (agree) { + params_json['and_qry']['agree'] = agree; + } + + let order_by_li = {'priority': 'DESC', 'sort': 'DESC', 'given_name': 'ASC', 'family_name': 'ASC', 'email': 'ASC', 'updated_on': 'DESC', 'created_on': 'DESC'}; + + ae_promises.load__event_presenter_obj_li = await api.get_ae_obj_li_for_obj_id_crud({ + api_cfg: api_cfg, + obj_type: 'event_presenter', + for_obj_type: 'event', + for_obj_id: event_id, + use_alt_table: true, // NOTE: We want to use the alt table for session searching + use_alt_base: false, + enabled: enabled, + hidden: hidden, + order_by_li: order_by_li, + limit: limit, + offset: offset, + params_json: params_json, + params: params, + log_lvl: log_lvl + }) + .then(function (event_presenter_obj_li_get_result) { + if (event_presenter_obj_li_get_result) { + handle_db_save_ae_obj_li__event_presenter({obj_type: 'event_presenter', obj_li: event_presenter_obj_li_get_result}); + return event_presenter_obj_li_get_result; + } else { + return []; + } + }) + .catch(function (error) { + console.log('No results returned or failed.', error); + }) + .finally(function () { + }); + + if (log_lvl) { + console.log('ae_promises.load__event_presenter_obj_li:', ae_promises.load__event_presenter_obj_li); + } + return ae_promises.load__event_presenter_obj_li; +} + + // Updated 2024-06-10 export function handle_db_save_ae_obj_li__event_presenter( { @@ -304,8 +427,10 @@ export function handle_db_save_ae_obj_li__event_presenter( event_session_code: obj.event_session_code, event_session_name: obj.event_session_name, + event_session_start_datetime: obj.event_session_start_datetime, event_presentation_code: obj.event_presentation_code, event_presentation_name: obj.event_presentation_name, + event_presentation_start_datetime: obj.event_presentation_start_datetime, person_external_id: obj.person_external_id, person_given_name: obj.person_given_name, diff --git a/src/lib/ae_events_functions.ts b/src/lib/ae_events_functions.ts index bcf72b61..54442306 100644 --- a/src/lib/ae_events_functions.ts +++ b/src/lib/ae_events_functions.ts @@ -53,6 +53,7 @@ import { handle_load_ae_obj_li__event_presenter, handle_create_ae_obj__event_presenter, handle_update_ae_obj__event_presenter, + handle_search__event_presenter, handle_db_save_ae_obj_li__event_presenter, handle_email_sign_in__event_presenter, } from "$lib/ae_events__event_presenter"; @@ -91,6 +92,7 @@ let export_obj = { handle_load_ae_obj_li__event_presenter: handle_load_ae_obj_li__event_presenter, handle_create_ae_obj__event_presenter: handle_create_ae_obj__event_presenter, handle_update_ae_obj__event_presenter: handle_update_ae_obj__event_presenter, + handle_search__event_presenter: handle_search__event_presenter, handle_email_sign_in__event_presenter: handle_email_sign_in__event_presenter, handle_load_ae_obj_id__badge: handle_load_ae_obj_id__badge, diff --git a/src/lib/ae_events_stores.ts b/src/lib/ae_events_stores.ts index 5f08b601..7eed35de 100644 --- a/src/lib/ae_events_stores.ts +++ b/src/lib/ae_events_stores.ts @@ -141,6 +141,9 @@ let events_local_data_struct: key_val = { show_content__session_search_help: true, show_content__presenter_page_help: true, + show_report__presenters_agree: false, + show_report__recent_files: false, + disable_submit__opt_out: true, submit_status__opt_out: null, }, diff --git a/src/lib/db_events.ts b/src/lib/db_events.ts index 517445a6..af4eab7a 100644 --- a/src/lib/db_events.ts +++ b/src/lib/db_events.ts @@ -469,12 +469,14 @@ export interface Presenter { file_count?: null|number; event_session_code?: null|string; - event_session_name?: null|string; + event_session_name?: string; + event_session_start_datetime?: null|Date; event_presentation_code?: null|string; - event_presentation_name?: null|string; + event_presentation_name?: string; + event_presentation_start_datetime?: null|Date; person_external_id?: null|string; - person_given_name?: null|string; + person_given_name?: string; person_family_name?: null|string; person_full_name?: null|string; person_professional_title?: null|string; diff --git a/src/routes/events_pres_mgmt/ae_comp__event_presenter_obj_li.svelte b/src/routes/events_pres_mgmt/ae_comp__event_presenter_obj_li.svelte index 61825bd3..6f91f5d3 100644 --- a/src/routes/events_pres_mgmt/ae_comp__event_presenter_obj_li.svelte +++ b/src/routes/events_pres_mgmt/ae_comp__event_presenter_obj_li.svelte @@ -1,6 +1,6 @@ + + +
+ + +{#if event_presenter_id_random_li && $lq_kv__event_presenter_obj_li && $lq_kv__event_presenter_obj_li?.length > 0} + + + + {#if show_session_fields} + + + {/if} + {#if show_presentation_fields} + + {/if} + + + + + + + + {#each $lq_kv__event_presenter_obj_li as event_presenter_obj} + + {#if show_session_fields} + + + {/if} + {#if show_presentation_fields} + + {/if} + + + + + + {/each} + +
SessionStart datetimePresentationNameEmailAgreeFiles
+ + {event_presenter_obj?.event_session_name} + + {event_presenter_obj?.event_session_start_datetime}{event_presenter_obj?.event_presentation_name} + + {event_presenter_obj?.full_name} + + {event_presenter_obj?.email}{event_presenter_obj?.agree ? 'Yes' : 'No'}{event_presenter_obj?.file_count ?? '0'}
+{/if} + +
+ + + diff --git a/src/routes/events_pres_mgmt/event/[slug]/ae_comp__event_session_obj_li.svelte b/src/routes/events_pres_mgmt/ae_comp__event_session_obj_li.svelte similarity index 99% rename from src/routes/events_pres_mgmt/event/[slug]/ae_comp__event_session_obj_li.svelte rename to src/routes/events_pres_mgmt/ae_comp__event_session_obj_li.svelte index 77230c10..008bf64d 100644 --- a/src/routes/events_pres_mgmt/event/[slug]/ae_comp__event_session_obj_li.svelte +++ b/src/routes/events_pres_mgmt/ae_comp__event_session_obj_li.svelte @@ -1,13 +1,13 @@ + + + + Event: {ae_util.shorten_string({string: $lq__event_obj?.name, max_length: 12})} + ({$lq__event_obj?.event_id}) - Pres Mgmt - {$events_loc?.title} + + + + +
+ + + +{#if $lq__event_obj} +
+

{$lq__event_obj?.name}

+

Presentation Management Reports

+
+{/if} + +
+
+ + + Back to Session Search + + + +
+ + + +
+ +
+
+ +
+ + + + + + + +
+ + + + + +{#if $events_loc.pres_mgmt.show_report__presenters_agree && event_presenter_id_random_li?.length > 0} + + +{/if} + + + +
+ + + diff --git a/src/routes/events_pres_mgmt/presenter_view.svelte b/src/routes/events_pres_mgmt/presenter_view.svelte index 80a98817..5ee80ce6 100644 --- a/src/routes/events_pres_mgmt/presenter_view.svelte +++ b/src/routes/events_pres_mgmt/presenter_view.svelte @@ -342,7 +342,11 @@ async function handle_delete__event_file({event_file_id}) { Session: - {$lq__event_presenter_obj.event_session_name} + {$lq__event_presenter_obj.event_session_name}

Presentation Title: - "{$lq__event_presentation_obj?.name}" + + "{$lq__event_presentation_obj?.name}" + diff --git a/src/routes/events_pres_mgmt/session/[slug]/+page.svelte b/src/routes/events_pres_mgmt/session/[slug]/+page.svelte index b70e8497..14fbe97a 100644 --- a/src/routes/events_pres_mgmt/session/[slug]/+page.svelte +++ b/src/routes/events_pres_mgmt/session/[slug]/+page.svelte @@ -1409,7 +1409,7 @@ $: if ($slct_trigger == 'load__event_presenter_obj_li') { - {#if event_presentation_obj.event_presentation_id_random} + {#if event_presentation_obj.event_presentation_id_random}