Stuck and done for the night

This commit is contained in:
Scott Idem
2024-03-20 19:39:48 -04:00
parent e21b7ef584
commit c490bca265
5 changed files with 192 additions and 48 deletions

View File

@@ -52,6 +52,7 @@ storePopup.set({ computePosition, autoUpdate, flip, shift, offset, arrow });
import { api } from '$lib/api';
import { ae_loc, ae_sess, ae_api, slct, slct_trigger } from '$lib/ae_stores';
import { events_loc, events_slct } from '$lib/ae_events_stores';
import type { key_val } from '$lib/ae_stores';
// console.log($ae_loc, $ae_sess, $ae_api);
@@ -60,6 +61,21 @@ import Element_app_cfg from '$lib/element_app_cfg.svelte';
import Element_data_store from '$lib/element_data_store.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');
} else if (data.ae_loc.site_cfg_json.slct__event_id) {
$events_slct.event_id = data.ae_loc.site_cfg_json.slct__event_id;
$events_loc.event_id = data.ae_loc.site_cfg_json.slct__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 if (data.ae_loc.default__event_id) {
$events_slct.event_id = data.ae_loc.default__event_id;
$events_loc.event_id = data.ae_loc.default__event_id;
} else {
console.log(`No Event ID set.`);
}
onMount(() => {

View File

@@ -24,23 +24,24 @@ let event_exhibit_obj_li = liveQuery(
// .equals('99999')
.above(0)
.sortBy('name') // Use sortBy() instead of orderBy(). toArray() is also not needed???
// .sortBy('[priority+name]')
// .orderBy('name')
// .offset(10).limit(5)
// .toArray()
);
// This should probably be moved
if (data.url.searchParams.get('event_id')) {
$events_slct.event_id = data.url.searchParams.get('event_id');
} else if (data.ae_loc.site_cfg_json.slct__event_id) {
$events_slct.event_id = data.ae_loc.site_cfg_json.slct__event_id;
} else if ($events_loc.default__event_id) {
$events_slct.event_id = $events_loc.default__event_id;
} else if ($events_slct.event_id) {
console.log(`Event ID already set:`, $events_slct.event_id);
} else {
console.log(`No Event ID set.`);
}
// if (data.url.searchParams.get('event_id')) {
// $events_slct.event_id = data.url.searchParams.get('event_id');
// } else if (data.ae_loc.site_cfg_json.slct__event_id) {
// $events_slct.event_id = data.ae_loc.site_cfg_json.slct__event_id;
// } else if ($events_loc.default__event_id) {
// $events_slct.event_id = $events_loc.default__event_id;
// } else if ($events_slct.event_id) {
// console.log(`Event ID already set:`, $events_slct.event_id);
// } else {
// console.log(`No Event ID set.`);
// }
// export let event_exhibit_staff_passcode: string = '';
let disable_open_lead_retrieval_btn: boolean = true;

View File

@@ -7,31 +7,67 @@ 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 { events_loc, events_sess, events_slct, events_trigger } from '$lib/ae_events_stores';
import { events_func } from '$lib/ae_events_functions';
import Element_qr_scanner from '$lib/element_qr_scanner.svelte';
// let param_slug_event_exhibit_id = data.params.slug;
console.log(`ae_events_leads exhibit [slug] leads_add_scan.svelte:`, $events_slct);
let event_exhibit_obj = liveQuery(
() => db_events.exhibits.get($events_slct.exhibit_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(' ')
// Version 2: This does not work yet
let event_badge_obj_li = liveQuery(
// () => db_events.exhibits.toArray()
() => db_events.badges
// .where({event_exhibit_id_random: $events_slct.exhibit_id, enable: true, hide: false})
// .where({event_id_random: $events_loc.event_id})
.where('event_id_random').equals($events_loc.event_id)
// .where('event_id_random').equals($events_slct.event_id)
.or('full_name').equalsIgnoreCase($events_sess.leads.entered_search_str)
// .and('full_name').anyOfIgnoreCase([$events_sess.leads.entered_search_str, 'Sasa Vukelic'])
// .where('full_name').anyOfIgnoreCase(tmp_search_terms)
// .and('enable').equals(true)
.sortBy('full_name') // Use sortBy() instead of orderBy(). toArray() is also not needed???
// .toArray()
// , full_name: 'Susan'
// Scott Idem
// Albert Einstein
);
// We are using Dexie.js for the database. This liveQuery should only show records that match the event_id and contain the search string.
// Version 3: This does not work yet
let event_badge_obj_li_v3 = liveQuery(
// () => db_events.exhibits.toArray()
() => db_events.badges
.where({event_exhibit_id_random: $events_slct.exhibit_id, full_name: $events_sess.leads.entered_search_str})
);
let search_submit_results: Promise<any>|key_val;
let scan_submit_results: Promise<any>|key_val;
function handle_submit_form_search(event) {
console.log('*** handle_submit_form_search() ***');
console.log(event);
async function handle_submit_form_search(event) {
console.log('*** handle_submit_form_search() ***', event);
$events_sess.leads.submit_status__search = 'submitting';
let search_str = $events_sess.leads.entered_search_str;
let search_str = $events_sess.leads.entered_search_str.trim();
console.log(search_str);
// search_submit_results = handle_search_for_person(search_str);
search_submit_results = await events_func.handle_search__event_badge({api_cfg: $ae_api, event_id: $event_exhibit_obj.event_id_random, fulltext_search_qry_str: search_str});
console.log(search_submit_results);
}
function handle_qr_scan_result(event) {
console.log('*** handle_qr_scan_result() ***');
@@ -230,13 +266,44 @@ function handle_qr_camera(event) {
flex-col
gap-4
justify-stretch
min-h-full
max-h-full
min-w-full
"
>
<header class="popover__header flex gap-1 justify-between items-center p-1 border-b">
<h2 class="h3">Search</h2>
<div class="">
<form
id="form__search_text"
class="form flex flex-row gap-2 justify-center items-center w-full"
on:submit|preventDefault={handle_submit_form_search}
>
<!-- This is the plain text search field for looking up attendees based on their name, email, etc. -->
<input
type="text"
name="entered_search_string"
placeholder="Search for attendee"
bind:value={$events_sess.leads.entered_search_str}
required
class="input max-w-56"
/>
<button
type="submit"
class="btn variant-ghost-primary"
>
<span class="fas fa-search mx-1"></span>
Search
</button>
</form>
</div>
<div class="popover__actions">
<button
type="button"
@@ -251,32 +318,28 @@ function handle_qr_camera(event) {
</div>
</header>
<section class="popover__content grow flex flex-col gap-4 items-center">
<form
id="form__search_text"
class="form flex flex-row gap-2 justify-center items-center w-full"
on:submit|preventDefault={handle_submit_form_search}
>
<section class="popover__content grow flex flex-col gap-4 items-center ae_modal_scrollfix">
<!-- This is the plain text search field for looking up attendees based on their name, email, etc. -->
<input
type="text"
name="entered_search_string"
placeholder="Search for attendee"
bind:value={$events_sess.leads.entered_search_str}
required
class="input max-w-56"
/>
<button
type="submit"
class="btn variant-ghost-primary"
>
<span class="fas fa-search mx-1"></span>
Search
</button>
<div class="ae_events__badge_li">
{#if $event_badge_obj_li}
{#each $event_badge_obj_li as event_badge_obj, index}
<div class="ae_events__badge_li__item">
<span class="ae_events__badge_li__item__name">
{event_badge_obj.full_name}
</span>
<span class="ae_events__badge_li__item__email">
<a href="mailto:{event_badge_obj.email}">{event_badge_obj.email}</a>
</span>
</div>
{/each}
{:else}
<div class="variant-soft-warning">No results yet</div>
{/if}
</div>
</form>
</section> <!-- .popover__content -->
<footer class="popover__footer flex gap-1 justify-between items-center p-1 border-t">
@@ -355,7 +418,7 @@ function handle_qr_camera(event) {
flex-col
gap-4
justify-stretch
min-h-full
max-h-full
min-w-full
"
>
@@ -377,7 +440,7 @@ function handle_qr_camera(event) {
</div>
</header>
<section class="popover__content grow flex flex-col gap-4 items-center">
<section class="popover__content grow flex flex-col gap-4 items-center ae_modal_scrollfix">
<!-- <div class=""> -->