diff --git a/src/lib/ae_events__event_presenter.ts b/src/lib/ae_events__event_presenter.ts index 21fa2cc1..7d2ce19f 100644 --- a/src/lib/ae_events__event_presenter.ts +++ b/src/lib/ae_events__event_presenter.ts @@ -439,6 +439,7 @@ export function handle_db_save_ae_obj_li__event_presenter( event_presentation_start_datetime: obj.event_presentation_start_datetime, person_external_id: obj.person_external_id, + person_external_sys_id: obj.person_external_sys_id, person_given_name: obj.person_given_name, person_family_name: obj.person_family_name, person_full_name: obj.person_full_name, diff --git a/src/lib/db_core.ts b/src/lib/db_core.ts index 73167533..fd913541 100644 --- a/src/lib/db_core.ts +++ b/src/lib/db_core.ts @@ -10,8 +10,8 @@ export interface Person { person_id: string; person_id_random: string; - external_id?: string; - external_sys_id?: string; // Generated by an external system + external_id?: string; // This may be semi-random or unique only withing the account. + 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; account_id?: string; // Technically this is not required for global users. diff --git a/src/lib/db_events.ts b/src/lib/db_events.ts index 6dc094f1..69079c84 100644 --- a/src/lib/db_events.ts +++ b/src/lib/db_events.ts @@ -1,6 +1,7 @@ import Dexie, { type Table } from 'dexie'; import type { list } from 'postcss'; import type { key_val } from './ae_stores'; +import type { o } from 'vitest/dist/reporters-B7ebVMkT.js'; // li = list // kv = key value list @@ -488,7 +489,8 @@ export interface Presenter { event_presentation_name?: string; 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_family_name?: null|string; person_full_name?: null|string; diff --git a/src/routes/events_pres_mgmt/presenter_view.svelte b/src/routes/events_pres_mgmt/presenter_view.svelte index 91aa64f0..b00a6ca7 100644 --- a/src/routes/events_pres_mgmt/presenter_view.svelte +++ b/src/routes/events_pres_mgmt/presenter_view.svelte @@ -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 { 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; @@ -33,6 +35,10 @@ ae_tmp.show__file_li = true; let ae_triggers: key_val = {}; +let lq__event_obj = liveQuery( + () => db_events.events.get($events_slct.event_id) +); + // let lq__event_session_obj = liveQuery( // () => db_events.sessions.get($events_slct.event_session_id) // ); @@ -463,7 +469,7 @@ $: if ($lq__event_presenter_obj) { 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} + hide_edit_btn={!$ae_loc.administrator_access || !$ae_loc.edit_mode} outline_element={false} show_crud={false} 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'}: {$lq__event_presenter_obj?.external_id ?? '-- not set --'} + + + {#if $lq__event_presenter_obj.external_id != $lq__event_presenter_obj.person_external_id} +
+ { + 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(); + }); + }} + > + + Person External ID: + + {$lq__event_presenter_obj.person_external_id ?? '-- not set --'} + + + + { + 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(); + }); + }} + > + + +
+ {/if} + +
  • - { - 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(); - }); - }} - > - - - + + + + {$lq__event_presenter_obj.person_primary_email} + + + + {#if $ae_loc.trusted_access} + + { + 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(); + }); + }} + > + + + {/if} + {/if}
  • +
  • + @@ -699,81 +785,81 @@ $: if ($lq__event_presenter_obj) { {#if $lq__event_presenter_obj.person_affiliations != $lq__event_presenter_obj.affiliations} -
    - { - 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}) - .then(function (load_results) { - // Maybe reload page? - // window.location.reload(); - }); - }} - > - - - - {$lq__event_presenter_obj.person_affiliations ?? '-- affiliations not set --'} - - - - { - 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(); - }); - }} - > - - -
    + + + + {$lq__event_presenter_obj.person_affiliations ?? '-- affiliations not set --'} + +
    + + {#if $ae_loc.trusted_access} + { + 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(); + }); + }} + > + + + {/if} +
    {/if}
  • +
  • + @@ -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 --'} -
  • -
  • - { - 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(); - }); - }} - > - - Passcode: - + { + 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 --'} - - + + + + {$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 --'} + + -
  • @@ -968,6 +1077,7 @@ $: if ($lq__event_presenter_obj) { console.log('*** Sync person button clicked ***'); 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 = { 'external_id': $lq__event_presenter_obj.person_external_id, 'given_name': $lq__event_presenter_obj.person_given_name, @@ -1008,7 +1118,7 @@ $: if ($lq__event_presenter_obj) { let person_data = { account_id_random: $slct.account_id, 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, given_name: $lq__event_presenter_obj.given_name?? 'New', family_name: $lq__event_presenter_obj?.family_name?? 'Presenter', @@ -1048,6 +1158,93 @@ $: if ($lq__event_presenter_obj) {
  • +
  • + { + 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(); + }); + }} + > + + + Passcode: + + {$lq__event_presenter_obj.person_passcode ?? '-- passcode not set --'} + + + + +
  • + +
  • + { + 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(); + }); + }} + > + + + External Sys ID: + + {$lq__event_presenter_obj.person_external_sys_id ?? '-- external_sys_id not set --'} + + +
  • +