Done for the day

This commit is contained in:
Scott Idem
2024-03-22 19:16:14 -04:00
parent f97c83db03
commit b0f2e2ccdf
6 changed files with 1357 additions and 26 deletions

View File

@@ -1,19 +1,32 @@
<script lang="ts">
// export let data;
// console.log(`ae_events_leads exhibit [slug] leads_manage.svelte data:`, data);
console.log(`ae_events_leads exhibit [slug] leads_manage.svelte`);
import type { key_val } from '$lib/ae_stores';
import { ae_util } from '$lib/ae_utils';
import { liveQuery } from "dexie";
import { db_events } from "$lib/db_events";
import { ae_loc, ae_sess, ae_api, slct, slct_trigger } from '$lib/ae_stores';
import { events_loc, events_sess, events_slct, events_trigger } from '$lib/ae_events_stores';
import { events_func } from '$lib/ae_events_functions';
// let param_slug_event_exhibit_id = data.params.slug;
import Element_ae_crud from '$lib/element_ae_crud.svelte';
let event_exhibit_obj = liveQuery(
// These will likely be used for patch/update triggers. Maybe delete?
let ae_triggers: key_val = {};
$: event_exhibit_obj = liveQuery(
() => db_events.exhibits.get($events_slct.exhibit_id)
);
// Quickly reload the data for this AE object from the API/DB
// WARNING: This is triggered with every change to the parent object: $events_slct. This needs to be dealt with here and in other locations.
$: if ($events_slct.exhibit_id) {
console.log(`Reloading exhibit object:`, $events_slct.exhibit_id);
events_func.handle_load_ae_obj_id__exhibit({api_cfg: $ae_api, exhibit_id: $events_slct.exhibit_id});
// $events_slct.exhibit_obj = $event_exhibit_obj;
}
// Updated 2022-04-22
export let get_event_exhibit_tracking_export = async function get_event_exhibit_tracking_export({event_exhibit_id, file_type='CSV', return_file=true, filename=null, auto_download=false, params={}, log_lvl=0}) {
@@ -111,6 +124,165 @@ export let get_event_exhibit_tracking_export = async function get_event_exhibit_
{/if}
{#if $ae_loc.administrator_access}
<!-- Priority (paid) means this exhibit has paid for their license(s). They will also appear at the top of lists. -->
<Element_ae_crud
trigger_patch={ae_triggers.priority}
api_cfg={$ae_api}
object_type={'event_exhibit'}
object_id={$event_exhibit_obj?.event_exhibit_id_random}
field_name={'priority'}
field_type={'button'}
field_value={$events_slct.exhibit_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({api_cfg: $ae_api, exhibit_id: $events_slct.exhibit_id});
}}
>
{@html ($event_exhibit_obj?.priority ? '<span class="fas fa-hand-holding-usd m-1"></span> Paid' : '<span class="fas fa-search-dollar m-1"></span> Not Paid')}
<button
type="button"
on:click={() => {
$events_slct.exhibit_obj.priority = !$event_exhibit_obj?.priority;
ae_triggers.priority = true;
}}
class="btn btn-sm variant-soft-warning"
>
{@html ($event_exhibit_obj?.priority ? '<span class="fas fa-sync m-1"></span> Not paid?' : '<span class="fa fa-sync m-1"></span> Mark as paid?')}
</button>
</Element_ae_crud>
<!-- Field for license_max. A number between 0 and 10. -->
<Element_ae_crud
trigger_patch={ae_triggers.license_max}
api_cfg={$ae_api}
object_type={'event_exhibit'}
object_id={$event_exhibit_obj?.event_exhibit_id_random}
field_name={'license_max'}
field_type={'text'}
field_value={$events_slct.exhibit_obj.license_max}
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({api_cfg: $ae_api, exhibit_id: $events_slct.exhibit_id});
}}
>
Max licenses:
{@html ($events_slct.exhibit_obj?.license_max ? `<span class="fas fa-users m-1"></span> ${$events_slct.exhibit_obj.license_max}` : '<span class="fas fa-users m-1"></span> 0')}
<input
type="number" min="0" max="10" step="1"
bind:value={$events_slct.exhibit_obj.license_max}
class="input w-16 m-1"
/>
<button
type="button"
on:click={() => {
// $events_slct.exhibit_obj.license_max = 0;
ae_triggers.license_max = true;
}}
class="btn btn-sm variant-soft-warning"
>
<span class="fas fa-save m-1"></span>
Save
</Element_ae_crud>
<!-- Field for leads_device_sm_qty. A number between 0 and 10. -->
<Element_ae_crud
trigger_patch={ae_triggers.leads_device_sm_qty}
api_cfg={$ae_api}
object_type={'event_exhibit'}
object_id={$event_exhibit_obj?.event_exhibit_id_random}
field_name={'leads_device_sm_qty'}
field_type={'text'}
field_value={$events_slct.exhibit_obj.leads_device_sm_qty}
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({api_cfg: $ae_api, exhibit_id: $events_slct.exhibit_id});
}}
>
Small devices:
{@html ($events_slct.exhibit_obj?.leads_device_sm_qty ? `<span class="fas fa-mobile-alt m-1"></span> ${$events_slct.exhibit_obj.leads_device_sm_qty}` : '<span class="fas fa-mobile-alt m-1"></span> 0')}
<input
type="number" min="0" max="10" step="1"
bind:value={$events_slct.exhibit_obj.leads_device_sm_qty}
class="input w-16 m-1"
/>
<button
type="button"
on:click={() => {
// $events_slct.exhibit_obj.leads_device_sm_qty = 0;
ae_triggers.leads_device_sm_qty = true;
}}
class="btn btn-sm variant-soft-warning"
>
<span class="fas fa-save m-1"></span>
Save
</Element_ae_crud>
<!-- Field for leads_device_lg_qty. A number between 0 and 10. -->
<Element_ae_crud
trigger_patch={ae_triggers.leads_device_lg_qty}
api_cfg={$ae_api}
object_type={'event_exhibit'}
object_id={$event_exhibit_obj?.event_exhibit_id_random}
field_name={'leads_device_lg_qty'}
field_type={'text'}
field_value={$events_slct.exhibit_obj.leads_device_lg_qty}
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({api_cfg: $ae_api, exhibit_id: $events_slct.exhibit_id});
}}
>
Large devices:
{@html ($events_slct.exhibit_obj?.leads_device_lg_qty ? `<span class="fas fa-tablet-alt m-1"></span> ${$events_slct.exhibit_obj.leads_device_lg_qty}` : '<span class="fas fa-tablet-alt m-1"></span> 0')}
<input
type="number" min="0" max="10" step="1"
bind:value={$events_slct.exhibit_obj.leads_device_lg_qty}
class="input w-16 m-1"
/>
<button
type="button"
on:click={() => {
// $events_slct.exhibit_obj.leads_device_lg_qty = 0;
ae_triggers.leads_device_lg_qty = true;
}}
class="btn btn-sm variant-soft-warning"
>
<span class="fas fa-save m-1"></span>
Save
</Element_ae_crud>
{/if}
{#if $events_loc?.leads.auth_exhibit_kv[$events_slct.exhibit_id].key}