diff --git a/src/lib/ae_events_stores.ts b/src/lib/ae_events_stores.ts index 1cbd1ec3..de5b8ef8 100644 --- a/src/lib/ae_events_stores.ts +++ b/src/lib/ae_events_stores.ts @@ -63,7 +63,7 @@ let events_local_data_struct: key_val = { // For ISHLT 2024 Annual Meeting only! default__external_registration_id: '2024_Annual Meeting', - auto_view: true, + auto_view: true, // Show the new lead after added by scan or search auto_hide_on_sign_in: true, show_hidden: false, // These are hidden (archived) leads so the list is not as long. diff --git a/src/routes/events_badges/stats/+layout.ts b/src/routes/events_badges/stats/+layout.ts new file mode 100644 index 00000000..ae71f36e --- /dev/null +++ b/src/routes/events_badges/stats/+layout.ts @@ -0,0 +1,148 @@ +/** @type {import('./$types').LayoutLoad} */ + +import { get } from 'svelte/store'; + +import type { key_val } from '$lib/ae_stores'; +// import { ae_util } from '$lib/ae_utils'; +// import { api } from '$lib/api'; +import { ae_loc, ae_sess, ae_api, slct, slct_trigger } from '$lib/ae_stores'; +// import { events_loc, events_slct, events_trigger } from '$lib/ae_events_stores'; + + +/* + * This +layout load should be used for: + * * loading data required for the layout of the page... + * * like? + * Returns: data object (parent to child) + +export async function load({ params, parent, url }) { // route + console.log(`ae_events_badges [slug] +layout.ts data.params:`, params); + // console.log(`ae_events_badges [slug] +layout.ts data.route:`, route); + // console.log(`ae_events_badges [slug] +layout.ts data.url:`, url); + + let data = await parent(); + console.log(`Svelte Events Badges [slug] +layout.ts data = data:`, data); + + let ae_loc_tmp = get(ae_loc); + console.log(`ae_loc = `, ae_loc_tmp); + + let ds_code_li: null|key_val = ae_loc_tmp.ds; + console.log(`ae_ ds_code_li = `, ds_code_li); + let ds_code: null|string = null; + let ds_type: null|string = null; + + + let data_struct = { + ae_init: ae_loc_tmp, + params: params, + sections: [ + { slug: 'new', title: 'New Event Badge' }, + { slug: 'manage', title: 'Manage' }, + { slug: 'test', title: 'Test' }, + ], + url: url, + + }; + + let loading_results = null; + + ds_code = 'hub__page__events_badges__create_info'; + ds_type = 'text'; + // loading_results = await handle_get_data_store_obj_w_code({ code: ds_code }) + // .then( function (ds_hub_page_events_create_info_results) { + // if (ds_hub_page_events_create_info_results) { + // console.log(`ae_ hub__page__events_badges__create_info = `, ds_hub_page_events_create_info_results); + // // let ae_loc_tmp = get(ae_loc); + + // ds_code_li[ds_code] = ds_hub_page_events_create_info_results; + + // // ae_loc.set(ae_loc_tmp); + // // console.log(`ae_loc = `, get(ae_loc)); + // } + // }) + // .finally(function () { + // console.log(`ae_ ds_code_li = `, ds_code_li); + // ae_loc_tmp = { + // ...ae_loc_tmp, + // 'ds': ds_code_li, + // } + // console.log(`ae_loc_tmp = `, ae_loc_tmp); + + // ae_loc.set(ae_loc_tmp); + // console.log(`ae_loc = `, get(ae_loc)); + // }); + + // loading_results = await api.get_data_store_obj_w_code({ + // api_cfg: get(ae_api), + // data_store_code: ds_code, + // data_type: ds_type, + // log_lvl: 0 + // }) + // .then( function (ds_results) { + // if (ds_results) { + // console.log(`ae_ Data Store ${ds_code} = `, ds_results); + // // let ae_loc_tmp = get(ae_loc); + + // ds_code_li[ds_code] = ds_results.text; + + // // ae_loc.set(ae_loc_tmp); + // // console.log(`ae_loc = `, get(ae_loc)); + // } + // }) + // .finally(function () { + // console.log(`ae_ ds_code_li = `, ds_code_li); + // ae_loc_tmp = { + // ...ae_loc_tmp, + // 'ds': ds_code_li, + // } + // console.log(`ae_loc_tmp = `, ae_loc_tmp); + + // ae_loc.set(ae_loc_tmp); + // console.log(`ae_loc = `, get(ae_loc)); + // }); + + return data_struct; +} + + + + + +// async function handle_get_data_store_obj_w_code({ code=null, data_type='text' }) { +// console.log(`*** handle_get_data_store_obj_w_code() *** code=${code}`); + +// if (!code) { +// console.log('No code provided.'); +// return; +// } + +// let data_store_obj_get_promise = api.get_data_store_obj_w_code({ +// api_cfg: get(ae_api), +// data_store_code: code, +// data_type: data_type, +// log_lvl: 0 +// }) +// .then(function (get_data_store_result) { +// let return_this = null; +// if (get_data_store_result) { + +// if (data_type == 'text') { +// // console.log(get_data_store_result.text); +// return_this = get_data_store_result.text; +// } else if (data_type == 'json') { +// // console.log(get_data_store_result.json); +// return_this = get_data_store_result.json; +// } + +// } else { +// console.log('No results returned.'); +// return_this = null; +// } +// return return_this; +// }) +// .catch(function (error) { +// console.log('No results returned or failed.', error); +// }); + +// return data_store_obj_get_promise; +// } diff --git a/src/routes/events_badges/stats/+page.svelte b/src/routes/events_badges/stats/+page.svelte new file mode 100644 index 00000000..49c232a5 --- /dev/null +++ b/src/routes/events_badges/stats/+page.svelte @@ -0,0 +1,843 @@ + + + +
+ + +{#if $ae_loc.iframe} + + header +

Review & Print
Your Badge

+
+{:else} +
+

Badge Review and Print

+
+{/if} + +
+ +{#if $events_sess.badges.show_form__search} +
{ + $events_trigger = 'load__event_badge_obj_li'; + }} + autocomplete="off" + class="form flex-grow flex flex-row flex-wrap gap-1 justify-center items-center w-full" + > +{#if $ae_loc.trusted_access && badge_type_code_li} +
+ +
+{/if} + + + { + if ($events_sess.badges.fulltext_search_qry_str.length >= 3) { + $events_trigger = 'load__event_badge_obj_li'; + } + }} + autofocus + suggest="off" + data-lpignore="true" + > + + + +
+ + +{:else if $events_sess.badges.show_form__scan} + + + + + + + + + + + + + + + + + + + + +{/if} + + + +
+ {#if $events_sess.badges.show_form__search} + + {:else if $events_sess.badges.show_form__scan} + + {/if} +
+ + +
+ + +{#await load_obj_li_results} + + + + Loading... + + +{:then load_obj_li_results} + {#if load_obj_li_results} + + + Loaded + + {/if} +{/await} + + +{#if $events_sess.badges.show_form__search} + +{#if $events_slct?.badge_obj_li.length} + +
+

Results:

+ + + + + + + + + + + +{#each $events_slct.badge_obj_li as badge_obj} + += 1 || badge_obj.hide) && !$ae_loc.trusted_access} + class:fade_50={(badge_obj.print_count >= 1 || badge_obj.hide) && $ae_loc.trusted_access} + > + + + + +{/each} + +
BadgeEmail / Affiliations / LocationBadge Type
+ + +
+
+ + + + {badge_obj.email ? badge_obj.email.replace(/^(.{3}).*@/, '$1...@') : ''} +
+ +
+ {#if badge_obj?.affiliations} + + {badge_obj.affiliations} + {:else if badge_obj.location} + + {badge_obj.location} + {:else if badge_obj.city && badge_obj.state_province} + + {badge_obj.city}, {badge_obj.state_province} + {:else if badge_obj.city} + + {badge_obj.city} + {:else if badge_obj.state_province} + + {badge_obj.state_province} + {:else} + -- none -- + {/if} +
+
+
+
+ {badge_obj.badge_type} + +
+ { + console.log(`ae_crud_updated event:`, e.detail); + // events_func.handle_load_ae_obj_id__badge({api_cfg: $ae_api, badge_id: $events_slct.badge_id}); + }} + > + + + {#if $ae_loc.administrator_access} + + + + {/if} + + + { + console.log(`ae_crud_updated event:`, e.detail); + // events_func.handle_load_ae_obj_id__badge({api_cfg: $ae_api, badge_id: badge_obj.badge_id_random}); + }} + > + + + +
+ +
+
+
+{:else} +
+ Type your name, email, or affiliations. Results will start to appear automatically. +
+ + {#if $events_sess.badges.fulltext_search_qry_str && $events_sess.badges.fulltext_search_qry_str.length > 5} +
+ No badges found. Please change your search. +
+ {/if} +{/if} + + +{:else if $events_sess.badges.show_form__scan} + + +
+
+
+

Scan

+ +
+
+ +
+ + +
+
+ +
+ + + +
+ {@html $events_sess.badges.qr_scan_result ?? 'No results yet'} +
+ + + {#if $events_slct.badge_id && $events_slct.badge_obj} +

Badge ID: {$events_slct.badge_obj.event_badge_id_random}

+ {/if} + +
+
+ +
+ + + +{/if} + + + + +
+ + + + + diff --git a/src/routes/events_leads/exhibit/[slug]/leads_add_scan.svelte b/src/routes/events_leads/exhibit/[slug]/leads_add_scan.svelte index 94da7d25..18f8cd99 100644 --- a/src/routes/events_leads/exhibit/[slug]/leads_add_scan.svelte +++ b/src/routes/events_leads/exhibit/[slug]/leads_add_scan.svelte @@ -259,7 +259,7 @@ function handle_qr_camera(event) { {/if} + + {#if ($events_loc.leads.show_content__scan_requirements)} {:else if (!$events_loc.leads.show_content__scan_requirements)} @@ -407,7 +419,6 @@ function handle_qr_camera(event) { $events_sess.leads.show_confirm__add_lead[index] = true; }} - disabled={!$ae_loc.trusted_access && 2==4} title="Add {event_badge_obj_v2.full_name} to the leads list?" class="btn btn-md variant-soft-primary mx-1" > @@ -468,7 +479,6 @@ function handle_qr_camera(event) { + @@ -922,6 +950,8 @@ function handle_qr_camera(event) { on:click={() => { $events_sess.leads.show_form__scan = false; $events_sess.leads.qr_scan_start = false; + + $events_sess.leads.qr_scan_result = null; }} > diff --git a/src/routes/events_leads/exhibit/[slug]/leads_list.svelte b/src/routes/events_leads/exhibit/[slug]/leads_list.svelte index b4f6361f..0745270f 100644 --- a/src/routes/events_leads/exhibit/[slug]/leads_list.svelte +++ b/src/routes/events_leads/exhibit/[slug]/leads_list.svelte @@ -341,7 +341,7 @@ let refresh_leads_list = setInterval(function () { $events_sess.leads.show_form__view_lead = $events_slct.exhibit_tracking_id; // $events_sess.leads.show_form__view_lead[$events_slct.exhibit_tracking_id] = true; }} - class="btn btn-sm variant-soft-primary flex flex-row justify-between items-center gap-0.5 min-w-72 min-h-14 max-h-14" + class="btn btn-sm variant-soft-primary flex flex-row justify-between items-center gap-0.5 min-w-72 lg:min-w-96 min-h-14 max-h-14" > {event_exhibit_tracking_obj.event_badge_full_name}