From bb6b3b7352aaee32841dc1e0aa5ecf68cd8413b3 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Mon, 5 Jan 2026 18:29:41 -0500 Subject: [PATCH] The sorting now works and some missing fields were added. --- src/lib/ae_events/ae_events__event_badge.ts | 4 +- src/lib/ae_events/db_events.ts | 5 + .../badges/ae_comp__badge_search.svelte | 169 +----------------- 3 files changed, 8 insertions(+), 170 deletions(-) diff --git a/src/lib/ae_events/ae_events__event_badge.ts b/src/lib/ae_events/ae_events__event_badge.ts index 6929604a..d402476b 100644 --- a/src/lib/ae_events/ae_events__event_badge.ts +++ b/src/lib/ae_events/ae_events__event_badge.ts @@ -12,7 +12,7 @@ const ae_promises: key_val = {}; export async function load_ae_obj_id__event_badge({ api_cfg, event_badge_id, - view = 'default', + view = 'base', inc_template = true, try_cache = true, log_lvl = 0 @@ -431,7 +431,7 @@ export async function search__event_badge({ external_event_id = null, enabled = 'enabled', hidden = 'not_hidden', - view = 'default', + view = 'base', limit = 25, offset = 0, order_by_li = { diff --git a/src/lib/ae_events/db_events.ts b/src/lib/ae_events/db_events.ts index 7d1429a4..5d3481e9 100644 --- a/src/lib/ae_events/db_events.ts +++ b/src/lib/ae_events/db_events.ts @@ -176,6 +176,10 @@ export interface Badge { tmp_sort_1?: null | string; tmp_sort_2?: null | string; + print_count?: null | number; + print_first_datetime?: null | Date | string; + print_last_datetime?: null | Date | string; + // Additional fields for convenience (database views) person_external_id?: null | string; // This may be semi-random or unique only withing the account. person_external_sys_id?: null | string; // Generated by an external system. Ideally this should be something like a UUID. It may be the same as the external_id if nothing given. @@ -816,6 +820,7 @@ export class MySubClassedDexie extends Dexie { default_qry_string, alert, tmp_sort_1, tmp_sort_2, + print_count, print_first_datetime, print_last_datetime, enable, hide, priority, sort, group, notes, created_on, updated_on`, badge_template: ` diff --git a/src/routes/events/[event_id]/(badges)/badges/ae_comp__badge_search.svelte b/src/routes/events/[event_id]/(badges)/badges/ae_comp__badge_search.svelte index 930313ba..879fa5b1 100644 --- a/src/routes/events/[event_id]/(badges)/badges/ae_comp__badge_search.svelte +++ b/src/routes/events/[event_id]/(badges)/badges/ae_comp__badge_search.svelte @@ -194,7 +194,7 @@ affiliations_qry_str: qry_affiliations, order_by_li: computed_order_by_li, limit: search_limit, - log_lvl: log_lvl + log_lvl: 2 }) .then(function (search_results) { search_status = 'processing'; @@ -224,173 +224,6 @@ } }); - // function process_search_string(search_str: string) { - // if (log_lvl) { - // console.log(`process_search_string() search_str=${search_str}`); - // } - - // if (search_str?.length) { - // // console.log(`*** Search string length: ${search_str.length} ***`); - // } else { - // // console.log(`*** Search string is empty ***`); - // } - - // // let type_code = $events_sess.badges.search_badge_type_code; - - // // let search_str = $events_loc.badges.fulltext_search_qry_str.trim(); - - // let search_method = 'lk'; // 'ft', 'lk', 'eq' - // let ft_search_str_new = ''; - // let lk_search_str_new = ''; - - // if (search_method == 'ft') { - // // Add quotes around the search string to make it an exact match. - // ft_search_str_new = `${search_str}`; - // // ft_search_str_new = `"${search_str}"`; - // } else if (search_method == 'lk') { - // if (search_str == null) { - // search_str = ''; - // } - // // Add a wildcard to the search string to make it a like match. - // lk_search_str_new = search_str.trim().replace(',', ' ').replace(';', ' ').replaceAll(' ', '%').replaceAll(' ', '%'); - // lk_search_str_new = `%${lk_search_str_new}%`; - // } - - // if (log_lvl) { - // // console.log(`*** Search method: ${search_method} ***`); - // console.log(`*** Search string: ${search_str} ***`); - // // console.log(`*** Fulltext search string: ${ft_search_str_new} ***`); - // // console.log(`*** Like search string: ${lk_search_str_new} ***`); - // } - - // let type_code = ''; - // if ($events_sess.badges.type_code_qry_str?.length) { - // type_code = $events_sess.badges.type_code_qry_str; - // console.log(`Type code: ${type_code}`); - // } - - // handle_search__event_badge({ - // ft_search_str: ft_search_str_new, - // lk_search_str: lk_search_str_new, - // and_lk_type_code: type_code, - // // fulltext_search_qry_str: ft_search_str_new, - // // ft_presenter_search_qry_str: null, - // // like_search_qry_str: lk_search_str_new, - // // like_presentation_search_qry_str: lk_search_str_new, - // // like_presenter_search_qry_str: lk_search_str_new, - // // params: params, - // try_cache: true, - // log_lvl: log_lvl, - // }); - // } - - async function handle_search__event_badge({ - ft_search_str = '', - lk_search_str = '', - and_lk_type_code = '', - search_delay = 0, - max_tries = 5, - enabled = $events_loc.badges.qry_enabled ?? 'enabled', - hidden = $events_loc.badges.qry_hidden ?? 'not_hidden', - limit = $events_loc.badges.qry_limit__badges ?? 35, - try_cache = true, - log_lvl = 0 - }: { - ft_search_str?: string; - lk_search_str?: string; - and_lk_type_code?: string; - search_delay?: number; // In milliseconds - max_tries?: number; - enabled?: 'enabled' | 'all' | 'not_enabled' | undefined; - hidden?: 'hidden' | 'all' | 'not_hidden' | undefined; - limit?: number; - try_cache?: boolean; - log_lvl?: number; - }) { - if (log_lvl) { - console.log('handle_search__event_badge()'); - } - - if ( - $events_sess.badges?.status_qry__search != null && - $events_sess.badges?.status_qry__search != 'done' - ) { - // WARNING: This is a temporary fix for the search string. It needs to be fixed in the future. Using lk_search_str for now. - $events_sess.badges.status_qry__last_request_str = lk_search_str; - - // We want to delay the initial search request to give the previous search request to finish. - let random_delay = Math.floor(Math.random() * 50); - search_delay += 50 + random_delay; - } - - // log_lvl = 1; - - let count = 0; - let request_loop = setInterval(() => { - count++; - if (log_lvl) { - console.log( - `*** TEST SEARCH - Search delay: ${search_delay} *** loop count=${count}` - ); - } - if (count >= max_tries) { - console.log('*** TEST SEARCH - Max tries reached ***'); - clearInterval(request_loop); - } - - if ( - $events_sess.badges?.status_qry__search != null && - $events_sess.badges?.status_qry__search != 'done' - ) { - let random_delay = Math.floor(Math.random() * 25); - search_delay += 25 + random_delay; - console.log( - `*** TEST SEARCH - $events_sess.badges.status_qry__search == loading wait *** search_delay=${search_delay}` - ); - // $events_sess.status_qry__last_request_str = lk_search_str; - } else { - // console.log('*** TEST SEARCH - $events_sess.badges.status_qry__search != loading ***'); - - ae_triggers.event_badge_qry = 'loading_search_results'; - $events_sess.badges.status_qry__search = 'loading'; - - event_badge_id_li = []; // Resetting this seems to help trigger the new results to show correctly??? - - search_submit_results = events_func - .search__event_badge({ - api_cfg: $ae_api, - event_id: $events_slct.event_id, - // type_code: type_code, - 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, - // like_poc_name_qry_str: lk_search_str, - // external_event_id: $events_loc.badges.default__external_registration_id, - // location_name: and_lk_location_name, - // enabled: enabled, - // hidden: hidden, - // limit: limit, - // try_cache: try_cache, - log_lvl: log_lvl - }) - .then(function (search_results) { - // Processing the results from the search. - ae_triggers.event_badge_qry = 'process_search_results'; - $events_sess.badges.status_qry__search = 'processing'; - $events_slct.event_badge_obj_li = search_results; - }) - .finally(() => { - // Finally done with the search. - ae_triggers.event_badge_qry = 'search_done'; - $events_sess.badges.status_qry__search = 'done'; - }); - clearInterval(request_loop); - } - }, search_delay); - } - function handle_qr_scan_result(event: CustomEvent) { console.log('*** handle_qr_scan_result() ***');