Now with new button toggles and edit for JSON data!
This commit is contained in:
@@ -15,12 +15,11 @@ import Element_ae_crud from '$lib/element_ae_crud.svelte';
|
||||
import Element_manage_event_file_li from '$lib/element_manage_event_file_li.svelte';
|
||||
|
||||
import { core_func } from '$lib/ae_core_functions';
|
||||
import { ae_loc, ae_sess, ae_api, ae_trig, slct, slct_trigger } from '$lib/ae_stores';
|
||||
import { ae_snip, ae_loc, ae_sess, ae_api, ae_trig, slct, slct_trigger } from '$lib/ae_stores';
|
||||
import { db_events } from "$lib/db_events";
|
||||
import { events_loc, events_sess, events_slct, events_trigger } from '$lib/ae_events_stores';
|
||||
import { events_func } from '$lib/ae_events_functions';
|
||||
import { handle_load_ae_obj_id__event_presentation } from '$lib/ae_events__event_presentation';
|
||||
import { handle_load_ae_obj_id__event_presenter } from '$lib/ae_events__event_presenter';
|
||||
|
||||
|
||||
// Exports
|
||||
export let event_presenter_id: string;
|
||||
@@ -485,11 +484,11 @@ $: if ($lq__event_presenter_obj) {
|
||||
});
|
||||
}}
|
||||
>
|
||||
<span class="fas fa-id-card"></span>
|
||||
{$lq__event_obj?.mod_pres_mgmt_json?.external_id_label ?? 'External ID'}:
|
||||
<span class="font-bold">
|
||||
{$lq__event_presenter_obj?.external_id ?? '-- not set --'}
|
||||
{@html $lq__event_presenter_obj?.external_id ?? ae_snip.html__not_set}
|
||||
</span>
|
||||
|
||||
</Element_ae_crud>
|
||||
|
||||
{#if $lq__event_presenter_obj.external_id != $lq__event_presenter_obj.person_external_id}
|
||||
@@ -520,7 +519,7 @@ $: if ($lq__event_presenter_obj) {
|
||||
<span class="fas fa-star-of-life"></span>
|
||||
Person External ID:
|
||||
<span class="font-bold">
|
||||
{$lq__event_presenter_obj.person_external_id ?? '-- not set --'}
|
||||
{@html $lq__event_presenter_obj.person_external_id ?? ae_snip.html__not_set}
|
||||
</span>
|
||||
</Element_ae_crud>
|
||||
|
||||
@@ -646,7 +645,7 @@ $: if ($lq__event_presenter_obj) {
|
||||
field_name={'email'}
|
||||
field_type={'text'}
|
||||
field_value={$lq__event_presenter_obj.email}
|
||||
allow_null={false}
|
||||
allow_null={true}
|
||||
hide_edit_btn={!$ae_loc.trusted_access || !$ae_loc.edit_mode}
|
||||
outline_element={false}
|
||||
show_crud={false}
|
||||
@@ -664,15 +663,20 @@ $: if ($lq__event_presenter_obj) {
|
||||
>
|
||||
<span class="fas fa-envelope"></span>
|
||||
<span class="font-bold">
|
||||
<a
|
||||
href="mailto:{$lq__event_presenter_obj.email}"
|
||||
class="text-blue-500 hover:text-blue-800 hover:underline"
|
||||
title="Presenter's email address"
|
||||
>{$lq__event_presenter_obj.email}</a>
|
||||
{#if $lq__event_presenter_obj.email}
|
||||
<a
|
||||
href="mailto:{$lq__event_presenter_obj.email}"
|
||||
class="text-blue-500 hover:text-blue-800 hover:underline"
|
||||
title="Presenter's email address"
|
||||
>{$lq__event_presenter_obj.email}</a>
|
||||
{:else}
|
||||
email
|
||||
{@html ae_snip.html__not_set}
|
||||
{/if}
|
||||
</span>
|
||||
</Element_ae_crud>
|
||||
|
||||
{#if $lq__event_presenter_obj.person_primary_email != $lq__event_presenter_obj.email}
|
||||
{#if $lq__event_presenter_obj.person_primary_email && $lq__event_presenter_obj.person_primary_email != $lq__event_presenter_obj.email}
|
||||
<div>
|
||||
<Element_ae_crud
|
||||
api_cfg={$ae_api}
|
||||
@@ -700,12 +704,22 @@ $: if ($lq__event_presenter_obj) {
|
||||
<span class="fas fa-star-of-life"></span>
|
||||
<span class="fas fa-envelope"></span>
|
||||
<span class="font-bold">
|
||||
<a
|
||||
{#if $lq__event_presenter_obj.person_primary_email}
|
||||
<a
|
||||
href="mailto:{$lq__event_presenter_obj.person_primary_email}"
|
||||
class="text-blue-500 hover:text-blue-800 hover:underline"
|
||||
title="Person's primary email address"
|
||||
>{$lq__event_presenter_obj.person_primary_email}</a>
|
||||
{:else}
|
||||
email
|
||||
{@html ae_snip.html__not_set}
|
||||
{/if}
|
||||
<!-- <a
|
||||
href="mailto:{$lq__event_presenter_obj.person_primary_email}"
|
||||
class="text-blue-500 underline hover:text-blue-800"
|
||||
title="Person's primary email address"
|
||||
>{$lq__event_presenter_obj.person_primary_email}</a>
|
||||
</span>
|
||||
</span> -->
|
||||
</Element_ae_crud>
|
||||
|
||||
{#if $ae_loc.trusted_access}
|
||||
@@ -780,7 +794,7 @@ $: if ($lq__event_presenter_obj) {
|
||||
>
|
||||
<span class="fas fa-building"></span>
|
||||
<span class="font-bold">
|
||||
{$lq__event_presenter_obj.affiliations ?? '-- affiliations not set --'}
|
||||
{@html $lq__event_presenter_obj.affiliations ?? 'affiliations'+ae_snip.html__not_set}
|
||||
</span>
|
||||
</Element_ae_crud>
|
||||
|
||||
@@ -808,7 +822,7 @@ $: if ($lq__event_presenter_obj) {
|
||||
<span class="fas fa-star-of-life"></span>
|
||||
<span class="fas fa-building"></span>
|
||||
<span class="font-bold">
|
||||
{$lq__event_presenter_obj.person_affiliations ?? '-- affiliations not set --'}
|
||||
{@html $lq__event_presenter_obj.person_affiliations ?? 'affiliations'+ae_snip.html__not_set}
|
||||
</span>
|
||||
</Element_ae_crud>
|
||||
|
||||
@@ -883,7 +897,7 @@ $: if ($lq__event_presenter_obj) {
|
||||
>
|
||||
<span class="fas fa-user-tag"></span>
|
||||
<span class="font-bold">
|
||||
{$lq__event_presenter_obj.professional_title && $lq__event_presenter_obj.professional_title.length ? $lq__event_presenter_obj.professional_title : '-- professional title not set --'}
|
||||
{@html $lq__event_presenter_obj.professional_title && $lq__event_presenter_obj.professional_title.length ? $lq__event_presenter_obj.professional_title : 'professional title'+ae_snip.html__not_set}
|
||||
</span>
|
||||
</Element_ae_crud>
|
||||
|
||||
@@ -911,7 +925,7 @@ $: if ($lq__event_presenter_obj) {
|
||||
<span class="fas fa-star-of-life"></span>
|
||||
<span class="fas fa-user-tag"></span>
|
||||
<span class="font-bold">
|
||||
{$lq__event_presenter_obj.person_professional_title && $lq__event_presenter_obj.person_professional_title.length ? $lq__event_presenter_obj.person_professional_title : '-- professional title not set --'}
|
||||
{@html $lq__event_presenter_obj.person_professional_title && $lq__event_presenter_obj.person_professional_title.length ? $lq__event_presenter_obj.person_professional_title : 'professional title'+ae_snip.html__not_set}
|
||||
</span>
|
||||
</Element_ae_crud>
|
||||
|
||||
@@ -962,8 +976,10 @@ $: if ($lq__event_presenter_obj) {
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<span class="fas fa-user-check"></span>
|
||||
Person link:
|
||||
<!-- Allow for linking the presenter to a person record. -->
|
||||
{#if $ae_loc.administrator_access}
|
||||
{#if $ae_loc.trusted_access}
|
||||
<Element_ae_crud
|
||||
trigger_patch={ae_triggers.update_person}
|
||||
api_cfg={$ae_api}
|
||||
@@ -989,83 +1005,95 @@ $: if ($lq__event_presenter_obj) {
|
||||
});
|
||||
}}
|
||||
>
|
||||
<span class="fas fa-user-check"></span>
|
||||
<!-- <span class="fas fa-user-check"></span> -->
|
||||
<!-- <span class="fas fa-link"></span> -->
|
||||
Person link
|
||||
<!-- Person link -->
|
||||
{#if $lq__event_presenter_obj.person_id_random}
|
||||
<a
|
||||
href="/core/person/${$lq__event_presenter_obj.person_id_random}"
|
||||
class="text-blue-500 hover:text-blue-800 hover:underline"
|
||||
title="View Person: {$lq__event_presenter_obj.person_full_name} {$lq__event_presenter_obj.person_id_random}"
|
||||
>
|
||||
<span class="fas fa-link"></span>
|
||||
{$lq__event_presenter_obj.person_id_random}
|
||||
</a>
|
||||
{:else}
|
||||
<span class="fas fa-unlink"></span>
|
||||
-- person not set --
|
||||
person
|
||||
{@html ae_snip.html__not_set}
|
||||
{/if}
|
||||
|
||||
{#if ae_tmp?.show__edit_person}
|
||||
{#if $ae_loc.administrator_access && $ae_loc.edit_mode}
|
||||
|
||||
{#await $slct.person_obj_li}
|
||||
<span class="fas fa-spinner fa-spin mx-1"></span>
|
||||
{:then person_obj_li}
|
||||
<!-- loaded -->
|
||||
{/await}
|
||||
{#if ae_tmp?.show__edit_person}
|
||||
|
||||
<!-- {/if} -->
|
||||
{#await $slct.person_obj_li}
|
||||
<span class="fas fa-spinner fa-spin mx-1"></span>
|
||||
{:then person_obj_li}
|
||||
<!-- loaded -->
|
||||
{/await}
|
||||
|
||||
<!-- {#if ae_tmp.show__edit_person} -->
|
||||
<button
|
||||
<!-- {/if} -->
|
||||
|
||||
<!-- {#if ae_tmp.show__edit_person} -->
|
||||
<button
|
||||
type="button"
|
||||
on:click={() => {
|
||||
console.log('Cancel the person for the presenter.');
|
||||
|
||||
ae_tmp.person_id = null;
|
||||
ae_tmp.show__edit_person = false;
|
||||
}}
|
||||
class="btn btn-sm variant-soft-warning hover:variant-ghost-warning"
|
||||
>
|
||||
<span class="fas fa-times mx-1"></span>
|
||||
Cancel
|
||||
</button>
|
||||
|
||||
{:else}
|
||||
|
||||
<button
|
||||
type="button"
|
||||
on:click={() => {
|
||||
console.log('Cancel the person for the presenter.');
|
||||
on:click={async () => {
|
||||
console.log('Edit the person for the presenter.');
|
||||
|
||||
ae_tmp.person_id = null;
|
||||
ae_tmp.show__edit_person = false;
|
||||
}}
|
||||
class="btn btn-sm variant-soft-warning hover:variant-ghost-warning"
|
||||
>
|
||||
<span class="fas fa-times mx-1"></span>
|
||||
Cancel
|
||||
</button>
|
||||
{:else}
|
||||
|
||||
<!-- {/if} -->
|
||||
<button
|
||||
type="button"
|
||||
on:click={async () => {
|
||||
console.log('Edit the person for the presenter.');
|
||||
|
||||
let params = {
|
||||
qry__limit: 300,
|
||||
}
|
||||
|
||||
$slct.person_obj_li = core_func.handle_load_ae_obj_li__person({api_cfg: $ae_api, account_id: $slct.account_id, params: params})
|
||||
.then(function (load_results) {
|
||||
console.log(`Loaded person_obj_li:`, load_results);
|
||||
|
||||
// We need to make this ready for the select option list. Convert the list to a key value pair with the person_id_random as the key. We also need to set the option text value to: full_name (primary_email)
|
||||
if (load_results) {
|
||||
let person_obj_li = load_results;
|
||||
let person_obj_kv = {};
|
||||
person_obj_kv[''] = '-- Select a person --';
|
||||
person_obj_li.forEach((person_obj) => {
|
||||
let option_text = `${person_obj.full_name} (${person_obj.primary_email})`;
|
||||
person_obj_kv[person_obj.person_id_random] = option_text;
|
||||
});
|
||||
$slct.person_obj_kv = person_obj_kv;
|
||||
let params = {
|
||||
qry__limit: 300,
|
||||
}
|
||||
$slct.person_obj_kv = $slct.person_obj_kv;
|
||||
console.log(`$slct.person_obj_kv = `, $slct.person_obj_kv);
|
||||
|
||||
return load_results;
|
||||
});
|
||||
$slct.person_obj_li = core_func.handle_load_ae_obj_li__person({api_cfg: $ae_api, account_id: $slct.account_id, params: params})
|
||||
.then(function (load_results) {
|
||||
console.log(`Loaded person_obj_li:`, load_results);
|
||||
|
||||
// We need to make this ready for the select option list. Convert the list to a key value pair with the person_id_random as the key. We also need to set the option text value to: full_name (primary_email)
|
||||
if (load_results) {
|
||||
let person_obj_li = load_results;
|
||||
let person_obj_kv = {};
|
||||
person_obj_kv[''] = '-- Select a person --';
|
||||
person_obj_li.forEach((person_obj) => {
|
||||
let option_text = `${person_obj.full_name} (${person_obj.primary_email})`;
|
||||
person_obj_kv[person_obj.person_id_random] = option_text;
|
||||
});
|
||||
$slct.person_obj_kv = person_obj_kv;
|
||||
}
|
||||
$slct.person_obj_kv = $slct.person_obj_kv;
|
||||
console.log(`$slct.person_obj_kv = `, $slct.person_obj_kv);
|
||||
|
||||
return load_results;
|
||||
});
|
||||
|
||||
ae_tmp.person_id = $lq__event_presenter_obj?.person_id_random;
|
||||
ae_tmp.show__edit_person = true;
|
||||
}}
|
||||
class="btn btn-sm variant-soft-warning hover:variant-ghost-warning"
|
||||
>
|
||||
<span class="fas fa-edit mx-1"></span>
|
||||
Re-link
|
||||
</button>
|
||||
{/if}
|
||||
|
||||
{/if} <!-- $ae_loc.edit_mode -->
|
||||
|
||||
ae_tmp.person_id = $lq__event_presenter_obj?.person_id_random;
|
||||
ae_tmp.show__edit_person = true;
|
||||
}}
|
||||
class="btn btn-sm variant-soft-warning hover:variant-ghost-warning"
|
||||
>
|
||||
<span class="fas fa-edit mx-1"></span>
|
||||
Edit
|
||||
</button>
|
||||
{/if}
|
||||
</Element_ae_crud>
|
||||
{/if}
|
||||
|
||||
@@ -1110,56 +1138,56 @@ $: if ($lq__event_presenter_obj) {
|
||||
{/if}
|
||||
|
||||
{#if $ae_loc.administrator_access && !$lq__event_presenter_obj?.person_id_random}
|
||||
<button
|
||||
type="button"
|
||||
on:click={async () => {
|
||||
console.log('Add Person');
|
||||
<button
|
||||
type="button"
|
||||
on:click={async () => {
|
||||
console.log('Add Person');
|
||||
|
||||
let person_data = {
|
||||
account_id_random: $slct.account_id,
|
||||
source_code: 'manual:SK',
|
||||
external_id: $lq__event_presenter_obj?.external_id?? 'AE-temp-ID',
|
||||
// user_id_random: user_obj.user_id_random,
|
||||
given_name: $lq__event_presenter_obj.given_name?? 'New',
|
||||
family_name: $lq__event_presenter_obj?.family_name?? 'Presenter',
|
||||
primary_email: $lq__event_presenter_obj?.email?? 'test+newpres@oneskyit.com',
|
||||
code: $lq__event_presenter_obj?.code?? 'new_presenter',
|
||||
// Random number between 100000 and 999999
|
||||
passcode: Math.floor(Math.random() * 900000) + 100000,
|
||||
professional_title: $lq__event_presenter_obj?.professional_title?? 'Presenter',
|
||||
affiliations: $lq__event_presenter_obj?.affiliations?? '',
|
||||
enable: true,
|
||||
}
|
||||
let person_data = {
|
||||
account_id_random: $slct.account_id,
|
||||
source_code: 'manual:SK',
|
||||
external_id: $lq__event_presenter_obj?.external_id?? 'AE-temp-ID',
|
||||
// user_id_random: user_obj.user_id_random,
|
||||
given_name: $lq__event_presenter_obj.given_name?? 'New',
|
||||
family_name: $lq__event_presenter_obj?.family_name?? 'Presenter',
|
||||
primary_email: $lq__event_presenter_obj?.email?? 'test+newpres@oneskyit.com',
|
||||
code: $lq__event_presenter_obj?.code?? 'new_presenter',
|
||||
// Random number between 100000 and 999999
|
||||
passcode: Math.floor(Math.random() * 900000) + 100000,
|
||||
professional_title: $lq__event_presenter_obj?.professional_title?? 'Presenter',
|
||||
affiliations: $lq__event_presenter_obj?.affiliations?? '',
|
||||
enable: true,
|
||||
}
|
||||
|
||||
let new_person_obj = await core_func.handle_create_ae_obj__person({
|
||||
api_cfg: $ae_api,
|
||||
// user_id: $ae_loc.user_id,
|
||||
data_kv: person_data,
|
||||
log_lvl: 0,
|
||||
})
|
||||
let new_person_obj = await core_func.handle_create_ae_obj__person({
|
||||
api_cfg: $ae_api,
|
||||
// user_id: $ae_loc.user_id,
|
||||
data_kv: person_data,
|
||||
log_lvl: 0,
|
||||
})
|
||||
|
||||
console.log('new_person_obj:', new_person_obj);
|
||||
console.log('new_person_obj:', new_person_obj);
|
||||
|
||||
// We then need to update the event_presenter with the new person_id.
|
||||
events_func.handle_update_ae_obj__event_presenter({
|
||||
api_cfg: $ae_api,
|
||||
event_presenter_id: $lq__event_presenter_obj.event_presenter_id_random,
|
||||
data_kv: {person_id_random: new_person_obj.person_id_random},
|
||||
log_lvl: 0,
|
||||
})
|
||||
}}
|
||||
class:hidden={!$ae_loc.edit_mode}
|
||||
class="btn btn-sm variant-soft-warning hover:variant-filled-warning"
|
||||
>
|
||||
<span class="fas fa-plus mx-1"></span>
|
||||
Add Person
|
||||
</button>
|
||||
{/if}
|
||||
// We then need to update the event_presenter with the new person_id.
|
||||
events_func.handle_update_ae_obj__event_presenter({
|
||||
api_cfg: $ae_api,
|
||||
event_presenter_id: $lq__event_presenter_obj.event_presenter_id_random,
|
||||
data_kv: {person_id_random: new_person_obj.person_id_random},
|
||||
log_lvl: 0,
|
||||
})
|
||||
}}
|
||||
class:hidden={!$ae_loc.edit_mode}
|
||||
class="btn btn-sm variant-soft-warning hover:variant-filled-warning"
|
||||
>
|
||||
<span class="fas fa-plus mx-1"></span>
|
||||
Add Person
|
||||
</button>
|
||||
{/if}
|
||||
|
||||
</li>
|
||||
|
||||
<li
|
||||
class:hidden={!$ae_loc.trusted_access && !$events_loc.auth__kv.presenter[$lq__event_presenter_obj.event_presenter_id_random]}
|
||||
class:hidden={!$lq__event_presenter_obj.person_id_random || !$ae_loc.trusted_access && !$events_loc.auth__kv.presenter[$lq__event_presenter_obj.event_presenter_id_random]}
|
||||
>
|
||||
<Element_ae_crud
|
||||
api_cfg={$ae_api}
|
||||
@@ -1190,7 +1218,7 @@ $: if ($lq__event_presenter_obj) {
|
||||
<span
|
||||
class="font-bold"
|
||||
>
|
||||
{$lq__event_presenter_obj.person_passcode ?? '-- passcode not set --'}
|
||||
{@html $lq__event_presenter_obj.person_passcode ?? ae_snip.html__not_set }
|
||||
</span>
|
||||
</Element_ae_crud>
|
||||
|
||||
@@ -1209,7 +1237,7 @@ $: if ($lq__event_presenter_obj) {
|
||||
</li>
|
||||
|
||||
<li
|
||||
class:hidden={!$ae_loc.trusted_access || !$ae_loc.edit_mode}
|
||||
class:hidden={!$lq__event_presenter_obj.person_id_random || !$ae_loc.trusted_access || !$ae_loc.edit_mode}
|
||||
>
|
||||
<Element_ae_crud
|
||||
api_cfg={$ae_api}
|
||||
@@ -1236,11 +1264,11 @@ $: if ($lq__event_presenter_obj) {
|
||||
>
|
||||
<span class="fas fa-star-of-life"></span>
|
||||
<span class="fas fa-fingerprint"></span>
|
||||
External Sys ID:
|
||||
External System ID:
|
||||
<span
|
||||
class="font-bold"
|
||||
>
|
||||
{$lq__event_presenter_obj.person_external_sys_id ?? '-- external_sys_id not set --'}
|
||||
{@html $lq__event_presenter_obj.person_external_sys_id ?? ae_snip.html__not_set}
|
||||
</span>
|
||||
</Element_ae_crud>
|
||||
</li>
|
||||
|
||||
@@ -797,9 +797,29 @@ $: if ($lq__event_session_obj) {
|
||||
</li>
|
||||
<li>
|
||||
<strong class="text-sm">Moderator/Champion:</strong>
|
||||
<span title={$lq__event_session_obj?.poc_person_id_random}>
|
||||
{#if $lq__event_session_obj?.poc_person_id_random}
|
||||
{#if $ae_loc.trusted_access}
|
||||
<a
|
||||
href="/core/person/{$lq__event_session_obj.poc_person_id_random}"
|
||||
class="text-blue-500 hover:text-blue-800 hover:underline"
|
||||
title="View Person: {$lq__event_session_obj?.poc_person_full_name} {$lq__event_session_obj?.poc_person_id_random}"
|
||||
>
|
||||
{@html $lq__event_session_obj.poc_person_full_name ? $lq__event_session_obj.poc_person_full_name : ae_snip.html__not_set}
|
||||
</a>
|
||||
{:else}
|
||||
<span title={$lq__event_session_obj?.poc_person_id_random}>
|
||||
{@html $lq__event_session_obj.poc_person_full_name ? $lq__event_session_obj.poc_person_full_name : ae_snip.html__not_set}
|
||||
</span>
|
||||
{/if}
|
||||
{:else}
|
||||
{@html ae_snip.html__not_set}
|
||||
{/if}
|
||||
|
||||
<!-- {#if $ae_loc.trusted_access && $ae_loc.edit_mode} -->
|
||||
|
||||
<!-- <span title={$lq__event_session_obj?.poc_person_id_random}>
|
||||
{@html $lq__event_session_obj.poc_person_full_name ? $lq__event_session_obj.poc_person_full_name : ae_snip.html__not_set}
|
||||
</span>
|
||||
</span> -->
|
||||
|
||||
{#if $ae_loc.trusted_access && $ae_loc.edit_mode}
|
||||
<Element_ae_crud
|
||||
|
||||
Reference in New Issue
Block a user