General work through out the day. Lots of interruptions from the dogs.

This commit is contained in:
Scott Idem
2024-03-25 19:26:49 -04:00
parent b0f2e2ccdf
commit 3ddef770c0
16 changed files with 497 additions and 491 deletions

View File

@@ -5,6 +5,7 @@ import { ae_util } from '$lib/ae_utils';
import { liveQuery } from "dexie";
import { db_events } from "$lib/db_events";
import { ae_loc, ae_sess, ae_api, slct, slct_trigger } from '$lib/ae_stores';
// import { core_func } from '$lib/ae_core_functions';
import { events_loc, events_sess, events_slct, events_trigger } from '$lib/ae_events_stores';
import { events_func } from '$lib/ae_events_functions';
@@ -16,15 +17,24 @@ $events_sess.leads.show_form__search = true;
// TEMPORARY: For testing and development
let event_exhibit_obj = liveQuery(
$: event_exhibit_obj = liveQuery(
() => db_events.exhibits.get($events_slct.exhibit_id)
);
$: event_exhibit_tracking_obj = liveQuery(
() => db_events.exhibit_tracking.get($events_slct.exhibit_tracking_id)
);
$events_sess.leads.entered_search_str = 'Albert Einstein';
// $events_sess.leads.entered_search_str = 'Albert Einstein';
let tmp_search_terms = $events_sess.leads.entered_search_str.split(' ')
$: event_badge_obj = liveQuery(
() => db_events.badges.get($events_slct.badge_id)
);
// Version 2: This does not work yet
let event_badge_obj_li = liveQuery(
// () => db_events.exhibits.toArray()
@@ -72,7 +82,7 @@ async function handle_submit_form_search(event) {
$events_slct.badge_obj_li = search_submit_results;
}
let load_event_badge_results = null;
function handle_qr_scan_result(event) {
console.log('*** handle_qr_scan_result() ***');
@@ -89,6 +99,13 @@ function handle_qr_scan_result(event) {
$events_sess.leads.qr_scan_result = `Found a badge type with ID: ${event_badge_id}`;
load_event_badge_results = events_func.handle_load_ae_obj_id__badge({api_cfg: $ae_api, badge_id: event_badge_id })
.then((result) => {
$events_slct.badge_id = event_badge_id;
$events_slct.badge_obj = result;
console.log(result);
});
// 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) {
@@ -111,6 +128,9 @@ function handle_qr_scan_result(event) {
// console.log('Something unexpected happened???');
// }
$events_sess.leads.show_confirm__add_lead[event_badge_id] = true;
} 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') {
@@ -346,6 +366,7 @@ function handle_qr_camera(event) {
</button>
<!-- This block needs to be moved or something. It takes up too much space! -->
<!-- This uses the event_badge_obj_v2 from the for each loop. -->
{#if $events_sess.leads.show_confirm__add_lead[index]}
<div class="ae_quick_modal_container">
<section
@@ -361,7 +382,7 @@ function handle_qr_camera(event) {
"
>
<header class="popover__header flex gap-1 justify-between items-center p-1 border-b">
<h2 class="h3">Add?</h2>
<h2 class="h3">Add Selected?</h2>
<div class="popover__actions">
<button
@@ -386,6 +407,7 @@ function handle_qr_camera(event) {
class="btn variant-soft-primary"
on:click={() => {
console.log(`Do not add ${event_badge_obj_v2.full_name} ${event_badge_obj_v2.email} to the leads list`);
$events_sess.leads.show_confirm__add_lead[index] = false;
}}
>
@@ -403,10 +425,35 @@ function handle_qr_camera(event) {
events_func.handle_create_ae_obj__exhibit_tracking({api_cfg: $ae_api, exhibit_id: $events_slct.exhibit_id, event_badge_id: event_badge_obj_v2.event_badge_id_random, external_person_id: $events_loc.leads.auth_exhibit_kv[$events_slct.exhibit_id].key, })
.then((result) => {
console.log(result);
let exhibit_tracking_id = null;
let exhibit_tracking_obj = {};
if (result) {
exhibit_tracking_id = result.event_exhibit_tracking_id_random;
exhibit_tracking_obj = result;
$events_slct.exhibit_tracking_id = exhibit_tracking_id;
$events_slct.exhibit_tracking_obj = exhibit_tracking_obj;
$events_sess.leads.show_confirm__add_lead[index] = false;
} else {
console.log('Something went wrong with adding the lead to the list.');
console.log('This badge ID has probably already been added to the lead list for this exhibit.');
// Need to look the old record up and set it to not hidden.
// events_func.handle_update_ae_obj_id_crud({api_cfg: $ae_api, object_type: 'event_exhibit_tracking', object_id: $events_slct.exhibit_tracking_id, field_name: 'hide', new_field_value: false})
$events_sess.leads.show_confirm__add_lead[index] = false;
}
if ($events_loc.leads.auto_view) {
$events_sess.leads.show_form__search = false;
$events_sess.leads.show_form__scan = false;
// $events_slct.exhibit_tracking_id = exhibit_tracking_id;
// $events_slct.exhibit_tracking_obj = exhibit_tracking_id;
$events_loc.leads.tab[$events_slct.exhibit_id] = 'leads';
$events_sess.leads.show_form__view_lead = $events_slct.exhibit_tracking_id;
}
});
@@ -616,6 +663,115 @@ function handle_qr_camera(event) {
</div>
<!-- This block needs to be moved or something. It takes up too much space! -->
<!-- This uses the events_slct with badge_id and badge_obj. -->
{#if $events_sess.leads.show_confirm__add_lead[$events_slct.badge_id] && $event_badge_obj}
<div class="ae_quick_modal_container">
<section
class="
ae_quick_popover_small
events__leads__scan
z-50
flex
flex-col
gap-4
justify-stretch
"
>
<header class="popover__header flex gap-1 justify-between items-center p-1 border-b">
<h2 class="h3">Add Scanned?</h2>
<div class="popover__actions">
<button
type="button"
class="btn variant-soft-primary"
on:click={() => {
$events_slct.badge_id = null;
$events_slct.badge_obj = null;
$events_sess.leads.show_confirm__add_lead[$events_slct.badge_id] = false;
}}
>
<span class="fas fa-times mx-1"></span>
Close
</button>
</div>
</header>
<section class="popover__content grow flex flex-col gap-4 items-center ae_modal_scrollfix">
<p>Are you sure you want to add <strong>{$event_badge_obj.full_name}</strong> to the leads list?</p>
<p>Badge ID: <strong>{$event_badge_obj.event_badge_id_random}</strong></p>
<div class="flex flex-row gap-16 justify-center items-center">
<button
type="button"
class="btn variant-soft-primary"
on:click={() => {
console.log(`Do not add ${$event_badge_obj.full_name} ${$event_badge_obj.email} to the leads list`);
$events_slct.badge_id = null;
$events_slct.badge_obj = null;
$events_sess.leads.show_confirm__add_lead[$events_sess.leads.qr_scan_result] = false;
}}
>
<span class="fas fa-times mx-1"></span>
No
</button>
<button
type="button"
class="btn variant-soft-primary"
on:click={() => {
console.log(`Add ${event_badge_obj.full_name} ${event_badge_obj.email} to the leads list`);
events_func.handle_create_ae_obj__exhibit_tracking({api_cfg: $ae_api, exhibit_id: $events_slct.exhibit_id, event_badge_id: $events_slct.badge_id, external_person_id: $events_loc.leads.auth_exhibit_kv[$events_slct.exhibit_id].key, })
.then((result) => {
console.log(result);
let exhibit_tracking_id = null;
let exhibit_tracking_obj = {};
if (result) {
exhibit_tracking_id = result.event_exhibit_tracking_id_random;
exhibit_tracking_obj = result;
$events_slct.exhibit_tracking_id = exhibit_tracking_id;
$events_slct.exhibit_tracking_obj = exhibit_tracking_obj;
$events_sess.leads.show_confirm__add_lead[$events_slct.badge_id] = false;
} else {
console.log('This badge ID has probably already been added to the lead list for this exhibit.');
// Need to look the old record up and set it to not hidden.
$events_sess.leads.show_confirm__add_lead[$events_slct.badge_id] = false;
}
if ($events_loc.leads.auto_view) {
$events_sess.leads.show_form__search = false;
$events_sess.leads.show_form__scan = false;
$events_loc.leads.tab[$events_slct.exhibit_id] = 'leads';
$events_sess.leads.show_form__view_lead = $events_slct.exhibit_tracking_id;
}
});
// $events_sess.leads.show_confirm__add_lead[$events_slct.badge_id] = false;
}}
>
<span class="fas fa-check mx-1"></span>
Yes
</button>
</div>
</section> <!-- .popover__content -->
</section> <!-- .ae_quick_popover -->
</div>
{/if}
</section> <!-- .popover__content -->
<footer class="popover__footer flex gap-1 justify-between items-center p-1 border-t">