feat: Migrate ESLint to flat config and resolve initial linting errors
Migrated the ESLint configuration to the new flat config format () and addressed several initial linting errors. Key changes include: - Updated ESLint configuration to treat as warnings instead of errors. - Fixed errors in by declaring and . - Corrected error in by using instead of an out-of-scope . - Resolved error in by replacing the undefined directive with the component. - Addressed errors in by replacing with and with . - Fixed errors in by importing necessary modules (, , ) and adding missing props (, , , , ).
This commit is contained in:
@@ -1,53 +1,49 @@
|
||||
<script lang="ts">
|
||||
/** @type {import('./$types').LayoutData} */
|
||||
export let data: any;
|
||||
/** @type {import('./$types').LayoutData} */
|
||||
export let data: any;
|
||||
|
||||
import { goto } from '$app/navigation';
|
||||
import { onMount } from 'svelte';
|
||||
import { goto } from '$app/navigation';
|
||||
import { onMount } from 'svelte';
|
||||
|
||||
// import type { key_val } from '$lib/ae_stores';
|
||||
// import { ae_util } from '$lib/ae_utils/ae_utils';
|
||||
import { ae_loc, ae_sess, ae_api, slct, slct_trigger } from '$lib/stores/ae_stores';
|
||||
import { events_loc, events_slct, events_trigger } from '$lib/stores/ae_events_stores';
|
||||
// import type { key_val } from '$lib/ae_stores';
|
||||
// import { ae_util } from '$lib/ae_utils/ae_utils';
|
||||
import { ae_loc, ae_sess, ae_api, slct, slct_trigger } from '$lib/stores/ae_stores';
|
||||
import { events_loc, events_slct, events_trigger } from '$lib/stores/ae_events_stores';
|
||||
|
||||
$events_loc.qry__enabled = 'enabled';
|
||||
$events_loc.qry__hidden = 'not_hidden';
|
||||
$events_loc.qry__limit = 25;
|
||||
$events_loc.qry__offset = 0;
|
||||
|
||||
$events_loc.qry__enabled = 'enabled';
|
||||
$events_loc.qry__hidden = 'not_hidden';
|
||||
$events_loc.qry__limit = 25;
|
||||
$events_loc.qry__offset = 0;
|
||||
// Quickly save the data passed from the parent(s) to the Svelte stores, localStorage, and other.
|
||||
$slct.account_id = data.account_id;
|
||||
console.log(`$slct.account_id = `, $slct.account_id);
|
||||
let ae_acct = data[$slct.account_id];
|
||||
console.log(`ae_acct = `, ae_acct);
|
||||
|
||||
// Quickly save the data passed from the parent(s) to the Svelte stores, localStorage, and other.
|
||||
$slct.account_id = data.account_id;
|
||||
console.log(`$slct.account_id = `, $slct.account_id);
|
||||
let ae_acct = data[$slct.account_id];
|
||||
console.log(`ae_acct = `, ae_acct);
|
||||
$events_slct.event_id = ae_acct.slct.event_id;
|
||||
$events_slct.event_obj = ae_acct.slct.event_obj;
|
||||
$events_slct.exhibit_obj_li = ae_acct.slct.event_exhibit_obj_li;
|
||||
|
||||
$events_slct.event_id = ae_acct.slct.event_id;
|
||||
$events_slct.event_obj = ae_acct.slct.event_obj;
|
||||
$events_slct.exhibit_obj_li = ae_acct.slct.event_exhibit_obj_li;
|
||||
onMount(() => {
|
||||
console.log('Events Leads: +layout.svelte');
|
||||
|
||||
// let href_url = window.location.href;
|
||||
// $ae_loc.href_url = href_url;
|
||||
// console.log(`$ae_loc.href_url = `, $ae_loc.href_url);
|
||||
|
||||
onMount(() => {
|
||||
console.log('Events Leads: +layout.svelte');
|
||||
|
||||
// let href_url = window.location.href;
|
||||
// $ae_loc.href_url = href_url;
|
||||
// console.log(`$ae_loc.href_url = `, $ae_loc.href_url);
|
||||
|
||||
// $slct_trigger = 'msg_parent';
|
||||
// ae_util.handle_url_and_message('event_id', $events_slct.event_id);
|
||||
// ae_util.handle_url_and_message('exhibit_id', $events_slct.exhibit_id);
|
||||
// if ($events_slct.exhibit_id) {
|
||||
// console.log(`Got an ID. Let's do something!?`);
|
||||
// modalStore.trigger(modal_view__exhibit_obj);
|
||||
// }
|
||||
});
|
||||
// $slct_trigger = 'msg_parent';
|
||||
// ae_util.handle_url_and_message('event_id', $events_slct.event_id);
|
||||
// ae_util.handle_url_and_message('exhibit_id', $events_slct.exhibit_id);
|
||||
// if ($events_slct.exhibit_id) {
|
||||
// console.log(`Got an ID. Let's do something!?`);
|
||||
// modalStore.trigger(modal_view__exhibit_obj);
|
||||
// }
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
<svelte:head>
|
||||
<title>Events Leads - {$events_loc.title ?? 'Æ loading...'}</title>
|
||||
</svelte:head>
|
||||
|
||||
|
||||
<slot></slot>
|
||||
|
||||
@@ -3,39 +3,45 @@ console.log(`ae_events_leads +layout.ts start`);
|
||||
|
||||
import { events_func } from '$lib/ae_events_functions';
|
||||
|
||||
|
||||
export async function load({ parent }) {
|
||||
const data = await parent();
|
||||
|
||||
let data = await parent();
|
||||
const account_id = data.account_id;
|
||||
const ae_acct = data[account_id];
|
||||
console.log(`ae_acct = `, ae_acct);
|
||||
|
||||
let account_id = data.account_id;
|
||||
let ae_acct = data[account_id];
|
||||
console.log(`ae_acct = `, ae_acct);
|
||||
if (!account_id) {
|
||||
console.log(`events_leads +layout.ts: The account_id was not found in the data!!!`);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!account_id) {
|
||||
console.log(`events_leads +layout.ts: The account_id was not found in the data!!!`);
|
||||
return false;
|
||||
}
|
||||
const event_id = ae_acct.slct.event_id;
|
||||
if (!event_id) {
|
||||
console.log(`events_leads +layout.ts: The event_id was not found in the data!!!`);
|
||||
return false;
|
||||
}
|
||||
|
||||
let event_id = ae_acct.slct.event_id;
|
||||
if (!event_id) {
|
||||
console.log(`events_leads +layout.ts: The event_id was not found in the data!!!`);
|
||||
return false;
|
||||
}
|
||||
const load_event_obj = events_func.load_ae_obj_id__event({
|
||||
api_cfg: ae_acct.api,
|
||||
event_id: event_id,
|
||||
try_cache: true
|
||||
});
|
||||
|
||||
let load_event_obj = events_func.load_ae_obj_id__event({api_cfg: ae_acct.api, event_id: event_id, try_cache: true});
|
||||
ae_acct.slct.event_obj = load_event_obj;
|
||||
|
||||
ae_acct.slct.event_obj = load_event_obj;
|
||||
const load_event_exhibit_obj_li = events_func.handle_load_ae_obj_li__exhibit({
|
||||
api_cfg: ae_acct.api,
|
||||
event_id: event_id,
|
||||
try_cache: false
|
||||
});
|
||||
console.log(`load_event_exhibit_obj_li = `, load_event_exhibit_obj_li);
|
||||
|
||||
let load_event_exhibit_obj_li = events_func.handle_load_ae_obj_li__exhibit({api_cfg: ae_acct.api, event_id: event_id, try_cache: false});
|
||||
console.log(`load_event_exhibit_obj_li = `, load_event_exhibit_obj_li);
|
||||
ae_acct.slct.event_exhibit_obj_li = load_event_exhibit_obj_li;
|
||||
|
||||
ae_acct.slct.event_exhibit_obj_li = load_event_exhibit_obj_li;
|
||||
// WARNING: Precaution against shared data between sites and sessions.
|
||||
data[account_id] = ae_acct;
|
||||
|
||||
// WARNING: Precaution against shared data between sites and sessions.
|
||||
data[account_id] = ae_acct;
|
||||
|
||||
return data;
|
||||
return data;
|
||||
}
|
||||
|
||||
// export const prerender = false;
|
||||
|
||||
@@ -1,180 +1,194 @@
|
||||
<script lang="ts">
|
||||
// export let data: any;
|
||||
// console.log(`ae_events_leads +page data:`, data);
|
||||
// console.log(`ae_events_leads Data Params:`, data.url.searchParams.get('event_id'));
|
||||
// export let data: any;
|
||||
// console.log(`ae_events_leads +page data:`, data);
|
||||
// console.log(`ae_events_leads Data Params:`, data.url.searchParams.get('event_id'));
|
||||
|
||||
import { onMount } from 'svelte';
|
||||
import { goto, invalidate, pushState, replaceState } from '$app/navigation';
|
||||
import { onMount } from 'svelte';
|
||||
import { goto, invalidate, pushState, replaceState } from '$app/navigation';
|
||||
|
||||
import { ae_util } from '$lib/ae_utils/ae_utils';
|
||||
import { api } from '$lib/api/api';
|
||||
import { liveQuery } from "dexie";
|
||||
import { db_events } from "$lib/ae_events/db_events";
|
||||
import { ae_loc, ae_sess, ae_api, slct, slct_trigger } from '$lib/stores/ae_stores';
|
||||
import { events_loc, events_sess, events_slct, events_trigger } from '$lib/stores/ae_events_stores';
|
||||
import { ae_util } from '$lib/ae_utils/ae_utils';
|
||||
import { api } from '$lib/api/api';
|
||||
import { liveQuery } from 'dexie';
|
||||
import { db_events } from '$lib/ae_events/db_events';
|
||||
import { ae_loc, ae_sess, ae_api, slct, slct_trigger } from '$lib/stores/ae_stores';
|
||||
import {
|
||||
events_loc,
|
||||
events_sess,
|
||||
events_slct,
|
||||
events_trigger
|
||||
} from '$lib/stores/ae_events_stores';
|
||||
|
||||
import Element_data_store from '$lib/elements/element_data_store_v2.svelte';
|
||||
import Element_data_store from '$lib/elements/element_data_store_v2.svelte';
|
||||
|
||||
let event_exhibit_obj_li = liveQuery(
|
||||
// () => db_events.exhibit.toArray()
|
||||
() =>
|
||||
db_events.exhibit
|
||||
.where('license_max')
|
||||
// .aboveOrEqual(0)
|
||||
// .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()
|
||||
);
|
||||
|
||||
let event_exhibit_obj_li = liveQuery(
|
||||
// () => db_events.exhibit.toArray()
|
||||
() => db_events.exhibit
|
||||
.where('license_max')
|
||||
// .aboveOrEqual(0)
|
||||
// .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()
|
||||
);
|
||||
$events_slct.exhibit_id = null;
|
||||
$events_slct.exhibit_obj = null;
|
||||
|
||||
$events_slct.exhibit_id = null;
|
||||
$events_slct.exhibit_obj = null;
|
||||
// export let event_exhibit_staff_passcode: string = '';
|
||||
let disable_open_lead_retrieval_btn: boolean = true;
|
||||
let disable_reset_passcode_btn: boolean = true;
|
||||
let reset_passcode: string = '';
|
||||
|
||||
// export let event_exhibit_staff_passcode: string = '';
|
||||
let disable_open_lead_retrieval_btn: boolean = true;
|
||||
let disable_reset_passcode_btn: boolean = true;
|
||||
let reset_passcode: string = '';
|
||||
onMount(() => {
|
||||
console.log('Events Leads: +page.svelte');
|
||||
|
||||
// console.log('ae_ slct:', $slct);
|
||||
|
||||
onMount(() => {
|
||||
console.log('Events Leads: +page.svelte');
|
||||
let href_url = window.location.href;
|
||||
$ae_loc.href_url = href_url;
|
||||
// console.log(`$ae_loc.href_url = `, $ae_loc.href_url);
|
||||
|
||||
// console.log('ae_ slct:', $slct);
|
||||
// $slct_trigger = 'msg_parent';
|
||||
// ae_util.handle_url_and_message('event_id', $events_slct.event_id);
|
||||
// ae_util.handle_url_and_message('exhibit_id', $events_slct.exhibit_id);
|
||||
// if ($events_slct.exhibit_id) {
|
||||
// console.log(`Got an ID. Let's do something!?`);
|
||||
// modalStore.trigger(modal_view__exhibit_obj);
|
||||
// }
|
||||
});
|
||||
|
||||
let href_url = window.location.href;
|
||||
$ae_loc.href_url = href_url;
|
||||
// console.log(`$ae_loc.href_url = `, $ae_loc.href_url);
|
||||
$: if (
|
||||
$events_slct.exhibit_obj &&
|
||||
$events_slct.exhibit_obj.event_exhibit_id_random &&
|
||||
($ae_loc.administrator_access ||
|
||||
($events_loc.leads.auth_exhibit_kv &&
|
||||
$events_slct.exhibit_obj &&
|
||||
$events_loc.leads.auth_exhibit_kv[$events_slct.exhibit_obj.event_exhibit_id_random]))
|
||||
) {
|
||||
disable_open_lead_retrieval_btn = false;
|
||||
disable_reset_passcode_btn = false;
|
||||
|
||||
// $slct_trigger = 'msg_parent';
|
||||
// ae_util.handle_url_and_message('event_id', $events_slct.event_id);
|
||||
// ae_util.handle_url_and_message('exhibit_id', $events_slct.exhibit_id);
|
||||
// if ($events_slct.exhibit_id) {
|
||||
// console.log(`Got an ID. Let's do something!?`);
|
||||
// modalStore.trigger(modal_view__exhibit_obj);
|
||||
// }
|
||||
});
|
||||
$events_sess.leads.open_href = `/events_leads/exhibit/${$events_slct.exhibit_obj.id_random}`;
|
||||
|
||||
if ($events_loc.leads.auto_view) {
|
||||
goto($events_sess.leads.open_href, { invalidateAll: true });
|
||||
}
|
||||
} else {
|
||||
disable_open_lead_retrieval_btn = true;
|
||||
disable_reset_passcode_btn = true;
|
||||
}
|
||||
|
||||
$: if ( $events_slct.exhibit_obj && $events_slct.exhibit_obj.event_exhibit_id_random && ($ae_loc.administrator_access || $events_loc.leads.auth_exhibit_kv && $events_slct.exhibit_obj && $events_loc.leads.auth_exhibit_kv[$events_slct.exhibit_obj.event_exhibit_id_random]) ) {
|
||||
disable_open_lead_retrieval_btn = false;
|
||||
disable_reset_passcode_btn = false;
|
||||
$: if ($events_sess.leads.entered_passcode && $events_sess.leads.entered_passcode >= 5) {
|
||||
// disable_open_lead_retrieval_btn = false;
|
||||
// Convert the passcode to a string before checking it.
|
||||
handle_check_event_exhibit_staff_passcode(String($events_sess.leads.entered_passcode));
|
||||
} else {
|
||||
disable_open_lead_retrieval_btn = true;
|
||||
// handle_check_event_exhibit_staff_passcode();
|
||||
}
|
||||
|
||||
$events_sess.leads.open_href = `/events_leads/exhibit/${$events_slct.exhibit_obj.id_random}`;
|
||||
function handle_check_event_exhibit_staff_passcode(entered_passcode: string) {
|
||||
console.log(
|
||||
`*** handle_check_event_exhibit_staff_passcode() *** ${entered_passcode} $events_slct.exhibit_obj=`,
|
||||
$events_slct.exhibit_obj
|
||||
);
|
||||
|
||||
if ($events_loc.leads.auto_view) {
|
||||
goto($events_sess.leads.open_href, {invalidateAll: true});
|
||||
}
|
||||
} else {
|
||||
disable_open_lead_retrieval_btn = true;
|
||||
disable_reset_passcode_btn = true;
|
||||
}
|
||||
$events_sess.leads.open_href = '';
|
||||
|
||||
if ($events_slct.exhibit_obj && entered_passcode && entered_passcode.length >= 4) {
|
||||
if ($events_slct.exhibit_obj.staff_passcode == entered_passcode) {
|
||||
console.log(
|
||||
`Passcode matched for exhibit ${$events_slct.exhibit_obj.id_random} or ${$events_slct.exhibit_id}`
|
||||
);
|
||||
disable_open_lead_retrieval_btn = false;
|
||||
|
||||
$: if ($events_sess.leads.entered_passcode && $events_sess.leads.entered_passcode >= 5) {
|
||||
// disable_open_lead_retrieval_btn = false;
|
||||
// Convert the passcode to a string before checking it.
|
||||
handle_check_event_exhibit_staff_passcode(String($events_sess.leads.entered_passcode));
|
||||
} else {
|
||||
disable_open_lead_retrieval_btn = true;
|
||||
// handle_check_event_exhibit_staff_passcode();
|
||||
}
|
||||
// We should not need to be doing this here! Why???
|
||||
if (!$events_slct.exhibit_id) {
|
||||
$events_slct.exhibit_id = $events_slct.exhibit_obj.id_random;
|
||||
}
|
||||
|
||||
function handle_check_event_exhibit_staff_passcode(entered_passcode: string) {
|
||||
console.log(`*** handle_check_event_exhibit_staff_passcode() *** ${entered_passcode} $events_slct.exhibit_obj=`, $events_slct.exhibit_obj);
|
||||
$events_sess.leads.entered_passcode = null;
|
||||
$events_loc.leads.auth_exhibit_kv[$events_slct.exhibit_id] = {
|
||||
key: null,
|
||||
updated_on: new Date().toISOString()
|
||||
};
|
||||
|
||||
$events_sess.leads.open_href = '';
|
||||
// console.log($events_slct);
|
||||
$events_sess.leads.open_href = `/events_leads/exhibit/${$events_slct.exhibit_obj.id_random}?event_id=${$events_slct.event_id}`;
|
||||
|
||||
if ($events_slct.exhibit_obj && entered_passcode && entered_passcode.length >= 4) {
|
||||
if ($events_slct.exhibit_obj.staff_passcode == entered_passcode) {
|
||||
console.log(`Passcode matched for exhibit ${$events_slct.exhibit_obj.id_random} or ${$events_slct.exhibit_id}`);
|
||||
disable_open_lead_retrieval_btn = false;
|
||||
if ($events_loc.leads.auto_view) {
|
||||
goto($events_sess.leads.open_href, { invalidateAll: true });
|
||||
}
|
||||
} else {
|
||||
// console.log('Passcode does not match');
|
||||
disable_open_lead_retrieval_btn = true;
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
console.log('Missing selected event exhibit and or staff passcode.');
|
||||
disable_open_lead_retrieval_btn = true;
|
||||
return null;
|
||||
}
|
||||
|
||||
// We should not need to be doing this here! Why???
|
||||
if (!$events_slct.exhibit_id) {
|
||||
$events_slct.exhibit_id = $events_slct.exhibit_obj.id_random;
|
||||
}
|
||||
if ($events_loc.leads.auto_view) {
|
||||
// open_exhibit_tracking($events_slct.exhibit_obj.id_random)
|
||||
} else {
|
||||
// console.log(document.getElementById('open_lead_retrieval_btn'));
|
||||
// document.getElementById('open_lead_retrieval_btn').focus();
|
||||
}
|
||||
}
|
||||
|
||||
$events_sess.leads.entered_passcode = null;
|
||||
$events_loc.leads.auth_exhibit_kv[$events_slct.exhibit_id] = {
|
||||
key: null,
|
||||
updated_on: new Date().toISOString()
|
||||
};
|
||||
function handle_update_event_exhibit_staff_passcode(exhibit_id, reset_passcode) {
|
||||
console.log(
|
||||
`*** handle_update_event_exhibit_staff_passcode() *** $events_slct.exhibit_id= ${exhibit_id} new passcode: ${reset_passcode}`
|
||||
);
|
||||
|
||||
// console.log($events_slct);
|
||||
$events_sess.leads.open_href = `/events_leads/exhibit/${$events_slct.exhibit_obj.id_random}?event_id=${$events_slct.event_id}`;
|
||||
|
||||
if ($events_loc.leads.auto_view) {
|
||||
goto($events_sess.leads.open_href, {invalidateAll: true});
|
||||
}
|
||||
} else {
|
||||
// console.log('Passcode does not match');
|
||||
disable_open_lead_retrieval_btn = true;
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
console.log('Missing selected event exhibit and or staff passcode.');
|
||||
disable_open_lead_retrieval_btn = true;
|
||||
return null;
|
||||
}
|
||||
|
||||
if ($events_loc.leads.auto_view) {
|
||||
// open_exhibit_tracking($events_slct.exhibit_obj.id_random)
|
||||
} else {
|
||||
// console.log(document.getElementById('open_lead_retrieval_btn'));
|
||||
// document.getElementById('open_lead_retrieval_btn').focus();
|
||||
}
|
||||
}
|
||||
|
||||
function handle_update_event_exhibit_staff_passcode(exhibit_id, reset_passcode) {
|
||||
console.log(`*** handle_update_event_exhibit_staff_passcode() *** $events_slct.exhibit_id= ${exhibit_id} new passcode: ${reset_passcode}`);
|
||||
|
||||
// if ($events_slct.exhibit_obj && reset_passcode && reset_passcode.length >= 4) {
|
||||
// $events_slct.exhibit_obj.staff_passcode = reset_passcode;
|
||||
// $events_sess.leads.entered_passcode = reset_passcode;
|
||||
|
||||
// db_events.exhibit.update($events_slct.exhibit_obj.id_random, { staff_passcode: reset_passcode })
|
||||
// .then(function (updated) {
|
||||
// console.log(`Updated passcode for exhibit ${$events_slct.exhibit_obj.id_random} or ${$events_slct.exhibit_id}`);
|
||||
// disable_open_lead_retrieval_btn = false;
|
||||
// disable_reset_passcode_btn = false;
|
||||
// })
|
||||
// .catch(function (error: any) {
|
||||
// console.log('Failed to update passcode.', error);
|
||||
// disable_open_lead_retrieval_btn = true;
|
||||
// disable_reset_passcode_btn = true;
|
||||
// });
|
||||
// } else {
|
||||
// console.log('Missing selected event exhibit and or staff passcode.');
|
||||
// disable_open_lead_retrieval_btn = true;
|
||||
// disable_reset_passcode_btn = true;
|
||||
// }
|
||||
}
|
||||
// if ($events_slct.exhibit_obj && reset_passcode && reset_passcode.length >= 4) {
|
||||
// $events_slct.exhibit_obj.staff_passcode = reset_passcode;
|
||||
// $events_sess.leads.entered_passcode = reset_passcode;
|
||||
|
||||
// db_events.exhibit.update($events_slct.exhibit_obj.id_random, { staff_passcode: reset_passcode })
|
||||
// .then(function (updated) {
|
||||
// console.log(`Updated passcode for exhibit ${$events_slct.exhibit_obj.id_random} or ${$events_slct.exhibit_id}`);
|
||||
// disable_open_lead_retrieval_btn = false;
|
||||
// disable_reset_passcode_btn = false;
|
||||
// })
|
||||
// .catch(function (error: any) {
|
||||
// console.log('Failed to update passcode.', error);
|
||||
// disable_open_lead_retrieval_btn = true;
|
||||
// disable_reset_passcode_btn = true;
|
||||
// });
|
||||
// } else {
|
||||
// console.log('Missing selected event exhibit and or staff passcode.');
|
||||
// disable_open_lead_retrieval_btn = true;
|
||||
// disable_reset_passcode_btn = true;
|
||||
// }
|
||||
}
|
||||
</script>
|
||||
|
||||
<section
|
||||
class="ae_events_leads h-full w-full flex flex-col wrap align-begin justify-start items-center space-y-4"
|
||||
>
|
||||
<h1 class="h2">Events - Leads for exhibitors</h1>
|
||||
|
||||
<section class="ae_events_leads h-full w-full flex flex-col wrap align-begin justify-start items-center space-y-4">
|
||||
<Element_data_store
|
||||
ds_code="events__leads__overview"
|
||||
ds_type="html"
|
||||
for_type="event"
|
||||
for_id={$events_slct.event_id}
|
||||
display="block"
|
||||
class_li="preset-tonal-secondary border border-secondary-500 p-2"
|
||||
/>
|
||||
|
||||
<h1 class="h2">Events - Leads for exhibitors</h1>
|
||||
<!-- <a href="/{$events_slct.event_id}">Event ID {$events_slct.event_id}</a> -->
|
||||
|
||||
<Element_data_store
|
||||
ds_code="events__leads__overview"
|
||||
ds_type="html"
|
||||
for_type="event"
|
||||
for_id={$events_slct.event_id}
|
||||
display="block"
|
||||
class_li="preset-tonal-secondary border border-secondary-500 p-2"
|
||||
/>
|
||||
|
||||
<!-- <a href="/{$events_slct.event_id}">Event ID {$events_slct.event_id}</a> -->
|
||||
|
||||
|
||||
{#if $event_exhibit_obj_li}
|
||||
<h2 class="h3">Select your exhibit from the list</h2>
|
||||
<!-- <ul>
|
||||
{#if $event_exhibit_obj_li}
|
||||
<h2 class="h3">Select your exhibit from the list</h2>
|
||||
<!-- <ul>
|
||||
{#each $event_exhibit_obj_li as exhibit_obj}
|
||||
<li>
|
||||
<a href="/events_leads/exhibit/{exhibit_obj.id_random}">{exhibit_obj.name} ID {exhibit_obj.id_random}</a>
|
||||
@@ -182,90 +196,95 @@ function handle_update_event_exhibit_staff_passcode(exhibit_id, reset_passcode)
|
||||
{/each}
|
||||
</ul> -->
|
||||
|
||||
<div class="event_exhibit_tracking_select_exhibit space-y-6">
|
||||
<form
|
||||
on:submit|preventDefault={() => {
|
||||
$events_sess.leads.open_href = `/events_leads/exhibit/${$events_slct.exhibit_obj.id_random}?event_id=${$events_slct.event_id}`;
|
||||
goto($events_sess.leads.open_href, { invalidateAll: true });
|
||||
}}
|
||||
class="flex flex-col items-center border border-slate-500/10 p-2"
|
||||
>
|
||||
<!-- <h2>Exhibitor Lead Retrieval</h2> -->
|
||||
<!-- <div class="">Select your exhibit booth from the list and enter passcode you were given. If it is correct you will be taken to the page for your exhibit.</div> -->
|
||||
<div class="m-2">
|
||||
Select your exhibit booth from the list and enter passcode you were given. If it is
|
||||
correct you will be taken to the page for your exhibit.
|
||||
</div>
|
||||
|
||||
<div class="event_exhibit_tracking_select_exhibit space-y-6">
|
||||
<form
|
||||
on:submit|preventDefault={() => {
|
||||
$events_sess.leads.open_href = `/events_leads/exhibit/${$events_slct.exhibit_obj.id_random}?event_id=${$events_slct.event_id}`;
|
||||
goto($events_sess.leads.open_href, {invalidateAll: true});
|
||||
}}
|
||||
<div class="m-2">
|
||||
<label for="exhibit_list" class="label">
|
||||
<!-- <span class="label">Exhibit List:</span> -->
|
||||
|
||||
class="flex flex-col items-center border border-slate-500/10 p-2">
|
||||
<!-- <h2>Exhibitor Lead Retrieval</h2> -->
|
||||
<!-- <div class="">Select your exhibit booth from the list and enter passcode you were given. If it is correct you will be taken to the page for your exhibit.</div> -->
|
||||
<div class="m-2">Select your exhibit booth from the list and enter passcode you were given. If it is correct you will be taken to the page for your exhibit.</div>
|
||||
<select
|
||||
id="exhibit_list"
|
||||
bind:value={$events_slct.exhibit_obj}
|
||||
class="select w-96"
|
||||
placeholder="Select your exhibit booth"
|
||||
>
|
||||
<option value="" selected>-- Nothing Selected --</option>
|
||||
{#each $event_exhibit_obj_li as event_exhibit_obj, index}
|
||||
<option value={event_exhibit_obj}
|
||||
>{event_exhibit_obj.name} (Booth #{event_exhibit_obj.code})</option
|
||||
>
|
||||
{/each}
|
||||
</select>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="m-2">
|
||||
<label for="exhibit_list" class="label">
|
||||
<!-- <span class="label">Exhibit List:</span> -->
|
||||
<div class="container_group m-2">
|
||||
<input
|
||||
type="number"
|
||||
bind:value={$events_sess.leads.entered_passcode}
|
||||
class="input w-44 m-1"
|
||||
placeholder="Exhibit passcode"
|
||||
/>
|
||||
|
||||
<select
|
||||
id="exhibit_list"
|
||||
bind:value={$events_slct.exhibit_obj}
|
||||
class="select w-96"
|
||||
placeholder="Select your exhibit booth"
|
||||
>
|
||||
<option value="" selected>-- Nothing Selected --</option>
|
||||
{#each $event_exhibit_obj_li as event_exhibit_obj, index}
|
||||
<option value={event_exhibit_obj}>{event_exhibit_obj.name} (Booth #{event_exhibit_obj.code})</option>
|
||||
{/each}
|
||||
</select>
|
||||
<button
|
||||
type="submit"
|
||||
disabled={disable_open_lead_retrieval_btn}
|
||||
class="btn preset-tonal-primary border border-primary-500 m-1 open_lead_retrieval_btn"
|
||||
>
|
||||
<span class="fas fa-arrow-right mx-1"></span> Open Exhibitor Lead Retrieval
|
||||
</button>
|
||||
|
||||
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="container_group m-2">
|
||||
|
||||
<input
|
||||
type="number"
|
||||
bind:value={$events_sess.leads.entered_passcode}
|
||||
class="input w-44 m-1"
|
||||
placeholder="Exhibit passcode"
|
||||
/>
|
||||
|
||||
<button
|
||||
type="submit"
|
||||
disabled={disable_open_lead_retrieval_btn}
|
||||
class="btn preset-tonal-primary border border-primary-500 m-1 open_lead_retrieval_btn"
|
||||
>
|
||||
<span class="fas fa-arrow-right mx-1"></span> Open Exhibitor Lead Retrieval
|
||||
</button>
|
||||
|
||||
<!-- <a
|
||||
<!-- <a
|
||||
on:click|preventDefault={() => goto($events_sess.leads.open_href, {invalidateAll: true})}
|
||||
href={$events_sess.leads.open_href}
|
||||
>
|
||||
Open Exhibitor Lead Retrieval
|
||||
</a> -->
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
{#if ($ae_loc.administrator_access && !$events_loc.show_details)}
|
||||
<div class="flex flex-col items-center">
|
||||
{#if $ae_loc.administrator_access && !$events_loc.show_details}
|
||||
<div class="flex flex-col items-center">
|
||||
<span>
|
||||
<input
|
||||
bind:value={reset_passcode}
|
||||
placeholder="Reset passcode"
|
||||
title="Reset exhibit passcode"
|
||||
class="input max-w-40"
|
||||
/>
|
||||
|
||||
<span>
|
||||
<input bind:value={reset_passcode} placeholder="Reset passcode" title="Reset exhibit passcode" class="input max-w-40" />
|
||||
<button
|
||||
type="button"
|
||||
disabled={disable_reset_passcode_btn}
|
||||
on:click={() => {
|
||||
handle_update_event_exhibit_staff_passcode(
|
||||
$events_slct.exhibit_obj.event_exhibit_id_random,
|
||||
reset_passcode
|
||||
);
|
||||
}}
|
||||
class="btn preset-tonal-warning border border-warning-500 reset_passcode_btn"
|
||||
>
|
||||
<span class="fas fa-undo mx-1"></span> Reset Passcode
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<button
|
||||
type="button"
|
||||
disabled={disable_reset_passcode_btn}
|
||||
on:click={() => {
|
||||
handle_update_event_exhibit_staff_passcode(exhibit_obj.event_exhibit_id_random, reset_passcode);
|
||||
}}
|
||||
class="btn preset-tonal-warning border border-warning-500 reset_passcode_btn"
|
||||
>
|
||||
<span class="fas fa-undo mx-1"></span> Reset Passcode
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<!-- <button
|
||||
<!-- <button
|
||||
type="button"
|
||||
on:click={() => {
|
||||
console.log(`Goto Button Clicked`);
|
||||
@@ -276,11 +295,9 @@ class="btn variant-filled-secondary"
|
||||
>
|
||||
Test Goto Button
|
||||
</button> -->
|
||||
{/if}
|
||||
|
||||
|
||||
{/if}
|
||||
|
||||
<!-- <Element_data_store
|
||||
<!-- <Element_data_store
|
||||
ds_code="events__leads__example"
|
||||
ds_type="html"
|
||||
for_type="event"
|
||||
@@ -292,9 +309,7 @@ Test Goto Button
|
||||
try_cache={true}
|
||||
show_edit={false}
|
||||
/> -->
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
<style lang="postcss">
|
||||
</style>
|
||||
|
||||
@@ -3,38 +3,51 @@ console.log(`ae_events_leads +page.ts start`);
|
||||
|
||||
import { events_func } from '$lib/ae_events_functions';
|
||||
|
||||
export async function load({ params, parent, url }) { // route
|
||||
export async function load({ params, parent, url }) {
|
||||
// route
|
||||
|
||||
let data = parent();
|
||||
// console.log(`ae_events_leads +page.ts data:`, data);
|
||||
const data = parent();
|
||||
// console.log(`ae_events_leads +page.ts data:`, data);
|
||||
|
||||
// console.log(`ae_events_leads +page.ts data.ae_loc:`, data.ae_loc);
|
||||
// if (data.ae_loc.account_id) {
|
||||
// } else {
|
||||
// console.log(`The account_id was not found in the data.ae_loc!!!`);
|
||||
// return false;
|
||||
// }
|
||||
// console.log(`ae_events_leads +page.ts data.ae_loc:`, data.ae_loc);
|
||||
// if (data.ae_loc.account_id) {
|
||||
// } else {
|
||||
// console.log(`The account_id was not found in the data.ae_loc!!!`);
|
||||
// return false;
|
||||
// }
|
||||
|
||||
data.ae_events_leads_page_ts = true;
|
||||
data.ae_events_leads_page_ts = true;
|
||||
|
||||
let submenu = {
|
||||
main: {name: 'Main', href: '/events_leads', access: false},
|
||||
manage: {name: 'Manage', href: '/events_leads/manage', access: 'administrator', disable: true, hide: true},
|
||||
review: {name: 'Exhibitor', href: '/events_leads/exhibitor', access: false, disable: false, hide: false},
|
||||
};
|
||||
data.submenu = submenu
|
||||
const submenu = {
|
||||
main: { name: 'Main', href: '/events_leads', access: false },
|
||||
manage: {
|
||||
name: 'Manage',
|
||||
href: '/events_leads/manage',
|
||||
access: 'administrator',
|
||||
disable: true,
|
||||
hide: true
|
||||
},
|
||||
review: {
|
||||
name: 'Exhibitor',
|
||||
href: '/events_leads/exhibitor',
|
||||
access: false,
|
||||
disable: false,
|
||||
hide: false
|
||||
}
|
||||
};
|
||||
data.submenu = submenu;
|
||||
|
||||
// Do not wait on these:
|
||||
// Do not wait on these:
|
||||
|
||||
// let load_event_obj = events_func.handle_load_ae_obj_id__event({api_cfg: data.ae_api, event_id: event_id, try_cache: true});
|
||||
// console.log(`load_event_obj = `, load_event_obj);
|
||||
// let load_event_obj = events_func.handle_load_ae_obj_id__event({api_cfg: data.ae_api, event_id: event_id, try_cache: true});
|
||||
// console.log(`load_event_obj = `, load_event_obj);
|
||||
|
||||
// let load_event_exhibit_obj_li = events_func.handle_load_ae_obj_li__exhibit({api_cfg: data.ae_api, event_id: event_id, try_cache: false});
|
||||
// console.log(`load_event_exhibit_obj_li = `, load_event_exhibit_obj_li);
|
||||
// let load_event_exhibit_obj_li = events_func.handle_load_ae_obj_li__exhibit({api_cfg: data.ae_api, event_id: event_id, try_cache: false});
|
||||
// console.log(`load_event_exhibit_obj_li = `, load_event_exhibit_obj_li);
|
||||
|
||||
// let exhibit_id = params.slug;
|
||||
// let load_event_exhibit_obj = events_func.handle_load_ae_obj_id__exhibit({api_cfg: data.ae_api, exhibit_id: exhibit_id, try_cache: false});
|
||||
// console.log(`load_event_exhibit_obj = `, load_event_exhibit_obj);
|
||||
// let exhibit_id = params.slug;
|
||||
// let load_event_exhibit_obj = events_func.handle_load_ae_obj_id__exhibit({api_cfg: data.ae_api, exhibit_id: exhibit_id, try_cache: false});
|
||||
// console.log(`load_event_exhibit_obj = `, load_event_exhibit_obj);
|
||||
|
||||
return data;
|
||||
return data;
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -3,47 +3,56 @@ console.log(`ae_events_leads [slug] +page.ts start`);
|
||||
|
||||
import { events_func } from '$lib/ae_events_functions';
|
||||
|
||||
export async function load({ params, parent }) { // route
|
||||
let log_lvl: number = 0;
|
||||
export async function load({ params, parent }) {
|
||||
// route
|
||||
const log_lvl: number = 0;
|
||||
|
||||
let data = await parent();
|
||||
// console.log(`ae_events_leads exhibit [slug] +page.ts data:`, data);
|
||||
const data = await parent();
|
||||
// console.log(`ae_events_leads exhibit [slug] +page.ts data:`, data);
|
||||
|
||||
let account_id = data.account_id;
|
||||
let ae_acct = data[account_id];
|
||||
console.log(`ae_acct = `, ae_acct);
|
||||
const account_id = data.account_id;
|
||||
const ae_acct = data[account_id];
|
||||
console.log(`ae_acct = `, ae_acct);
|
||||
|
||||
if (!account_id) {
|
||||
console.log(`events_leads exhibit [slug] +page.ts: The account_id was not found in the data!!!`);
|
||||
return false;
|
||||
}
|
||||
if (!account_id) {
|
||||
console.log(
|
||||
`events_leads exhibit [slug] +page.ts: The account_id was not found in the data!!!`
|
||||
);
|
||||
return false;
|
||||
}
|
||||
|
||||
data.ae_events_leads_exhibit_slug_page_ts = true;
|
||||
data.ae_events_leads_exhibit_slug_page_ts = true;
|
||||
|
||||
let event_exhibit_id = params.slug;
|
||||
if (!event_exhibit_id) {
|
||||
console.log(`events_leads exhibit [slug] +page.ts: The event_exhibit_id was not found in the params.slug!!!`);
|
||||
return false;
|
||||
}
|
||||
const event_exhibit_id = params.slug;
|
||||
if (!event_exhibit_id) {
|
||||
console.log(
|
||||
`events_leads exhibit [slug] +page.ts: The event_exhibit_id was not found in the params.slug!!!`
|
||||
);
|
||||
return false;
|
||||
}
|
||||
|
||||
ae_acct.slct.event_exhibit_id = event_exhibit_id;
|
||||
ae_acct.slct.event_exhibit_id = event_exhibit_id;
|
||||
|
||||
let load_event_exhibit_obj = events_func.handle_load_ae_obj_id__exhibit({api_cfg: ae_acct.api, exhibit_id: event_exhibit_id, try_cache: false});
|
||||
const load_event_exhibit_obj = events_func.handle_load_ae_obj_id__exhibit({
|
||||
api_cfg: ae_acct.api,
|
||||
exhibit_id: event_exhibit_id,
|
||||
try_cache: false
|
||||
});
|
||||
|
||||
ae_acct.slct.event_exhibit_obj = await load_event_exhibit_obj;
|
||||
ae_acct.slct.event_exhibit_obj = await load_event_exhibit_obj;
|
||||
|
||||
let load_event_exhibit_tracking_obj_li = events_func.handle_load_ae_obj_li__exhibit_tracking({
|
||||
api_cfg: ae_acct.api,
|
||||
exhibit_id: event_exhibit_id,
|
||||
params: {enabled: 'all', qry__limit: 550},
|
||||
try_cache: false
|
||||
});
|
||||
console.log(`load_event_exhibit_tracking_obj_li = `, load_event_exhibit_tracking_obj_li);
|
||||
const load_event_exhibit_tracking_obj_li = events_func.handle_load_ae_obj_li__exhibit_tracking({
|
||||
api_cfg: ae_acct.api,
|
||||
exhibit_id: event_exhibit_id,
|
||||
params: { enabled: 'all', qry__limit: 550 },
|
||||
try_cache: false
|
||||
});
|
||||
console.log(`load_event_exhibit_tracking_obj_li = `, load_event_exhibit_tracking_obj_li);
|
||||
|
||||
ae_acct.slct.event_exhibit_tracking_obj_li = load_event_exhibit_tracking_obj_li;
|
||||
ae_acct.slct.event_exhibit_tracking_obj_li = load_event_exhibit_tracking_obj_li;
|
||||
|
||||
// WARNING: Precaution against shared data between sites and sessions.
|
||||
data[account_id] = ae_acct;
|
||||
// WARNING: Precaution against shared data between sites and sessions.
|
||||
data[account_id] = ae_acct;
|
||||
|
||||
return data;
|
||||
return data;
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,352 +1,388 @@
|
||||
<script lang="ts">
|
||||
// export let data: any;
|
||||
// console.log(`ae_events_leads exhibit [slug] leads_list.svelte data:`, data);
|
||||
// export let data: any;
|
||||
// console.log(`ae_events_leads exhibit [slug] leads_list.svelte data:`, data);
|
||||
|
||||
import type { key_val } from '$lib/stores/ae_stores';
|
||||
// import { ae_util } from '$lib/ae_utils/ae_utils';
|
||||
import { liveQuery } from "dexie";
|
||||
import { db_events } from "$lib/ae_events/db_events";
|
||||
import { ae_loc, ae_sess, ae_api, slct, slct_trigger } from '$lib/stores/ae_stores';
|
||||
import { events_loc, events_sess, events_slct, events_trigger } from '$lib/stores/ae_events_stores';
|
||||
import { events_func } from '$lib/ae_events_functions';
|
||||
import type { key_val } from '$lib/stores/ae_stores';
|
||||
// import { ae_util } from '$lib/ae_utils/ae_utils';
|
||||
import { liveQuery } from 'dexie';
|
||||
import { db_events } from '$lib/ae_events/db_events';
|
||||
import { ae_loc, ae_sess, ae_api, slct, slct_trigger } from '$lib/stores/ae_stores';
|
||||
import {
|
||||
events_loc,
|
||||
events_sess,
|
||||
events_slct,
|
||||
events_trigger
|
||||
} from '$lib/stores/ae_events_stores';
|
||||
import { events_func } from '$lib/ae_events_functions';
|
||||
|
||||
import Element_ae_crud from '$lib/elements/element_ae_crud.svelte';
|
||||
import Leads_view_lead from './leads_view_lead.svelte';
|
||||
import Element_ae_crud from '$lib/elements/element_ae_crud.svelte';
|
||||
import Leads_view_lead from './leads_view_lead.svelte';
|
||||
|
||||
let ae_promises: key_val = {};
|
||||
let ae_promises: key_val = {};
|
||||
|
||||
// These will likely be used for patch/update triggers. Maybe delete?
|
||||
let ae_triggers: key_val = {
|
||||
priority: {},
|
||||
sort: {},
|
||||
show_hidden: {},
|
||||
};
|
||||
// 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.exhibit.get($events_slct.exhibit_id)
|
||||
);
|
||||
// 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.exhibit.get($events_slct.exhibit_id));
|
||||
|
||||
// let l_event_exhibit_tracking_obj = liveQuery(
|
||||
// () => db_events.exhibit_tracking.get($events_slct.exhibit_tracking_id)
|
||||
// );
|
||||
// let l_event_exhibit_tracking_obj = liveQuery(
|
||||
// () => db_events.exhibit_tracking.get($events_slct.exhibit_tracking_id)
|
||||
// );
|
||||
|
||||
// Version 1: This is the version that works
|
||||
// let event_exhibit_tracking_obj_li = liveQuery(
|
||||
// // () => db_events.exhibit.toArray()
|
||||
// () => db_events.exhibit_tracking
|
||||
// // .where('enable')
|
||||
// // .aboveOrEqual(0)
|
||||
// // .equals(true)
|
||||
// .where('event_exhibit_id_random')
|
||||
// .equals($events_slct.exhibit_id)
|
||||
// // .above(0)
|
||||
// .sortBy('created_on')
|
||||
// // .orderBy('name')
|
||||
// // .offset(10).limit(5)
|
||||
// // .toArray()
|
||||
// );
|
||||
// Version 1: This is the version that works
|
||||
// let event_exhibit_tracking_obj_li = liveQuery(
|
||||
// // () => db_events.exhibit.toArray()
|
||||
// () => db_events.exhibit_tracking
|
||||
// // .where('enable')
|
||||
// // .aboveOrEqual(0)
|
||||
// // .equals(true)
|
||||
// .where('event_exhibit_id_random')
|
||||
// .equals($events_slct.exhibit_id)
|
||||
// // .above(0)
|
||||
// .sortBy('created_on')
|
||||
// // .orderBy('name')
|
||||
// // .offset(10).limit(5)
|
||||
// // .toArray()
|
||||
// );
|
||||
|
||||
// Testing examples:
|
||||
// Use sortBy() instead of orderBy()
|
||||
// toArray() is also not needed???
|
||||
// Testing examples:
|
||||
// Use sortBy() instead of orderBy()
|
||||
// toArray() is also not needed???
|
||||
|
||||
// .where({event_exhibit_id_random: $events_slct.exhibit_id, enable: true, hide: false})
|
||||
// .where({event_exhibit_id_random: $events_slct.exhibit_id})
|
||||
// .where('event_exhibit_id_random').equals($events_slct.exhibit_id)
|
||||
// .and('enable').equals(true)
|
||||
// .reverse()
|
||||
// .sortBy('updated_on')
|
||||
// .reverse()
|
||||
// .sortBy('created_on')
|
||||
// .toArray()
|
||||
// .sortBy('created_on')
|
||||
// .reverse()
|
||||
// .sortBy('priority') // , 'sort', 'created_on', 'updated_on')
|
||||
// .where({event_exhibit_id_random: $events_slct.exhibit_id, enable: true, hide: false})
|
||||
// .where({event_exhibit_id_random: $events_slct.exhibit_id})
|
||||
// .where('event_exhibit_id_random').equals($events_slct.exhibit_id)
|
||||
// .and('enable').equals(true)
|
||||
// .reverse()
|
||||
// .sortBy('updated_on')
|
||||
// .reverse()
|
||||
// .sortBy('created_on')
|
||||
// .toArray()
|
||||
// .sortBy('created_on')
|
||||
// .reverse()
|
||||
// .sortBy('priority') // , 'sort', 'created_on', 'updated_on')
|
||||
|
||||
// () => db_events.exhibit.toArray()
|
||||
// () => db_events.exhibit.toArray()
|
||||
|
||||
// Version 2: This needs work...
|
||||
// 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
|
||||
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 == !$events_loc.leads.show_not_enabled))
|
||||
.sortBy('sort')
|
||||
// .reverse()
|
||||
// .sortBy('priority')
|
||||
// Version 2: This needs work...
|
||||
// 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
|
||||
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 == !$events_loc.leads.show_not_enabled)
|
||||
.sortBy('sort')
|
||||
// .reverse()
|
||||
// .sortBy('priority')
|
||||
|
||||
// .orderBy("priority")
|
||||
// .orderBy("sort")
|
||||
// .orderBy("created_on", "desc")
|
||||
// .orderBy("updated_on", "desc")
|
||||
// .sortBy('priority') // Initial sort
|
||||
// .thenBy('created_on', 'desc')
|
||||
// .thenBy('sort') // Secondary sort
|
||||
// .thenBy('updated_on', 'desc')
|
||||
);
|
||||
// .orderBy("priority")
|
||||
// .orderBy("sort")
|
||||
// .orderBy("created_on", "desc")
|
||||
// .orderBy("updated_on", "desc")
|
||||
// .sortBy('priority') // Initial sort
|
||||
// .thenBy('created_on', 'desc')
|
||||
// .thenBy('sort') // Secondary sort
|
||||
// .thenBy('updated_on', 'desc')
|
||||
);
|
||||
|
||||
// let update_submit_results = null;
|
||||
|
||||
|
||||
// let update_submit_results = null;
|
||||
|
||||
// Once this component is mounted we need to start a loop that runs every X seconds to refresh the leads list for the exhibit.
|
||||
// console.log('Start the loop to refresh the leads list for the exhibit.');
|
||||
console.log('Refresh interval:', $events_loc.leads.refresh_interval__tracking_li ?? 'not set');
|
||||
let refresh_leads_list = setInterval(function () {
|
||||
console.log('Refresh the leads list for the exhibit.');
|
||||
events_func.handle_load_ae_obj_li__exhibit_tracking({
|
||||
api_cfg: $ae_api,
|
||||
exhibit_id: $events_slct.exhibit_id,
|
||||
params: {enabled: 'all'}
|
||||
});
|
||||
}, $events_loc.leads.refresh_interval__tracking_li ?? 35000);
|
||||
|
||||
// Once this component is mounted we need to start a loop that runs every X seconds to refresh the leads list for the exhibit.
|
||||
// console.log('Start the loop to refresh the leads list for the exhibit.');
|
||||
console.log('Refresh interval:', $events_loc.leads.refresh_interval__tracking_li ?? 'not set');
|
||||
let refresh_leads_list = setInterval(function () {
|
||||
console.log('Refresh the leads list for the exhibit.');
|
||||
events_func.handle_load_ae_obj_li__exhibit_tracking({
|
||||
api_cfg: $ae_api,
|
||||
exhibit_id: $events_slct.exhibit_id,
|
||||
params: { enabled: 'all' }
|
||||
});
|
||||
}, $events_loc.leads.refresh_interval__tracking_li ?? 35000);
|
||||
</script>
|
||||
|
||||
|
||||
<section class="tab__leads_list flex flex-col wrap justify-center items-center space-y-4">
|
||||
{#if $events_slct.exhibit_id && $events_slct.exhibit_obj}
|
||||
<h2 class="h3">
|
||||
<span class="fas fa-clipboard-list-check"></span>
|
||||
{$lq__event_exhibit_tracking_obj_li?.length}
|
||||
Leads for {$lq__event_exhibit_obj?.name}
|
||||
</h2>
|
||||
|
||||
{#if $events_slct.exhibit_id && $events_slct.exhibit_obj}
|
||||
<h2 class="h3">
|
||||
<span class="fas fa-clipboard-list-check"></span>
|
||||
{$lq__event_exhibit_tracking_obj_li?.length}
|
||||
Leads for {$lq__event_exhibit_obj?.name}
|
||||
</h2>
|
||||
<!-- <div class="border border-slate-500/10 p-2 variant-soft-warning">This section is not fully enabled for ISHLT 2024 at this time. You can not add new leads and changes are limited.</div> -->
|
||||
|
||||
<!-- <div class="border border-slate-500/10 p-2 variant-soft-warning">This section is not fully enabled for ISHLT 2024 at this time. You can not add new leads and changes are limited.</div> -->
|
||||
<div class="flex flex-row gap-1">
|
||||
<!-- {#if $ae_loc.trusted_access} -->
|
||||
|
||||
<button
|
||||
on:click={async () => {
|
||||
console.log('Show Hidden Leads');
|
||||
$events_loc.leads.show_hidden = !$events_loc.leads.show_hidden;
|
||||
|
||||
<div class="flex flex-row gap-1">
|
||||
<!-- {#if $ae_loc.trusted_access} -->
|
||||
console.log('$events_loc.leads.show_hidden:', $events_loc.leads.show_hidden);
|
||||
}}
|
||||
class="btn btn-sm preset-tonal"
|
||||
>
|
||||
{#if $events_loc.leads.show_hidden}
|
||||
<span class="fas fa-eye-slash m-1"></span>
|
||||
Hide Archived?
|
||||
{:else}
|
||||
<span class="fas fa-eye m-1"></span>
|
||||
Show All Leads?
|
||||
{/if}
|
||||
</button>
|
||||
|
||||
<button
|
||||
on:click={async () => {
|
||||
console.log('Show Hidden Leads');
|
||||
$events_loc.leads.show_hidden = !$events_loc.leads.show_hidden;
|
||||
<!-- {/if} -->
|
||||
|
||||
console.log('$events_loc.leads.show_hidden:', $events_loc.leads.show_hidden);
|
||||
}}
|
||||
class="btn btn-sm preset-tonal"
|
||||
>
|
||||
{#if $events_loc.leads.show_hidden}
|
||||
<span class="fas fa-eye-slash m-1"></span>
|
||||
Hide Archived?
|
||||
{:else}
|
||||
<span class="fas fa-eye m-1"></span>
|
||||
Show All Leads?
|
||||
{/if}
|
||||
</button>
|
||||
{#if $ae_loc.trusted_access}
|
||||
<button
|
||||
on:click={async () => {
|
||||
console.log('Show Enabled Leads');
|
||||
$events_loc.leads.show_not_enabled = !$events_loc.leads.show_not_enabled;
|
||||
|
||||
<!-- {/if} -->
|
||||
console.log('$events_loc.leads.show_not_enabled:', $events_loc.leads.show_not_enabled);
|
||||
}}
|
||||
class="btn btn-sm preset-tonal"
|
||||
>
|
||||
<span class="fas fa-eye m-1"></span>
|
||||
{$events_loc.leads.show_not_enabled ? 'Show Enabled' : 'Show Not Enabled'} Leads?
|
||||
</button>
|
||||
{/if}
|
||||
|
||||
{#if $ae_loc.trusted_access}
|
||||
<button
|
||||
on:click={async () => {
|
||||
console.log('Show Enabled Leads');
|
||||
$events_loc.leads.show_not_enabled = !$events_loc.leads.show_not_enabled;
|
||||
<button
|
||||
type="button"
|
||||
on:click={() => {
|
||||
if (!confirm('Download data exported to an Excel file?')) {
|
||||
return false;
|
||||
}
|
||||
ae_promises.download__exhibit_tracking_export =
|
||||
events_func.handle_download_export__event_exhibit_tracking({
|
||||
api_cfg: $ae_api,
|
||||
exhibit_id: $events_slct.exhibit_id,
|
||||
file_type: 'Excel',
|
||||
return_file: true,
|
||||
filename: `lead_retrieval_export_${$events_slct.exhibit_obj.name.replaceAll(' ', '_')}.xlsx`,
|
||||
auto_download: true,
|
||||
log_lvl: 2
|
||||
});
|
||||
|
||||
console.log('$events_loc.leads.show_not_enabled:', $events_loc.leads.show_not_enabled);
|
||||
}}
|
||||
class="btn btn-sm preset-tonal"
|
||||
>
|
||||
<span class="fas fa-eye m-1"></span>
|
||||
{$events_loc.leads.show_not_enabled ? 'Show Enabled' : 'Show Not Enabled'} Leads?
|
||||
</button>
|
||||
{/if}
|
||||
|
||||
<button
|
||||
type="button"
|
||||
on:click={() => {
|
||||
if (!confirm('Download data exported to an Excel file?')) {
|
||||
return false;
|
||||
}
|
||||
ae_promises.download__exhibit_tracking_export = events_func.handle_download_export__event_exhibit_tracking({
|
||||
api_cfg: $ae_api,
|
||||
exhibit_id: $events_slct.exhibit_id,
|
||||
file_type: 'Excel',
|
||||
return_file: true,
|
||||
filename: `lead_retrieval_export_${$events_slct.exhibit_obj.name.replaceAll(' ', '_')}.xlsx`,
|
||||
auto_download: true,
|
||||
log_lvl: 2
|
||||
});
|
||||
|
||||
// get_event_exhibit_tracking_export({ 'event_exhibit_id': $events_slct.exhibit_id, file_type: 'Excel', 'return_file': true, filename: `lead_retrieval_export_${$events_slct.exhibit_obj.name.replaceAll(' ', '_')}.xlsx`, auto_download: true, log_lvl: 2 });
|
||||
// .replace(' ', '_')
|
||||
|
||||
}}
|
||||
disabled={!$events_slct.exhibit_obj.priority}
|
||||
class="btn btn-sm preset-tonal-primary border border-primary-500 w-48 mb-1 export_data_btn"
|
||||
title={`Download leads data for ${$events_slct.exhibit_obj.name}`}
|
||||
>
|
||||
{#await ae_promises.download__exhibit_tracking_export}
|
||||
<span class="fas fa-spinner fa-spin"></span>
|
||||
<!-- <span class="loading-text">
|
||||
// get_event_exhibit_tracking_export({ 'event_exhibit_id': $events_slct.exhibit_id, file_type: 'Excel', 'return_file': true, filename: `lead_retrieval_export_${$events_slct.exhibit_obj.name.replaceAll(' ', '_')}.xlsx`, auto_download: true, log_lvl: 2 });
|
||||
// .replace(' ', '_')
|
||||
}}
|
||||
disabled={!$events_slct.exhibit_obj.priority}
|
||||
class="btn btn-sm preset-tonal-primary border border-primary-500 w-48 mb-1 export_data_btn"
|
||||
title={`Download leads data for ${$events_slct.exhibit_obj.name}`}
|
||||
>
|
||||
{#await ae_promises.download__exhibit_tracking_export}
|
||||
<span class="fas fa-spinner fa-spin"></span>
|
||||
<!-- <span class="loading-text">
|
||||
Downloading...
|
||||
</span> -->
|
||||
{:then}
|
||||
<!-- Done? -->
|
||||
{/await}
|
||||
<span class="fas fa-download mx-1"></span> Export Data
|
||||
</button>
|
||||
{:then}
|
||||
<!-- Done? -->
|
||||
{/await}
|
||||
<span class="fas fa-download mx-1"></span> Export Data
|
||||
</button>
|
||||
</div>
|
||||
<!-- END: flex flex-row -->
|
||||
|
||||
</div> <!-- END: flex flex-row -->
|
||||
{#if $lq__event_exhibit_tracking_obj_li}
|
||||
<table class="table table-compact min-w-min">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="star text-center">Star</th>
|
||||
<th class="rank text-center">Rank</th>
|
||||
<th class="person text-center">Person</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{#each $lq__event_exhibit_tracking_obj_li as event_exhibit_tracking_obj, index}
|
||||
<!-- flex flex-row justify-center items-center m-auto -->
|
||||
<tr
|
||||
class:hidden={event_exhibit_tracking_obj.hide && !$events_loc.leads.show_hidden}
|
||||
class:fade_50={event_exhibit_tracking_obj.hide}
|
||||
>
|
||||
<td class="star text-center">
|
||||
<!-- <span class="star_container flex flex-col justify-center items-center m-auto"> -->
|
||||
|
||||
{#if $lq__event_exhibit_tracking_obj_li}
|
||||
<table class="table table-compact min-w-min">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="star text-center">Star</th>
|
||||
<th class="rank text-center">Rank</th>
|
||||
<th class="person text-center">Person</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<!-- Priority (star) means this should be sorted at the top of lists. -->
|
||||
<Element_ae_crud
|
||||
bind:trigger_patch={
|
||||
ae_triggers.priority[
|
||||
event_exhibit_tracking_obj?.event_exhibit_tracking_id_random
|
||||
]
|
||||
}
|
||||
api_cfg={$ae_api}
|
||||
object_type={'event_exhibit_tracking'}
|
||||
object_id={event_exhibit_tracking_obj?.event_exhibit_tracking_id_random}
|
||||
field_name={'priority'}
|
||||
field_type={'button'}
|
||||
field_value={$events_slct.exhibit_tracking_obj.priority}
|
||||
allow_null={false}
|
||||
hide_edit_btn={true}
|
||||
outline_element={false}
|
||||
show_crud={false}
|
||||
display_inline={true}
|
||||
class_li={'m-1'}
|
||||
on:ae_crud_updated={(e) => {
|
||||
console.log(`ae_crud_updated event:`, e.detail);
|
||||
events_func.handle_load_ae_obj_id__exhibit_tracking({
|
||||
api_cfg: $ae_api,
|
||||
exhibit_tracking_id: $events_slct.exhibit_tracking_id
|
||||
});
|
||||
}}
|
||||
>
|
||||
<button
|
||||
type="button"
|
||||
on:click={() => {
|
||||
console.log(
|
||||
`Updating priority for event_exhibit_tracking_id: ${event_exhibit_tracking_obj?.event_exhibit_tracking_id_random}`
|
||||
);
|
||||
|
||||
<tbody>
|
||||
$events_slct.exhibit_tracking_id =
|
||||
event_exhibit_tracking_obj.event_exhibit_tracking_id_random;
|
||||
$events_slct.exhibit_tracking_obj = event_exhibit_tracking_obj;
|
||||
|
||||
{#each $lq__event_exhibit_tracking_obj_li as event_exhibit_tracking_obj, index}
|
||||
<!-- flex flex-row justify-center items-center m-auto -->
|
||||
<tr
|
||||
class:hidden={event_exhibit_tracking_obj.hide && !$events_loc.leads.show_hidden}
|
||||
class:fade_50={event_exhibit_tracking_obj.hide}
|
||||
>
|
||||
<td class="star text-center">
|
||||
<!-- <span class="star_container flex flex-col justify-center items-center m-auto"> -->
|
||||
$events_slct.exhibit_tracking_obj.priority =
|
||||
!$events_slct.exhibit_tracking_obj.priority;
|
||||
|
||||
<!-- Priority (star) means this should be sorted at the top of lists. -->
|
||||
<Element_ae_crud
|
||||
bind:trigger_patch={ae_triggers.priority[event_exhibit_tracking_obj?.event_exhibit_tracking_id_random]}
|
||||
api_cfg={$ae_api}
|
||||
object_type={'event_exhibit_tracking'}
|
||||
object_id={event_exhibit_tracking_obj?.event_exhibit_tracking_id_random}
|
||||
field_name={'priority'}
|
||||
field_type={'button'}
|
||||
field_value={$events_slct.exhibit_tracking_obj.priority}
|
||||
allow_null={false}
|
||||
hide_edit_btn={true}
|
||||
outline_element={false}
|
||||
show_crud={false}
|
||||
display_inline={true}
|
||||
class_li={'m-1'}
|
||||
on:ae_crud_updated={e => {
|
||||
console.log(`ae_crud_updated event:`, e.detail);
|
||||
events_func.handle_load_ae_obj_id__exhibit_tracking({api_cfg: $ae_api, exhibit_tracking_id: $events_slct.exhibit_tracking_id});
|
||||
}}
|
||||
>
|
||||
<button
|
||||
type="button"
|
||||
on:click={() => {
|
||||
console.log(`Updating priority for event_exhibit_tracking_id: ${event_exhibit_tracking_obj?.event_exhibit_tracking_id_random}`);
|
||||
ae_triggers.priority[
|
||||
event_exhibit_tracking_obj?.event_exhibit_tracking_id_random
|
||||
] = true;
|
||||
}}
|
||||
class="btn btn-sm preset-tonal-tertiary"
|
||||
>
|
||||
{@html event_exhibit_tracking_obj?.priority
|
||||
? '<span class="fas fa-star m-1"></span>'
|
||||
: '<span class="far fa-star"></span>'}
|
||||
</button>
|
||||
</Element_ae_crud>
|
||||
</td>
|
||||
|
||||
$events_slct.exhibit_tracking_id = event_exhibit_tracking_obj.event_exhibit_tracking_id_random;
|
||||
$events_slct.exhibit_tracking_obj = event_exhibit_tracking_obj;
|
||||
<!-- text-center align-middle -->
|
||||
<td class="ranking text-center">
|
||||
<!-- BEGIN: Ranking in table -->
|
||||
<div
|
||||
class="ranking_container flex flex-col lg:flex-row justify-stretch items-center"
|
||||
>
|
||||
<!-- Sort (ranking) means this should be sorted in the list based on the number. 0 is the top of the list. -->
|
||||
|
||||
$events_slct.exhibit_tracking_obj.priority = !$events_slct.exhibit_tracking_obj.priority;
|
||||
<Element_ae_crud
|
||||
bind:trigger_patch={
|
||||
ae_triggers.sort[event_exhibit_tracking_obj?.event_exhibit_tracking_id_random]
|
||||
}
|
||||
api_cfg={$ae_api}
|
||||
object_type={'event_exhibit_tracking'}
|
||||
object_id={event_exhibit_tracking_obj?.event_exhibit_tracking_id_random}
|
||||
field_name={'sort'}
|
||||
field_type={'button'}
|
||||
field_value={$events_slct.exhibit_tracking_obj.sort}
|
||||
allow_null={false}
|
||||
hide_edit_btn={true}
|
||||
outline_element={false}
|
||||
show_crud={false}
|
||||
display_inline={true}
|
||||
class_li={'m-1'}
|
||||
on:ae_crud_updated={(e) => {
|
||||
console.log(`ae_crud_updated event:`, e.detail);
|
||||
events_func.handle_load_ae_obj_id__exhibit_tracking({
|
||||
api_cfg: $ae_api,
|
||||
exhibit_tracking_id: $events_slct.exhibit_tracking_id
|
||||
});
|
||||
}}
|
||||
>
|
||||
<button
|
||||
type="button"
|
||||
on:click={() => {
|
||||
console.log(
|
||||
`Updating sort for event_exhibit_tracking_id: ${event_exhibit_tracking_obj?.event_exhibit_tracking_id_random}`
|
||||
);
|
||||
|
||||
ae_triggers.priority[event_exhibit_tracking_obj?.event_exhibit_tracking_id_random] = true;
|
||||
}}
|
||||
class="btn btn-sm preset-tonal-tertiary"
|
||||
>
|
||||
{@html (event_exhibit_tracking_obj?.priority ? '<span class="fas fa-star m-1"></span>' : '<span class="far fa-star"></span>')}
|
||||
</button>
|
||||
</Element_ae_crud>
|
||||
</td>
|
||||
$events_slct.exhibit_tracking_id =
|
||||
event_exhibit_tracking_obj.event_exhibit_tracking_id_random;
|
||||
$events_slct.exhibit_tracking_obj = event_exhibit_tracking_obj;
|
||||
|
||||
<!-- text-center align-middle -->
|
||||
<td class="ranking text-center"> <!-- BEGIN: Ranking in table -->
|
||||
<div class="ranking_container flex flex-col lg:flex-row justify-stretch items-center">
|
||||
<!-- Sort (ranking) means this should be sorted in the list based on the number. 0 is the top of the list. -->
|
||||
if ($events_slct.exhibit_tracking_obj.sort < 1) {
|
||||
$events_slct.exhibit_tracking_obj.sort = 0;
|
||||
} else {
|
||||
$events_slct.exhibit_tracking_obj.sort -= 1;
|
||||
}
|
||||
|
||||
<Element_ae_crud
|
||||
bind:trigger_patch={ae_triggers.sort[event_exhibit_tracking_obj?.event_exhibit_tracking_id_random]}
|
||||
api_cfg={$ae_api}
|
||||
object_type={'event_exhibit_tracking'}
|
||||
object_id={event_exhibit_tracking_obj?.event_exhibit_tracking_id_random}
|
||||
field_name={'sort'}
|
||||
field_type={'button'}
|
||||
field_value={$events_slct.exhibit_tracking_obj.sort}
|
||||
allow_null={false}
|
||||
hide_edit_btn={true}
|
||||
outline_element={false}
|
||||
show_crud={false}
|
||||
display_inline={true}
|
||||
class_li={'m-1'}
|
||||
on:ae_crud_updated={e => {
|
||||
console.log(`ae_crud_updated event:`, e.detail);
|
||||
events_func.handle_load_ae_obj_id__exhibit_tracking({api_cfg: $ae_api, exhibit_tracking_id: $events_slct.exhibit_tracking_id});
|
||||
}}
|
||||
>
|
||||
<button
|
||||
type="button"
|
||||
on:click={() => {
|
||||
console.log(`Updating sort for event_exhibit_tracking_id: ${event_exhibit_tracking_obj?.event_exhibit_tracking_id_random}`);
|
||||
ae_triggers.sort[
|
||||
event_exhibit_tracking_obj?.event_exhibit_tracking_id_random
|
||||
] = true;
|
||||
}}
|
||||
disabled={event_exhibit_tracking_obj?.sort < 1}
|
||||
class="btn btn-sm preset-tonal-secondary"
|
||||
>
|
||||
<span class="fas fa-arrow-up" title="Move up"></span>
|
||||
</button>
|
||||
</Element_ae_crud>
|
||||
|
||||
$events_slct.exhibit_tracking_id = event_exhibit_tracking_obj.event_exhibit_tracking_id_random;
|
||||
$events_slct.exhibit_tracking_obj = event_exhibit_tracking_obj;
|
||||
<span class="exhibit_tracking__sort m-0 lg:mx-1"
|
||||
>{event_exhibit_tracking_obj.sort ?? ''}</span
|
||||
>
|
||||
|
||||
if ($events_slct.exhibit_tracking_obj.sort < 1) {
|
||||
$events_slct.exhibit_tracking_obj.sort = 0;
|
||||
} else {
|
||||
$events_slct.exhibit_tracking_obj.sort -= 1;
|
||||
}
|
||||
<Element_ae_crud
|
||||
bind:trigger_patch={
|
||||
ae_triggers.sort[event_exhibit_tracking_obj?.event_exhibit_tracking_id_random]
|
||||
}
|
||||
api_cfg={$ae_api}
|
||||
object_type={'event_exhibit_tracking'}
|
||||
object_id={event_exhibit_tracking_obj?.event_exhibit_tracking_id_random}
|
||||
field_name={'sort'}
|
||||
field_type={'button'}
|
||||
field_value={$events_slct.exhibit_tracking_obj.sort}
|
||||
allow_null={false}
|
||||
hide_edit_btn={true}
|
||||
outline_element={false}
|
||||
show_crud={false}
|
||||
display_inline={true}
|
||||
class_li={'m-1'}
|
||||
on:ae_crud_updated={(e) => {
|
||||
console.log(`ae_crud_updated event:`, e.detail);
|
||||
events_func.handle_load_ae_obj_id__exhibit_tracking({
|
||||
api_cfg: $ae_api,
|
||||
exhibit_tracking_id: $events_slct.exhibit_tracking_id
|
||||
});
|
||||
}}
|
||||
>
|
||||
<button
|
||||
type="button"
|
||||
on:click={() => {
|
||||
console.log(
|
||||
`Updating sort for event_exhibit_tracking_id: ${event_exhibit_tracking_obj?.event_exhibit_tracking_id_random}`
|
||||
);
|
||||
|
||||
ae_triggers.sort[event_exhibit_tracking_obj?.event_exhibit_tracking_id_random] = true;
|
||||
}}
|
||||
disabled={event_exhibit_tracking_obj?.sort < 1}
|
||||
class="btn btn-sm preset-tonal-secondary"
|
||||
>
|
||||
<span class="fas fa-arrow-up" title="Move up"></span>
|
||||
</button>
|
||||
</Element_ae_crud>
|
||||
$events_slct.exhibit_tracking_id =
|
||||
event_exhibit_tracking_obj.event_exhibit_tracking_id_random;
|
||||
$events_slct.exhibit_tracking_obj = event_exhibit_tracking_obj;
|
||||
|
||||
<span class="exhibit_tracking__sort m-0 lg:mx-1">{event_exhibit_tracking_obj.sort ?? ''}</span>
|
||||
if ($events_slct.exhibit_tracking_obj.sort >= 5) {
|
||||
$events_slct.exhibit_tracking_obj.sort = 5;
|
||||
} else {
|
||||
$events_slct.exhibit_tracking_obj.sort += 1;
|
||||
}
|
||||
|
||||
<Element_ae_crud
|
||||
bind:trigger_patch={ae_triggers.sort[event_exhibit_tracking_obj?.event_exhibit_tracking_id_random]}
|
||||
api_cfg={$ae_api}
|
||||
object_type={'event_exhibit_tracking'}
|
||||
object_id={event_exhibit_tracking_obj?.event_exhibit_tracking_id_random}
|
||||
field_name={'sort'}
|
||||
field_type={'button'}
|
||||
field_value={$events_slct.exhibit_tracking_obj.sort}
|
||||
allow_null={false}
|
||||
hide_edit_btn={true}
|
||||
outline_element={false}
|
||||
show_crud={false}
|
||||
display_inline={true}
|
||||
class_li={'m-1'}
|
||||
on:ae_crud_updated={e => {
|
||||
console.log(`ae_crud_updated event:`, e.detail);
|
||||
events_func.handle_load_ae_obj_id__exhibit_tracking({api_cfg: $ae_api, exhibit_tracking_id: $events_slct.exhibit_tracking_id});
|
||||
}}
|
||||
>
|
||||
<button
|
||||
type="button"
|
||||
on:click={() => {
|
||||
console.log(`Updating sort for event_exhibit_tracking_id: ${event_exhibit_tracking_obj?.event_exhibit_tracking_id_random}`);
|
||||
ae_triggers.sort[
|
||||
event_exhibit_tracking_obj?.event_exhibit_tracking_id_random
|
||||
] = true;
|
||||
}}
|
||||
disabled={event_exhibit_tracking_obj.sort >= 5}
|
||||
class="btn btn-sm preset-tonal-secondary"
|
||||
>
|
||||
<span class="fas fa-arrow-down" title="Move down"></span>
|
||||
</button>
|
||||
</Element_ae_crud>
|
||||
|
||||
$events_slct.exhibit_tracking_id = event_exhibit_tracking_obj.event_exhibit_tracking_id_random;
|
||||
$events_slct.exhibit_tracking_obj = event_exhibit_tracking_obj;
|
||||
|
||||
if ($events_slct.exhibit_tracking_obj.sort >= 5) {
|
||||
$events_slct.exhibit_tracking_obj.sort = 5;
|
||||
} else {
|
||||
$events_slct.exhibit_tracking_obj.sort += 1;
|
||||
}
|
||||
|
||||
ae_triggers.sort[event_exhibit_tracking_obj?.event_exhibit_tracking_id_random] = true;
|
||||
}}
|
||||
disabled={event_exhibit_tracking_obj.sort >= 5}
|
||||
class="btn btn-sm preset-tonal-secondary"
|
||||
>
|
||||
<span class="fas fa-arrow-down" title="Move down"></span>
|
||||
</button>
|
||||
</Element_ae_crud>
|
||||
|
||||
<!-- <button
|
||||
<!-- <button
|
||||
on:click={() => {
|
||||
$events_slct.exhibit_tracking_id = event_exhibit_tracking_obj.event_exhibit_tracking_id_random;
|
||||
|
||||
@@ -366,113 +402,116 @@ let refresh_leads_list = setInterval(function () {
|
||||
>
|
||||
<span class="fas fa-arrow-down" title="Move down"></span>
|
||||
</button> -->
|
||||
</div>
|
||||
</td> <!-- END: Ranking in table -->
|
||||
</div>
|
||||
</td>
|
||||
<!-- END: Ranking in table -->
|
||||
|
||||
<td class="person">
|
||||
<div class="person_container flex flex-col 2xl:flex-row gap-1 flex-wrap justify-between">
|
||||
<button
|
||||
on:click={() => {
|
||||
$events_slct.exhibit_tracking_id = event_exhibit_tracking_obj.event_exhibit_tracking_id_random;
|
||||
$events_slct.exhibit_tracking_obj = event_exhibit_tracking_obj;
|
||||
$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 preset-tonal-primary flex flex-row justify-between items-center gap-0.5 min-w-72 lg:min-w-96 min-h-14 max-h-14"
|
||||
>
|
||||
<span class="fas fa-user mx-0.5"></span>
|
||||
<span class="text-lg grow text-center">{event_exhibit_tracking_obj.event_badge_full_name}</span>
|
||||
</button>
|
||||
<td class="person">
|
||||
<div
|
||||
class="person_container flex flex-col 2xl:flex-row gap-1 flex-wrap justify-between"
|
||||
>
|
||||
<button
|
||||
on:click={() => {
|
||||
$events_slct.exhibit_tracking_id =
|
||||
event_exhibit_tracking_obj.event_exhibit_tracking_id_random;
|
||||
$events_slct.exhibit_tracking_obj = event_exhibit_tracking_obj;
|
||||
$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 preset-tonal-primary flex flex-row justify-between items-center gap-0.5 min-w-72 lg:min-w-96 min-h-14 max-h-14"
|
||||
>
|
||||
<span class="fas fa-user mx-0.5"></span>
|
||||
<span class="text-lg grow text-center"
|
||||
>{event_exhibit_tracking_obj.event_badge_full_name}</span
|
||||
>
|
||||
</button>
|
||||
|
||||
<span class="flex flex-col xl:flex-row gap-0.5 flex-wrap justify-between min-w-48 max-w-80">
|
||||
<span class="text-sm min-w-56">
|
||||
<span class="fas fa-envelope mx-0.5"></span>
|
||||
<a href="mailto:{event_exhibit_tracking_obj.event_badge_email}" class="font-medium text-blue-600 dark:text-blue-500 hover:underline">
|
||||
{event_exhibit_tracking_obj.event_badge_email}
|
||||
</a>
|
||||
</span>
|
||||
|
||||
<span class="text-sm text-wrap min-w-56">{event_exhibit_tracking_obj.event_badge_affiliations}</span>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
{/each}
|
||||
|
||||
</tbody>
|
||||
|
||||
</table>
|
||||
{:else}
|
||||
No leads available to show
|
||||
{$lq__event_exhibit_tracking_obj_li}
|
||||
{/if}
|
||||
|
||||
{:else}
|
||||
Loading...?
|
||||
{/if}
|
||||
<span
|
||||
class="flex flex-col xl:flex-row gap-0.5 flex-wrap justify-between min-w-48 max-w-80"
|
||||
>
|
||||
<span class="text-sm min-w-56">
|
||||
<span class="fas fa-envelope mx-0.5"></span>
|
||||
<a
|
||||
href="mailto:{event_exhibit_tracking_obj.event_badge_email}"
|
||||
class="font-medium text-blue-600 dark:text-blue-500 hover:underline"
|
||||
>
|
||||
{event_exhibit_tracking_obj.event_badge_email}
|
||||
</a>
|
||||
</span>
|
||||
|
||||
<span class="text-sm text-wrap min-w-56"
|
||||
>{event_exhibit_tracking_obj.event_badge_affiliations}</span
|
||||
>
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{/each}
|
||||
</tbody>
|
||||
</table>
|
||||
{:else}
|
||||
No leads available to show
|
||||
{$lq__event_exhibit_tracking_obj_li}
|
||||
{/if}
|
||||
{:else}
|
||||
Loading...?
|
||||
{/if}
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
<!-- This block needs to be moved or something. It takes up too much space! -->
|
||||
{#if $events_sess.leads.show_form__view_lead}
|
||||
|
||||
<Leads_view_lead />
|
||||
|
||||
<Leads_view_lead />
|
||||
{/if}
|
||||
|
||||
|
||||
<style lang="postcss">
|
||||
table.table>thead>tr>th {
|
||||
padding: .1em;
|
||||
}
|
||||
table.table>tbody>tr>td {
|
||||
padding: .1em;
|
||||
}
|
||||
table.table > thead > tr > th {
|
||||
padding: 0.1em;
|
||||
}
|
||||
table.table > tbody > tr > td {
|
||||
padding: 0.1em;
|
||||
}
|
||||
|
||||
/* Use the div.ae_quick_modal_container to block background clicks when using the section.ae_quick_popover. */
|
||||
div.ae_quick_modal_container {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 100;
|
||||
background-color: hsla(0, 0%, 0%, .5);
|
||||
}
|
||||
/* Use the div.ae_quick_modal_container to block background clicks when using the section.ae_quick_popover. */
|
||||
div.ae_quick_modal_container {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 100;
|
||||
background-color: hsla(0, 0%, 0%, 0.5);
|
||||
}
|
||||
|
||||
/* The section.ae_quick_popover should be above the rest of the content and centered on the page. */
|
||||
section.ae_quick_popover {
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
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);
|
||||
/* The section.ae_quick_popover should be above the rest of the content and centered on the page. */
|
||||
section.ae_quick_popover {
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
z-index: 100;
|
||||
background-color: hsla(0, 0%, 100%, 0.95);
|
||||
padding: 1rem;
|
||||
border-radius: 0.5rem;
|
||||
box-shadow: 0 0 1rem hsla(0, 0%, 0%, 0.5);
|
||||
|
||||
min-height: 98%;
|
||||
min-width: 98%;
|
||||
}
|
||||
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);
|
||||
section.ae_quick_popover_small {
|
||||
position: fixed;
|
||||
top: 1em;
|
||||
left: 50%;
|
||||
transform: translate(-50%, 0%);
|
||||
z-index: 100;
|
||||
background-color: hsla(0, 0%, 100%, 0.95);
|
||||
padding: 1rem;
|
||||
border-radius: 0.5rem;
|
||||
box-shadow: 0 0 1rem hsla(0, 0%, 0%, 0.5);
|
||||
|
||||
min-hight: 24rem;
|
||||
max-height: 95%;
|
||||
min-width: 50%;
|
||||
max-width: 95%;
|
||||
}
|
||||
min-hight: 24rem;
|
||||
max-height: 95%;
|
||||
min-width: 50%;
|
||||
max-width: 95%;
|
||||
}
|
||||
</style>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,179 +1,193 @@
|
||||
<script lang="ts">
|
||||
import { ae_util } from '$lib/ae_utils/ae_utils';
|
||||
import { liveQuery } from "dexie";
|
||||
import { db_events } from "$lib/ae_events/db_events";
|
||||
import { ae_loc, ae_sess, ae_api, slct, slct_trigger } from '$lib/stores/ae_stores';
|
||||
import { events_loc, events_sess, events_slct, events_trigger } from '$lib/stores/ae_events_stores';
|
||||
import { ae_util } from '$lib/ae_utils/ae_utils';
|
||||
import { liveQuery } from 'dexie';
|
||||
import { db_events } from '$lib/ae_events/db_events';
|
||||
import { ae_loc, ae_sess, ae_api, slct, slct_trigger } from '$lib/stores/ae_stores';
|
||||
import {
|
||||
events_loc,
|
||||
events_sess,
|
||||
events_slct,
|
||||
events_trigger
|
||||
} from '$lib/stores/ae_events_stores';
|
||||
|
||||
let event_exhibit_obj = liveQuery(
|
||||
() => db_events.exhibit.get($events_slct.exhibit_id)
|
||||
);
|
||||
let event_exhibit_obj = liveQuery(() => db_events.exhibit.get($events_slct.exhibit_id));
|
||||
|
||||
if (!$events_sess.stripe) {
|
||||
$events_sess.stripe = {};
|
||||
}
|
||||
if (!$events_sess.stripe.license_qty) {
|
||||
$events_sess.stripe.license_qty = 1;
|
||||
$events_sess.stripe.rental_qty = 0;
|
||||
$events_sess.stripe.client_reference_id = $events_slct.exhibit_id;
|
||||
// $events_sess.stripe.btn_payment_id
|
||||
if (!$events_sess.stripe) {
|
||||
$events_sess.stripe = {};
|
||||
}
|
||||
if (!$events_sess.stripe.license_qty) {
|
||||
$events_sess.stripe.license_qty = 1;
|
||||
$events_sess.stripe.rental_qty = 0;
|
||||
$events_sess.stripe.client_reference_id = $events_slct.exhibit_id;
|
||||
// $events_sess.stripe.btn_payment_id
|
||||
|
||||
console.log(`$events_sess.stripe =`, $events_sess.stripe);
|
||||
}
|
||||
console.log(`$events_sess.stripe =`, $events_sess.stripe);
|
||||
}
|
||||
|
||||
// $: if ($events_sess.stripe.rental_option) {
|
||||
// console.log('Rental Option', $events_sess.stripe.rental_option);
|
||||
// if ($events_sess.stripe.rental_option == true && !$events_sess.stripe.rental_qty) {
|
||||
// $events_sess.stripe.rental_qty = 1;
|
||||
// } else if (!$events_sess.stripe.rental_option) {
|
||||
// $events_sess.stripe.rental_qty = 0;
|
||||
// }
|
||||
// } else {
|
||||
// $events_sess.stripe.rental_option = false;
|
||||
// }
|
||||
// $: if ($events_sess.stripe.rental_option) {
|
||||
// console.log('Rental Option', $events_sess.stripe.rental_option);
|
||||
// if ($events_sess.stripe.rental_option == true && !$events_sess.stripe.rental_qty) {
|
||||
// $events_sess.stripe.rental_qty = 1;
|
||||
// } else if (!$events_sess.stripe.rental_option) {
|
||||
// $events_sess.stripe.rental_qty = 0;
|
||||
// }
|
||||
// } else {
|
||||
// $events_sess.stripe.rental_option = false;
|
||||
// }
|
||||
|
||||
$: if ($events_sess.stripe && $events_sess.stripe.license_qty >= 0 || $events_sess.stripe.rental_qty >= 0) {
|
||||
console.log(`$events_sess.stripe.license_qty=${$events_sess.stripe.license_qty} and $events_sess.stripe.rental_qty=${$events_sess.stripe.rental_qty}`);
|
||||
// $events_sess.stripe.license_qty = parseInt($events_sess.stripe.license_qty);
|
||||
$: if (
|
||||
($events_sess.stripe && $events_sess.stripe.license_qty >= 0) ||
|
||||
$events_sess.stripe.rental_qty >= 0
|
||||
) {
|
||||
console.log(
|
||||
`$events_sess.stripe.license_qty=${$events_sess.stripe.license_qty} and $events_sess.stripe.rental_qty=${$events_sess.stripe.rental_qty}`
|
||||
);
|
||||
// $events_sess.stripe.license_qty = parseInt($events_sess.stripe.license_qty);
|
||||
|
||||
// $events_sess.stripe.rental_qty = parseInt($events_sess.stripe.rental_qty);
|
||||
// $events_sess.stripe.rental_qty = parseInt($events_sess.stripe.rental_qty);
|
||||
|
||||
if ($events_sess.stripe.rental_qty == 0) {
|
||||
// $events_sess.stripe.rental_qty = 0;
|
||||
if ($events_sess.stripe.rental_qty == 0) {
|
||||
// $events_sess.stripe.rental_qty = 0;
|
||||
|
||||
if ($events_sess.stripe.license_qty == 1) {
|
||||
$events_sess.stripe.btn_payment_id = $events_sess.stripe.btn_1_license;
|
||||
}
|
||||
if ($events_sess.stripe.license_qty == 3) {
|
||||
$events_sess.stripe.btn_payment_id = $events_sess.stripe.btn_3_license;
|
||||
}
|
||||
if ($events_sess.stripe.license_qty == 6) {
|
||||
$events_sess.stripe.btn_payment_id = $events_sess.stripe.btn_6_license;
|
||||
}
|
||||
if ($events_sess.stripe.license_qty == 10) {
|
||||
$events_sess.stripe.btn_payment_id = $events_sess.stripe.btn_10_license;
|
||||
}
|
||||
} else {
|
||||
if ($events_sess.stripe.license_qty == 1) {
|
||||
$events_sess.stripe.btn_payment_id = $events_sess.stripe.btn_1_license_rental;
|
||||
}
|
||||
if ($events_sess.stripe.license_qty == 3) {
|
||||
$events_sess.stripe.btn_payment_id = $events_sess.stripe.btn_3_license_rental;
|
||||
}
|
||||
if ($events_sess.stripe.license_qty == 6) {
|
||||
$events_sess.stripe.btn_payment_id = $events_sess.stripe.btn_6_license_rental;
|
||||
}
|
||||
if ($events_sess.stripe.license_qty == 10) {
|
||||
$events_sess.stripe.btn_payment_id = $events_sess.stripe.btn_10_license_rental;
|
||||
}
|
||||
if ($events_sess.stripe.license_qty == 1) {
|
||||
$events_sess.stripe.btn_payment_id = $events_sess.stripe.btn_1_license;
|
||||
}
|
||||
if ($events_sess.stripe.license_qty == 3) {
|
||||
$events_sess.stripe.btn_payment_id = $events_sess.stripe.btn_3_license;
|
||||
}
|
||||
if ($events_sess.stripe.license_qty == 6) {
|
||||
$events_sess.stripe.btn_payment_id = $events_sess.stripe.btn_6_license;
|
||||
}
|
||||
if ($events_sess.stripe.license_qty == 10) {
|
||||
$events_sess.stripe.btn_payment_id = $events_sess.stripe.btn_10_license;
|
||||
}
|
||||
} else {
|
||||
if ($events_sess.stripe.license_qty == 1) {
|
||||
$events_sess.stripe.btn_payment_id = $events_sess.stripe.btn_1_license_rental;
|
||||
}
|
||||
if ($events_sess.stripe.license_qty == 3) {
|
||||
$events_sess.stripe.btn_payment_id = $events_sess.stripe.btn_3_license_rental;
|
||||
}
|
||||
if ($events_sess.stripe.license_qty == 6) {
|
||||
$events_sess.stripe.btn_payment_id = $events_sess.stripe.btn_6_license_rental;
|
||||
}
|
||||
if ($events_sess.stripe.license_qty == 10) {
|
||||
$events_sess.stripe.btn_payment_id = $events_sess.stripe.btn_10_license_rental;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
// We need to force the Stripe Buy Button to reload. I was expecting this to happen automatically when the payment ID changed.
|
||||
// console.log(document.getElementById('stripe_buy_button'));
|
||||
|
||||
// We need to force the Stripe Buy Button to reload. I was expecting this to happen automatically when the payment ID changed.
|
||||
// console.log(document.getElementById('stripe_buy_button'));
|
||||
if (!$events_sess.stripe.client_reference_id) {
|
||||
$events_sess.stripe.client_reference_id = $events_slct.exhibit_id;
|
||||
}
|
||||
console.log(`$events_sess.stripe =`, $events_sess.stripe);
|
||||
|
||||
if (!$events_sess.stripe.client_reference_id) {
|
||||
$events_sess.stripe.client_reference_id = $events_slct.exhibit_id;
|
||||
}
|
||||
console.log(`$events_sess.stripe =`, $events_sess.stripe);
|
||||
|
||||
if (document.getElementById('stripe_buy_button')) {
|
||||
document.getElementById('stripe_buy_button').remove();
|
||||
|
||||
let stripe_buy_button = document.createElement('stripe-buy-button');
|
||||
stripe_buy_button.id = 'stripe_buy_button';
|
||||
stripe_buy_button.setAttribute('buy-button-id', $events_sess.stripe.btn_payment_id);
|
||||
stripe_buy_button.setAttribute('publishable-key', $events_sess.stripe.publishable_key);
|
||||
stripe_buy_button.setAttribute('client-reference-id', $events_sess.stripe.client_reference_id);
|
||||
document.getElementById('stripe_buy_button_container').appendChild(stripe_buy_button);
|
||||
} else {
|
||||
console.log('No Stripe Buy Button found.');
|
||||
}
|
||||
|
||||
}
|
||||
if (document.getElementById('stripe_buy_button')) {
|
||||
document.getElementById('stripe_buy_button').remove();
|
||||
|
||||
let stripe_buy_button = document.createElement('stripe-buy-button');
|
||||
stripe_buy_button.id = 'stripe_buy_button';
|
||||
stripe_buy_button.setAttribute('buy-button-id', $events_sess.stripe.btn_payment_id);
|
||||
stripe_buy_button.setAttribute('publishable-key', $events_sess.stripe.publishable_key);
|
||||
stripe_buy_button.setAttribute(
|
||||
'client-reference-id',
|
||||
$events_sess.stripe.client_reference_id
|
||||
);
|
||||
document.getElementById('stripe_buy_button_container').appendChild(stripe_buy_button);
|
||||
} else {
|
||||
console.log('No Stripe Buy Button found.');
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
<section class="tab__payment flex flex-col wrap justify-center items-center space-y-4">
|
||||
<h2 class="h3">
|
||||
<span class="fas fa-credit-card mx-1"></span>
|
||||
Payment
|
||||
</h2>
|
||||
|
||||
<h2 class="h3">
|
||||
<span class="fas fa-credit-card mx-1"></span>
|
||||
Payment
|
||||
</h2>
|
||||
{#if $events_loc?.leads.auth_exhibit_kv[$events_slct.exhibit_id]}
|
||||
{#if $event_exhibit_obj?.priority}
|
||||
<h3 class="h4">Marked as Paid</h3>
|
||||
|
||||
{#if $events_loc?.leads.auth_exhibit_kv[$events_slct.exhibit_id]}
|
||||
{#if $event_exhibit_obj?.priority}
|
||||
<h3 class="h4">Marked as Paid</h3>
|
||||
<div class="border border-slate-500/10 p-2 preset-tonal-success space-y-4">
|
||||
<p>
|
||||
Thank you for your payment. You have purchased {$event_exhibit_obj?.license_max} user license(s)
|
||||
for the lead retrieval service with your booth at ISHLT 2024 in Prague.
|
||||
</p>
|
||||
|
||||
<div class="border border-slate-500/10 p-2 preset-tonal-success space-y-4">
|
||||
<p>Thank you for your payment. You have purchased {$event_exhibit_obj?.license_max} user license(s) for the lead retrieval service with your booth at ISHLT 2024 in Prague.</p>
|
||||
{#if $event_exhibit_obj?.leads_device_sm_qty > 0}
|
||||
<p>
|
||||
You have also rented {$event_exhibit_obj?.leads_device_sm_qty} tablet(s) for using with the
|
||||
lead retrievals. You will be able to pick up your rental tablets at ISHLT's onsite registration.
|
||||
</p>
|
||||
{:else}
|
||||
<p>
|
||||
You have not rented any tablets for scanning. You can use your own device(s) with this
|
||||
service.
|
||||
</p>
|
||||
{/if}
|
||||
|
||||
{#if $event_exhibit_obj?.leads_device_sm_qty > 0}
|
||||
<p>You have also rented {$event_exhibit_obj?.leads_device_sm_qty} tablet(s) for using with the lead retrievals. You will be able to pick up your rental tablets at ISHLT's onsite registration.</p>
|
||||
{:else}
|
||||
<p>You have not rented any tablets for scanning. You can use your own device(s) with this service.</p>
|
||||
{/if}
|
||||
<p>
|
||||
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(ig) tab if needed.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<p>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(ig) tab if needed.</p>
|
||||
</div>
|
||||
<button
|
||||
type="button"
|
||||
on:click={() => {
|
||||
let confirm_hide = confirm('You can unhide this later under the Config tab.');
|
||||
if (confirm_hide) {
|
||||
$events_loc.leads.show_option__paid_tab = false;
|
||||
$events_loc.leads.tab[$events_slct.exhibit_id] = 'start';
|
||||
}
|
||||
}}
|
||||
class="btn preset-tonal-primary"
|
||||
title="This payment tab can be hidden once marked as paid."
|
||||
>
|
||||
<span class="fas fa-eye-slash m-1"></span>
|
||||
Hide This Paid Tab?
|
||||
</button>
|
||||
{:else}
|
||||
<h3 class="h4">Not Marked as Paid</h3>
|
||||
|
||||
<button
|
||||
type="button"
|
||||
on:click={() => {
|
||||
let confirm_hide = confirm('You can unhide this later under the Config tab.');
|
||||
if (confirm_hide) {
|
||||
$events_loc.leads.show_option__paid_tab = false;
|
||||
$events_loc.leads.tab[$events_slct.exhibit_id] = 'start';
|
||||
}
|
||||
}}
|
||||
class="btn preset-tonal-primary"
|
||||
title="This payment tab can be hidden once marked as paid."
|
||||
>
|
||||
<span class="fas fa-eye-slash m-1"></span>
|
||||
Hide This Paid Tab?
|
||||
</button>
|
||||
<div class="border border-slate-500/10 p-2 preset-tonal-secondary">
|
||||
<p>
|
||||
Please select the number of licenses to purchase and if you need to rent any tablets for
|
||||
scanning. As a reminder, you can use your own device (cell phone, tablet, laptop, etc) to
|
||||
scan the QR codes on the badges of the attendees. Tablet rentals are limited in supply for
|
||||
ISHLT 2024 in Prague and will be given out on a first come first served basis.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{:else}
|
||||
<h3 class="h4">Not Marked as Paid</h3>
|
||||
<script async src="https://js.stripe.com/v3/buy-button.js">
|
||||
</script>
|
||||
|
||||
<div class="border border-slate-500/10 p-2 preset-tonal-secondary">
|
||||
<p>Please select the number of licenses to purchase and if you need to rent any tablets for scanning. As a reminder, you can use your own device (cell phone, tablet, laptop, etc) to scan the QR codes on the badges of the attendees. Tablet rentals are limited in supply for ISHLT 2024 in Prague and will be given out on a first come first served basis.</p>
|
||||
</div>
|
||||
<div class="w-2/3">
|
||||
<label>
|
||||
Select number of licenses to purchase:<br />
|
||||
<select
|
||||
id="license_qty"
|
||||
name="license_qty"
|
||||
bind:value={$events_sess.stripe.license_qty}
|
||||
class="select max-w-72"
|
||||
>
|
||||
<option value={1}> 1 user license - $120 </option>
|
||||
<option value={3}> Up to 3 user licenses - $330 </option>
|
||||
<option value={6}> Up to 6 user licenses - $660 </option>
|
||||
<option value={10}> Up to 10 user licenses - $1,100 </option>
|
||||
</select>
|
||||
</label>
|
||||
<p class="text-sm">
|
||||
Each person associated with your exhibit needs a license to use the lead retrieval service
|
||||
for exhibitors.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<script async
|
||||
src="https://js.stripe.com/v3/buy-button.js">
|
||||
</script>
|
||||
|
||||
<div class="w-2/3">
|
||||
<label>
|
||||
Select number of licenses to purchase:<br>
|
||||
<select
|
||||
id="license_qty"
|
||||
name="license_qty"
|
||||
bind:value={$events_sess.stripe.license_qty}
|
||||
class="select max-w-72"
|
||||
>
|
||||
<option value={1}>
|
||||
1 user license - $120
|
||||
</option>
|
||||
<option value={3}>
|
||||
Up to 3 user licenses - $330
|
||||
</option>
|
||||
<option value={6}>
|
||||
Up to 6 user licenses - $660
|
||||
</option>
|
||||
<option value={10}>
|
||||
Up to 10 user licenses - $1,100
|
||||
</option>
|
||||
</select>
|
||||
</label>
|
||||
<p class="text-sm">Each person associated with your exhibit needs a license to use the lead retrieval service for exhibitors.</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- <div>
|
||||
<!-- <div>
|
||||
CHK Do you need to rent tablets as well?
|
||||
<input
|
||||
type="checkbox"
|
||||
@@ -187,9 +201,9 @@ $: if ($events_sess.stripe && $events_sess.stripe.license_qty >= 0 || $events_se
|
||||
>
|
||||
</div> -->
|
||||
|
||||
<!-- {#if $events_sess.stripe.rental_qty > 0} -->
|
||||
<!-- <div> -->
|
||||
<!-- Do you need to rent tablets as well?
|
||||
<!-- {#if $events_sess.stripe.rental_qty > 0} -->
|
||||
<!-- <div> -->
|
||||
<!-- Do you need to rent tablets as well?
|
||||
<input
|
||||
type="checkbox"
|
||||
name="rental_option"
|
||||
@@ -206,7 +220,7 @@ $: if ($events_sess.stripe && $events_sess.stripe.license_qty >= 0 || $events_se
|
||||
}}
|
||||
> -->
|
||||
|
||||
<!-- <button on:click={() => {
|
||||
<!-- <button on:click={() => {
|
||||
console.log('License(s) Only');
|
||||
$events_sess.stripe.rental_qty = 0;
|
||||
}}
|
||||
@@ -214,36 +228,39 @@ $: if ($events_sess.stripe && $events_sess.stripe.license_qty >= 0 || $events_se
|
||||
>
|
||||
License(s) Only
|
||||
</button> -->
|
||||
<!-- </div> -->
|
||||
<!-- </div> -->
|
||||
|
||||
<div class="w-2/3">
|
||||
<label>
|
||||
Select number of tablets to rent:<br>
|
||||
<select
|
||||
id="rental_qty"
|
||||
name="rental_qty"
|
||||
bind:value={$events_sess.stripe.rental_qty}
|
||||
class="select max-w-52"
|
||||
>
|
||||
<option value={0}>No tablet rentals - $0</option>
|
||||
<option value={1}>1 tablet - $115</option>
|
||||
<option value={2}>2 tablets - $230</option>
|
||||
<option value={3}>3 tablets - $345</option>
|
||||
<option value={4}>4 tablets - $460</option>
|
||||
<option value={5}>5 tablets - $575</option>
|
||||
<option value={6}>6 tablets - $690</option>
|
||||
<option value={7}>7 tablets - $805</option>
|
||||
<option value={8}>8 tablets - $920</option>
|
||||
<option value={9}>9 tablets - $1,035</option>
|
||||
<option value={10}>10 tablets - $1,150</option>
|
||||
</select>
|
||||
</label>
|
||||
<p class="text-sm">You can use your own device(s) with this service. Renting tablets for scanning is not required.</p>
|
||||
</div>
|
||||
<div class="w-2/3">
|
||||
<label>
|
||||
Select number of tablets to rent:<br />
|
||||
<select
|
||||
id="rental_qty"
|
||||
name="rental_qty"
|
||||
bind:value={$events_sess.stripe.rental_qty}
|
||||
class="select max-w-52"
|
||||
>
|
||||
<option value={0}>No tablet rentals - $0</option>
|
||||
<option value={1}>1 tablet - $115</option>
|
||||
<option value={2}>2 tablets - $230</option>
|
||||
<option value={3}>3 tablets - $345</option>
|
||||
<option value={4}>4 tablets - $460</option>
|
||||
<option value={5}>5 tablets - $575</option>
|
||||
<option value={6}>6 tablets - $690</option>
|
||||
<option value={7}>7 tablets - $805</option>
|
||||
<option value={8}>8 tablets - $920</option>
|
||||
<option value={9}>9 tablets - $1,035</option>
|
||||
<option value={10}>10 tablets - $1,150</option>
|
||||
</select>
|
||||
</label>
|
||||
<p class="text-sm">
|
||||
You can use your own device(s) with this service. Renting tablets for scanning is not
|
||||
required.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!-- {:else} -->
|
||||
<!-- {:else} -->
|
||||
|
||||
<!-- <div>
|
||||
<!-- <div>
|
||||
BTN Do you need to rent tablets as well?
|
||||
<button on:click={() => {
|
||||
console.log('License(s) with Tablet Rental');
|
||||
@@ -254,31 +271,43 @@ BTN Do you need to rent tablets as well?
|
||||
License(s) with Tablet Rental
|
||||
</button>
|
||||
</div> -->
|
||||
<!-- {/if} -->
|
||||
<!-- {/if} -->
|
||||
|
||||
{#if $events_sess.stripe.btn_payment_id}
|
||||
<div id="stripe_buy_button_container" class="w-2/3">
|
||||
<stripe-buy-button
|
||||
id="stripe_buy_button"
|
||||
buy-button-id={$events_sess.stripe.btn_payment_id}
|
||||
publishable-key={$events_sess.stripe.publishable_key}
|
||||
client-reference-id={$events_sess.stripe.client_reference_id}
|
||||
>
|
||||
</stripe-buy-button>
|
||||
<p class="text-sm">
|
||||
You have selected to purchase {$events_sess.stripe.license_qty} user license(s) and rent
|
||||
{$events_sess.stripe.rental_qty} tablet(s). Press the button above to pay by credit card,
|
||||
debit card, or ACH direct debit.
|
||||
</p>
|
||||
<p class="text-sm preset-tonal-warning">
|
||||
<strong>WARNING:</strong> Please be sure to double check and update the quantities on the
|
||||
next page.
|
||||
</p>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{#if $events_sess.stripe.btn_payment_id}
|
||||
<div id="stripe_buy_button_container" class="w-2/3">
|
||||
<stripe-buy-button
|
||||
id="stripe_buy_button"
|
||||
buy-button-id={$events_sess.stripe.btn_payment_id}
|
||||
publishable-key={$events_sess.stripe.publishable_key}
|
||||
client-reference-id={$events_sess.stripe.client_reference_id}
|
||||
<div class="border border-slate-500/10 p-2 preset-tonal-warning">
|
||||
<p>
|
||||
<strong>NOTE:</strong> Your payment will be reviewed and is not reflected immediately on
|
||||
this page for your exhibit. It may take up to 2 business days for this to show as being
|
||||
paid. If you have any questions or concerns please email
|
||||
<a
|
||||
href="mailto:exhibits@oneskyit.com"
|
||||
class="font-medium text-blue-600 dark:text-blue-500 hover:underline"
|
||||
>exhibits@oneskyit.com</a
|
||||
>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
>
|
||||
</stripe-buy-button>
|
||||
<p class="text-sm">You have selected to purchase {$events_sess.stripe.license_qty} user license(s) and rent {$events_sess.stripe.rental_qty} tablet(s). Press the button above to pay by credit card, debit card, or ACH direct debit.</p>
|
||||
<p class="text-sm preset-tonal-warning"><strong>WARNING:</strong> Please be sure to double check and update the quantities on the next page.</p>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
|
||||
|
||||
<div class="border border-slate-500/10 p-2 preset-tonal-warning">
|
||||
<p><strong>NOTE:</strong> Your payment will be reviewed and is not reflected immediately on this page for your exhibit. It may take up to 2 business days for this to show as being paid. If you have any questions or concerns please email <a href="mailto:exhibits@oneskyit.com" class="font-medium text-blue-600 dark:text-blue-500 hover:underline">exhibits@oneskyit.com</a>.</p>
|
||||
</div>
|
||||
|
||||
<!-- <div>
|
||||
<!-- <div>
|
||||
1 user license<br>
|
||||
<stripe-buy-button
|
||||
buy-button-id="buy_btn_1OvqWJ2gJkNsDuiNqMCWz5nG"
|
||||
@@ -287,7 +316,7 @@ BTN Do you need to rent tablets as well?
|
||||
</stripe-buy-button>
|
||||
</div> -->
|
||||
|
||||
<!-- <div>
|
||||
<!-- <div>
|
||||
1 user license with tablet rental<br>
|
||||
<stripe-buy-button
|
||||
buy-button-id="buy_btn_1OvqVA2gJkNsDuiNhk9r8Io2"
|
||||
@@ -296,7 +325,7 @@ BTN Do you need to rent tablets as well?
|
||||
</stripe-buy-button>
|
||||
</div> -->
|
||||
|
||||
<!-- <div>
|
||||
<!-- <div>
|
||||
Up to 3 user licenses<br>
|
||||
<stripe-buy-button
|
||||
buy-button-id="buy_btn_1OvrI22gJkNsDuiNXjBg3c4Y"
|
||||
@@ -305,7 +334,7 @@ Up to 3 user licenses<br>
|
||||
</stripe-buy-button>
|
||||
</div> -->
|
||||
|
||||
<!-- <div>
|
||||
<!-- <div>
|
||||
Up to 3 user licenses with tablet rental<br>
|
||||
<stripe-buy-button
|
||||
buy-button-id="buy_btn_1OvrKa2gJkNsDuiNhSBCkNau"
|
||||
@@ -314,9 +343,9 @@ Up to 3 user licenses with tablet rental<br>
|
||||
</stripe-buy-button>
|
||||
</div> -->
|
||||
|
||||
<!-- <hr> -->
|
||||
<!-- <hr> -->
|
||||
|
||||
<!-- <div>
|
||||
<!-- <div>
|
||||
Up to 6 user licenses<br>
|
||||
<stripe-buy-button
|
||||
buy-button-id="buy_btn_1OvrWc2gJkNsDuiN7mnwvZNL"
|
||||
@@ -325,7 +354,7 @@ Up to 6 user licenses<br>
|
||||
</stripe-buy-button>
|
||||
</div> -->
|
||||
|
||||
<!-- <div>
|
||||
<!-- <div>
|
||||
Up to 6 user licenses with tablet rental<br>
|
||||
<stripe-buy-button
|
||||
buy-button-id="buy_btn_1OvrXP2gJkNsDuiNZpWZs3Uy"
|
||||
@@ -334,7 +363,7 @@ Up to 6 user licenses with tablet rental<br>
|
||||
</stripe-buy-button>
|
||||
</div> -->
|
||||
|
||||
<!-- <div>
|
||||
<!-- <div>
|
||||
Up to 10 user licenses<br>
|
||||
<stripe-buy-button
|
||||
buy-button-id="buy_btn_1OvrPM2gJkNsDuiNRCMHfSuz"
|
||||
@@ -343,7 +372,7 @@ Up to 10 user licenses<br>
|
||||
</stripe-buy-button>
|
||||
</div> -->
|
||||
|
||||
<!-- <div>
|
||||
<!-- <div>
|
||||
Up to 10 user licenses with tablet rental<br>
|
||||
<stripe-buy-button
|
||||
buy-button-id="buy_btn_1OvrPs2gJkNsDuiN1nPkjPOM"
|
||||
@@ -352,14 +381,12 @@ Up to 10 user licenses with tablet rental<br>
|
||||
</stripe-buy-button>
|
||||
</div> -->
|
||||
|
||||
<!-- </div> -->
|
||||
|
||||
{/if}
|
||||
|
||||
{:else}
|
||||
<div class="preset-tonal-warning">Please go to the Main tab to login using the shared staff passcode for this exhibit. Then select a license to use.</div>
|
||||
{/if}
|
||||
|
||||
|
||||
|
||||
<!-- </div> -->
|
||||
{/if}
|
||||
{:else}
|
||||
<div class="preset-tonal-warning">
|
||||
Please go to the Main tab to login using the shared staff passcode for this exhibit. Then
|
||||
select a license to use.
|
||||
</div>
|
||||
{/if}
|
||||
</section>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user