This is a good point for things. Looks good and working well.
This commit is contained in:
@@ -122,7 +122,7 @@ async function handle_load_ae_obj_li__badge({api_cfg, event_id, params={}, try_c
|
||||
|
||||
|
||||
|
||||
async function handle_search__event_badge({api_cfg, event_id, fulltext_search_qry_str, params={}, try_cache=true}) {
|
||||
async function handle_search__event_badge({api_cfg, event_id, fulltext_search_qry_str, external_event_id, params={}, try_cache=true}) {
|
||||
console.log(`*** handle_search__event_badge() *** event_id=${event_id}`);
|
||||
|
||||
let enabled: string = (params.qry__enabled ?? 'enabled'); // all, disabled, enabled
|
||||
@@ -139,6 +139,9 @@ async function handle_search__event_badge({api_cfg, event_id, fulltext_search_qr
|
||||
};
|
||||
}
|
||||
|
||||
params_json['and_qry'] = {};
|
||||
if (external_event_id) params_json['and_qry']['external_event_id'] = external_event_id;
|
||||
|
||||
// $events_sess.badges.status_qry__search = 'loading';
|
||||
ae_promises.search__event_badge = await api.get_ae_obj_li_for_obj_id_crud({
|
||||
api_cfg: api_cfg,
|
||||
|
||||
@@ -46,6 +46,9 @@ let events_local_data_struct: key_val = {
|
||||
'leads': {
|
||||
show_content__scan_requirements: true,
|
||||
|
||||
// For ISHLT 2024 Annual Meeting only!
|
||||
default__external_registration_id: '2024_Annual Meeting',
|
||||
|
||||
auto_view: true,
|
||||
auto_hide_on_sign_in: true,
|
||||
|
||||
@@ -68,6 +71,8 @@ let events_local_data_struct: key_val = {
|
||||
// The "tab" is a key value list of exhibit ID and tab name. This is intentionally using local storage to store the current tab for each exhibit.
|
||||
// example: {'LNDF-67-89-92': 'start', 'OFLN-32-38-14': 'add_scan'}
|
||||
tab: {},
|
||||
|
||||
|
||||
},
|
||||
|
||||
// Presentation Management (Distributing)
|
||||
@@ -121,6 +126,8 @@ let events_session_data_struct: key_val = {
|
||||
show_form__search: false,
|
||||
show_form__scan: false,
|
||||
|
||||
show_confirm__add_lead: [],
|
||||
|
||||
submit_status__license: null, // 'saving', 'created', 'updated'
|
||||
// create_status__license: null, // 'creating', 'created', 'updated'
|
||||
// update_status__license: null, // 'updating', 'created', 'updated'
|
||||
|
||||
@@ -377,16 +377,18 @@ function send_init_confirm_email({to_email}) {
|
||||
|
||||
let body_html = `
|
||||
<div>${$event_exhibit_obj?.license_li_json[license_key].full_name},
|
||||
<p>If this was sent to you incorrectly, plaese ignore.</p>
|
||||
<p>If this was sent to you incorrectly, please ignore.</p>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div>
|
||||
Exhibit ID: ${$events_slct.exhibit_id}<br>
|
||||
<p>Use your license key login link below.<br>
|
||||
<p>Use your license key sign in link below.<br>
|
||||
Copy and paste link: <a href="${data.url.origin}/events_leads/exhibit/${$events_slct.exhibit_id}?license_key=${license_key}">${data.url.origin}/events_leads/exhibit/${$events_slct.exhibit_id}?license_key=${license_key}&event_id=${$events_slct.event_id}</a></p>
|
||||
</div>`;
|
||||
<p>If the email or passcode for your exhibit is changed, this link will no longer work.</p>
|
||||
</div>
|
||||
`;
|
||||
|
||||
api.send_email({
|
||||
api_cfg: $ae_api,
|
||||
@@ -398,8 +400,6 @@ function send_init_confirm_email({to_email}) {
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
@@ -563,7 +563,7 @@ function send_init_confirm_email({to_email}) {
|
||||
|
||||
{#if $events_loc.leads.auth_exhibit_kv[$events_slct.exhibit_id] && $events_loc.leads.auth_exhibit_kv[$events_slct.exhibit_id].key}
|
||||
<p class="border border-slate-500/10 p-2 variant-soft-secondary">
|
||||
You are logged in using the shared exhibit staff passcode and are using the license key for {$events_loc.leads.auth_exhibit_kv[$events_slct.exhibit_id].key}. Any leads you collect will be associated with this license key (email address).
|
||||
You are logged in using the shared exhibit staff passcode and are using the license key for {$events_loc.leads.auth_exhibit_kv[$events_slct.exhibit_id].key}. Any leads you collect will be associated with this license key (email address). Use the Clear License button to "log out" or Sign In with a different license.
|
||||
</p>
|
||||
{:else if $events_loc?.leads.auth_exhibit_kv[$events_slct.exhibit_id]}
|
||||
<p class="border border-slate-500/10 p-2 variant-soft-warning">Please select your name from the license list below to use the lead retrieval service. You may need to add your name first. This is also used to link new leads to whoever adds them.</p>
|
||||
@@ -973,7 +973,7 @@ function send_init_confirm_email({to_email}) {
|
||||
placeholder="Email address"
|
||||
bind:value={$events_sess.leads.tmp_license.email}
|
||||
required
|
||||
class="input max-w-48"
|
||||
class="input max-w-48 m-1"
|
||||
/>
|
||||
|
||||
<input
|
||||
@@ -982,7 +982,7 @@ function send_init_confirm_email({to_email}) {
|
||||
placeholder="Full name"
|
||||
bind:value={$events_sess.leads.tmp_license.full_name}
|
||||
required
|
||||
class="input max-w-48"
|
||||
class="input max-w-48 m-1"
|
||||
/>
|
||||
|
||||
{#if $ae_loc.trusted_access}
|
||||
@@ -992,7 +992,7 @@ function send_init_confirm_email({to_email}) {
|
||||
placeholder="Passcode"
|
||||
bind:value={$events_sess.leads.tmp_license.passcode}
|
||||
required
|
||||
class="input max-w-48"
|
||||
class="input max-w-48 m-1"
|
||||
/>
|
||||
{/if}
|
||||
|
||||
@@ -1012,7 +1012,7 @@ function send_init_confirm_email({to_email}) {
|
||||
$events_sess.leads.show_form__license = false;
|
||||
}}
|
||||
>
|
||||
<span class="fas fa-trash mx-1"></span>
|
||||
<span class="fas fa-trash m-1"></span>
|
||||
Delete
|
||||
</button>
|
||||
|
||||
@@ -1026,7 +1026,7 @@ function send_init_confirm_email({to_email}) {
|
||||
// $slct_trigger = 'save__ds__code';
|
||||
}}
|
||||
>
|
||||
<span class="fas fa-save mx-1"></span>
|
||||
<span class="fas fa-save m-1"></span>
|
||||
Save
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@@ -11,6 +11,12 @@ import { events_func } from '$lib/ae_events_functions';
|
||||
|
||||
import Element_qr_scanner from '$lib/element_qr_scanner.svelte';
|
||||
|
||||
|
||||
// TEMPORARY: For testing and development
|
||||
$events_sess.leads.show_form__search = true;
|
||||
// TEMPORARY: For testing and development
|
||||
|
||||
|
||||
// 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(
|
||||
@@ -30,7 +36,7 @@ let event_badge_obj_li = liveQuery(
|
||||
// .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)
|
||||
// .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)
|
||||
@@ -63,8 +69,10 @@ async function handle_submit_form_search(event) {
|
||||
let search_str = $events_sess.leads.entered_search_str.trim();
|
||||
console.log(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});
|
||||
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, external_event_id: $events_loc.leads.default__external_registration_id});
|
||||
console.log(search_submit_results);
|
||||
|
||||
$events_slct.badge_obj_li = search_submit_results;
|
||||
}
|
||||
|
||||
|
||||
@@ -159,7 +167,7 @@ function handle_qr_camera(event) {
|
||||
|
||||
{#if $events_loc?.leads.auth_exhibit_kv[$events_slct.exhibit_id].key}
|
||||
<div>Leads for:
|
||||
{$events_loc.leads.auth_exhibit_kv[$events_slct.exhibit_id].key}
|
||||
<strong>{$events_loc.leads.auth_exhibit_kv[$events_slct.exhibit_id].key}</strong>
|
||||
</div>
|
||||
{:else}
|
||||
<div class="border border-slate-500/10 p-2 variant-soft-warning">Please go to the Main tab and select a license to use.</div>
|
||||
@@ -223,32 +231,25 @@ function handle_qr_camera(event) {
|
||||
{/if}
|
||||
</span>
|
||||
|
||||
{#if $events_loc.leads.show_content__scan_requirements}
|
||||
<div class="border border-slate-500/10 p-2 variant-soft-secondary">
|
||||
<p>You will need a device with a camera to scan the QR codes. You will also of course need one or more valid QR codes to scan.
|
||||
<!-- <button class="ae_btn btn_sm" on:click={() => show='qr_codes'}><span class="fas fa-qrcode"></span> Example QR Codes</button> -->
|
||||
</p>
|
||||
<ul class="list-disc list-inside">
|
||||
<li>Most laptops, workstations, Android phones/tablets, iPhones, and iPads are compatible</li>
|
||||
<li>The device must have a current (within the last 4 years) web browser such as Google Chrome, Mozilla Firefox, Apple's Safari, or Microsoft Edge. Opera is not yet fully supported.</li>
|
||||
<li>There is no Android or Apple app that needs to be installed!</li>
|
||||
<li>The device must have a camera for scanning or you will need to manually enter attendee badge IDs.</li>
|
||||
<li>The only permission you need to allow is access to your device's camera when asked.</li>
|
||||
</ul>
|
||||
</div>
|
||||
{:else}
|
||||
<!-- <button class="ae_btn btn_sm btn_info" on:click={() => show_requirements=true}><span class="fas fa-eye"></span> Requirements</button> -->
|
||||
{/if}
|
||||
|
||||
<!-- <div class=""> -->
|
||||
<!-- <Element_qr_scanner start_qr_scanner={false} show_qr_scan_result={true} show_qr_manual_badge_id_entry_option={true} on:qr_scan_result={handle_qr_scan_result} on:qr_camera={handle_qr_camera} /> -->
|
||||
<!-- </div> -->
|
||||
|
||||
<!-- <div class="qr_quick_results variant-soft-secondary font-bold p-4">
|
||||
{@html $events_sess.leads.qr_scan_result ?? 'No results yet'}
|
||||
</div> -->
|
||||
|
||||
{#if $events_loc.leads.show_content__scan_requirements}
|
||||
<div class="border border-slate-500/10 p-2 variant-soft-secondary">
|
||||
<p>You will need a device with a camera to scan the QR codes. You will also of course need one or more valid QR codes to scan.
|
||||
<!-- <button class="ae_btn btn_sm" on:click={() => show='qr_codes'}><span class="fas fa-qrcode"></span> Example QR Codes</button> -->
|
||||
</p>
|
||||
<ul class="list-disc list-inside">
|
||||
<li>Most laptops, workstations, Android phones/tablets, iPhones, and iPads are compatible</li>
|
||||
<li>The device must have a current (within the last 4 years) web browser such as Google Chrome, Mozilla Firefox, Apple's Safari, or Microsoft Edge. Opera is not yet fully supported.</li>
|
||||
<li>There is no Android or Apple app that needs to be installed!</li>
|
||||
<li>The device must have a camera for scanning or you will need to manually enter attendee badge IDs.</li>
|
||||
<li>The only permission you need to allow is access to your device's camera when asked.</li>
|
||||
</ul>
|
||||
</div>
|
||||
{:else}
|
||||
<!-- <button class="ae_btn btn_sm btn_info" on:click={() => show_requirements=true}><span class="fas fa-eye"></span> Requirements</button> -->
|
||||
{/if}
|
||||
|
||||
|
||||
{:else} <!-- $events_loc?.leads.auth_exhibit_kv && $events_loc.leads.auth_exhibit_kv[$events_slct.exhibit_id] -->
|
||||
<div class="variant-soft-error">Not logged in. Please log in and select a user license.</div>
|
||||
{/if} <!-- $events_loc?.leads.auth_exhibit_kv && $events_loc.leads.auth_exhibit_kv[$events_slct.exhibit_id] -->
|
||||
|
||||
@@ -273,7 +274,6 @@ function handle_qr_camera(event) {
|
||||
<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"
|
||||
@@ -302,8 +302,6 @@ function handle_qr_camera(event) {
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="popover__actions">
|
||||
<button
|
||||
type="button"
|
||||
@@ -318,40 +316,177 @@ function handle_qr_camera(event) {
|
||||
</div>
|
||||
</header>
|
||||
|
||||
|
||||
<section class="popover__content grow flex flex-col gap-4 items-center ae_modal_scrollfix">
|
||||
|
||||
|
||||
<div class="ae_events__badge_li">
|
||||
<div class="ae_events__badge_li w-full">
|
||||
{#if $event_badge_obj_li}
|
||||
{#if $ae_loc.trusted_access}
|
||||
<!-- {#if $ae_loc.trusted_access} -->
|
||||
|
||||
<div class="border border-slate-500/10 p-2 variant-glass-success min-h-96">
|
||||
<p>{$events_slct.badge_obj_li.length} results found</p>
|
||||
|
||||
{#each $events_slct.badge_obj_li as event_badge_obj_v2, index}
|
||||
|
||||
<div class="ae_events__badge_li__item flex flex-row justify-between items-center mx-0 my-2 border border-slate-500/10 p-2 hover:bg-slate-500/10">
|
||||
<button
|
||||
type="button"
|
||||
on:click={() => {
|
||||
// if (confirm(`Add ${event_badge_obj_v2.full_name} <${event_badge_obj_v2.email}> to the leads list?`)) {
|
||||
// } else {
|
||||
// return false;
|
||||
// }
|
||||
// console.log(`Add ${event_badge_obj_v2.full_name} ${event_badge_obj_v2.email} to the leads list`);
|
||||
|
||||
$events_sess.leads.show_confirm__add_lead[index] = true;
|
||||
}}
|
||||
disabled={!$ae_loc.trusted_access}
|
||||
title="Add {event_badge_obj_v2.full_name} to the leads list?"
|
||||
class="btn btn-md variant-soft-primary mx-1"
|
||||
>
|
||||
<span class="fas fa-plus mx-1"></span>
|
||||
Add
|
||||
</button>
|
||||
|
||||
<!-- This block needs to be moved or something. It takes up too much space! -->
|
||||
{#if $events_sess.leads.show_confirm__add_lead[index]}
|
||||
<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?</h2>
|
||||
|
||||
<div class="popover__actions">
|
||||
<button
|
||||
type="button"
|
||||
class="btn variant-soft-primary"
|
||||
on:click={() => {
|
||||
$events_sess.leads.show_confirm__add_lead[index] = 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_v2.full_name}</strong> to the leads list?</p>
|
||||
<p>Badge ID: <strong>{event_badge_obj_v2.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(`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;
|
||||
}}
|
||||
>
|
||||
<span class="fas fa-check mx-1"></span>
|
||||
Yes
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
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;
|
||||
}}
|
||||
>
|
||||
<span class="fas fa-times mx-1"></span>
|
||||
No
|
||||
</button>
|
||||
</div>
|
||||
</section> <!-- .popover__content -->
|
||||
</section> <!-- .ae_quick_popover -->
|
||||
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class="grow flex flex-row wrap justify-between items-center mx-1">
|
||||
<!-- <span class="ae_events__badge_li__item__id">
|
||||
{event_badge_obj_v2.event_badge_id_random}
|
||||
</span> -->
|
||||
<span class="ae_events__badge_li__item__name">
|
||||
<span class="fas fa-user mx-0.5"></span>
|
||||
{#if $event_exhibit_obj?.priority || $ae_loc.trusted_access}
|
||||
{event_badge_obj_v2.full_name}
|
||||
{:else}
|
||||
<span class="ae_events__badge_li__item__name__hidden">
|
||||
{event_badge_obj_v2.full_name ? event_badge_obj_v2.full_name.substring(0, 1) + '...' : 'Hidden'}
|
||||
</span>
|
||||
{/if}
|
||||
</span>
|
||||
<span class="text-sm text-right">
|
||||
<span class="ae_events__badge_li__item__affiliations">
|
||||
{#if $event_exhibit_obj?.priority || $ae_loc.trusted_access}
|
||||
{event_badge_obj_v2.affiliations}
|
||||
{:else}
|
||||
<span class="ae_events__badge_li__item__affiliations__hidden">
|
||||
{event_badge_obj_v2.affiliations ? event_badge_obj_v2.affiliations.substring(0, 3) + '...' : 'Hidden'}
|
||||
</span>
|
||||
{/if}
|
||||
</span>
|
||||
<span class="ae_events__badge_li__item__email">
|
||||
{#if $event_exhibit_obj?.priority || $ae_loc.trusted_access}
|
||||
<a href="mailto:{event_badge_obj_v2.email}" class="font-medium text-blue-600 dark:text-blue-500 hover:underline">
|
||||
<span class="fas fa-envelope mx-0.5"></span>
|
||||
{event_badge_obj_v2.email}</a>
|
||||
{:else}
|
||||
<span class="ae_events__badge_li__item__email__hidden">
|
||||
<span class="fas fa-envelope mx-0.5"></span>
|
||||
{event_badge_obj_v2.email ? event_badge_obj_v2.email.substring(0, 1) + '...@example.com' : 'Hidden'}
|
||||
</span>
|
||||
{/if}
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/each}
|
||||
</div>
|
||||
|
||||
|
||||
<!-- <div class="border border-slate-500/10 p-2 variant-soft-warning">
|
||||
<p>{$event_badge_obj_li.length} results found cached</p>
|
||||
{#each $event_badge_obj_li as event_badge_obj, index}
|
||||
<div class="ae_events__badge_li__item">
|
||||
<span class="ae_events__badge_li__item__id">
|
||||
{event_badge_obj.event_badge_id_random}
|
||||
</span>
|
||||
--
|
||||
<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> -->
|
||||
|
||||
<!-- {:else}
|
||||
<div class="variant-soft-warning">The search results are not enabled at this time.</div>
|
||||
{/if}
|
||||
{/if} -->
|
||||
{:else}
|
||||
<div class="variant-soft-warning">No results yet</div>
|
||||
{/if}
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</section> <!-- .popover__content -->
|
||||
|
||||
|
||||
<footer class="popover__footer flex gap-1 justify-between items-center p-1 border-t">
|
||||
<div class="popover__content__actions">
|
||||
<button
|
||||
type="submit"
|
||||
form="form__search_text"
|
||||
class="btn variant-soft-primary"
|
||||
class="btn variant-ghost-primary"
|
||||
disabled={search_submit_results instanceof Promise && !search_submit_results}
|
||||
on:click={() => {
|
||||
// trigger = 'save__ds__code';
|
||||
@@ -379,6 +514,16 @@ function handle_qr_camera(event) {
|
||||
<span class="saved-text">
|
||||
Complete
|
||||
</span>
|
||||
|
||||
<span class="results_cache text-sm">
|
||||
(
|
||||
<span class="search_results text-sm">{$events_slct.badge_obj_li.length} results</span>
|
||||
{#if $ae_loc.trusted_access}
|
||||
&
|
||||
<span class="idb_cache text-sm">{$event_badge_obj_li.length} cached</span>
|
||||
{/if}
|
||||
)
|
||||
</span>
|
||||
</div>
|
||||
{/if}
|
||||
{/await}
|
||||
@@ -410,6 +555,10 @@ function handle_qr_camera(event) {
|
||||
</div> <!-- .ae_quick_modal_container -->
|
||||
{/if}
|
||||
|
||||
<!-- **END** Search Form -->
|
||||
|
||||
|
||||
<!-- **BEGIN** Scan Form -->
|
||||
|
||||
{#if $events_sess.leads.show_form__scan}
|
||||
<div class="ae_quick_modal_container">
|
||||
@@ -552,4 +701,21 @@ section.ae_quick_popover {
|
||||
min-height: 98%;
|
||||
min-width: 98%;
|
||||
}
|
||||
|
||||
section.ae_quick_popover_small {
|
||||
position: fixed;
|
||||
top: 1em;
|
||||
left: 50%;
|
||||
transform: translate(-50%, 0%);
|
||||
z-index: 100;
|
||||
background-color: hsla(0, 0%, 100%, .95);
|
||||
padding: 1rem;
|
||||
border-radius: .5rem;
|
||||
box-shadow: 0 0 1rem hsla(0, 0%, 0%, .5);
|
||||
|
||||
min-hight: 24rem;
|
||||
max-height: 95%;
|
||||
min-width: 50%;
|
||||
max-width: 95%;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -141,6 +141,34 @@ export let get_event_exhibit_tracking_export = async function get_event_exhibit_
|
||||
|
||||
{/if} <!-- $events_loc?.leads.auth_exhibit_kv[$events_slct.exhibit_id].key -->
|
||||
|
||||
<div>
|
||||
<button
|
||||
class="btn btn-sm variant-ghost-warning"
|
||||
title="Reload and clear the page cache"
|
||||
on:click={() => {
|
||||
// $ae_loc.
|
||||
window.location.reload(true);
|
||||
}}
|
||||
>
|
||||
<span class="fas fa-sync mx-1"></span>
|
||||
Reload and
|
||||
<span class="fas fa-trash mx-1"></span>
|
||||
Clear Cache
|
||||
</button>
|
||||
<button
|
||||
class="btn btn-sm variant-ghost-warning"
|
||||
title="Clear the browser storage for this page"
|
||||
on:click={() => {
|
||||
// $ae_loc.
|
||||
localStorage.clear();
|
||||
sessionStorage.clear();
|
||||
alert('Local and Session Storage cleared. You will probably want to reload/refresh the page as well.');
|
||||
}}
|
||||
>
|
||||
<span class="fas fa-eraser mx-1"></span>
|
||||
Clear Storage
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<hr class="border w-full">
|
||||
|
||||
@@ -190,6 +218,9 @@ export let get_event_exhibit_tracking_export = async function get_event_exhibit_
|
||||
Show/Hide Details
|
||||
</button>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- {#if $events_loc?.leads.auth_exhibit_kv && $events_loc.leads.auth_exhibit_kv[$events_slct.exhibit_id]}
|
||||
<button
|
||||
type="button"
|
||||
|
||||
Reference in New Issue
Block a user