diff --git a/src/lib/ae_events_functions.ts b/src/lib/ae_events_functions.ts index f3f4ce85..31e770b0 100644 --- a/src/lib/ae_events_functions.ts +++ b/src/lib/ae_events_functions.ts @@ -75,7 +75,20 @@ async function handle_load_ae_obj_id__badge({api_cfg, badge_id, try_cache=false} // Updated 2024-03-06 -async function handle_load_ae_obj_li__badge({api_cfg, event_id, params={}, try_cache=true}: {api_cfg: any, event_id: any, params: any, try_cache?: boolean}) { +async function handle_load_ae_obj_li__badge( + { + api_cfg, + event_id, + params={}, + try_cache=true, + log_lvl=0 + }: { + api_cfg: any, + event_id: any, + params: any, + try_cache?: boolean, + log_lvl: number + }) { console.log(`*** handle_load_ae_obj_li__badge() *** event_id=${event_id}`); let fulltext_search_qry_str = ''; // $events_sess.badges.fulltext_search_qry_str; @@ -125,7 +138,7 @@ async function handle_load_ae_obj_li__badge({api_cfg, event_id, params={}, try_c offset: offset, params_json: params_json, params: params, - log_lvl: 1 + log_lvl: log_lvl }) .then(function (badge_obj_li_get_result) { @@ -149,7 +162,9 @@ async function handle_load_ae_obj_li__badge({api_cfg, event_id, params={}, try_c // return badge_obj_li_get_result; }); - console.log('ae_promises.load__event_badge_obj_li:', ae_promises.load__event_badge_obj_li); + if (log_lvl) { + console.log('ae_promises.load__event_badge_obj_li:', ae_promises.load__event_badge_obj_li); + } return ae_promises.load__event_badge_obj_li; } diff --git a/src/routes/events_badges/+layout.svelte b/src/routes/events_badges/+layout.svelte index d6dc1b82..e267d86a 100644 --- a/src/routes/events_badges/+layout.svelte +++ b/src/routes/events_badges/+layout.svelte @@ -3,6 +3,7 @@ export let data: any; import { goto } from '$app/navigation'; +import { onMount } from 'svelte'; import type { Writable } from 'svelte/store'; import { localStorageStore } from '@skeletonlabs/skeleton'; @@ -11,7 +12,6 @@ import type { key_val } from '$lib/ae_stores'; import { api } from '$lib/api'; import { ae_loc, ae_sess, ae_api, slct } from '$lib/ae_stores'; import { events_loc, events_slct, events_trigger } from '$lib/ae_events_stores'; - import { onMount } from 'svelte'; // import Element_data_store from '$lib/element_data_store.svelte'; @@ -26,84 +26,86 @@ console.log(`$slct.account_id = `, $slct.account_id); let ae_acct = data[$slct.account_id]; console.log(`ae_acct = `, ae_acct); -$events_slct.event_id = ae_acct.slct.event_id -$events_slct.event_obj = ae_acct.slct.event_obj +$events_slct.event_id = ae_acct.slct.event_id; +$events_slct.event_obj = ae_acct.slct.event_obj; let ae_promises: key_val = {}; -if (ae_acct.loc.site_cfg_json.slct__event_id) { - $events_slct.event_id = ae_acct.loc.site_cfg_json.slct__event_id; - $events_loc.event_id = ae_acct.loc.site_cfg_json.slct__event_id; -} else if ($events_loc.default__event_id) { - $events_slct.event_id = $events_loc.default__event_id; - $events_loc.event_id = $events_loc.default__event_id; -} else if ($events_slct.event_id) { - console.log(`Event ID already set:`, $events_slct.event_id); - $events_loc.event_id = $events_slct.event_id; -} else { - console.log(`No Event ID set.`); -} +// if (ae_acct.loc.site_cfg_json.slct__event_id) { +// $events_slct.event_id = ae_acct.loc.site_cfg_json.slct__event_id; +// $events_loc.event_id = ae_acct.loc.site_cfg_json.slct__event_id; +// } else if ($events_loc.default__event_id) { +// $events_slct.event_id = $events_loc.default__event_id; +// $events_loc.event_id = $events_loc.default__event_id; +// } else if ($events_slct.event_id) { +// console.log(`Event ID already set:`, $events_slct.event_id); +// $events_loc.event_id = $events_slct.event_id; +// } else { +// console.log(`No Event ID set.`); +// } -if ($events_slct.event_id) { - $events_trigger = 'load__event_obj'; -} +// if ($events_slct.event_id) { +// $events_trigger = 'load__event_obj'; +// } // Updated 2024-03-06 -$: if ($events_trigger == 'load__event_obj' && $events_slct.event_id) { - console.log(`$events_slct.event_id=${$events_slct.event_id}`); - $events_trigger = null; +// $: if ($events_trigger == 'load__event_obj' && $events_slct.event_id) { +// console.log(`$events_slct.event_id=${$events_slct.event_id}`); +// $events_trigger = null; - let load_obj_results = handle_load_ae_obj_id__event({event_id: $events_slct.event_id, try_cache: false}) - .then(function (load_obj_results) { - if (load_obj_results) { - console.log(`load_obj_results=`, load_obj_results); - } else { - console.log('No results returned.'); - } - }); - $events_slct.event_obj = load_obj_results; - console.log(`load_obj_results=`, load_obj_results); -} +// let load_obj_results = handle_load_ae_obj_id__event({event_id: $events_slct.event_id, try_cache: false}) +// .then(function (load_obj_results) { +// if (load_obj_results) { +// console.log(`load_obj_results=`, load_obj_results); +// } else { +// console.log('No results returned.'); +// } +// }); +// $events_slct.event_obj = load_obj_results; +// console.log(`load_obj_results=`, load_obj_results); +// } onMount(() => { - if (data.url.searchParams.get('event_id')) { - $events_slct.event_id = data.url.searchParams.get('event_id'); - $events_loc.event_id = data.url.searchParams.get('event_id'); - } + console.log('Events Badges: +layout.svelte'); + + // if (data.url.searchParams.get('event_id')) { + // $events_slct.event_id = data.url.searchParams.get('event_id'); + // $events_loc.event_id = data.url.searchParams.get('event_id'); + // } }); // Updated 2024-03-06 -async function handle_load_ae_obj_id__event({event_id, try_cache=false}) { - console.log(`*** handle_load_ae_obj_id__event() *** event_id=${event_id} api_cfg=`, $ae_api); +// async function handle_load_ae_obj_id__event({event_id, try_cache=false}) { +// console.log(`*** handle_load_ae_obj_id__event() *** event_id=${event_id} api_cfg=`, $ae_api); - let params = {}; +// let params = {}; - // $events_sess.badges.status_load__event_obj = 'loading'; - ae_promises.load__event_obj = await api.get_ae_obj_id_crud({ - api_cfg: $ae_api, - obj_type: 'event', - obj_id: event_id, // NOTE: This is the FQDN, not normally the ID. - use_alt_table: false, // NOTE: This will use the table_name_alt value instead of the table_name value in the API config. - use_alt_base: false, // NOTE: This will use the base_name_alt value instead of the base_name value in the API config. - params: params, - log_lvl: 0 - }) - .then(function (event_obj_get_result) { - if (event_obj_get_result) { - return event_obj_get_result; - } else { - console.log('No results returned.'); - return null; - } - }) - .catch(function (error) { - console.log('No results returned or failed.', error); - }); +// // $events_sess.badges.status_load__event_obj = 'loading'; +// ae_promises.load__event_obj = await api.get_ae_obj_id_crud({ +// api_cfg: $ae_api, +// obj_type: 'event', +// obj_id: event_id, // NOTE: This is the FQDN, not normally the ID. +// use_alt_table: false, // NOTE: This will use the table_name_alt value instead of the table_name value in the API config. +// use_alt_base: false, // NOTE: This will use the base_name_alt value instead of the base_name value in the API config. +// params: params, +// log_lvl: 0 +// }) +// .then(function (event_obj_get_result) { +// if (event_obj_get_result) { +// return event_obj_get_result; +// } else { +// console.log('No results returned.'); +// return null; +// } +// }) +// .catch(function (error) { +// console.log('No results returned or failed.', error); +// }); - return ae_promises.load__event_obj; -} +// return ae_promises.load__event_obj; +// } @@ -112,9 +114,11 @@ async function handle_load_ae_obj_id__event({event_id, try_cache=false}) { Events Badges - {$events_loc.title ?? 'Æ loading...'} - - + + + diff --git a/src/routes/events_badges/+layout.ts b/src/routes/events_badges/+layout.ts index 3a1716f4..99cdedf1 100644 --- a/src/routes/events_badges/+layout.ts +++ b/src/routes/events_badges/+layout.ts @@ -1,22 +1,14 @@ /** @type {import('./$types').LayoutLoad} */ +console.log(`ae_events_badges +layout.ts start`); -// import { get } from 'svelte/store'; - -// import { api } from '$lib/api'; -// import { ae_loc, ae_sess, ae_api, slct, slct_trigger } from '$lib/ae_stores'; -// import { ae_events_loc, ae_events_sess, ae_events_triggers, ae_events_badges_loc, ae_events_badges_sess, ae_events_badges_triggers } from '$lib/ae_events_stores'; -// import { ae_events_loc, ae_events_slct, ae_events_trigger } from '$lib/ae_events_stores'; -// import type { key_val } from '$lib/ae_stores'; +import { events_func } from '$lib/ae_events_functions'; -export async function load({ parent }) { // route +export async function load({ parent }) { let data = await parent(); + // console.log(`ae_events_badges +layout.ts data:`, data); - console.log(`ae_events_badges +layout.ts data:`, data); - // console.log(`ae_events_badges +layout.ts data.params:`, params); - // console.log(`ae_events_badges +layout.ts data.route:`, route); - // console.log(`ae_events_badges +layout.ts data.url:`, url); let account_id = data.account_id; let ae_acct = data[account_id]; @@ -33,13 +25,15 @@ export async function load({ parent }) { // route return false; } - data.ae_events_badges_layout_ts = true; + let load_event_obj = events_func.handle_load_ae_obj_id__event({api_cfg: ae_acct.api, event_id: event_id, try_cache: false}); + + ae_acct.slct.event_obj = load_event_obj; let submenu = { main: {name: 'Main', href: '/events_badges', access: false}, - manage: {name: 'Manage', href: '/events_badges/manage', access: 'administrator', disable: true, hide: true}, - review: {name: 'Review', href: '/events_badges/review', access: false, disable: true, hide: false}, - print: {name: 'Print', href: '/events_badges/print', access: 'trusted', disable: true, hide: false}, + // manage: {name: 'Manage', href: '/events_badges/manage', access: 'administrator', disable: true, hide: true}, + review: {name: 'Review', href: '/events_badges/review', access: false, disable: false, hide: false}, + // print: {name: 'Print', href: '/events_badges/print', access: 'trusted', disable: true, hide: false}, // view: {name: 'View', href: '/events_badges/view', access: 'trusted', hide: true}, // event_badge_id // new: {name: 'New', href: '/events_badges/new'}, // sponsorships: {name: 'Sponsorships', href: '/sponsorships', disable: true, hide: true}, diff --git a/src/routes/events_badges/review/+page.svelte b/src/routes/events_badges/review/+page.svelte index 6ea9a7a9..2c8fb101 100644 --- a/src/routes/events_badges/review/+page.svelte +++ b/src/routes/events_badges/review/+page.svelte @@ -5,17 +5,6 @@ console.log(`ae_events_badges [slug] +page data:`, data); import { onMount } from 'svelte'; -// https://github.com/skeletonlabs/skeleton/blob/master/packages/skeleton/src/lib/utilities/Modal/types.ts -// To retrieve the store, getModalStore must be invoked at the top level of your component! -// import { getDrawerStore, getModalStore } from '@skeletonlabs/skeleton'; -// import type { -// DrawerSettings, -// ModalSettings, -// ModalComponent, -// ModalStore -// } from '@skeletonlabs/skeleton'; -// const modalStore = getModalStore(); - import type { key_val } from '$lib/ae_stores'; import { ae_util } from '$lib/ae_utils'; import { api } from '$lib/api'; @@ -25,7 +14,8 @@ import { db_events } from "$lib/db_events"; import { ae_loc, ae_sess, ae_api, ae_trig, slct, slct_trigger } from '$lib/ae_stores'; import { events_loc, events_sess, events_slct, events_trigger } from '$lib/ae_events_stores'; -let event_badge_li = liveQuery( +// The lq__ prefix is used to indicate that this is a liveQuery object and it should use the $ prefix when referencing the object. +let lq__event_badge_li = liveQuery( () => db_events.badges.toArray() ); @@ -33,38 +23,7 @@ let event_badge_li = liveQuery( let ae_promises: key_val = {}; let load_obj_li_results: Promise|key_val; - -// Editing -// const modalComponentEditEventPresenterObj: ModalComponent = { ref: Edit_modal_event_badge, props: {container_class_li: 'w-full p-4 space-y-4 card'} }; - -// const modal_edit__event_badge: ModalSettings = { -// type: 'component', -// component: modalComponentEditEventPresenterObj, -// title: 'Edit Badge Submission', -// position: '', // default is "items-center" - -// response: (r: boolean | undefined) => handle_modal_close(r) -// }; - -// This function waits for the response from one of the modals. Do stuff when the modal is closed. -function handle_modal_close(response: boolean | undefined) { - console.log('Modal closed. Response:', response); - - ae_util.handle_url_and_message('event_badge_id', null); - - // We want to keep these values in case they want to re-open the modal. Do NOT clear. - // $events_slct.event_badge_id = null; - // $events_slct.event_badge_obj = null; -} - -if ($events_trigger == 'msg_parent' && $events_slct.event_id) { - console.log(`Message parent with event_id ${$events_slct.event_id}`); - $events_trigger = null - - let message = {'event_id': $events_slct.event_id}; - window.parent.postMessage(message, "*"); - // console.log('Message sent to parent (iframe):', message); -} +let search_submit_results: Promise|key_val; $ae_loc.hostname = data.url.hostname; @@ -103,56 +62,6 @@ onMount(() => { }); -$: if ($events_trigger == 'load__event_obj' && $events_slct.event_id) { - console.log('Selected Event ID:', $events_slct.event_id); - - $events_trigger = null; - - handle_load_ae_obj_id__event({event_id: $events_slct.event_id, try_cache: false}); -} - -async function handle_load_ae_obj_id__event({event_id, try_cache=false}) { - console.log(`*** handle_load_ae_obj_id__event() *** event_id=${event_id}`); - - let params = {}; - - // $events_sess.status_load__event_id = 'loading'; - ae_event_obj_get_promise = api.get_ae_obj_id_crud({ - api_cfg: $ae_api, - obj_type: 'event', - obj_id: event_id, - use_alt_table: false, // NOTE: This will use the table_name_alt value instead of the table_name value in the API config. - use_alt_base: false, // NOTE: This will use the base_name_alt value instead of the base_name value in the API config. - params: params, - log_lvl: 0 - }) - .then(function (event_obj_get_result) { - if (event_obj_get_result) { - $events_slct.event_obj = event_obj_get_result; - console.log(`event object:`, $events_slct.event_obj); - } - - // Auto show the selected event_badge ID - // Is this pushState needed here? - // Set the URL param "event_id" to the current event_badge ID. - // const url = new URL(location); - // url.searchParams.set('event_id', $events_slct.event_id); - // history.pushState({}, '', url); - - // Is this postMessage needed here? - // let message = {'event_id': $events_slct.event_id}; - // window.parent.postMessage(message, "*"); - - // modalStore.trigger(modal_view__event_obj); - }) - .catch(function (error) { - console.log('No results returned or failed.', error); - }); - - return ae_event_obj_get_promise; -} - - if ($events_slct.event_badge_id) { console.log('Selected Event Presenter ID:', $events_slct.event_badge_id); $events_trigger = 'load__event_badge'; @@ -217,6 +126,10 @@ async function handle_load_ae_obj_id__event_badge({event_badge_id, try_cache=fal $: if ($events_trigger == 'load__event_badge_obj_li' && $events_slct.event_id) { console.log(`handle_load_ae_obj_id__event() $events_slct.event_id=${$events_slct.event_id} api_cfg=`, $ae_api); + if (!$events_sess.badges.fulltext_search_qry_str) { + $events_sess.badges.fulltext_search_qry_str = ''; + } + if ($events_sess.status_qry__search == 'loading') { console.log('*** $events_sess.status_qry__search == loading ***'); @@ -224,153 +137,35 @@ $: if ($events_trigger == 'load__event_badge_obj_li' && $events_slct.event_id) { console.log("Delayed for X second."); $events_trigger = null; - load_obj_li_results = events_func.handle_load_ae_obj_li__badge({api_cfg: $ae_api, event_id: $events_slct.event_id, try_cache: false}) - .then(function (load_results) { - if (load_results) { - console.log(`load_results=`, load_results); - } else { - console.log('No results returned.'); - } - // return load_results; - console.log(`load_results=`, load_results); - // $events_slct.badge_obj_li = load_results; - return load_results; + let search_str = $events_sess.badges.fulltext_search_qry_str.trim(); + console.log(search_str); + + search_submit_results = events_func.handle_search__event_badge({api_cfg: $ae_api, event_id: $events_slct.event_id, fulltext_search_qry_str: search_str, external_event_id: $events_loc.badges.default__external_registration_id}) + .then(function (search_results) { + $events_slct.badge_obj_li = search_results; + console.log(search_results); + $events_sess.status_qry__search = 'done'; }); }, 250); } else { console.log('*** $events_sess.status_qry__search != loading ***'); $events_trigger = null; - load_obj_li_results = events_func.handle_load_ae_obj_li__badge({api_cfg: $ae_api, event_id: $events_slct.event_id, try_cache: false}) - .then(function (load_results) { - if (load_results) { - console.log(`load_results=`, load_results); - } else { - console.log('No results returned.'); - } - // return load_results; - console.log(`load_results=`, load_results); - // $events_slct.badge_obj_li = load_results; - return load_results; + $events_sess.status_qry__search = 'loading'; + + let search_str = $events_sess.badges.fulltext_search_qry_str.trim(); + console.log(search_str); + + search_submit_results = events_func.handle_search__event_badge({api_cfg: $ae_api, event_id: $events_slct.event_id, fulltext_search_qry_str: search_str, external_event_id: $events_loc.badges.default__external_registration_id}) + .then(function (search_results) { + $events_slct.badge_obj_li = search_results; + console.log(search_results); + $events_sess.status_qry__search = 'done'; }); } } -// Updated 2024-03-06 -async function handle_load_ae_obj_li__badge({api_cfg: ae_api, event_id, try_cache=true}) { - console.log(`*** handle_load_ae_obj_li__badge() *** event_id=${event_id}`); - let fulltext_search_qry_str = $events_sess.badges.fulltext_search_qry_str; - - let enabled = $events_loc.qry_enabled; - let hidden = $events_loc.qry__hidden; - let limit = $events_loc.qry__limit; - let offset = $events_loc.qry__offset; - - if ($ae_loc.administrator_access) { - enabled = 'all'; - hidden = 'all'; - limit = 500; - } else if ($ae_loc.trusted_access) { - // enabled = 'all'; - hidden = 'all'; - limit = 50; - } - - let params = {}; - - let params_json: key_val = {}; - if (fulltext_search_qry_str && fulltext_search_qry_str.length > 2) { - params_json['ft_qry'] = { - 'default_qry_str': fulltext_search_qry_str, - // 'location_address_json_ext': fulltext_search_qry_str, // JSON extracted text DB field - // 'contact_li_json_ext': fulltext_search_qry_str, // JSON extracted text DB field - }; - } - - // console.log('params_json:', params_json); - // console.log(params_json); - - $events_sess.badges.status_qry__search = 'loading'; - ae_promises.load__event_badge_obj_li = await api.get_ae_obj_li_for_obj_id_crud({ - api_cfg: $ae_api, - obj_type: 'event_badge', - for_obj_type: 'event', - for_obj_id: event_id, - use_alt_table: false, // NOTE: This will use the table_name_alt value instead of the table_name value in the API config. - use_alt_base: false, // NOTE: This will use the base_name_alt value instead of the base_name value in the API config. - enabled: enabled, - hidden: hidden, - order_by_li: {'priority': 'DESC', 'sort': 'DESC', 'updated_on': 'DESC', 'created_on': 'DESC'}, - // order_by_li: {'priority': 'DESC', 'sort': 'DESC', 'created_on': 'DESC', 'updated_on': 'DESC'}, - limit: limit, - offset: offset, - params_json: params_json, - params: params, - log_lvl: 0 - }) - - .then(function (badge_obj_li_get_result) { - // console.log('Badge list:', badge_obj_li_get_result); - if (badge_obj_li_get_result) { - // $slct.badge_obj_li = badge_obj_li_get_result; - handle_db_save_ae_obj_li({obj_type: 'event_badge', obj_li: badge_obj_li_get_result}); - return badge_obj_li_get_result; - } else { - // $slct.badge_obj_li = []; - return []; - } - }) - .catch(function (error) { - console.log('No results returned or failed.', error); - }) - .finally(function () { - $events_sess.badges.status_qry__search = 'done'; - - // console.log('Badge list:', badge_obj_li_get_result); - // return badge_obj_li_get_result; - }); - - console.log('ae_promises.load__event_badge_obj_li:', ae_promises.load__event_badge_obj_li); - return ae_promises.load__event_badge_obj_li; -} - -// This function will loop through the badge_obj_li and save each one to the DB. -function handle_db_save_ae_obj_li({obj_type, obj_li}) { - console.log(`*** handle_db_save_ae_obj_li() ***`); - - if (obj_li && obj_li.length) { - obj_li.forEach(async function (obj) { - // console.log(`ae_obj ${obj_type}:`, obj); - - try { - const id_random = await db_events.badges.put({ - id_random: obj.event_badge_id_random, - full_name: obj.full_name, - full_name_override: obj.full_name_override, - email: obj.email, - email_override: obj.email_override, - affiliations: obj.affiliations, - affiliations_override: obj.affiliations_override, - badge_type: obj.badge_type, - badge_type_override: obj.badge_type_override, - badge_type_code: obj.badge_type_code, - badge_type_code_override: obj.badge_type_code_override, - external_event_id: obj.external_event_id, - external_id: obj.external_id, - external_person_id: obj.external_person_id, - }); - // console.log(`Put obj with ID: ${obj.event_badge_id_random} or ${id_random}`); - } catch (error) { - let status = `Failed to put ${obj.event_badge_id_random}: ${error}`; - console.log(status); - } - - // const id_random = await db_events.badges.put(obj); - // console.log(`Put obj with ID: ${obj.event_badge_id_random}`); - }); - } -} @@ -387,6 +182,12 @@ function handle_db_save_ae_obj_li({obj_type, obj_li}) { {/if} +
{ + $events_trigger = 'load__event_badge_obj_li'; + }} + > +
{#await load_obj_li_results} @@ -436,8 +239,8 @@ function handle_db_save_ae_obj_li({obj_type, obj_li}) { {/await} - -{#if $event_badge_li} +{#if $events_slct?.badge_obj_li.length} +

Results:

@@ -450,8 +253,8 @@ function handle_db_save_ae_obj_li({obj_type, obj_li}) { - -{#each $event_badge_li as badge_obj} +{#each $events_slct.badge_obj_li as badge_obj} +