|
|
|
|
@@ -1,6 +1,8 @@
|
|
|
|
|
<script lang="ts">
|
|
|
|
|
console.log(`ae_events_leads exhibit [slug] leads_view.svelte`);
|
|
|
|
|
|
|
|
|
|
import { fade } from 'svelte/transition';
|
|
|
|
|
|
|
|
|
|
import type { key_val } from '$lib/ae_stores';
|
|
|
|
|
import { ae_util } from '$lib/ae_utils';
|
|
|
|
|
import { liveQuery } from "dexie";
|
|
|
|
|
@@ -11,6 +13,8 @@ import { events_func } from '$lib/ae_events_functions';
|
|
|
|
|
|
|
|
|
|
import Element_ae_crud from '$lib/element_ae_crud.svelte';
|
|
|
|
|
|
|
|
|
|
let ae_promises: key_val = {}; // Promise<any>;
|
|
|
|
|
|
|
|
|
|
// These will likely be used for patch/update triggers. Maybe delete?
|
|
|
|
|
let ae_triggers: key_val = {};
|
|
|
|
|
|
|
|
|
|
@@ -29,8 +33,92 @@ $: if ($events_slct.exhibit_tracking_id) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function handle_submit_form_lead_update() {
|
|
|
|
|
async function handle_submit_form_lead_update(event) {
|
|
|
|
|
console.log('*** handle_submit_form_lead_update() ***');
|
|
|
|
|
|
|
|
|
|
// Data in
|
|
|
|
|
let form_data = new FormData(event.target);
|
|
|
|
|
console.log(form_data);
|
|
|
|
|
|
|
|
|
|
let exhibit_lead_di: key_val = ae_util.extract_prefixed_form_data({prefix: null, form_data: form_data, trim_values: true, bool_tf_str: true, log_lvl: 0});
|
|
|
|
|
console.log(`exhibit_lead_di:`, exhibit_lead_di);
|
|
|
|
|
|
|
|
|
|
// Data out
|
|
|
|
|
let exhibit_lead_do: key_val = {};
|
|
|
|
|
|
|
|
|
|
if (!$events_slct.exhibit_tracking_id) {
|
|
|
|
|
console.error(`No exhibit_tracking_id set`);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (typeof exhibit_lead_di.exhibitor_notes !== 'undefined') {
|
|
|
|
|
exhibit_lead_do.exhibitor_notes = exhibit_lead_di.exhibitor_notes;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (typeof exhibit_lead_di.external_person_id !== 'undefined') {
|
|
|
|
|
exhibit_lead_do.external_person_id = exhibit_lead_di.external_person_id;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let temp_questions = $events_slct.exhibit_tracking_obj.responses_json;
|
|
|
|
|
|
|
|
|
|
for (const [key, value] of Object.entries(exhibit_lead_di)) {
|
|
|
|
|
console.log(`${key}: ${value}`);
|
|
|
|
|
if (key.startsWith('event_lead__leads_custom_question_')) {
|
|
|
|
|
let code = key.replace('event_lead__leads_custom_question_', '');
|
|
|
|
|
console.log(`Custom Question: ${code} = ${value}`);
|
|
|
|
|
temp_questions[code] = {response: value};
|
|
|
|
|
} else {
|
|
|
|
|
// exhibit_lead_do[key] = value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
console.log(temp_questions);
|
|
|
|
|
|
|
|
|
|
if (temp_questions) {
|
|
|
|
|
exhibit_lead_do.responses_json = temp_questions
|
|
|
|
|
// exhibit_lead_do.responses_json = JSON.stringify(temp_questions);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ae_promises.update__exhibit_tracking_obj = events_func.handle_update_ae_obj__exhibit_tracking({
|
|
|
|
|
api_cfg: $ae_api,
|
|
|
|
|
exhibit_tracking_id: $events_slct.exhibit_tracking_id,
|
|
|
|
|
data: exhibit_lead_do
|
|
|
|
|
})
|
|
|
|
|
.then(function (update__exhibit_tracking_obj) {
|
|
|
|
|
console.log(`update__exhibit_tracking_obj=`, update__exhibit_tracking_obj);
|
|
|
|
|
|
|
|
|
|
if (update__exhibit_tracking_obj) {
|
|
|
|
|
$events_slct.exhibit_tracking_obj = update__exhibit_tracking_obj;
|
|
|
|
|
|
|
|
|
|
// $slct_trigger = 'load__exhibit_tracking_obj';
|
|
|
|
|
$events_sess.leads.submit_status = 'updated';
|
|
|
|
|
} else {
|
|
|
|
|
console.log('No results returned.');
|
|
|
|
|
$events_sess.leads.submit_status = 'updated_unknown';
|
|
|
|
|
|
|
|
|
|
console.log('Trigger a reload of the object.');
|
|
|
|
|
// $slct_trigger = 'load__exhibit_tracking_obj';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$events_sess.leads.disable_submit__exhibit_tracking_obj = false;
|
|
|
|
|
$events_sess.leads.lead_data_changed = false;
|
|
|
|
|
});
|
|
|
|
|
console.log(ae_promises.update__exhibit_tracking_obj);
|
|
|
|
|
// if (ae_promises.update__exhibit_tracking_obj.event_exhibit_tracking_id_random) {
|
|
|
|
|
// console.log('Event exhibit_tracking_id_random found was found. It was updated.');
|
|
|
|
|
// $events_slct.exhibit_tracking_obj = ae_promises.update__exhibit_tracking_obj;
|
|
|
|
|
|
|
|
|
|
// // $slct_trigger = 'load__exhibit_tracking_obj';
|
|
|
|
|
// $events_sess.leads.submit_status = 'updated';
|
|
|
|
|
// } else {
|
|
|
|
|
// console.log('No event_exhibit_tracking_id_random found was found. Something may have gone wrong.');
|
|
|
|
|
// $events_sess.leads.submit_status = 'updated_unknown';
|
|
|
|
|
|
|
|
|
|
// console.log('Trigger a reload of the object.');
|
|
|
|
|
// // $slct_trigger = 'load__exhibit_tracking_obj';
|
|
|
|
|
// }
|
|
|
|
|
// $events_sess.leads.disable_submit__exhibit_tracking_obj = false;
|
|
|
|
|
// $events_sess.leads.lead_data_changed = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -66,6 +154,42 @@ function handle_submit_form_lead_update() {
|
|
|
|
|
</span>
|
|
|
|
|
</h2>
|
|
|
|
|
|
|
|
|
|
{#if $events_sess.leads.lead_data_changed}
|
|
|
|
|
<button
|
|
|
|
|
type="submit"
|
|
|
|
|
form="form__lead_update"
|
|
|
|
|
class="btn variant-ghost-error"
|
|
|
|
|
on:click={() => {
|
|
|
|
|
$events_sess.leads.lead_data_changed = false;
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
<span class="fas fa-exclamation-triangle mx-1"></span>
|
|
|
|
|
Save Changes?
|
|
|
|
|
</button>
|
|
|
|
|
{/if}
|
|
|
|
|
|
|
|
|
|
{#await ae_promises.update__exhibit_tracking_obj}
|
|
|
|
|
<div class="modal-loading" out:fade={{ duration: 500 }}>
|
|
|
|
|
<span class="fas fa-spinner fa-spin"></span>
|
|
|
|
|
<span class="loading-text">
|
|
|
|
|
<!-- <ProgressRadial value={undefined} /> -->
|
|
|
|
|
Saving...
|
|
|
|
|
</span>
|
|
|
|
|
</div>
|
|
|
|
|
{:then update__exhibit_tracking_obj}
|
|
|
|
|
<!-- {#if update__exhibit_tracking_obj} -->
|
|
|
|
|
<div class="modal-loading">
|
|
|
|
|
<span class="fas fa-check-circle"></span>
|
|
|
|
|
<span class="loading-text">Successfully saved!</span>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- {/if} -->
|
|
|
|
|
{:catch error}
|
|
|
|
|
<div class="modal-loading">
|
|
|
|
|
<span class="fas fa-exclamation-triangle"></span>
|
|
|
|
|
<span class="loading-text">Error: {error.message}</span>
|
|
|
|
|
</div>
|
|
|
|
|
{/await}
|
|
|
|
|
|
|
|
|
|
<div class="popover__actions">
|
|
|
|
|
<button
|
|
|
|
|
type="button"
|
|
|
|
|
@@ -84,16 +208,24 @@ function handle_submit_form_lead_update() {
|
|
|
|
|
<section class="popover__content grow flex flex-col gap-4 items-center ae_modal_scrollfix">
|
|
|
|
|
|
|
|
|
|
<div class="readonly_values">
|
|
|
|
|
<div class="email">
|
|
|
|
|
<div class="email ae_obj_prop">
|
|
|
|
|
<span class="label">Email:</span>
|
|
|
|
|
<span class="value">
|
|
|
|
|
<a href="mailto:{$event_exhibit_tracking_obj?.event_badge_email}">{$event_exhibit_tracking_obj?.event_badge_given_name} {$event_exhibit_tracking_obj?.event_badge_family_name} <{$event_exhibit_tracking_obj?.event_badge_email}> </a>
|
|
|
|
|
<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_given_name} {$event_exhibit_tracking_obj?.event_badge_family_name} -->
|
|
|
|
|
<!-- < -->
|
|
|
|
|
{$event_exhibit_tracking_obj?.event_badge_email}
|
|
|
|
|
<!-- > -->
|
|
|
|
|
</a>
|
|
|
|
|
</span>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
{#if $event_exhibit_tracking_obj?.event_badge_professional_title || $event_exhibit_tracking_obj?.event_badge_professional_title_override}
|
|
|
|
|
<div class="professional_title">
|
|
|
|
|
<span class="label" title="Professional Title/Degrees/Credentials">Title/Degrees/Credentials:</span>
|
|
|
|
|
<div class="professional_title ae_obj_prop">
|
|
|
|
|
<span class="label" title="Professional Title/Degrees/Credentials">Titles <span class="text-sm">(degrees, credentials)</span>:</span>
|
|
|
|
|
<span class="value">
|
|
|
|
|
{#if $event_exhibit_tracking_obj?.event_badge_professional_title_override}
|
|
|
|
|
{@html $event_exhibit_tracking_obj?.event_badge_professional_title_override}
|
|
|
|
|
@@ -105,7 +237,7 @@ function handle_submit_form_lead_update() {
|
|
|
|
|
{/if}
|
|
|
|
|
|
|
|
|
|
{#if $event_exhibit_tracking_obj?.event_badge_affiliations || $event_exhibit_tracking_obj?.event_badge_affiliations_override}
|
|
|
|
|
<div class="affiliations">
|
|
|
|
|
<div class="affiliations ae_obj_prop">
|
|
|
|
|
<span class="label">Affiliations:</span>
|
|
|
|
|
<span class="value">
|
|
|
|
|
{#if $event_exhibit_tracking_obj?.event_badge_affiliations_override}
|
|
|
|
|
@@ -118,7 +250,7 @@ function handle_submit_form_lead_update() {
|
|
|
|
|
{/if}
|
|
|
|
|
|
|
|
|
|
{#if $event_exhibit_tracking_obj?.event_badge_country}
|
|
|
|
|
<div class="location">
|
|
|
|
|
<div class="location ae_obj_prop">
|
|
|
|
|
<span class="label">Location:</span>
|
|
|
|
|
<span class="value">
|
|
|
|
|
<!-- <span class="city">{$event_exhibit_tracking_obj?.event_badge_city}</span> -->
|
|
|
|
|
@@ -283,6 +415,9 @@ function handle_submit_form_lead_update() {
|
|
|
|
|
rows="10"
|
|
|
|
|
placeholder="Staff notes"
|
|
|
|
|
class="textarea my-1"
|
|
|
|
|
on:change={() => {
|
|
|
|
|
$events_sess.leads.lead_data_changed = true;
|
|
|
|
|
}}
|
|
|
|
|
>{$event_exhibit_tracking_obj?.exhibitor_notes}</textarea>
|
|
|
|
|
</label>
|
|
|
|
|
</div>
|
|
|
|
|
@@ -302,9 +437,24 @@ function handle_submit_form_lead_update() {
|
|
|
|
|
<div>
|
|
|
|
|
<span class="leads_custom_question">{leads_custom_question.question}</span>
|
|
|
|
|
{#if (leads_custom_question.type == 'text')}
|
|
|
|
|
<input name="event_lead__leads_custom_question_{leads_custom_question.code}" value={($event_exhibit_tracking_obj?.responses_json && $event_exhibit_tracking_obj?.responses_json[leads_custom_question.code]) ? $event_exhibit_tracking_obj?.responses_json[leads_custom_question.code].response : null} placeholder="Response" class="leads_custom_question_response input" />
|
|
|
|
|
<input
|
|
|
|
|
name="event_lead__leads_custom_question_{leads_custom_question.code}"
|
|
|
|
|
value={($event_exhibit_tracking_obj?.responses_json && $event_exhibit_tracking_obj?.responses_json[leads_custom_question.code]) ? $event_exhibit_tracking_obj?.responses_json[leads_custom_question.code].response : null}
|
|
|
|
|
placeholder="Response"
|
|
|
|
|
class="leads_custom_question_response input"
|
|
|
|
|
on:change={() => {
|
|
|
|
|
$events_sess.leads.lead_data_changed = true;
|
|
|
|
|
}}
|
|
|
|
|
/>
|
|
|
|
|
{:else if (leads_custom_question.type == 'option' && leads_custom_question.option_li)}
|
|
|
|
|
<select name="event_lead__leads_custom_question_{leads_custom_question.code}" class="leads_custom_question_response select" value={($event_exhibit_tracking_obj?.responses_json && $event_exhibit_tracking_obj?.responses_json[leads_custom_question.code]) ? $event_exhibit_tracking_obj?.responses_json[leads_custom_question.code].response : null}>
|
|
|
|
|
<select
|
|
|
|
|
name="event_lead__leads_custom_question_{leads_custom_question.code}"
|
|
|
|
|
class="leads_custom_question_response select"
|
|
|
|
|
value={($event_exhibit_tracking_obj?.responses_json && $event_exhibit_tracking_obj?.responses_json[leads_custom_question.code]) ? $event_exhibit_tracking_obj?.responses_json[leads_custom_question.code].response : null}
|
|
|
|
|
on:change={() => {
|
|
|
|
|
$events_sess.leads.lead_data_changed = true;
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
{#each leads_custom_question.option_li as option }
|
|
|
|
|
<option value="{option}">{option}</option>
|
|
|
|
|
{/each}
|
|
|
|
|
@@ -332,7 +482,7 @@ function handle_submit_form_lead_update() {
|
|
|
|
|
type="text"
|
|
|
|
|
name="external_person_id"
|
|
|
|
|
placeholder="Linked to email"
|
|
|
|
|
value={$event_exhibit_tracking_obj?.external_person_id}
|
|
|
|
|
value={$event_exhibit_tracking_obj?.external_person_id ?? $events_loc.leads.auth_exhibit_kv[$events_slct.exhibit_id].key}
|
|
|
|
|
required
|
|
|
|
|
class="input max-w-64 m-1"
|
|
|
|
|
/>
|
|
|
|
|
@@ -353,17 +503,42 @@ function handle_submit_form_lead_update() {
|
|
|
|
|
<footer class="popover__footer flex gap-1 justify-between items-center p-1 border-t">
|
|
|
|
|
<div class="popover__content__actions">
|
|
|
|
|
<button
|
|
|
|
|
type="submit"
|
|
|
|
|
form="form__update_lead"
|
|
|
|
|
class="btn variant-ghost-primary"
|
|
|
|
|
|
|
|
|
|
on:click={() => {
|
|
|
|
|
// trigger = 'save__ds__code';
|
|
|
|
|
// $slct_trigger = 'save__ds__code';
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
<span class="fas fa-save mx-1"></span>
|
|
|
|
|
Save
|
|
|
|
|
type="submit"
|
|
|
|
|
form="form__lead_update"
|
|
|
|
|
disabled={($events_sess.leads.disable_submit__exhibit_tracking_obj)}
|
|
|
|
|
on:click={() => {
|
|
|
|
|
// trigger = 'save__ds__code';
|
|
|
|
|
// $slct_trigger = 'save__ds__code';
|
|
|
|
|
}}
|
|
|
|
|
class="btn variant-ghost-primary"
|
|
|
|
|
class:variant-ghost-error={$events_sess.leads.lead_data_changed}
|
|
|
|
|
>
|
|
|
|
|
<span class="fas fa-save mx-1"></span>
|
|
|
|
|
Save
|
|
|
|
|
{#if $events_sess.leads.lead_data_changed}
|
|
|
|
|
Changes?
|
|
|
|
|
{/if}
|
|
|
|
|
{#await ae_promises.update__exhibit_tracking_obj}
|
|
|
|
|
<div class="modal-loading" out:fade={{ duration: 500 }}>
|
|
|
|
|
<span class="fas fa-spinner fa-spin"></span>
|
|
|
|
|
<span class="loading-text">
|
|
|
|
|
<!-- <ProgressRadial value={undefined} /> -->
|
|
|
|
|
Saving...
|
|
|
|
|
</span>
|
|
|
|
|
</div>
|
|
|
|
|
{:then update__exhibit_tracking_obj}
|
|
|
|
|
{#if update__exhibit_tracking_obj}
|
|
|
|
|
<div class="modal-loading" out:fade={{ duration: 1500 }}>
|
|
|
|
|
<span class="fas fa-check-circle"></span>
|
|
|
|
|
<!-- <span class="loading-text">Successfully saved!</span> -->
|
|
|
|
|
</div>
|
|
|
|
|
{/if}
|
|
|
|
|
{:catch error}
|
|
|
|
|
<div class="modal-loading">
|
|
|
|
|
<span class="fas fa-exclamation-triangle"></span>
|
|
|
|
|
<span class="loading-text">Error: {error.message}</span>
|
|
|
|
|
</div>
|
|
|
|
|
{/await}
|
|
|
|
|
</button>
|
|
|
|
|
|
|
|
|
|
<Element_ae_crud
|
|
|
|
|
|