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}
-
{: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)}