diff --git a/src/lib/ae_events_stores.ts b/src/lib/ae_events_stores.ts index 7645b5d7..7041bce7 100644 --- a/src/lib/ae_events_stores.ts +++ b/src/lib/ae_events_stores.ts @@ -118,11 +118,15 @@ let events_session_data_struct: key_val = { example: true, show_form__license: false, + show_form__search: false, + show_form__scan: false, submit_status__license: null, // 'saving', 'created', 'updated' // create_status__license: null, // 'creating', 'created', 'updated' // update_status__license: null, // 'updating', 'created', 'updated' + submit_status__search: null, // 'searching', 'complete' + // The entered_passcode is the exhibit booths shared passcode for staff. This is used to initially access the lead retrieval service. entered_passcode: null, @@ -135,6 +139,9 @@ let events_session_data_struct: key_val = { 'updated_on': new Date().toISOString() }, + entered_search_str: null, + + qr_scan_start: true, qr_scan_result: null, }, diff --git a/src/lib/element_qr_scanner.svelte b/src/lib/element_qr_scanner.svelte index f1574ca1..04d83c2a 100644 --- a/src/lib/element_qr_scanner.svelte +++ b/src/lib/element_qr_scanner.svelte @@ -295,19 +295,32 @@ function handle_qr_manual_entry() { class="ae_container qr_scanning_container" >
{#if scanning_status == 'not_started' } - + + + Scanning stopped + {:else if scanning_status == 'paused' && show_pause_btn} Scanning paused {:else if scanning_status == 'scanning'} - + {#if show_pause_btn} {/if} - Scanning for QR code... + + + + + Scanning for QR code... + + {/if}
@@ -335,7 +348,7 @@ function handle_qr_manual_entry() { {#if show_qr_manual_badge_id_entry_option}
{#if show_qr_manual_entry} -
handle_qr_manual_entry} class="form-floating"> + handle_qr_manual_entry} class="flex"> @@ -347,23 +360,23 @@ function handle_qr_manual_entry() { id="entered_badge_id" required placeholder="Enter Badge ID" - class="input" + class="input max-w-52" />
{:else} - + {/if}
{/if} diff --git a/src/routes/events_leads/+page.svelte b/src/routes/events_leads/+page.svelte index 821fc017..e23409a9 100644 --- a/src/routes/events_leads/+page.svelte +++ b/src/routes/events_leads/+page.svelte @@ -198,14 +198,14 @@ function handle_check_event_exhibit_staff_passcode() { diff --git a/src/routes/events_leads/exhibit/[slug]/+page.svelte b/src/routes/events_leads/exhibit/[slug]/+page.svelte index 9968ed61..bdba64e6 100644 --- a/src/routes/events_leads/exhibit/[slug]/+page.svelte +++ b/src/routes/events_leads/exhibit/[slug]/+page.svelte @@ -19,9 +19,10 @@ import { clipboard, FileDropzone, getModalStore, localStorageStore, ProgressRadi // import type { Writable } from 'svelte/store'; -import Element_data_store from '$lib/element_data_store.svelte'; -import Element_qr_scanner from '$lib/element_qr_scanner.svelte'; +// import Element_data_store from '$lib/element_data_store.svelte'; +// import Element_qr_scanner from '$lib/element_qr_scanner.svelte'; +import Leads_add_scan from './leads_add_scan.svelte'; import Leads_list from './leads_list.svelte'; import Leads_manage from './leads_manage.svelte'; import Leads_payment from './leads_payment.svelte'; @@ -164,7 +165,7 @@ $: if ($events_trigger == 'load__event_exhibit_obj' && $events_slct.exhibit_id) console.log(`load_event_exhibit_obj = `, result); // Check if the license_li_json is an array and if not, convert it to an array. - if (result.license_li_json && !Array.isArray(result.license_li_json)) { + if (result?.license_li_json && !Array.isArray(result.license_li_json)) { console.log('Convert license_li_json to an array.'); result.license_li_json = []; } @@ -175,63 +176,9 @@ $: if ($events_trigger == 'load__event_exhibit_obj' && $events_slct.exhibit_id) // $events_slct.exhibit_obj.url = `${data.url.origin}/events_leads/exhibit/${$events_slct.exhibit_id}?license_key=${license_key}&event_id=${$events_slct.event_id}`; }); - - // handle_load_ae_obj_id__event_exhibit({event_exhibit_id: $events_slct.exhibit_id, try_cache: false}); - } -// // Load the Event Presenter Obj with ID based on the URL param. -// // $events_slct.exhibit_id = data.url.searchParams.get('ae_id'); -// $events_slct.exhibit_id = data.url.searchParams.get('event_exhibit_id'); -// if ($events_slct.exhibit_id) { -// console.log('Selected Event Presenter ID:', $events_slct.exhibit_id); -// $events_trigger = 'load__event_exhibit'; - -// // $events_loc.leads.show_edit__event_exhibit_obj = true; -// // $events_trigger = 'show_edit__event_exhibit'; -// } - - -async function handle_load_ae_obj_id__event_exhibit({event_exhibit_id, try_cache=false}) { - console.log(`*** handle_load_ae_obj_id__event_exhibit() *** event_exhibit_id=${event_exhibit_id}`); - - let params = {}; - - // $ae_loc.hub.event_exhibit_id_qry_status = 'loading'; - ae_event_exhibit_get_promise = api.get_ae_obj_id_crud({ - api_cfg: $ae_api, - obj_type: 'event_exhibit', - obj_id: event_exhibit_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_exhibit_get_result) { - if (event_exhibit_get_result) { - $events_slct.exhibit_obj = event_exhibit_get_result; - console.log(`event_exhibit object:`, $events_slct.exhibit); - } - - // Auto show the selected event_exhibit ID - // Is this pushState needed here? - // Set the URL param "event_exhibit_id" to the current event_exhibit ID. - // const url = new URL(location); - // url.searchParams.set('event_exhibit_id', $events_slct.exhibit_id); - // history.pushState({}, '', url); - - // Is this postMessage needed here? - // let message = {'event_exhibit_id': $events_slct.exhibit_id}; - // window.parent.postMessage(message, "*"); - }) - .catch(function (error) { - console.log('No results returned or failed.', error); - }); - - return ae_event_exhibit_get_promise; -} - async function handle_submit_form_license_update(event) { console.log('*** handle_submit_form_license_update() ***'); @@ -426,10 +373,10 @@ function send_init_confirm_email({to_email}) { let license_key = to_email; - let subject = `Leads License Link for ${$event_exhibit_obj.name} (ID: ${$events_slct.exhibit_id})`; + let subject = `Leads License Link for ${$event_exhibit_obj?.name} (ID: ${$events_slct.exhibit_id})`; let body_html = ` -
${$event_exhibit_obj.license_li_json[license_key].full_name}, +
${$event_exhibit_obj?.license_li_json[license_key].full_name},

If this was sent to you incorrectly, plaese ignore.

@@ -452,91 +399,6 @@ function send_init_confirm_email({to_email}) { } -function handle_qr_scan_result(event) { - console.log('*** handle_qr_scan_result() ***'); - - let qr_scan_result = event.detail.result; - console.log(qr_scan_result); - let qr_scan_obj = ae_util.process_data_string(qr_scan_result); - - if (qr_scan_obj.qr_type == 'OBJ') { - console.log(`Got a QR type of OBJ. Type ${qr_scan_obj.type}; ID ${qr_scan_obj.id}`); - - if (qr_scan_obj.type && qr_scan_obj.id && qr_scan_obj.type == 'event_badge') { - console.log(`Found an Event Badge object type and ID.`); - let event_badge_id = qr_scan_obj.id - - $events_sess.leads.qr_scan_result = `Found a badge type with ID: ${event_badge_id}`; - - // event_exhibit_tracking_obj_create_promise = await handle_create_event_exhibit_tracking_obj($slct.event_exhibit_id, event_badge_id); - // console.log(event_exhibit_tracking_obj_create_promise); - // if (event_exhibit_tracking_obj_create_promise) { - // console.log('Created new log entry for this badge.'); - // console.log(event_exhibit_tracking_obj_create_promise); - - // handle_load_event_exhibit_obj({event_exhibit_id: $slct.event_exhibit_id, try_cache: false}); - - // $slct.event_exhibit_tracking_obj = event_exhibit_tracking_obj_create_promise; - // $slct.event_exhibit_tracking_id = $slct.event_exhibit_tracking_obj.event_exhibit_tracking_id_random; - // // $slct.event_badge_obj = $slct.event_exhibit_tracking_obj.event_badge; - // // $slct.event_badge_id = $slct.event_badge_obj.event_badge_id_random; - // show_add_qr = false; - // qr_scan_result = ''; - // qr_scan_obj = {}; - // show_tracking_entry = true; - // } else if (event_exhibit_tracking_obj_create_promise === null) { - // console.log('A matching log entry probably exists for this person!'); - // } else { - // console.log('Something unexpected happened???'); - // } - - } else if (qr_scan_obj.type && qr_scan_obj.id && qr_scan_obj.type == 'event_exhibit') { - console.log(`Ignoring.`); - } else if (qr_scan_obj.type && qr_scan_obj.id && qr_scan_obj.type == 'event_person') { - console.log(`Ignoring.`); - } else if (qr_scan_obj.type && qr_scan_obj.id && qr_scan_obj.type == 'event_session') { - console.log(`Ignoring.`); - } else { - console.log(`Ignoring. The object returned was unexpected or not valid.`); - console.log(qr_scan_obj); - } - } else if (qr_scan_obj.qr_type == 'MECARD') { - console.log(`Got a QR type of MECARD. This was not expected, but we will at least display it???`); - - // https://github.com/ertant/vCard - // vcard = vCardParser.parse(qr_scan_obj.str); // vCard - // console.log(vcard); - - mecard = qr_scan_obj.str.split(';'); // vCard - // NOTE: Next we need to loop through the values and split each again on ":". - // NOTE: Then probably do a second check based on the known key values (N, EMAIL, ADR). - console.log(mecard); - - show_mecard = true; - } else { - console.log(`Got a QR type of ${qr_scan_obj.qr_type}. Display warning to user, but otherwise ignoring.`); - console.log(qr_scan_obj); - } -} - -function handle_qr_camera(event) { - console.log('*** handle_qr_camera() ***', event.detail); - - if (!$ae_loc.hub.qr) { - $ae_loc.hub.qr = {}; - } - - if (event.detail.status == 'allowed') { - // console.log('Camera access allowed'); - $ae_loc.hub.qr.camera_status = 'allowed'; - } else if (event.detail.status == 'denied') { - console.log('Camera access denied!?'); - $ae_loc.hub.qr.camera_status = 'denied'; - } -} - - - @@ -594,15 +456,19 @@ function handle_qr_camera(event) { name="tab_payment" value={'payment'}> - {#if !$event_exhibit_obj.paid} + {#if !$event_exhibit_obj?.priority} {:else} {/if} + {#if $event_exhibit_obj?.priority} + Paid + {:else} License Payment + {/if} { $events_loc.leads.auth_exhibit_kv[$events_slct.exhibit_id].key = null; }} @@ -724,9 +590,9 @@ function handle_qr_camera(event) {

License List (max {$event_exhibit_obj?.license_max})

-{#if !Array.isArray($event_exhibit_obj.license_li_json) || (Array.isArray($event_exhibit_obj.license_li_json) && $event_exhibit_obj?.license_li_json.length < $event_exhibit_obj?.license_max)} +{#if !Array.isArray($event_exhibit_obj?.license_li_json) || (Array.isArray($event_exhibit_obj?.license_li_json) && $event_exhibit_obj?.license_li_json.length < $event_exhibit_obj?.license_max)}