General clean up related to permissions and updating fields.

This commit is contained in:
Scott Idem
2024-07-24 15:00:48 -04:00
parent c41be23995
commit 027d7a781d
4 changed files with 395 additions and 195 deletions

View File

@@ -439,6 +439,7 @@ export function handle_db_save_ae_obj_li__event_presenter(
event_presentation_start_datetime: obj.event_presentation_start_datetime, event_presentation_start_datetime: obj.event_presentation_start_datetime,
person_external_id: obj.person_external_id, person_external_id: obj.person_external_id,
person_external_sys_id: obj.person_external_sys_id,
person_given_name: obj.person_given_name, person_given_name: obj.person_given_name,
person_family_name: obj.person_family_name, person_family_name: obj.person_family_name,
person_full_name: obj.person_full_name, person_full_name: obj.person_full_name,

View File

@@ -10,8 +10,8 @@ export interface Person {
person_id: string; person_id: string;
person_id_random: string; person_id_random: string;
external_id?: string; external_id?: string; // This may be semi-random or unique only withing the account.
external_sys_id?: string; // Generated by an external system external_sys_id?: string; // Generated by an external system. Ideally this should be something like a UUID. It may be the same as the external_id if nothing given.
code?: string; code?: string;
account_id?: string; // Technically this is not required for global users. account_id?: string; // Technically this is not required for global users.

View File

@@ -1,6 +1,7 @@
import Dexie, { type Table } from 'dexie'; import Dexie, { type Table } from 'dexie';
import type { list } from 'postcss'; import type { list } from 'postcss';
import type { key_val } from './ae_stores'; import type { key_val } from './ae_stores';
import type { o } from 'vitest/dist/reporters-B7ebVMkT.js';
// li = list // li = list
// kv = key value list // kv = key value list
@@ -488,7 +489,8 @@ export interface Presenter {
event_presentation_name?: string; event_presentation_name?: string;
event_presentation_start_datetime?: null|Date; event_presentation_start_datetime?: null|Date;
person_external_id?: null|string; person_external_id?: null|string; // This may be semi-random or unique only withing the account.
person_external_sys_id?: null|string; // Generated by an external system. Ideally this should be something like a UUID. It may be the same as the external_id if nothing given.
person_given_name?: string; person_given_name?: string;
person_family_name?: null|string; person_family_name?: null|string;
person_full_name?: null|string; person_full_name?: null|string;

View File

@@ -19,6 +19,8 @@ import { ae_loc, ae_sess, ae_api, ae_trig, slct, slct_trigger } from '$lib/ae_st
import { db_events } from "$lib/db_events"; import { db_events } from "$lib/db_events";
import { events_loc, events_sess, events_slct, events_trigger } from '$lib/ae_events_stores'; import { events_loc, events_sess, events_slct, events_trigger } from '$lib/ae_events_stores';
import { events_func } from '$lib/ae_events_functions'; 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 // Exports
export let event_presenter_id: string; export let event_presenter_id: string;
@@ -33,6 +35,10 @@ ae_tmp.show__file_li = true;
let ae_triggers: key_val = {}; let ae_triggers: key_val = {};
let lq__event_obj = liveQuery(
() => db_events.events.get($events_slct.event_id)
);
// let lq__event_session_obj = liveQuery( // let lq__event_session_obj = liveQuery(
// () => db_events.sessions.get($events_slct.event_session_id) // () => db_events.sessions.get($events_slct.event_session_id)
// ); // );
@@ -463,7 +469,7 @@ $: if ($lq__event_presenter_obj) {
field_type={'text'} field_type={'text'}
field_value={$lq__event_presenter_obj.external_id} field_value={$lq__event_presenter_obj.external_id}
allow_null={false} allow_null={false}
hide_edit_btn={!$ae_loc.trusted_access || !$ae_loc.edit_mode} hide_edit_btn={!$ae_loc.administrator_access || !$ae_loc.edit_mode}
outline_element={false} outline_element={false}
show_crud={false} show_crud={false}
display_inline={true} display_inline={true}
@@ -479,11 +485,88 @@ $: if ($lq__event_presenter_obj) {
}); });
}} }}
> >
External ID: {$lq__event_obj?.mod_pres_mgmt_json?.external_id_label ?? 'External ID'}:
<span class="font-bold"> <span class="font-bold">
{$lq__event_presenter_obj?.external_id ?? '-- not set --'} {$lq__event_presenter_obj?.external_id ?? '-- not set --'}
</span> </span>
</Element_ae_crud> </Element_ae_crud>
{#if $lq__event_presenter_obj.external_id != $lq__event_presenter_obj.person_external_id}
<div>
<Element_ae_crud
api_cfg={$ae_api}
object_type={'person'}
object_id={$lq__event_presenter_obj.person_id_random}
field_name={'external_id'}
field_type={'text'}
field_value={$lq__event_presenter_obj.person_external_id}
allow_null={false}
hide_edit_btn={!$ae_loc.administrator_access || !$ae_loc.edit_mode}
outline_element={false}
show_crud={false}
display_inline={true}
class_li={''}
on:ae_crud_updated={e => {
console.log(`ae_crud_updated:`, e.detail);
events_func.handle_load_ae_obj_id__event_presenter({api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj.event_presenter_id_random, log_lvl: 0})
.then(function (load_results) {
// Maybe reload page?
// window.location.reload();
});
}}
>
<span class="fas fa-star-of-life"></span>
Person External ID:
<span class="font-bold">
{$lq__event_presenter_obj.person_external_id ?? '-- not set --'}
</span>
</Element_ae_crud>
<Element_ae_crud
trigger_patch={ae_triggers.update_person_external_id}
api_cfg={$ae_api}
object_type={'person'}
object_id={$lq__event_presenter_obj.person_id_random}
field_name={'external_id'}
field_type={'text'}
field_value={$lq__event_presenter_obj.external_id}
allow_null={false}
hide_edit_btn={true}
outline_element={false}
show_crud={false}
display_inline={true}
class_li={''}
on:ae_crud_updated={e => {
console.log(`ae_crud_updated:`, e.detail);
events_func.handle_load_ae_obj_id__event_presenter({api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj?.event_presenter_id_random, log_lvl: 0})
.then(function (load_results) {
// Maybe reload page?
// window.location.reload();
});
}}
>
<button
type="button"
on:click={() => {
console.log('*** Sync external ID button clicked ***');
if (!confirm('Are you sure you want to sync the external IDs?')) {return false;}
ae_triggers.update_person_external_id = true;
}}
class="btn btn-sm variant-soft-warning hover:variant-ghost-warning"
title="Use the external ID from this presenter record to overwrite the person record."
>
<span class="fas fa-sync-alt mx-1"></span>
Sync
</button>
</Element_ae_crud>
</div>
{/if}
</li>
<li> <li>
<span class="fas fa-user"></span> <span class="fas fa-user"></span>
<!-- {#if !$events_sess.pres_mgmt.show_edit__event_presenter_name} <!-- {#if !$events_sess.pres_mgmt.show_edit__event_presenter_name}
@@ -552,6 +635,7 @@ $: if ($lq__event_presenter_obj) {
</span> </span>
</Element_ae_crud> </Element_ae_crud>
</li> </li>
<li <li
class:hidden={!$ae_loc.trusted_access && !$events_loc.auth__kv.presenter[$lq__event_presenter_obj.event_presenter_id_random] && !$events_loc.auth__kv.session[$lq__event_presenter_obj.event_session_id_random]} class:hidden={!$ae_loc.trusted_access && !$events_loc.auth__kv.presenter[$lq__event_presenter_obj.event_presenter_id_random] && !$events_loc.auth__kv.session[$lq__event_presenter_obj.event_session_id_random]}
> >
@@ -589,86 +673,90 @@ $: if ($lq__event_presenter_obj) {
</Element_ae_crud> </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.email}
<div> <div>
<Element_ae_crud <Element_ae_crud
api_cfg={$ae_api} api_cfg={$ae_api}
object_type={'person'} object_type={'person'}
object_id={$lq__event_presenter_obj.person_id_random} object_id={$lq__event_presenter_obj.person_id_random}
field_name={'primary_email'} field_name={'primary_email'}
field_type={'text'} field_type={'text'}
field_value={$lq__event_presenter_obj.person_primary_email} field_value={$lq__event_presenter_obj.person_primary_email}
allow_null={false} allow_null={false}
hide_edit_btn={!$ae_loc.trusted_access || !$ae_loc.edit_mode} hide_edit_btn={!$ae_loc.trusted_access || !$ae_loc.edit_mode}
outline_element={false} outline_element={false}
show_crud={false} show_crud={false}
display_inline={true} display_inline={true}
class_li={''} class_li={''}
on:ae_crud_updated={e => { on:ae_crud_updated={e => {
console.log(`ae_crud_updated:`, e.detail); console.log(`ae_crud_updated:`, e.detail);
events_func.handle_load_ae_obj_id__event_presenter({api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj.event_presenter_id_random, log_lvl: 0}) events_func.handle_load_ae_obj_id__event_presenter({api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj.event_presenter_id_random, log_lvl: 0})
.then(function (load_results) { .then(function (load_results) {
// Maybe reload page? // Maybe reload page?
// window.location.reload(); // window.location.reload();
}); });
}}
>
<span class="fas fa-star-of-life"></span>
<span class="fas fa-envelope"></span>
<span class="font-bold">
<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>
</Element_ae_crud>
<!-- We need a way to let them re-sync the email addresses. The update here should flow back to the person.primary_email. -->
<Element_ae_crud
trigger_patch={ae_triggers.update_person_primary_email}
api_cfg={$ae_api}
object_type={'person'}
object_id={$lq__event_presenter_obj.person_id_random}
field_name={'primary_email'}
field_type={'text'}
field_value={$lq__event_presenter_obj.email}
allow_null={false}
hide_edit_btn={true}
outline_element={false}
show_crud={false}
display_inline={true}
class_li={''}
on:ae_crud_updated={e => {
console.log(`ae_crud_updated:`, e.detail);
events_func.handle_load_ae_obj_id__event_presenter({api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj?.event_presenter_id_random, log_lvl: 0})
.then(function (load_results) {
// Maybe reload page?
// window.location.reload();
});
}}
>
<button
type="button"
on:click={() => {
console.log('*** Sync email button clicked ***');
if (!confirm('Are you sure you want to sync the email addresses?')) {return false;}
ae_triggers.update_person_primary_email = true;
}} }}
class="btn btn-sm variant-soft-warning hover:variant-ghost-warning"
title="Use the email address from this presenter record to overwrite the person record."
> >
<span class="fas fa-sync-alt mx-1"></span> <span class="fas fa-star-of-life"></span>
Sync <span class="fas fa-envelope"></span>
</button> <span class="font-bold">
</Element_ae_crud> <a
</div> 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>
</Element_ae_crud>
{#if $ae_loc.trusted_access}
<!-- We need a way to let them re-sync the email addresses. The update here should flow back to the person.primary_email. -->
<Element_ae_crud
trigger_patch={ae_triggers.update_person_primary_email}
api_cfg={$ae_api}
object_type={'person'}
object_id={$lq__event_presenter_obj.person_id_random}
field_name={'primary_email'}
field_type={'text'}
field_value={$lq__event_presenter_obj.email}
allow_null={false}
hide_edit_btn={true}
outline_element={false}
show_crud={false}
display_inline={true}
class_li={''}
on:ae_crud_updated={e => {
console.log(`ae_crud_updated:`, e.detail);
events_func.handle_load_ae_obj_id__event_presenter({api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj?.event_presenter_id_random, log_lvl: 0})
.then(function (load_results) {
// Maybe reload page?
// window.location.reload();
});
}}
>
<button
type="button"
on:click={() => {
console.log('*** Sync email button clicked ***');
if (!confirm('Are you sure you want to sync the email addresses?')) {return false;}
ae_triggers.update_person_primary_email = true;
}}
class="btn btn-sm variant-soft-warning hover:variant-ghost-warning"
title="Use the email address from this presenter record to overwrite the person record."
>
<span class="fas fa-sync-alt mx-1"></span>
Sync
</button>
</Element_ae_crud>
{/if}
</div>
{/if} {/if}
</li> </li>
<li> <li>
<Element_ae_crud <Element_ae_crud
api_cfg={$ae_api} api_cfg={$ae_api}
object_type={'event_presenter'} object_type={'event_presenter'}
@@ -687,8 +775,6 @@ $: if ($lq__event_presenter_obj) {
events_func.handle_load_ae_obj_id__event_presenter({api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj?.event_presenter_id_random, log_lvl: 0}) events_func.handle_load_ae_obj_id__event_presenter({api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj?.event_presenter_id_random, log_lvl: 0})
.then(function (load_results) { .then(function (load_results) {
// Maybe reload page?
// window.location.reload();
}); });
}} }}
> >
@@ -699,81 +785,81 @@ $: if ($lq__event_presenter_obj) {
</Element_ae_crud> </Element_ae_crud>
{#if $lq__event_presenter_obj.person_affiliations != $lq__event_presenter_obj.affiliations} {#if $lq__event_presenter_obj.person_affiliations != $lq__event_presenter_obj.affiliations}
<div> <div>
<Element_ae_crud <Element_ae_crud
api_cfg={$ae_api} api_cfg={$ae_api}
object_type={'person'} object_type={'person'}
object_id={$lq__event_presenter_obj.person_id_random} object_id={$lq__event_presenter_obj.person_id_random}
field_name={'affiliations'} field_name={'affiliations'}
field_type={'text'} field_type={'text'}
field_value={$lq__event_presenter_obj.person_affiliations} field_value={$lq__event_presenter_obj.person_affiliations}
allow_null={false} allow_null={false}
hide_edit_btn={!$ae_loc.trusted_access || !$ae_loc.edit_mode} hide_edit_btn={!$ae_loc.trusted_access || !$ae_loc.edit_mode}
outline_element={false} outline_element={false}
show_crud={false} show_crud={false}
display_inline={true} display_inline={true}
class_li={''} class_li={''}
on:ae_crud_updated={e => { on:ae_crud_updated={e => {
console.log(`ae_crud_updated:`, e.detail); console.log(`ae_crud_updated:`, e.detail);
events_func.handle_load_ae_obj_id__event_presenter({api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj.event_presenter_id_random, log_lvl: 0}) events_func.handle_load_ae_obj_id__event_presenter({api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj.event_presenter_id_random, log_lvl: 0});
.then(function (load_results) {
// Maybe reload page?
// window.location.reload();
});
}}
>
<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 --'}
</span>
</Element_ae_crud>
<Element_ae_crud
trigger_patch={ae_triggers.update_person_affiliations}
api_cfg={$ae_api}
object_type={'person'}
object_id={$lq__event_presenter_obj.person_id_random}
field_name={'affiliations'}
field_type={'text'}
field_value={$lq__event_presenter_obj.affiliations}
allow_null={false}
hide_edit_btn={true}
outline_element={false}
show_crud={false}
display_inline={true}
class_li={''}
on:ae_crud_updated={e => {
console.log(`ae_crud_updated:`, e.detail);
events_func.handle_load_ae_obj_id__event_presenter({api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj?.event_presenter_id_random, log_lvl: 0})
.then(function (load_results) {
// Maybe reload page?
// window.location.reload();
});
}}
>
<button
type="button"
on:click={() => {
console.log('*** Sync affiliations button clicked ***');
if (!confirm('Are you sure you want to sync the affiliations?')) {return false;}
ae_triggers.update_person_affiliations = true;
}} }}
class="btn btn-sm variant-soft-warning hover:variant-ghost-warning"
title="Use the affiliations from this presenter record to overwrite the person record."
> >
<span class="fas fa-sync-alt mx-1"></span> <span class="fas fa-star-of-life"></span>
Sync <span class="fas fa-building"></span>
</button> <span class="font-bold">
</Element_ae_crud> {$lq__event_presenter_obj.person_affiliations ?? '-- affiliations not set --'}
</div> </span>
</Element_ae_crud>
{#if $ae_loc.trusted_access}
<Element_ae_crud
trigger_patch={ae_triggers.update_person_affiliations}
api_cfg={$ae_api}
object_type={'person'}
object_id={$lq__event_presenter_obj.person_id_random}
field_name={'affiliations'}
field_type={'text'}
field_value={$lq__event_presenter_obj.affiliations}
allow_null={false}
hide_edit_btn={true}
outline_element={false}
show_crud={false}
display_inline={true}
class_li={''}
on:ae_crud_updated={e => {
console.log(`ae_crud_updated:`, e.detail);
events_func.handle_load_ae_obj_id__event_presenter({api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj?.event_presenter_id_random, log_lvl: 0})
.then(function (load_results) {
// Maybe reload page?
// window.location.reload();
});
}}
>
<button
type="button"
on:click={() => {
console.log('*** Sync affiliations button clicked ***');
if (!confirm('Are you sure you want to sync the affiliations?')) {return false;}
ae_triggers.update_person_affiliations = true;
}}
class="btn btn-sm variant-soft-warning hover:variant-ghost-warning"
title="Use the affiliations from this presenter record to overwrite the person record."
>
<span class="fas fa-sync-alt mx-1"></span>
Sync
</button>
</Element_ae_crud>
{/if}
</div>
{/if} {/if}
</li> </li>
<li> <li>
<Element_ae_crud <Element_ae_crud
api_cfg={$ae_api} api_cfg={$ae_api}
object_type={'event_presenter'} object_type={'event_presenter'}
@@ -792,8 +878,6 @@ $: if ($lq__event_presenter_obj) {
events_func.handle_load_ae_obj_id__event_presenter({api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj?.event_presenter_id_random, log_lvl: 0}) events_func.handle_load_ae_obj_id__event_presenter({api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj?.event_presenter_id_random, log_lvl: 0})
.then(function (load_results) { .then(function (load_results) {
// Maybe reload page?
// window.location.reload();
}); });
}} }}
> >
@@ -802,54 +886,79 @@ $: if ($lq__event_presenter_obj) {
{$lq__event_presenter_obj.professional_title && $lq__event_presenter_obj.professional_title.length ? $lq__event_presenter_obj.professional_title : '-- professional title not set --'} {$lq__event_presenter_obj.professional_title && $lq__event_presenter_obj.professional_title.length ? $lq__event_presenter_obj.professional_title : '-- professional title not set --'}
</span> </span>
</Element_ae_crud> </Element_ae_crud>
</li>
<li
class:hidden={!$ae_loc.trusted_access && !$events_loc.auth__kv.presenter[$lq__event_presenter_obj.event_presenter_id_random]}
>
<Element_ae_crud
api_cfg={$ae_api}
object_type={'person'}
object_id={$lq__event_presenter_obj.person_id_random}
field_name={'passcode'}
field_type={'text'}
field_value={$lq__event_presenter_obj.person_passcode}
allow_null={true}
hide_edit_btn={!$ae_loc.trusted_access || !$ae_loc.edit_mode}
outline_element={false}
show_crud={false}
display_inline={false}
class_li={''}
on:ae_crud_updated={e => {
console.log(`ae_crud_updated:`, e.detail);
events_func.handle_load_ae_obj_id__event_presenter({api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj?.event_presenter_id_random, log_lvl: 0}) {#if $lq__event_presenter_obj.person_professional_title != $lq__event_presenter_obj.professional_title}
.then(function (load_results) { <div>
// Maybe reload page? <Element_ae_crud
// window.location.reload(); api_cfg={$ae_api}
}); object_type={'person'}
}} object_id={$lq__event_presenter_obj.person_id_random}
> field_name={'professional_title'}
<span class="fas fa-user-secret"></span> field_type={'text'}
Passcode: field_value={$lq__event_presenter_obj.person_professional_title}
<span allow_null={false}
class="font-bold" hide_edit_btn={!$ae_loc.trusted_access || !$ae_loc.edit_mode}
outline_element={false}
show_crud={false}
display_inline={true}
class_li={''}
on:ae_crud_updated={e => {
console.log(`ae_crud_updated:`, e.detail);
events_func.handle_load_ae_obj_id__event_presenter({api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj.event_presenter_id_random, log_lvl: 0});
}}
> >
{$lq__event_presenter_obj.person_passcode ?? '-- passcode not set --'} <span class="fas fa-star-of-life"></span>
</span> <span class="fas fa-user-tag"></span>
</Element_ae_crud> <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 --'}
</span>
</Element_ae_crud>
<!-- <span class="fas fa-user-secret"></span> {#if $ae_loc.trusted_access}
{$lq__event_presenter_obj.person_passcode} (your passcode) <Element_ae_crud
trigger_patch={ae_triggers.update_person_professional_title}
api_cfg={$ae_api}
object_type={'person'}
object_id={$lq__event_presenter_obj.person_id_random}
field_name={'professional_title'}
field_type={'text'}
field_value={$lq__event_presenter_obj.professional_title}
allow_null={false}
hide_edit_btn={true}
outline_element={false}
show_crud={false}
display_inline={true}
class_li={''}
on:ae_crud_updated={e => {
console.log(`ae_crud_updated:`, e.detail);
events_func.handle_load_ae_obj_id__event_presenter({api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj?.event_presenter_id_random, log_lvl: 0})
.then(function (load_results) {
// Maybe reload page?
// window.location.reload();
});
}}
>
<button
type="button"
on:click={() => {
console.log('*** Sync professional title button clicked ***');
if (!confirm('Are you sure you want to sync the professional title?')) {return false;}
ae_triggers.update_person_professional_title = true;
}}
class="btn btn-sm variant-soft-warning hover:variant-ghost-warning"
title="Use the professional title from this presenter record to overwrite the person record."
>
<span class="fas fa-sync-alt mx-1"></span>
Sync
</button>
</Element_ae_crud>
{/if}
</div>
{/if}
<button
title="Edit your passcode"
class="btn btn-sm variant-soft-warning"
class:hidden={!$ae_loc.trusted_access}
>
<span class="fas fa-edit">
</span>
Edit
</button> -->
</li> </li>
<li> <li>
@@ -968,6 +1077,7 @@ $: if ($lq__event_presenter_obj) {
console.log('*** Sync person button clicked ***'); console.log('*** Sync person button clicked ***');
if (!confirm('Are you sure you want to sync from the person record?')) {return false;} if (!confirm('Are you sure you want to sync from the person record?')) {return false;}
// NOTE: The external_id should not really be changed once it is set. The person.external_sys_id may need to be updated as well.
let event_presenter_data = { let event_presenter_data = {
'external_id': $lq__event_presenter_obj.person_external_id, 'external_id': $lq__event_presenter_obj.person_external_id,
'given_name': $lq__event_presenter_obj.person_given_name, 'given_name': $lq__event_presenter_obj.person_given_name,
@@ -1008,7 +1118,7 @@ $: if ($lq__event_presenter_obj) {
let person_data = { let person_data = {
account_id_random: $slct.account_id, account_id_random: $slct.account_id,
source_code: 'manual:SK', source_code: 'manual:SK',
external_id: $lq__event_presenter_obj?.external_id?? 'new_presenter', external_id: $lq__event_presenter_obj?.external_id?? 'AE-temp-ID',
// user_id_random: user_obj.user_id_random, // user_id_random: user_obj.user_id_random,
given_name: $lq__event_presenter_obj.given_name?? 'New', given_name: $lq__event_presenter_obj.given_name?? 'New',
family_name: $lq__event_presenter_obj?.family_name?? 'Presenter', family_name: $lq__event_presenter_obj?.family_name?? 'Presenter',
@@ -1048,6 +1158,93 @@ $: if ($lq__event_presenter_obj) {
</li> </li>
<li
class:hidden={!$ae_loc.trusted_access && !$events_loc.auth__kv.presenter[$lq__event_presenter_obj.event_presenter_id_random]}
>
<Element_ae_crud
api_cfg={$ae_api}
object_type={'person'}
object_id={$lq__event_presenter_obj.person_id_random}
field_name={'passcode'}
field_type={'text'}
field_value={$lq__event_presenter_obj.person_passcode}
allow_null={true}
hide_edit_btn={!$ae_loc.trusted_access || !$ae_loc.edit_mode}
outline_element={false}
show_crud={false}
display_inline={false}
class_li={''}
on:ae_crud_updated={e => {
console.log(`ae_crud_updated:`, e.detail);
events_func.handle_load_ae_obj_id__event_presenter({api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj?.event_presenter_id_random, log_lvl: 0})
.then(function (load_results) {
// Maybe reload page?
// window.location.reload();
});
}}
>
<span class="fas fa-star-of-life"></span>
<span class="fas fa-user-secret"></span>
Passcode:
<span
class="font-bold"
>
{$lq__event_presenter_obj.person_passcode ?? '-- passcode not set --'}
</span>
</Element_ae_crud>
<!-- <span class="fas fa-user-secret"></span>
{$lq__event_presenter_obj.person_passcode} (your passcode)
<button
title="Edit your passcode"
class="btn btn-sm variant-soft-warning"
class:hidden={!$ae_loc.trusted_access}
>
<span class="fas fa-edit">
</span>
Edit
</button> -->
</li>
<li
class:hidden={!$ae_loc.trusted_access || !$ae_loc.edit_mode}
>
<Element_ae_crud
api_cfg={$ae_api}
object_type={'person'}
object_id={$lq__event_presenter_obj.person_id_random}
field_name={'external_sys_id'}
field_type={'text'}
field_value={$lq__event_presenter_obj.person_external_sys_id}
allow_null={true}
hide_edit_btn={!$ae_loc.administrator_access || !$ae_loc.edit_mode}
outline_element={false}
show_crud={false}
display_inline={false}
class_li={''}
on:ae_crud_updated={e => {
console.log(`ae_crud_updated:`, e.detail);
events_func.handle_load_ae_obj_id__event_presenter({api_cfg: $ae_api, event_presenter_id: $lq__event_presenter_obj?.event_presenter_id_random, log_lvl: 0})
.then(function (load_results) {
// Maybe reload page?
// window.location.reload();
});
}}
>
<span class="fas fa-star-of-life"></span>
<span class="fas fa-fingerprint"></span>
External Sys ID:
<span
class="font-bold"
>
{$lq__event_presenter_obj.person_external_sys_id ?? '-- external_sys_id not set --'}
</span>
</Element_ae_crud>
</li>
<!-- The presenters biography. There should be a character counter. --> <!-- The presenters biography. There should be a character counter. -->
<li> <li>
<div class="label event_presenter__biography required space-y-4"> <div class="label event_presenter__biography required space-y-4">