Work on new core person list, view, and edit

This commit is contained in:
Scott Idem
2024-07-17 14:59:15 -04:00
parent ad1e42010a
commit 625169a321
14 changed files with 1360 additions and 89 deletions

View File

@@ -82,7 +82,7 @@ $slct.person_obj_kv = {}; // This is intended for the POC lookup list when gener
// };
onMount(() => {
console.log('Events Session [slug]: presenter_view.svelte');
console.log('Events Pres Mgmt: presenter_view.svelte');
console.log(`event_presenter_id:`, event_presenter_id);
$slct_trigger = 'load__event_file_obj_li';
@@ -344,7 +344,7 @@ async function handle_delete__event_file({event_file_id}) {
</span>
<a
href="/events_pres_mgmt/session/{$lq__event_presenter_obj.event_session_id_random}"
class="text-blue-500 hover:underline"
class="text-blue-500 hover:text-blue-800 hover:underline"
title="ID: {$lq__event_presentation_obj?.event_session_id_random}"
>{$lq__event_presenter_obj.event_session_name}</a>
</h3>
@@ -388,6 +388,38 @@ async function handle_delete__event_file({event_file_id}) {
<ul
class="space-y-2 px-4"
>
<li
class:hidden={!$ae_loc.trusted_access && !$ae_loc.edit_mode}
>
<Element_ae_crud
api_cfg={$ae_api}
object_type={'event_presenter'}
object_id={$lq__event_presenter_obj.event_presenter_id_random}
field_name={'external_id'}
field_type={'text'}
field_value={$lq__event_presenter_obj.external_id}
allow_null={false}
hide_edit_btn={!$ae_loc.trusted_access || !$ae_loc.edit_mode}
outline_element={false}
show_crud={false}
display_inline={true}
display_block_edit={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: 1})
.then(function (load_results) {
// Maybe reload page?
// window.location.reload();
});
}}
>
External ID:
<span class="font-bold">
{$lq__event_presenter_obj?.external_id ?? '-- not set --'}
</span>
</Element_ae_crud>
<li>
<span class="fas fa-user"></span>
<!-- {#if !$events_sess.pres_mgmt.show_edit__event_presenter_name}
@@ -396,6 +428,10 @@ async function handle_delete__event_file({event_file_id}) {
<!-- <div
hidden={!$events_sess.pres_mgmt.show_edit__event_presenter_name}
> -->
<!-- </div> -->
<!-- {/if} -->
<Element_ae_crud
api_cfg={$ae_api}
object_type={'event_presenter'}
@@ -451,19 +487,6 @@ async function handle_delete__event_file({event_file_id}) {
{$lq__event_presenter_obj.family_name}
</span>
</Element_ae_crud>
<!-- </div> -->
<!-- {/if} -->
<!-- <button
on:click={() => {
console.log('*** Edit button clicked ***');
$events_sess.pres_mgmt.show_edit__event_presenter_name = !$events_sess.pres_mgmt.show_edit__event_presenter_name;
}}
class="btn btn-sm variant-soft-warning hover:variant-ghost-warning"
>
<span class="fas fa-edit mx-1"></span>
Edit
</button> -->
</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]}
@@ -495,7 +518,7 @@ async function handle_delete__event_file({event_file_id}) {
<span class="font-bold">
<a
href="mailto:{$lq__event_presenter_obj.email}"
class="text-blue-500"
class="text-blue-500 hover:text-blue-800 hover:underline"
title="Presenter's email address"
>{$lq__event_presenter_obj.email}</a>
</span>
@@ -531,7 +554,7 @@ async function handle_delete__event_file({event_file_id}) {
<span class="font-bold">
<a
href="mailto:{$lq__event_presenter_obj.person_primary_email}"
class="text-blue-500"
class="text-blue-500 underline hover:text-blue-800"
title="Person's primary email address"
>{$lq__event_presenter_obj.person_primary_email}</a>
</span>
@@ -874,7 +897,7 @@ async function handle_delete__event_file({event_file_id}) {
{/if}
<!-- A sync button to use the person record fields to update the event_presenter fields -->
{#if $ae_loc.administrator_access}
{#if $ae_loc.administrator_access && $lq__event_presenter_obj?.person_id_random}
<button
type="button"
on:click={() => {
@@ -912,6 +935,53 @@ async function handle_delete__event_file({event_file_id}) {
</button>
{/if}
{#if $ae_loc.administrator_access && !$lq__event_presenter_obj?.person_id_random}
<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?? 'new_presenter',
// 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: 1,
})
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: 1,
})
}}
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>
<!-- The presenters biography. There should be a character counter. -->