From b5588fd9a15bbd6e840dcb900a0f515927baa5fc Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Wed, 3 Apr 2024 14:54:33 -0400 Subject: [PATCH] Slow and steady progress getting things working more smoothly. --- src/lib/ae_events_stores.ts | 3 + src/lib/element_ae_crud.svelte | 2 +- .../events_leads/exhibit/[slug]/+page.svelte | 5 +- .../exhibit/[slug]/leads_list.svelte | 88 ++++++++++++++----- .../exhibit/[slug]/leads_manage.svelte | 57 +++++++++--- .../exhibit/[slug]/leads_payment.svelte | 17 ++++ .../exhibit/[slug]/leads_view_lead.svelte | 75 +++++++++++++--- 7 files changed, 199 insertions(+), 48 deletions(-) diff --git a/src/lib/ae_events_stores.ts b/src/lib/ae_events_stores.ts index 8981f51b..b8919eae 100644 --- a/src/lib/ae_events_stores.ts +++ b/src/lib/ae_events_stores.ts @@ -44,7 +44,10 @@ let events_local_data_struct: key_val = { // Lead Retrievals (Exhibit) 'leads': { + show_option__paid_tab: true, show_content__scan_requirements: true, + show_content__custom_question_descriptions: true, + show_content__email_link_warning: true, // For ISHLT 2024 Annual Meeting only! default__external_registration_id: '2024_Annual Meeting', diff --git a/src/lib/element_ae_crud.svelte b/src/lib/element_ae_crud.svelte index 08932d2c..5aaef048 100644 --- a/src/lib/element_ae_crud.svelte +++ b/src/lib/element_ae_crud.svelte @@ -58,7 +58,7 @@ onMount(() => { }); -$: if (trigger_patch) { +$: if (trigger_patch == true) { console.log('AE CRUD: Patch triggered!'); // console.log(trigger_patch); trigger_patch = null; diff --git a/src/routes/events_leads/exhibit/[slug]/+page.svelte b/src/routes/events_leads/exhibit/[slug]/+page.svelte index 4e6433f8..31885a66 100644 --- a/src/routes/events_leads/exhibit/[slug]/+page.svelte +++ b/src/routes/events_leads/exhibit/[slug]/+page.svelte @@ -522,10 +522,12 @@ function send_init_confirm_email({index, lic_key, lic_pass}) { border="" class="bg-surface-100-800-token w-full" > + {#if $events_loc.leads.show_option__paid_tab} + value={'payment'} + > {#if !$event_exhibit_obj?.priority} @@ -541,6 +543,7 @@ function send_init_confirm_email({index, lic_key, lic_pass}) { Payment {/if} + {/if} -// export let data; -// console.log(`ae_events_leads exhibit [slug] leads_payment.svelte data:`, data); +// export let data: any; +// console.log(`ae_events_leads exhibit [slug] leads_list.svelte data:`, data); -import { ae_util } from '$lib/ae_utils'; +import type { key_val } from '$lib/ae_stores'; +// 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 { events_loc, events_sess, events_slct, events_trigger } from '$lib/ae_events_stores'; +import { events_func } from '$lib/ae_events_functions'; +import Element_ae_crud from '$lib/element_ae_crud.svelte'; import Leads_view_lead from './leads_view_lead.svelte'; -let event_exhibit_obj = liveQuery( +// These will likely be used for patch/update triggers. Maybe delete? +let ae_triggers: key_val = { + priority: {}, + sort: {}, + show_hidden: {}, +}; + +// The lq__ prefix is used to indicate that this is a liveQuery object and it should use the $ prefix when referencing the object. +let lq__event_exhibit_obj = liveQuery( () => db_events.exhibits.get($events_slct.exhibit_id) ); @@ -57,7 +68,7 @@ let event_exhibit_obj = liveQuery( // This is using Dexie JS as a wrapper for IndexedDB // This should only show exhibit_tracking objects that are enabled and not hidden. // The final results should be sorted by: priority DESC, sort ASC, created_on DESC, updated_on DESC -$: event_exhibit_tracking_obj_li = liveQuery( +let lq__event_exhibit_tracking_obj_li = liveQuery( () => db_events.exhibit_tracking .where({event_exhibit_id_random: $events_slct.exhibit_id}) .and((x) => (x.enable === true && x.hide === false)) @@ -85,7 +96,7 @@ $: event_exhibit_tracking_obj_li = liveQuery( {#if $events_slct.exhibit_id && $events_slct.exhibit_obj}

- Leads for {$event_exhibit_obj?.name} + Leads for {$lq__event_exhibit_obj?.name}

This section is not fully enabled for ISHLT 2024 at this time. You can not add new leads and changes are limited.
@@ -95,12 +106,18 @@ $: event_exhibit_tracking_obj_li = liveQuery( + {:else} + + {/if} +{/if} + + + -
+
{#if $events_loc?.leads.auth_exhibit_kv[$events_slct.exhibit_id]} - Auto hide on sign in: +
+ Auto hide header/footer on sign in: +
+
Turn on iframe mode: +
+
Show or hide additional details: +
diff --git a/src/routes/events_leads/exhibit/[slug]/leads_payment.svelte b/src/routes/events_leads/exhibit/[slug]/leads_payment.svelte index d824d054..c10d0425 100644 --- a/src/routes/events_leads/exhibit/[slug]/leads_payment.svelte +++ b/src/routes/events_leads/exhibit/[slug]/leads_payment.svelte @@ -119,8 +119,25 @@ $: if ($events_sess.stripe && $events_sess.stripe.license_qty >= 0 || $events_se {:else}

You have not rented any tablets for scanning. You can use your own device(s) with this service.

{/if} + +

To save space while using this app you can hide this payment tab now that you have paid for your licenses. This can be unhidden under the Conf tab if needed.

+ + {:else}

Not Marked as Paid

diff --git a/src/routes/events_leads/exhibit/[slug]/leads_view_lead.svelte b/src/routes/events_leads/exhibit/[slug]/leads_view_lead.svelte index d3385c77..d77afe5e 100644 --- a/src/routes/events_leads/exhibit/[slug]/leads_view_lead.svelte +++ b/src/routes/events_leads/exhibit/[slug]/leads_view_lead.svelte @@ -144,12 +144,12 @@ async function handle_submit_form_lead_update(event) { " >
-

Lead: +

+ Lead: {@html ($event_exhibit_tracking_obj?.priority ? '' : '')} {$event_exhibit_tracking_obj?.event_badge_full_name} - ID: {$event_exhibit_tracking_obj?.event_exhibit_tracking_id_random}

@@ -434,17 +434,35 @@ async function handle_submit_form_lead_update(event) {
- Custom Questions: + + Custom Questions: + + + {#each $event_exhibit_obj?.leads_custom_questions_json as leads_custom_question, question_index} -
- {leads_custom_question.question} +
+ {leads_custom_question.question} + {#if (leads_custom_question.type == 'text')} { $events_sess.leads.lead_data_changed = true; }} @@ -452,7 +470,7 @@ async function handle_submit_form_lead_update(event) { {:else if (leads_custom_question.type == 'option' && leads_custom_question.option_li)} {:else} - Responses not yet configured + Response type not yet configured + {/if} + + {#if ($events_loc.leads.show_content__custom_question_descriptions)} + {leads_custom_question.description} {/if} - -
{/each}
@@ -475,11 +495,38 @@ async function handle_submit_form_lead_update(event) { {/if} -
-
+
+ {#if ($events_loc.leads.show_content__email_link_warning)} +
+ This is the email address of the person that originally scanned the badge. This is used to link the lead to the person that scanned the badge. This is useful for tracking who scanned the badge and who the lead is associated with.
-