Too many changes. Getting ready to show Jordan.

This commit is contained in:
Scott Idem
2024-03-03 12:31:32 -05:00
parent 1b12cd4aec
commit 64589ec11c
12 changed files with 296 additions and 278 deletions

View File

@@ -86,4 +86,43 @@ pre.pre_wrap {
max-width: 100%;
overflow-x: auto;
}
}
input.required {
/* border-right: solid medium var(--color-warning-500); */
/* color: var(--color-warning-500); */
}
input:required {
/* background-color: var(--alert-color-lightest); */
/* border: solid 2px red; */
/* outline: dashed thin var(--alert-color-lighter); */
/* border-right: solid medium var(--alert-color-mid); */
/* border-right: solid medium var(--warning-color-mid); */
/* border-right: solid medium var(--error-color-mid); */
}
/* input:required:hover {
background-color: var(--alert-color-lighter);
border-right: solid thick var(--alert-color-darker);
} */
/* input:required::before {
display: block;
content: '*';
color: var(--warning-color-darker);
top: 5px;
left: 5px;
} */
/* .input_required::after {
content: '*';
color: var(--warning-color-darker);
position: relative;
top: 5px;
left: 5px;
} */

View File

@@ -68,6 +68,12 @@ export let ae_app_local_data_struct: key_val = {
'events': {
'event_id': null,
show_edit__event_presenter_obj: false,
show_list__event_presenter_obj_li: true,
show_view__event_presenter_obj: false,
submit_status: null, // 'saving', 'created', 'updated'
// Badge Printing
// Lead Retrievals

View File

@@ -434,10 +434,50 @@ function handle_url_and_message(name: string, value: null|string) {
}
function create_a_element({account_id, base_url, hosted_file_id, filename=null, extension=null, text="Download", class_li='text-blue-500'}) {
return `<a href="${base_url}/hosted_file/${hosted_file_id}/download?x_no_account_id_token=${account_id}&filename=${filename}" class="${class_li}">${text}</a>`;
}
function create_img_element({account_id, base_url, hosted_file_id, filename=null, extension=null, class_li='max-w-64', inc_link=false}) {
let img_html = '';
if (filename) {
img_html = `<img src="${base_url}/hosted_file/${hosted_file_id}/download?x_no_account_id_token=${account_id}&filename=${filename}" class="${class_li}" />`;
} else {
img_html = `<img src="${base_url}/hosted_file/${hosted_file_id}/download?x_no_account_id_token=${account_id}" class="${class_li}" />`;
}
if (inc_link) {
let a_html = create_a_element({account_id: account_id, base_url: base_url, hosted_file_id: hosted_file_id, filename: filename, extension: extension});
img_html = `<div class="ae_img ae_a">${img_html}${a_html}</div>`;
}
return img_html;
}
function create_video_element({account_id, base_url, hosted_file_id, filename=null, extension=null, class_li='max-w-64', inc_link=false}) {
let video_html = '';
if (filename) {
video_html = `<video src="${base_url}/hosted_file/${hosted_file_id}/download?x_no_account_id_token=${account_id}&filename=${filename}" controls class="${class_li}"></video>`;
} else {
video_html = `<video src="${base_url}/hosted_file/${hosted_file_id}/download?x_no_account_id_token=${account_id}" controls class="${class_li}"></video>`;
}
if (inc_link) {
let a_html = create_a_element({account_id: account_id, base_url: base_url, hosted_file_id: hosted_file_id, filename: filename, extension: extension});
video_html = `<div class="ae_video ae_a">${video_html}${a_html}</div>`;
}
return video_html;
}
export let ae_util = {
iso_datetime_formatter: iso_datetime_formatter,
extract_prefixed_form_data: extract_prefixed_form_data,
process_permission_checks: process_permission_checks,
handle_url_and_message: handle_url_and_message,
create_a_element: create_a_element,
create_img_element: create_img_element,
create_video_element: create_video_element,
};
// export default ae_util;

View File

@@ -220,7 +220,7 @@ $: if ($slct_trigger == 'set_access_code_li' && !$ae_loc.ds['hub__page__access_c
/>
<Drawer>
<!-- <Drawer>
{#if $drawerStore.id === 'example-1'}
(show 'example-1' contents)
{:else if $drawerStore.id === 'example-2'}
@@ -228,15 +228,11 @@ $: if ($slct_trigger == 'set_access_code_li' && !$ae_loc.ds['hub__page__access_c
{:else if $drawerStore.id === 'sponsorships__edit'}
(show 'sponsorships__edit__sponsorship_obj' contents)
<section class="sponsorships_editing">
<!-- {#if $slct.sponsorship_obj && $ae_loc.mod.sponsorships.show_edit__sponsorship_obj}
<p>Edit!</p>
<Edit_sponsorship_obj />
{/if} -->
</section>
{:else}
(fallback contents)
{/if}
</Drawer>
</Drawer> -->
<!-- App Shell -->

View File

@@ -1,12 +1,11 @@
<script lang="ts">
import { onMount } from 'svelte';
export let data;
console.log(`Svelte Events - Speakers page data:`, data);
console.log(`ae_ Svelte Events Speakers +page data:`, data);
// import { localStorageStore } from '@skeletonlabs/skeleton';
// import type { Writable } from 'svelte/store';
// const store_current_page: Writable<string> = localStorageStore('store_current_page', 'start');
import { onMount } from 'svelte';
// https://github.com/skeletonlabs/skeleton/blob/master/packages/skeleton/src/lib/utilities/Modal/types.ts
// To retrieve the store, getModalStore must be invoked at the top level of your component!
import { getDrawerStore, getModalStore, ProgressRadial } from '@skeletonlabs/skeleton';
import type {
@@ -19,6 +18,7 @@ const modalStore = getModalStore();
import { api } from '$lib/api';
import { ae_loc, ae_sess, ae_api, slct, slct_trigger } from '$lib/ae_stores';
import { ae_util } from '$lib/ae_utils';
import type { key_val } from '$lib/ae_stores';
import Edit_modal_event_presenter_obj from './10_edit_modal__event_presenter_obj.svelte';
@@ -32,7 +32,7 @@ const modalComponentEditEventPresenterObj: ModalComponent = { ref: Edit_modal_ev
const modal_edit__event_presenter_obj: ModalSettings = {
type: 'component',
component: modalComponentEditEventPresenterObj,
title: 'Edit Event Presenter',
title: 'Speaker Submission Form', // Editing Event Presenter
position: '', // default is "items-center"
response: (r: boolean | undefined) => handle_modal_close(r)
@@ -44,7 +44,7 @@ const modalComponentViewEventPresenterObj: ModalComponent = { ref: View_modal_ev
const modal_view__event_presenter_obj: ModalSettings = {
type: 'component',
component: modalComponentViewEventPresenterObj,
title: 'View Event Presenter',
title: 'Speaker Submission', // Viewing Event Presenter
position: '', // default is "items-center"
// Provide arbitrary classes to the backdrop and modal elements:
@@ -61,33 +61,62 @@ const modal_view__event_presenter_obj: ModalSettings = {
response: (r: boolean | undefined) => handle_modal_close(r)
};
// This function waits for the response from one of the modals. Do stuff when the modal is closed.
function handle_modal_close(response: boolean | undefined) {
console.log('Modal closed. Response:', response);
let location = window.location.href;
const url = new URL(location);
url.searchParams.delete('event_presenter_id');
history.pushState({}, '', url);
ae_util.handle_url_and_message('event_presenter_id', null);
let message = {'event_presenter_id': null};
window.parent.postMessage(message, "*");
// console.log('Message sent to parent (iframe):', message);
// We do NOT want to keep these values if it is closed and not just switching from view to edit. A "smart" transition?
if (!$ae_loc.mod.events.show_edit__event_presenter_obj || !$ae_loc.mod.events.show_view__event_presenter_obj) {
console.log('Clearing event_presenter_id and event_presenter_obj');
$slct.event_presenter_id = null;
if ($slct.event_presenter_obj) {
console.log('Clearing event_presenter_obj');
$slct.event_presenter_obj = null;
}
} else {
console.log('Not clearing event_presenter_id and event_presenter_obj');
console.log(`show_edit__event_presenter_obj: ${$ae_loc.mod.events.show_edit__event_presenter_obj}`);
console.log(`show_view__event_presenter_obj: ${$ae_loc.mod.events.show_view__event_presenter_obj}`);
}
}
if ($slct_trigger == 'msg_parent' && $slct.event_id) {
console.log(`Message parent with event_id ${$slct.event_id}`);
$slct_trigger = null;
let message = {'event_id': $slct.event_id};
window.parent.postMessage(message, "*");
// console.log('Message sent to parent (iframe):', message);
}
$slct_trigger = 'load__event_presenter_obj_li';
$ae_loc.hostname = data.url.hostname;
$ae_loc.site_domain = data.url.origin;
// We don't want the edit or view to show up by default. Maybe if we see an object ID param in the URL, we can show the view modal.
$ae_loc.mod.events.show_edit__event_presenter_obj = false;
$ae_loc.mod.sponsorships.show_view__event_presenter_obj = false;
$ae_loc.mod.events.show_view__event_presenter_obj = false;
let ae_event_id_get_promise: Promise<any>;
let ae_event_presenter_obj_li_get_promise: Promise<any>;
let ae_event_presenter_obj_get_promise: Promise<any>;
onMount(() => {
console.log('Events - Speakers: +page.svelte');
// console.log(`$ae_loc = `, $ae_loc);
let href_url = window.location.href;
// console.log(href_url);
$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', $slct.event_id);
ae_util.handle_url_and_message('event_presenter_id', $slct.event_presenter_id);
if ($slct.event_presenter_id) {
console.log(`Got an ID. Let's show the modal!`);
modalStore.trigger(modal_edit__event_presenter_obj);
// $slct_trigger = 'load__event_presenter_obj';
}
});
$: if ($slct_trigger == 'show_edit__event_presenter_obj' && $ae_loc.mod.events.show_edit__event_presenter_obj) {
console.log('Show Modal Edit');
@@ -125,39 +154,28 @@ $: if ($slct_trigger == 'show_view__event_presenter_obj' && $ae_loc.mod.events.s
// console.log('Message sent to parent (iframe):', message);
}
if ($slct.event_id && !$slct.event_presenter_obj_li) {
console.log(`No presenter list was found for Event ID: ${$slct.event_id}`);
$slct_trigger = 'load__event_presenter_obj_li';
}
onMount(() => {
console.log('Events - Speakers: +page.svelte');
// console.log(`$ae_loc = `, $ae_loc);
let href_url = window.location.href;
// console.log(href_url);
$ae_loc.href_url = href_url;
// console.log(`$ae_loc.href_url = `, $ae_loc.href_url);
$slct_trigger = 'msg_parent';
});
$: if ($slct_trigger == 'load__event_presenter_obj_li' && $slct.event_id) {
console.log(`load__event_presenter_obj_li event_id: ${$slct.event_id}`);
$slct_trigger = null;
// $slct.event_id = $ae_loc.event_id;
// handle_load_ae_obj_id__event({event_id: $slct.event_id, try_cache: false});
// This might need to be reviewed and compared to sponsorships version again
if ($ae_loc.mod.events.event_id) {
$slct.event_id = $ae_loc.mod.events.event_id;
// handle_load_ae_obj_id__event({event_id: $slct.event_id, try_cache: false});
handle_load_ae_obj_li__event_presenter({event_id: $slct.event_id, try_cache: false});
}
// if ($slct.event_id && !$slct.event_presenter_obj_li) {
// console.log(`No presenter list was found for Event ID: ${$slct.event_id}`);
let ae_event_presenter_obj_li_get_promise: Promise<any>;
// $slct_trigger = 'load__event_presenter_obj_li';
// }
// $: if ($slct_trigger == 'load__event_presenter_obj_li' && $slct.event_id) {
// console.log(`load__event_presenter_obj_li event_id: ${$slct.event_id}`);
// $slct_trigger = null;
// // $slct.event_id = $ae_loc.event_id;
// // handle_load_ae_obj_id__event({event_id: $slct.event_id, try_cache: false});
// handle_load_ae_obj_li__event_presenter({event_id: $slct.event_id, try_cache: false});
// }
async function handle_load_ae_obj_li__event_presenter({event_id, try_cache=true}) {
console.log('*** handle_load_ae_obj_li__event_presenter() ***');
@@ -191,7 +209,7 @@ async function handle_load_ae_obj_li__event_presenter({event_id, try_cache=true}
offset: offset,
params_json: params_json,
params: params,
log_lvl: 2
log_lvl: 1
})
.then(function (event_presenter_obj_li_get_result) {
@@ -213,6 +231,13 @@ async function handle_load_ae_obj_li__event_presenter({event_id, try_cache=true}
}
// handle_load_ae_obj_li__event() was done in layout.ts
// This is different from how the sponsorships are loaded.
// Do we need anything from the event object to load the presenters?
// Load the Event Presenter Obj with ID based on the URL param.
$: if ($slct_trigger == 'load__event_presenter_obj' && $slct.event_presenter_id) {
console.log('Selected Event Presenter ID:', $slct.event_presenter_id);
@@ -222,7 +247,6 @@ $: if ($slct_trigger == 'load__event_presenter_obj' && $slct.event_presenter_id)
handle_load_ae_obj_id__event_presenter({event_presenter_id: $slct.event_presenter_id, try_cache: false});
}
let ae_event_presenter_obj_get_promise: Promise<any>;
async function handle_load_ae_obj_id__event_presenter({event_presenter_id, try_cache=false}) {
console.log(`*** handle_load_ae_obj_id__event_presenter() *** event_presenter_id=${event_presenter_id}`);
@@ -237,7 +261,7 @@ async function handle_load_ae_obj_id__event_presenter({event_presenter_id, try_c
use_alt_table: false, // NOTE: This will use the table_name_alt value instead of the table_name value in the API config.
use_alt_base: false, // NOTE: This will use the base_name_alt value instead of the base_name value in the API config.
params: params,
log_lvl: 0
log_lvl: 1
})
.then(function (event_presenter_obj_get_result) {
if (event_presenter_obj_get_result) {
@@ -252,14 +276,16 @@ async function handle_load_ae_obj_id__event_presenter({event_presenter_id, try_c
return ae_event_presenter_obj_get_promise;
}
</script>
<div class="container h-full mx-auto items-center">
<div class="space-y-10 flex flex-col">
<h1 class="h1 text-center">&AElig; - Events: Speakers</h1>
<h1 class="h1 text-center">
<!-- &AElig; - Events: Speakers -->
Speakers Hub
</h1>
<section>
<button
class="btn variant-ghost-primary"
@@ -274,25 +300,21 @@ async function handle_load_ae_obj_id__event_presenter({event_presenter_id, try_c
}}
>
<span class="fas fa-edit mx-1"></span>
Start Speaker
Start Speaker Submission Form
</button>
</section>
<section class="events_speakers_list">
{#await ae_event_presenter_obj_li_get_promise}
<span class="fas fa-spinner fa-spin"></span>
<span class="loading-text">
Loading...
</span>
{/await}
{#if $slct.event_presenter_obj_li && $ae_loc.mod.events.show_list__event_presenter_obj_li}
<List_event_presenter_obj />
<!-- {#if $slct.event_presenter_obj_li && $slct.event_presenter_obj_li.length}
{#each $slct.event_presenter_obj_li as ae_event_presenter_obj, index}
<div class="event_presenter_obj">
{ae_event_presenter_obj.given_name}
</div>
{/each}
{/if} -->
{/if}
</section>
</div>
</div>

View File

@@ -63,6 +63,7 @@ if ($slct.event_presenter_id) {
console.log(`Presenter object selected:`, $slct.event_presenter_obj);
} else {
$store_current_tab = 'start';
$slct.event_presenter_id = null;
$slct.event_presenter_obj = {
event_id_random: $ae_loc.mod.events.event_id,
@@ -96,7 +97,15 @@ $: if ($slct.event_presenter_obj) {
// Create HTML for showing pictures here?
if ($slct.event_presenter_obj.image_li_json) {
if ($slct.event_presenter_obj.image_li_json.headshot.hosted_file_id_random) {
placeholder_li.image_headshot = `<img src="https://dev-demo.oneskyit.com/hosted_file/download/${$slct.event_presenter_obj.image_li_json.headshot.hosted_file_id_random}" class="max-w-64">${$slct.event_presenter_obj.image_li_json.headshot.filename}`;
placeholder_li.image_headshot = ae_util.create_img_element({
account_id: $ae_loc.account_id,
base_url: $ae_api.base_url,
hosted_file_id: $slct.event_presenter_obj.image_li_json.headshot.hosted_file_id_random,
filename: `${$slct.event_presenter_obj.full_name} [headshot]`,
inc_link: true,
})
// `<img src="https://dev-demo.oneskyit.com/hosted_file/download/${$slct.event_presenter_obj.image_li_json.headshot.hosted_file_id_random}" class="max-w-64">${$slct.event_presenter_obj.image_li_json.headshot.filename}`;
}
}
// if ($slct.event_presenter_obj.logo_li_json.secondary.hosted_file_id_random) {
@@ -438,11 +447,16 @@ async function handle_update__event_presenter({
<span class="loading-text">Error: {error.message}</span>
</div>
{/await}
<button class="btn variant-glass-primary float-end" on:click={parent.onClose}>
<span class="fas fa-times mx-1"></span>
Close
</button>
</header>
{#if $slct.event_presenter_id && $ae_loc.mod.events.presenter_link}
<div class="flex justify-end">
<div class="flex justify-center">
<button
class="btn variant-soft-secondary"
use:clipboard={$ae_loc.mod.events.presenter_link}
@@ -450,6 +464,29 @@ async function handle_update__event_presenter({
<span class="fas fa-copy mx-1"></span>
Copy link for {$slct.event_presenter_id}
</button>
<button
class="btn variant-soft-secondary mx-1"
on:click={() => {
if (!confirm(`Are you sure you want to send this email to ${$slct.event_presenter_obj.email}?`)) {return false;}
let subject = `CHOW 2024 Speaker Link for ${$slct.event_presenter_obj.full_name} (ID: ${$slct.event_presenter_id})`;
let body_html = `<p>Name: ${$slct.event_presenter_obj.full_name} (speaker ID: ${$slct.event_presenter_id})</p><p>Use this link to view or update your CHOW 2024 speaker information.<p>Copy and paste link: <a href="${$ae_loc.mod.events.presenter_link}">${$ae_loc.mod.events.presenter_link}</a></p>`
api.send_email({
api_cfg: $ae_api,
from_email: 'scott.idem+from@oneskyit.com',
from_name: 'Scott Idem',
to_email: $slct.event_presenter_obj.email,
subject: subject,
body_html: body_html,
});
}}
>
<span class="fas fa-paper-plane mx-1"></span>
Send Email
</button>
</div>
{/if}
@@ -518,17 +555,9 @@ async function handle_update__event_presenter({
</label>
<label for="given_name">Given name
<div class="input-group grid-cols-[auto_1fr_auto]">
<div class="input-group-shim">
{#if !$ae_loc.trusted_access && $slct.event_presenter_obj.event_presenter_id_random}
<span class="fas fa-lock" title="Field is locked"></span>
{:else}
<span class="fas fa-unlock" title="Field is unlocked"></span>
{/if}
</div>
<input
type="text"
class="input"
class="input variant-glass-warning"
id="given_name" name="given_name"
placeholder="Given name"
value={($slct.event_presenter_obj.given_name ? $slct.event_presenter_obj.given_name : '')}
@@ -536,20 +565,11 @@ async function handle_update__event_presenter({
readonly={!$ae_loc.trusted_access && $slct.event_presenter_obj.event_presenter_id_random}
required
>
</div>
</label>
<label for="family_name">Family name
<div class="input-group grid-cols-[auto_1fr_auto]">
<div class="input-group-shim">
{#if !$ae_loc.trusted_access && $slct.event_presenter_obj.event_presenter_id_random}
<span class="fas fa-lock" title="Field is locked"></span>
{:else}
<span class="fas fa-unlock" title="Field is unlocked"></span>
{/if}
</div>
<input
type="text"
class="input"
class="input variant-glass-warning"
id="family_name" name="family_name"
placeholder="Family name"
value={($slct.event_presenter_obj.family_name ? $slct.event_presenter_obj.family_name : '')}
@@ -557,29 +577,20 @@ async function handle_update__event_presenter({
readonly={!$ae_loc.trusted_access && $slct.event_presenter_obj.event_presenter_id_random}
required
>
</div>
</label>
<label for="professional_title" class="label">Professional title
<input type="text" id="professional_title" name="professional_title" required max="200" value={$slct.event_presenter_obj.professional_title ?? ''} placeholder="Professional title" autocomplete="off" class="input" />
<input type="text" id="professional_title" name="professional_title" required max="200" value={$slct.event_presenter_obj.professional_title ?? ''} placeholder="Professional title" autocomplete="off" class="input variant-glass-warning" />
</label>
<label for="affiliations" class="label">Affiliations/Organization
<input type="text" id="affiliations" name="affiliations" required max="200" value={$slct.event_presenter_obj.affiliations ?? ''} placeholder="Affiliations or organization" autocomplete="off" class="input" />
<input type="text" id="affiliations" name="affiliations" required max="200" value={$slct.event_presenter_obj.affiliations ?? ''} placeholder="Affiliations or organization" autocomplete="off" class="input variant-glass-warning" />
</label>
<label for="email">Email
<div class="input-group grid-cols-[auto_1fr_auto]">
<div class="input-group-shim">
{#if !$ae_loc.trusted_access && $slct.event_presenter_obj.event_presenter_id_random}
<span class="fas fa-lock" title="Field is locked"></span>
{:else}
<span class="fas fa-unlock" title="Field is unlocked"></span>
{/if}
</div>
<input
type="email"
class="input"
class="input variant-glass-warning"
id="email"
name="email"
placeholder="Email"
@@ -588,7 +599,6 @@ async function handle_update__event_presenter({
readonly={!$ae_loc.trusted_access && $slct.event_presenter_obj.event_presenter_id_random}
required
>
</div>
</label>
<!-- <label for="phone_mobile">Mobile phone
@@ -612,7 +622,7 @@ async function handle_update__event_presenter({
<label for="agree" class="label">
<input
type="checkbox"
class="checkbox"
class="checkbox variant-glass-warning"
id="agree"
name="agree"
value="1"
@@ -659,7 +669,7 @@ async function handle_update__event_presenter({
on:submit|preventDefault={handle_submit_form}
>
<label class="label ae_label event_presenter__biography">Speaker Biography
<textarea name="biography" id="biography" class="textarea ae_value event_presenter__biography tinymce_editor editor_basic" rows="10" cols="70" bind:value={$slct.event_presenter_obj.biography} placeholder="A short biography the speaker"></textarea>
<textarea name="biography" id="biography" class="textarea ae_value event_presenter__biography tinymce_editor editor_basic" required rows="10" cols="70" bind:value={$slct.event_presenter_obj.biography} placeholder="A short biography the speaker"></textarea>
</label>
<p>Biography length: {($slct.event_presenter_obj.biography ? $slct.event_presenter_obj.biography.length : 0)} characters</p>
<p>1,375 is roughly 250 to 300 words</p>
@@ -705,6 +715,7 @@ async function handle_update__event_presenter({
name="image_headshot"
padding="p-1"
accept="image/*"
required
on:change={(e) => {
console.log('*** FileDropzone change event ***', e);

View File

@@ -29,7 +29,7 @@ onMount(() => {
<!-- @component This is the Presenters modal view form. -->
<section class="svelte_component ae_view_modal ae_obj__event_presenter {container_class_li}">
<section class="svelte_component ae_view_modal ae_obj__event_presenter {container_class_li} p-4 space-y-4">
<header class={parent.regionHeader}>
{@html $slct.event_presenter_obj.full_name}
@@ -134,8 +134,8 @@ onMount(() => {
<button
on:click={() => {
$ae_loc.mod.events.show_view__event_presenter_obj = false;
$ae_loc.mod.events.show_edit__event_presenter_obj = true;
$ae_loc.mod.events.show_view__event_presenter_obj = false;
parent.onClose();
$slct_trigger = 'show_edit__event_presenter_obj';
}}
@@ -147,12 +147,16 @@ onMount(() => {
</span>
{/if}
<button
<!-- <button
class="btn variant-filled-primary mx-1"
on:click={() => {parent.onClose();}}
>
<span class="fas fa-times mx-1"></span>
Close
</button> -->
<button class="btn variant-glass-primary" on:click={parent.onClose}>
<span class="fas fa-times mx-1"></span>
Close
</button>
</footer>

View File

@@ -32,7 +32,7 @@ const modalComponentEditSponsorshipObj: ModalComponent = { ref: Edit_modal_spons
const modal_edit__sponsorship_obj: ModalSettings = {
type: 'component',
component: modalComponentEditSponsorshipObj,
title: 'Sponsor Submission Form', // Edit Sponsorship
title: 'Sponsor Submission Form', // Editing Sponsorship
position: '', // default is "items-center"
response: (r: boolean | undefined) => handle_modal_close(r)
@@ -67,9 +67,7 @@ function handle_modal_close(response: boolean | undefined) {
if (!$ae_loc.mod.sponsorships.show_edit__sponsorship_obj && !$ae_loc.mod.sponsorships.show_view__sponsorship_obj) {
$slct.sponsorship_id = null;
$slct.sponsorship_obj = null;
}
}
@@ -80,6 +78,10 @@ $ae_loc.site_domain = data.url.origin;
$ae_loc.mod.sponsorships.show_edit__sponsorship_obj = false;
$ae_loc.mod.sponsorships.show_view__sponsorship_obj = false;
let ae_sponsorship_cfg_obj_get_promise: Promise<any>;
let ae_sponsorship_obj_li_get_promise: Promise<any>;
let ae_sponsorship_obj_get_promise: Promise<any>;
onMount(() => {
console.log('Sponsorships: +page.svelte');
@@ -120,6 +122,7 @@ $: if ($slct_trigger == 'show_edit__sponsorship_obj' && $ae_loc.mod.sponsorships
// modalStore.clear();
modalStore.trigger(modal_edit__sponsorship_obj);
}
$: if ($slct_trigger == 'show_view__sponsorship_obj' && $ae_loc.mod.sponsorships.show_view__sponsorship_obj) {
console.log('Show Modal View');
$slct_trigger = null;
@@ -137,11 +140,7 @@ $: if ($slct_trigger == 'show_view__sponsorship_obj' && $ae_loc.mod.sponsorships
// console.log('Message sent to parent (iframe):', message);
}
let ae_sponsorship_obj_li_get_promise;
// This might need to be reviewed and compared to speakers version again
if ($ae_loc.account_id) {
$slct.account_id = $ae_loc.account_id;
// handle_load_ae_obj_id__account({account_id: $slct.account_id, try_cache: false});
@@ -152,45 +151,18 @@ async function handle_load_ae_obj_li__sponsorship({account_id, try_cache=true})
console.log('*** handle_load_ae_obj_li__sponsorship() ***');
// console.log($ae_loc.mod.sponsorships);
// let fulltext_search_qry_str = ($ae_loc.mod.sponsorships && $ae_loc.mod.sponsorships.fulltext_search_qry_str ? $ae_loc.mod.sponsorships.fulltext_search_qry_str : '');
// let qry_virtual = $ae_loc.mod.sponsorships.qry_virtual;
// let qry_physical = $ae_loc.mod.sponsorships.qry_physical;
// let qry_type = $ae_loc.mod.sponsorships.qry_type;
let enabled = $ae_loc.mod.sponsorships.enabled;
let hidden = $ae_loc.mod.sponsorships.hidden;
let limit = $ae_loc.mod.sponsorships.limit;
let offset = $ae_loc.mod.sponsorships.offset;
let params = {};
// params['example1'] = 'all';
// params['example2'] = false;
let params_json: key_val = {};
// if (fulltext_search_qry_str && fulltext_search_qry_str.length > 2) {
// params_json['ft_qry'] = {
// 'default_qry_str': fulltext_search_qry_str,
// 'location_address_json': fulltext_search_qry_str,
// 'contact_li_json': fulltext_search_qry_str,
// 'address_default_qry_str': fulltext_search_qry_str, // NOTE: Remove after going live with OSIT ae?
// 'contact_1_default_qry_str': fulltext_search_qry_str, // NOTE: Remove after going live with OSIT ae?
// };
// }
// if (qry_virtual || qry_physical || qry_type) {
// params_json['and_qry'] = {};
// if (qry_virtual) params_json['and_qry']['virtual'] = true;
// if (qry_physical) params_json['and_qry']['physical'] = true;
// if (qry_type) params_json['and_qry']['type'] = qry_type;
// }
// console.log('params_json:', params_json);
// console.log(params_json);
// NOTE: I am not sure if this is actually needed. It may save a little space in the URL.
// if (JSON.stringify(params_json) == JSON.stringify({})) {
// params_json = null;
// }
$ae_loc.mod.sponsorships.qry_status = 'loading';
ae_sponsorship_obj_li_get_promise = api.get_ae_obj_li_for_obj_id_crud({
api_cfg: $ae_api,
@@ -248,8 +220,6 @@ $: if ($slct_trigger == 'load__sponsorship_cfg_obj' && $slct.sponsorship_cfg_id)
handle_load_ae_obj_id__sponsorship_cfg({sponsorship_cfg_id: $slct.sponsorship_cfg_id, try_cache: false});
}
let ae_sponsorship_cfg_obj_get_promise;
async function handle_load_ae_obj_id__sponsorship_cfg({sponsorship_cfg_id, try_cache=false}) {
console.log(`*** handle_load_ae_obj_id__sponsorship_cfg() *** sponsorship_cfg_id=${sponsorship_cfg_id}`);
@@ -323,17 +293,9 @@ $: if ($slct_trigger == 'load__sponsorship_obj' && $slct.sponsorship_id) {
$slct_trigger = null;
// $ae_loc.mod.sponsorships.link = `${$ae_loc.href_url}/id/${$slct.sponsorship_id}`;
// $ae_loc.mod.sponsorships.link = `${data.url.origin}/sponsorships/${$slct.sponsorship_id}`;
// console.log('Sponsorship link:', $ae_loc.mod.sponsorships.link);
// $ae_loc = $ae_loc;
handle_load_ae_obj_id__sponsorship({sponsorship_id: $slct.sponsorship_id, try_cache: false});
}
let ae_sponsorship_obj_get_promise;
async function handle_load_ae_obj_id__sponsorship({sponsorship_id, try_cache=false}) {
console.log(`*** handle_load_ae_obj_id__sponsorship() *** sponsorship_id=${sponsorship_id}`);
@@ -347,26 +309,13 @@ async function handle_load_ae_obj_id__sponsorship({sponsorship_id, try_cache=fal
use_alt_table: false, // NOTE: This will use the table_name_alt value instead of the table_name value in the API config.
use_alt_base: false, // NOTE: This will use the base_name_alt value instead of the base_name value in the API config.
params: params,
log_lvl: 1
log_lvl: 0
})
.then(function (sponsorship_obj_get_result) {
if (sponsorship_obj_get_result) {
$slct.sponsorship_obj = sponsorship_obj_get_result;
console.log(`sponsorship object:`, $slct.sponsorship_obj);
}
// Auto show the selected sponsorship ID
// Is this pushState needed here?
// Set the URL param "sponsorship_id" to the current sponsorship ID.
// const url = new URL(location);
// url.searchParams.set('sponsorship_id', $slct.sponsorship_id);
// history.pushState({}, '', url);
// Is this postMessage needed here?
// let message = {'sponsorship_id': $slct.sponsorship_id};
// window.parent.postMessage(message, "*");
// modalStore.trigger(modal_view__sponsorship_obj);
})
.catch(function (error) {
console.log('No results returned or failed.', error);
@@ -374,54 +323,6 @@ async function handle_load_ae_obj_id__sponsorship({sponsorship_id, try_cache=fal
return ae_sponsorship_obj_get_promise;
}
// const modal_view__sponsorship_obj: ModalSettings = {
// type: 'component',
// component: 'modal_component_view__sponsorship_obj',
// };
// $: if ($slct_trigger == 'load__sponsorship_obj' && $slct.sponsorship_id) {
// console.log('Selected Sponsorship ID:', $slct.sponsorship_id);
// console.log('Selected Sponsorship Object:', $slct.sponsorship_obj);
// $slct_trigger = null;
// }
// const modal: ModalSettings = {
// type: 'alert',
// // Data
// title: 'Example Alert',
// body: 'This is an example modal.',
// image: 'https://i.imgur.com/WOgTG96.gif',
// };
// modalStore.trigger(modal);
// const drawerStore = getDrawerStore();
// const drawer_settings_edit: DrawerSettings = {
// id: 'sponsorships__edit',
// meta: { foo: 'bar', fizz: 'buzz', age: 40 }
// };
// const drawer_settings_x: DrawerSettings = {
// id: 'example-1',
// meta: { foo: 'bar', fizz: 'buzz', age: 40 }
// };
// const drawer_settings_y: DrawerSettings = {
// id: 'example-2',
// // Provide your property overrides:
// bgDrawer: 'bg-purple-900 text-white',
// bgBackdrop: 'bg-gradient-to-tr from-indigo-500/50 via-purple-500/50 to-pink-500/50',
// width: 'w-[280px] md:w-[480px]',
// padding: 'p-4',
// rounded: 'rounded-xl',
// };
</script>
@@ -487,25 +388,9 @@ async function handle_load_ae_obj_id__sponsorship({sponsorship_id, try_cache=fal
</div>
{/await}
{#if $slct.sponsorship_obj_li && $ae_loc.mod.sponsorships.show_list__sponsorship_obj_li}
<!-- <p>Got a list!</p> -->
<List_sponsorship_obj />
{/if}
</section>
<!-- <section class="sponsorships_editing">
{#if $slct.sponsorship_obj && $ae_loc.mod.sponsorships.show_edit__sponsorship_obj}
<p>Edit!</p>
<Edit_sponsorship_obj />
{/if}
</section> -->
<!-- <section class="sponsorships_viewing">
{#if $slct.sponsorship_obj && $ae_loc.mod.sponsorships.show_view__sponsorship_obj}
<p>Viewing!</p>
<View_sponsorship_obj />
{/if}
</section> -->
</div>
</section>

View File

@@ -35,7 +35,6 @@ import { ae_util } from '$lib/ae_utils';
import { api } from '$lib/api';
import { ae_loc, ae_sess, ae_api, slct, slct_trigger } from '$lib/ae_stores';
import type { key_val } from '$lib/ae_stores';
import ListSponsorshipObj from './10_list__sponsorship_obj.svelte';
onMount(() => {
@@ -96,6 +95,7 @@ if ($slct.sponsorship_id) {
console.log(`Sponsorship object selected:`, $slct.sponsorship_obj);
} else {
$store_current_tab = 'start';
$slct.sponsorship_id = null;
$slct.sponsorship_obj = {
sponsorship_cfg_id_random: $ae_loc.mod.sponsorships.cfg_id,
@@ -733,17 +733,20 @@ async function handle_update__sponsorship({
</button>
<button
class="btn variant-filled-warning mx-1"
class="btn variant-soft-secondary mx-1"
on:click={() => {
if (!confirm(`Are you sure you want to send this email to ${$slct.sponsorship_obj.poc_json.email}?`)) {return false;}
let subject = `CHOW 2024 Sponsorship Link for ${$slct.sponsorship_obj.name} (ID: ${$slct.sponsorship_id})`;
let body_html = `<p>Name: ${$slct.sponsorship_obj.name} (sponsorship ID: ${$slct.sponsorship_id})</p><p>Use this link to view or update your CHOW 2024 sponsorship.<p>Copy and paste link: <a href="${$ae_loc.mod.sponsorships.link}">${$ae_loc.mod.sponsorships.link}</a></p>`;
api.send_email({
api_cfg: $ae_api,
from_email: 'scott.idem+from@oneskyit.com',
from_name: 'Scott Idem',
to_email: $slct.sponsorship_obj.poc_json.email,
subject: `Sponsorship Link for ${$slct.sponsorship_obj.name} (ID: ${$slct.sponsorship_id})`,
body_html: `<p>Sponsorship ID: ${$slct.sponsorship_id}</p><p>Copy and paste link: <a href="${$ae_loc.mod.sponsorships.link}">${$ae_loc.mod.sponsorships.link}</a></p>`,
subject: subject,
body_html: body_html,
});
}}
@@ -875,8 +878,9 @@ async function handle_update__sponsorship({
<select
name="level_num"
bind:value={$slct.sponsorship_obj.level_num}
class="select"
class="select variant-glass-warning"
readonly={$slct.sponsorship_obj.paid}
required
>
<option value="" selected>-- Not Selected --</option>
{#each Object.entries($slct.sponsorship_cfg_obj.level_li_json) as [key, value]}
@@ -945,7 +949,7 @@ async function handle_update__sponsorship({
<legend class="legend">General Information</legend>
<label for="name" class="label">Name of organization or person
<input type="text" id="name" name="name" required max="200" value={$slct.sponsorship_obj.name ?? ''} placeholder="Name of organization or person" autocomplete="off" class="input" />
<input type="text" id="name" name="name" required max="200" value={$slct.sponsorship_obj.name ?? ''} placeholder="Name of organization or person" autocomplete="off" class="input variant-glass-warning" />
</label>
<!-- <label class="label ae_label sponsorship__description">Short description
@@ -958,7 +962,7 @@ async function handle_update__sponsorship({
<label for="address_line_1" class="label max-w-64">
<!-- Line 1 (Street) -->
<input type="text" id="address_line_1" name="address_line_1" value={$slct.sponsorship_obj.address_li_json && $slct.sponsorship_obj.address_li_json.mailing && $slct.sponsorship_obj.address_li_json.mailing.line_1 ? $slct.sponsorship_obj.address_li_json.mailing.line_1 : 'x'} placeholder="Line 1 (street)" autocomplete="street-address" class="input text-xs" required />
<input type="text" id="address_line_1" name="address_line_1" value={$slct.sponsorship_obj.address_li_json && $slct.sponsorship_obj.address_li_json.mailing && $slct.sponsorship_obj.address_li_json.mailing.line_1 ? $slct.sponsorship_obj.address_li_json.mailing.line_1 : 'x'} placeholder="Line 1 (street)" autocomplete="street-address" class="input text-xs variant-glass-warning" required />
</label>
<label for="address_line_2" class="label max-w-64">
<!-- Line 2 (Suite) -->
@@ -966,15 +970,15 @@ async function handle_update__sponsorship({
</label>
<label for="address_city" class="label max-w-64">
<!-- City -->
<input type="text" id="address_city" name="address_city" value={$slct.sponsorship_obj.address_li_json && $slct.sponsorship_obj.address_li_json.mailing && $slct.sponsorship_obj.address_li_json.mailing.city ? $slct.sponsorship_obj.address_li_json.mailing.city : ''} placeholder="City" autocomplete="address-level2" class="input text-xs" required />
<input type="text" id="address_city" name="address_city" value={$slct.sponsorship_obj.address_li_json && $slct.sponsorship_obj.address_li_json.mailing && $slct.sponsorship_obj.address_li_json.mailing.city ? $slct.sponsorship_obj.address_li_json.mailing.city : ''} placeholder="City" autocomplete="address-level2" class="input text-xs variant-glass-warning" required />
</label>
<label for="address_state_province" class="label max-w-64">
<!-- State/Province -->
<input type="text" id="address_state_province" name="address_state_province" value={$slct.sponsorship_obj.address_li_json && $slct.sponsorship_obj.address_li_json.mailing && $slct.sponsorship_obj.address_li_json.mailing.state_province ? $slct.sponsorship_obj.address_li_json.mailing.state_province : ''} placeholder="State/Province" autocomplete="address-level1" class="input text-xs" required />
<input type="text" id="address_state_province" name="address_state_province" value={$slct.sponsorship_obj.address_li_json && $slct.sponsorship_obj.address_li_json.mailing && $slct.sponsorship_obj.address_li_json.mailing.state_province ? $slct.sponsorship_obj.address_li_json.mailing.state_province : ''} placeholder="State/Province" autocomplete="address-level1" class="input text-xs variant-glass-warning" required />
</label>
<label for="address_postal_code" class="label max-w-64">
<!-- Postal code/Zip -->
<input type="text" id="address_postal_code" name="address_postal_code" value={$slct.sponsorship_obj.address_li_json && $slct.sponsorship_obj.address_li_json.mailing && $slct.sponsorship_obj.address_li_json.mailing.postal_code ? $slct.sponsorship_obj.address_li_json.mailing.postal_code : ''} placeholder="Postal code/Zip" autocomplete="postal-code" class="input text-xs" />
<input type="text" id="address_postal_code" name="address_postal_code" value={$slct.sponsorship_obj.address_li_json && $slct.sponsorship_obj.address_li_json.mailing && $slct.sponsorship_obj.address_li_json.mailing.postal_code ? $slct.sponsorship_obj.address_li_json.mailing.postal_code : ''} placeholder="Postal code/Zip" autocomplete="postal-code" class="input text-xs variant-glass-warning" required />
</label>
<label for="address_country" class="label max-w-64">
<!-- Country -->
@@ -996,7 +1000,7 @@ async function handle_update__sponsorship({
</div> -->
<input
type="text"
class="input"
class="input variant-glass-warning"
id="poc_full_name" name="poc_full_name"
placeholder="Full name"
value={($slct.sponsorship_obj.poc_json && $slct.sponsorship_obj.poc_json.full_name ? $slct.sponsorship_obj.poc_json.full_name : '')}
@@ -1017,7 +1021,7 @@ async function handle_update__sponsorship({
</div> -->
<input
type="email"
class="input"
class="input variant-glass-warning"
id="poc_email"
name="poc_email"
placeholder="Email"
@@ -1058,24 +1062,26 @@ async function handle_update__sponsorship({
<!-- Full name -->
<input
type="text"
class="input text-xs"
class="input text-xs variant-glass-warning"
id="contact_{index}_full_name"
name="contact_{index}_full_name"
placeholder="Full name"
value={contact.full_name ?? ``}
autocomplete="name"
required
>
</label>
<label for="contact_{index}_email">
<!-- Email -->
<input
type="email"
class="input text-xs"
class="input text-xs variant-glass-warning"
id="contact_{index}_email"
name="contact_{index}_email"
placeholder="Email"
value={contact.email}
autocomplete="email"
required
>
</label>
<label for="contact_{index}_phone">
@@ -1183,7 +1189,7 @@ async function handle_update__sponsorship({
<label for="agree" class="label">
<input
type="checkbox"
class="checkbox"
class="checkbox variant-glass-warning"
id="agree"
name="agree"
value="1"
@@ -1257,7 +1263,7 @@ async function handle_update__sponsorship({
<label for="website_url" class="label">
<!-- Website URL -->
<input type="url" id="website_url" name="website_url" class="input text-xs w-96" placeholder="Website URL" bind:value={$slct.sponsorship_obj.website_url} autocomplete="url" required />
<input type="url" id="website_url" name="website_url" class="input text-xs w-96 variant-glass-warning" placeholder="Website URL" bind:value={$slct.sponsorship_obj.website_url} autocomplete="url" required />
</label>
</fieldset>
@@ -1290,7 +1296,7 @@ async function handle_update__sponsorship({
<div class="space-y-2">
<label class="flex items-center space-x-2">
<input
class="radio"
class="radio variant-glass-warning"
type="radio"
checked
name="q_public_recognition"
@@ -1302,7 +1308,7 @@ async function handle_update__sponsorship({
</label>
<label class="flex items-center space-x-2">
<input
class="radio"
class="radio variant-glass-warning"
type="radio"
name="q_public_recognition"
value={0}
@@ -1320,7 +1326,7 @@ async function handle_update__sponsorship({
<div class="space-y-2">
<label class="flex items-center space-x-2">
<input
class="radio"
class="radio variant-glass-warning"
type="radio"
checked
name="q_social_email"
@@ -1332,7 +1338,7 @@ async function handle_update__sponsorship({
</label>
<label class="flex items-center space-x-2">
<input
class="radio"
class="radio variant-glass-warning"
type="radio"
name="q_social_email"
value={0}
@@ -1350,7 +1356,7 @@ async function handle_update__sponsorship({
<div class="space-y-2">
<label class="flex items-center space-x-2">
<input
class="radio"
class="radio variant-glass-warning"
type="radio"
checked
name="q_dedicated_promos"
@@ -1362,7 +1368,7 @@ async function handle_update__sponsorship({
</label>
<label class="flex items-center space-x-2">
<input
class="radio"
class="radio variant-glass-warning"
type="radio"
name="q_dedicated_promos"
value={0}
@@ -1408,7 +1414,7 @@ async function handle_update__sponsorship({
Would you like a table top exhibit at CHOW?
<label class="flex items-center space-x-2">
<input
class="radio"
class="radio variant-glass-warning"
type="radio"
name="q_table_exhibit"
value={1}
@@ -1419,7 +1425,7 @@ async function handle_update__sponsorship({
</label>
<label class="flex items-center space-x-2">
<input
class="radio"
class="radio variant-glass-warning"
type="radio"
checked
name="q_table_exhibit"
@@ -1496,7 +1502,7 @@ async function handle_update__sponsorship({
<div class="space-y-2">
<label class="flex items-center space-x-2">
<input
class="radio"
class="radio variant-glass-warning"
type="radio"
checked
name="q_virtual_session"
@@ -1508,7 +1514,7 @@ async function handle_update__sponsorship({
</label>
<label class="flex items-center space-x-2">
<input
class="radio"
class="radio variant-glass-warning"
type="radio"
name="q_virtual_session"
value={0}
@@ -1552,7 +1558,7 @@ async function handle_update__sponsorship({
<div class="space-y-2">
<label class="flex items-center space-x-2">
<input
class="radio"
class="radio variant-glass-warning"
type="radio"
checked
name="q_plenary_session"
@@ -1564,7 +1570,7 @@ async function handle_update__sponsorship({
</label>
<label class="flex items-center space-x-2">
<input
class="radio"
class="radio variant-glass-warning"
type="radio"
name="q_plenary_session"
value={0}
@@ -1603,7 +1609,7 @@ async function handle_update__sponsorship({
<div class="space-y-2">
<label class="flex items-center space-x-2">
<input
class="radio"
class="radio variant-glass-warning"
type="radio"
checked
name="q_plenary_opening"
@@ -1615,7 +1621,7 @@ async function handle_update__sponsorship({
</label>
<label class="flex items-center space-x-2">
<input
class="radio"
class="radio variant-glass-warning"
type="radio"
name="q_plenary_opening"
value={0}
@@ -1696,7 +1702,8 @@ async function handle_update__sponsorship({
name="file_logo_primary"
padding="p-1"
accept="image/*"
class="w-96"
class="w-96 variant-glass-warning"
required
on:change={(e) => {
console.log('*** FileDropzone change event ***', e);
@@ -1934,7 +1941,7 @@ async function handle_update__sponsorship({
<!-- Given name -->
<input
type="text"
class="input text-xs"
class="input text-xs variant-glass-warning"
id="guest_{index}_given_name"
name="guest_{index}_given_name"
@@ -1971,6 +1978,7 @@ async function handle_update__sponsorship({
id="guest_{index}_ada"
name="guest_{index}_ada"
>
<option value="">-- None --</option>
<option value="mobility">Mobility</option>
<option value="hearing">Hearing</option>
<option value="vision">Vision</option>
@@ -1984,7 +1992,7 @@ async function handle_update__sponsorship({
id="guest_{index}_dietary"
name="guest_{index}_dietary"
>
<option value="none">None</option>
<option value="">-- None --</option>
<option value="vegetarian">Vegetarian</option>
<option value="vegan">Vegan</option>
<option value="gluten-free">Gluten-free</option>

View File

@@ -83,7 +83,7 @@ onMount(() => {
$slct_trigger = 'show_edit__sponsorship_obj';
}}
class="variant-soft-warning"
title={`Edit meeting: ${ae_sponsorship_obj.name}`}
title={`Edit sponsorship: ${ae_sponsorship_obj.name}`}
>
<span class="fas fa-edit mx-1"></span> Edit
</button>

View File

@@ -33,8 +33,15 @@ onMount(() => {
<header class={parent.regionHeader}>
{@html $slct.sponsorship_obj.name}
<button class="btn variant-glass-primary float-end" on:click={parent.onClose}>
<span class="fas fa-times mx-1"></span>
Close
</button>
</header>
<p>This quick view of a sponsorship's information is customizable or can be hidden completely.</p>
<div class="sponsorship__content">
<div class="sponsorship__poc">
<span class="ae_label">Point of Contact:</span>

View File

@@ -30,7 +30,7 @@ const modalComponentEditSponsorshipObj: ModalComponent = { ref: Edit_modal_spons
const modal_edit__sponsorship_obj: ModalSettings = {
type: 'component',
component: modalComponentEditSponsorshipObj,
title: 'Edit Your Sponsorship',
title: 'Edit Your Sponsorship Submission',
position: '', // default is "items-center"
response: (r: boolean | undefined) => handle_modal_close(r)
@@ -64,6 +64,8 @@ $ae_loc.site_domain = data.url.origin;
$ae_loc.mod.sponsorships.show_edit__sponsorship_obj = false;
$ae_loc.mod.sponsorships.show_view__sponsorship_obj = false;
let ae_sponsorship_obj_get_promise: Promise<any>;
onMount(() => {
console.log('Sponsorships [New/Edit]: +page.svelte');
@@ -169,8 +171,6 @@ $: if ($slct_trigger == 'load__sponsorship_obj' && $slct.sponsorship_id) {
// $slct_trigger = 'show_edit__sponsorship_obj';
}
let ae_sponsorship_obj_get_promise;
async function handle_load_ae_obj_id__sponsorship({sponsorship_id, try_cache=false}) {
console.log(`*** handle_load_ae_obj_id__sponsorship() *** sponsorship_id=${sponsorship_id}`);
@@ -184,7 +184,7 @@ async function handle_load_ae_obj_id__sponsorship({sponsorship_id, try_cache=fal
use_alt_table: false, // NOTE: This will use the table_name_alt value instead of the table_name value in the API config.
use_alt_base: false, // NOTE: This will use the base_name_alt value instead of the base_name value in the API config.
params: params,
log_lvl: 1
log_lvl: 0
})
.then(function (sponsorship_obj_get_result) {
if (sponsorship_obj_get_result) {