diff --git a/src/lib/ae_events_functions.ts b/src/lib/ae_events_functions.ts index 1424f1ae..7e7134c1 100644 --- a/src/lib/ae_events_functions.ts +++ b/src/lib/ae_events_functions.ts @@ -57,7 +57,7 @@ async function handle_load_ae_obj_li__event( log_lvl?: number } ) { - console.log(`*** handle_load_ae_obj_li__event() ***`); + console.log(`*** handle_load_ae_obj_li__event() *** account_id=${account_id}`); let enabled: string = (params.qry__enabled ?? 'enabled'); // all, disabled, enabled let hidden: string = (params.qry__hidden ?? 'not_hidden'); // all, hidden, not_hidden @@ -103,6 +103,51 @@ async function handle_load_ae_obj_li__event( } +// Updated 2024-06-10 +async function handle_load_ae_obj_id__event_session( + { + api_cfg, + event_session_id, + try_cache=false, + log_lvl=0 + } : { + api_cfg: any, + event_session_id: string, + try_cache?: boolean, + log_lvl?: number + } + ) { + console.log(`*** handle_load_ae_obj_id__event_session() *** event_session_id=${event_session_id}`); + + let params = {}; + + // $events_sess.badges.status_load__event_session_obj = 'loading'; + ae_promises.load__event_session_obj = await api.get_ae_obj_id_crud({ + api_cfg: api_cfg, + obj_type: 'event_session', + obj_id: event_session_id, // NOTE: This is the FQDN, not normally the ID. + use_alt_table: false, // NOTE: This will use the table_name_alt value instead of the table_name value in the API config. + use_alt_base: false, // NOTE: This will use the base_name_alt value instead of the base_name value in the API config. + params: params, + log_lvl: 0 + }) + .then(function (event_session_obj_get_result) { + if (event_session_obj_get_result) { + // This is expecting a list + handle_db_save_ae_obj_li__event_session({obj_type: 'event_session', obj_li: [event_session_obj_get_result]}); + return event_session_obj_get_result; + } else { + console.log('No results returned.'); + return null; + } + }) + .catch(function (error) { + console.log('No results returned or failed.', error); + }); + + return ae_promises.load__event_session_obj; +} + // Updated 2024-05-24 async function handle_load_ae_obj_li__event_session( @@ -163,6 +208,127 @@ async function handle_load_ae_obj_li__event_session( return ae_promises.load__event_session } + +// Updated 2024-06-10 +async function handle_load_ae_obj_li__event_presentation( + { + api_cfg, + event_session_id, + params={}, + try_cache=true, + log_lvl=0 + } : { + api_cfg: any, + event_session_id: string, + params?: key_val, + try_cache?: boolean, + log_lvl?: number + } + ) { + console.log(`*** handle_load_ae_obj_li__event_presentation() *** event_session_id=${event_session_id}`); + + let enabled: string = (params.qry__enabled ?? 'enabled'); // all, disabled, enabled + let hidden: string = (params.qry__hidden ?? 'not_hidden'); // all, hidden, not_hidden + let limit: number = (params.qry__limit ?? 99); // 99 + let offset: number = (params.qry__offset ?? 0); // 0 + + let params_json: key_val = {}; + + // console('params_json:', params_json); + + ae_promises.load__event_presentation_obj_li = await api.get_ae_obj_li_for_obj_id_crud({ + api_cfg: api_cfg, + obj_type: 'event_presentation', + for_obj_type: 'event_session', + for_obj_id: event_session_id, + use_alt_table: true, // NOTE: This will use the table_name_alt value instead of the table_name value in the API config. + use_alt_base: false, // NOTE: This will use the base_name_alt value instead of the base_name value + enabled: enabled, + hidden: hidden, + order_by_li: {'start_datetime': 'ASC', 'name': 'ASC', 'updated_on': 'DESC', 'created_on': 'DESC'}, + limit: limit, + offset: offset, + params_json: params_json, + params: params, + log_lvl: log_lvl + }) + .then(function (event_presentation_obj_li_get_result) { + if (event_presentation_obj_li_get_result) { + handle_db_save_ae_obj_li__event_presentation({obj_type: 'event_presentation', obj_li: event_presentation_obj_li_get_result}); + return event_presentation_obj_li_get_result; + } else { + return []; + } + }) + .catch(function (error) { + console.log('No results returned or failed.', error); + }); + + console.log('ae_promises.load__event_presentation_obj_li:', ae_promises.load__event_presentation_obj_li); + return ae_promises.load__event_presentation_obj_li; +} + + +// Updated 2024-06-10 +async function handle_load_ae_obj_li__event_presenter( + { + api_cfg, + event_presentation_id, + params={}, + try_cache=true, + log_lvl=0 + } : { + api_cfg: any, + event_presentation_id: string, + params?: key_val, + try_cache?: boolean, + log_lvl?: number + } + ) { + console.log(`*** handle_load_ae_obj_li__event_presenter() *** event_presentation_id=${event_presentation_id}`); + + let enabled: string = (params.qry__enabled ?? 'enabled'); // all, disabled, enabled + let hidden: string = (params.qry__hidden ?? 'not_hidden'); // all, hidden, not_hidden + let limit: number = (params.qry__limit ?? 99); // 99 + let offset: number = (params.qry__offset ?? 0); // 0 + + let params_json: key_val = {}; + + // console.log('params_json:', params_json); + + ae_promises.load__event_presenter_obj_li = await api.get_ae_obj_li_for_obj_id_crud({ + api_cfg: api_cfg, + obj_type: 'event_presenter', + for_obj_type: 'event_presentation', + for_obj_id: event_presentation_id, + use_alt_table: true, // NOTE: This will use the table_name_alt value instead of the table_name value in the API config. + use_alt_base: false, // NOTE: This will use the base_name_alt value instead of the base_name value + enabled: enabled, + hidden: hidden, + order_by_li: {'priority': 'DESC', 'sort': 'DESC', 'updated_on': 'DESC', 'created_on': 'DESC'}, + limit: limit, + offset: offset, + params_json: params_json, + params: params, + log_lvl: log_lvl + }) + .then(function (event_presenter_obj_li_get_result) { + if (event_presenter_obj_li_get_result) { + handle_db_save_ae_obj_li__event_presenter({obj_type: 'event_presenter', obj_li: event_presenter_obj_li_get_result}); + return event_presenter_obj_li_get_result; + } else { + return []; + } + }) + .catch(function (error) { + console.log('No results returned or failed.', error); + }); + + console.log('ae_promises.load__event_presenter_obj_li:', ae_promises.load__event_presenter_obj_li); + return ae_promises.load__event_presenter_obj_li; +} + + async function handle_load_ae_obj_id__badge({api_cfg, badge_id, try_cache=false}) { console.log(`*** handle_load_ae_obj_id__badge() *** badge_id=${badge_id}`); @@ -199,17 +365,17 @@ async function handle_load_ae_obj_id__badge({api_cfg, badge_id, try_cache=false} // Updated 2024-03-06 async function handle_load_ae_obj_li__badge( { - api_cfg, - event_id, - params={}, - try_cache=true, - log_lvl=0 + api_cfg, + event_id, + params={}, + try_cache=true, + log_lvl=0 }: { - api_cfg: any, - event_id: any, - params: any, - try_cache?: boolean, - log_lvl: number + api_cfg: any, + event_id: any, + params: any, + try_cache?: boolean, + log_lvl: number }) { console.log(`*** handle_load_ae_obj_li__badge() *** event_id=${event_id}`); @@ -1015,8 +1181,13 @@ function handle_db_save_ae_obj_li__event_session({obj_type, obj_li}) { start_datetime: obj.start_datetime, end_datetime: obj.end_datetime, + passcode: obj.passcode, + hide_event_launcher: obj.hide_event_launcher, + alert: obj.alert, + alert_msg: obj.alert_msg, + enable: obj.enable, hide: obj.hide, priority: obj.priority, @@ -1025,6 +1196,11 @@ function handle_db_save_ae_obj_li__event_session({obj_type, obj_li}) { notes: obj.notes, created_on: obj.created_on, updated_on: obj.updated_on, + + // From SQL view + // event_name: obj.event_name, + event_location_code: obj.event_location_code, + event_location_name: obj.event_location_name, }); // console.log(`Put obj with ID: ${obj.event_session_id_random} or ${id_random}`); } catch (error) { @@ -1041,6 +1217,140 @@ function handle_db_save_ae_obj_li__event_session({obj_type, obj_li}) { } +// This function will loop through the event_presentation_obj_li and save each one to the DB. +// Updated 2024-06-10 +function handle_db_save_ae_obj_li__event_presentation({obj_type, obj_li}) { + console.log(`*** handle_db_save_ae_obj_li__event_presentation() ***`); + + if (obj_li && obj_li.length) { + obj_li.forEach(async function (obj) { + // console.log(`ae_obj ${obj_type}:`, obj); + + try { + const id_random = await db_events.presentations.put({ + id_random: obj.event_presentation_id_random, + event_presentation_id_random: obj.event_presentation_id_random, + external_id: obj.external_id, + code: obj.code, + + for_type: obj.for_type, + for_id_random: obj.for_id_random, + + type_code: obj.type_code, + + event_id_random: obj.event_id_random, + event_session_id_random: obj.event_session_id_random, + event_abstract_id_random: obj.event_abstract_id_random, + + abstract_code: obj.abstract_code, + + name: obj.name, + description: obj.description, + + start_datetime: obj.start_datetime, + end_datetime: obj.end_datetime, + + passcode: obj.passcode, + + hide_event_launcher: obj.hide_event_launcher, + + enable: obj.enable, + hide: obj.hide, + priority: obj.priority, + sort: obj.sort, + group: obj.group, + notes: obj.notes, + created_on: obj.created_on, + updated_on: obj.updated_on, + }); + // console.log(`Put obj with ID: ${obj.event_presentation_id_random} or ${id_random}`); + } catch (error) { + let status = `Failed to put ${obj.event_presentation_id_random}: ${error}`; + console.log(status); + } + + // const id_random = await db_events.presentations.put(obj); + // console.log(`Put obj with ID: ${obj.event_presentation_id_random}`); + }); + + return true; + } +} + + +// Updated 2024-06-10 +function handle_db_save_ae_obj_li__event_presenter({obj_type, obj_li}) { + console.log(`*** handle_db_save_ae_obj_li__event_presenter() ***`); + + if (obj_li && obj_li.length) { + obj_li.forEach(async function (obj) { + // console.log(`ae_obj ${obj_type}:`, obj); + + try { + const id_random = await db_events.presenters.put({ + id_random: obj.event_presenter_id_random, + event_presenter_id_random: obj.event_presenter_id_random, + external_id: obj.external_id, + code: obj.code, + + // for_type: obj.for_type, + // for_id_random: obj.for_id_random, + + event_id_random: obj.event_id_random, + event_session_id_random: obj.event_session_id_random, + event_person_id_random: obj.event_person_id_random, + event_presentation_id_random: obj.event_presentation_id_random, + person_id_random: obj.person_id_random, + person_profile_id_random: obj.person_profile_id_random, // The new table person_profile will be used soon... + + pronouns: obj.pronouns, + informal_name: obj.informal_name, + title_names: obj.title_names, + given_name: obj.given_name, + middle_name: obj.middle_name, + family_name: obj.family_name, + designations: obj.designations, + + professional_title: obj.professional_title, + + full_name: obj.full_name, + + affiliations: obj.affiliations, + + email: obj.email, + + biography: obj.biography, + + agree: obj.agree, + comments: obj.comments, + + passcode: obj.passcode, + + hide_event_launcher: obj.hide_event_launcher, + + enable: obj.enable, + hide: obj.hide, + priority: obj.priority, + sort: obj.sort, + group: obj.group, + notes: obj.notes, + created_on: obj.created_on, + updated_on: obj.updated_on, + }); + // console.log(`Put obj with ID: ${obj.event_presenter_id_random} or ${id_random}`); + } catch (error) { + let status = `Failed to put ${obj.event_presenter_id_random}: ${error}`; + console.log(status); + } + + // const id_random = await db_events.presenters.put(obj); + // console.log(`Put obj with ID: ${obj.event_presenter_id_random}`); + }); + + return true; + } +} + async function handle_download_export__event_exhibit_tracking( { @@ -1081,8 +1391,13 @@ let export_obj = { handle_load_ae_obj_id__event: handle_load_ae_obj_id__event, handle_load_ae_obj_li__event: handle_load_ae_obj_li__event, + handle_load_ae_obj_id__event_session: handle_load_ae_obj_id__event_session, handle_load_ae_obj_li__event_session: handle_load_ae_obj_li__event_session, + handle_load_ae_obj_li__event_presentation: handle_load_ae_obj_li__event_presentation, + + handle_load_ae_obj_li__event_presenter: handle_load_ae_obj_li__event_presenter, + handle_load_ae_obj_id__badge: handle_load_ae_obj_id__badge, handle_load_ae_obj_li__badge: handle_load_ae_obj_li__badge, handle_search__event_badge: handle_search__event_badge, diff --git a/src/lib/ae_events_stores.ts b/src/lib/ae_events_stores.ts index de5b8ef8..5deac20d 100644 --- a/src/lib/ae_events_stores.ts +++ b/src/lib/ae_events_stores.ts @@ -8,7 +8,7 @@ import type { key_val } from '$lib/ae_stores'; // Longer-term app data. This should be stored to *local* storage. // Updated 2024-03-06 let events_local_data_struct: key_val = { - 'ver': '2024-03-12_19', + 'ver': '2024-06-11_11', // Shared 'name': 'Aether - Events (SvelteKit 2.x Svelte 4.x)', 'title': `OSIT's Æ Events`, // - Dev SvelteKit`, // Æ @@ -31,6 +31,45 @@ let events_local_data_struct: key_val = { // The show details is intended for things like meta data and additional details that are not always needed. show_details: false, + auth__person: {}, // allow, id, name, email, passcode, etc + // The auth__entered_key (usually email or person_id) and auth__entered_passcode is found under events_sess.entered_key and events_sess.entered_passcode because it should be temporary. + // auth__entered_passcode: null, + + // The auth__kv (key value pairs) is used to store the xyz IDs that the browser client can access. This is a key value list of xyz ID and created datetime stamp (or just true). These should not be more than X days old. + auth__kv: { + event: { + // 'LNDF-67-89-92': true + }, + exhibit: { + // 'LNDF-67-89-92': true + }, + location: { + // 'LNDF-67-89-92': true + }, + session: { + // 'LNDF-67-89-92': true + }, + presentation: { + // 'LNDF-67-89-92': true + }, + presenter: { + // 'LNDF-67-89-92': true + }, + person: { + // 'LNDF-67-89-92': true + }, + }, + + // auth__session_kv: { + // // {'LNDF-67-89-92': true} + // }, + // auth__presentation_kv: { + // // {'LNDF-67-89-92': true} + // }, + // auth__presenter_kv: { + // // {'LNDF-67-89-92': true} + // }, + // Badge Printing 'badges': { auto_view: true, @@ -57,7 +96,7 @@ let events_local_data_struct: key_val = { show_content__scan_requirements: true, show_content__custom_question_descriptions: true, show_content__email_link_warning: true, - + default_to_scan: true, // For ISHLT 2024 Annual Meeting only! @@ -93,6 +132,12 @@ let events_local_data_struct: key_val = { }, // Presentation Management (Distributing) + 'pres_mgmt': { + show_content__session_description: false, + show_content__presentation_description: false, + show_content__agree_text: false, + show_content__presenter_start: false, + }, // Speakers Management (Collection) 'speakers': { diff --git a/src/lib/db_events.ts b/src/lib/db_events.ts index a54a0d1b..c880d631 100644 --- a/src/lib/db_events.ts +++ b/src/lib/db_events.ts @@ -192,6 +192,8 @@ export interface Session { start_datetime: Date; end_datetime: Date; + passcode: null|string; + hide_event_launcher: null|boolean; enable: null|boolean; @@ -204,6 +206,93 @@ export interface Session { updated_on: null|Date; } +// Updated 2024-06-10 +export interface Presentation { + id_random: string; + event_presentation_id_random: string; + external_id: string; + code: string; + + for_type: string; + for_id_random: string; + + type_code: string; + + event_id_random: string; + event_session_id_random: string; + event_abstract_id_random: string; + + abstract_code: string; + + name: string; + description: null|string; + + start_datetime: Date; + end_datetime: Date; + + hide_event_launcher: null|boolean; + + enable: null|boolean; + hide: null|boolean; + priority: null|boolean + sort: null|number; + group: null|string; + notes: null|string; + created_on: Date; + updated_on: null|Date; +} + +// Updated 2024-06-10 +export interface Presenter { + id_random: string; + event_presenter_id_random: string; + external_id: string; + code: string; + + event_id_random: string; + event_session_id_random: string; + event_person_id_random: string; + event_presentation_id_random: string; + person_id_random: string; + person_profile_id_random: string; // The new table person_profile will be used soon... + + pronouns: null|string; + informal_name: null|string; + title_names: null|string; + given_name: string; + middle_name: null|string; + family_name: null|string; + designations: null|string; + + professional_title: null|string; + + full_name: string; + + affiliations: null|string; + + email: string; + + biography: null|string; + + agree: null|boolean; + comments: null|string; + + passcode: null|string; + + hide_event_launcher: null|boolean; + + enable: null|boolean; + hide: null|boolean; + priority: null|boolean + sort: null|number; + group: null|string; + notes: null|string; + created_on: Date; + updated_on: null|Date; +} + + +// Updated 2024-06-10 export class MySubClassedDexie extends Dexie { // 'badges' is added by dexie when declaring the stores() // We just tell the typing system this is the case @@ -250,6 +339,26 @@ export class MySubClassedDexie extends Dexie { for_type, for_id_random, type_code, event_id_random, event_location_id_random, name, description, start_datetime, end_datetime, + passcode, + hide_event_launcher, + enable, hide, priority, sort, group, notes, created_on, updated_on + `, + + presentations: ` + id_random, event_presentation_id_random, external_id, code, + for_type, for_id_random, type_code, + event_id_random, event_session_id_random, event_abstract_id_random, + abstract_code, name, description, start_datetime, end_datetime, + hide_event_launcher, + enable, hide, priority, sort, group, notes, created_on, updated_on`, + + presenters: ` + id_random, event_presenter_id_random, external_id, code, + event_id_random, event_session_id_random, event_person_id_random, event_presentation_id_random, + person_id_random, person_profile_id_random, + pronouns, informal_name, title_names, given_name, middle_name, family_name, designations, + professional_title, full_name, affiliations, email, + biography, agree, comments, passcode, hide_event_launcher, enable, hide, priority, sort, group, notes, created_on, updated_on`, }); diff --git a/src/routes/events_pres_mgmt/+layout.svelte b/src/routes/events_pres_mgmt/+layout.svelte index 2fbd7e8e..33fa8d38 100644 --- a/src/routes/events_pres_mgmt/+layout.svelte +++ b/src/routes/events_pres_mgmt/+layout.svelte @@ -44,6 +44,7 @@ onMount(() => { +{#if $ae_loc.administrator_access && 1==2} +{/if} diff --git a/src/routes/events_pres_mgmt/+page.svelte b/src/routes/events_pres_mgmt/+page.svelte index 3a9e99d9..8d39da5d 100644 --- a/src/routes/events_pres_mgmt/+page.svelte +++ b/src/routes/events_pres_mgmt/+page.svelte @@ -16,7 +16,11 @@ import Element_data_store from '$lib/element_data_store.svelte'; let event_obj_li = liveQuery( - () => db_events.events.toArray() + () => db_events.events + .orderBy('start_datetime') + .reverse() + .toArray() + // .sortBy('start_datetime') // () => db_events.events // .where('conference') // // .aboveOrEqual(0) diff --git a/src/routes/events_pres_mgmt/session/[slug]/+page.svelte b/src/routes/events_pres_mgmt/session/[slug]/+page.svelte new file mode 100644 index 00000000..39309f40 --- /dev/null +++ b/src/routes/events_pres_mgmt/session/[slug]/+page.svelte @@ -0,0 +1,745 @@ + + + +
+ + +{#if $events_slct.event_session_id && $event_session_obj} + +

{$event_session_obj.name}

+ + +
+

Session Information:

+ + + + + +
+{#if $ae_loc.trusted_access || $events_loc.auth__kv.session[$events_slct.event_session_id]} + + {#if $events_slct.presenter_obj.agree} + + + {:else} + +

Read and Consent Agreement?

+

+ Please select your name below to view, read, and consent the agreement. +

+
+ {/if} + + + +{:else} +
+

Restricted access!

+

+ Please select your name below to email the access link. + The email address associated with your LCI member record will be used. + This is not shown below for safety reasons. + +

+
+ +
+ Enter your key and passcode to sign in: + $events_sess.entered_key = e.target.value} + > + $events_sess.entered_passcode = e.target.value} + > + + + + + +
+ + +{/if} +
+ +
+ + + +
+

Presentations:

+{#await $events_slct.event_presentation_obj_li} +

Loading...

+{:then event_presentation_obj_li} + {#if event_presentation_obj_li && event_presentation_obj_li.length > 0} + + {:else} + Nothing to show yet... + {/if} +{:catch error} +

Error: {error.message}

+{/await} +
+ + +{/if} + +
+ +{#if $events_loc.pres_mgmt?.show_content__agree_text} +
+
+ +
+ + + + +

+ Presenter Agreement for:
+ {$events_slct.presenter_obj.full_name} ({$events_slct.presenter_obj.email}) +

+ + + +
+ +

+ {$events_slct.presenter_obj.full_name} ({$events_slct.presenter_obj.email}) agrees to the following terms and conditions for the presentation: +

+

Title: "{$events_slct.presentation_obj.name}"

+

Opt-Out?

+

Speaker does not permit the use of presentation materials as described in section(s), above for: (please check for all that apply)

+ + + + + + + + + + +

Agree?

+ + { + console.log(`ae_crud_updated event:`, e.detail); + events_func.handle_load_ae_obj_id__presenter({api_cfg: $ae_api, presenter_id: $events_slct.presenter_id}); + }} + > + {#if !$events_slct.presenter_obj?.agree} + Not Agreed: + + + Waiting for agreement + {:else} + Agreed: + + + Marked as agreed + {/if} + + {#if $ae_loc.trusted_access} + + {/if} + + +
+ + +
+ + + +
+
+{/if} + + + diff --git a/src/routes/events_pres_mgmt/session/[slug]/+page.ts b/src/routes/events_pres_mgmt/session/[slug]/+page.ts new file mode 100644 index 00000000..b00701f5 --- /dev/null +++ b/src/routes/events_pres_mgmt/session/[slug]/+page.ts @@ -0,0 +1,73 @@ +/** @type {import('./$types').PageLoad} */ +console.log(`ae_events_pres_mgmt_event [slug] +page.ts start`); + +import { events_func } from '$lib/ae_events_functions'; + +export async function load({ parent }) { // route + // console.log(`ae_events_pres_mgmt_event +page.ts data.params:`, params); + // console.log(`ae_events_pres_mgmt_event +page.ts data.route:`, route); + // console.log(`ae_events_pres_mgmt_event +page.ts data.url:`, url); + + let data = await parent(); + // console.log(`ae_events_pres_mgmt_event +page.ts data:`, data); + + let account_id = data.account_id; + let ae_acct = data[account_id]; + console.log(`ae_acct = `, ae_acct); + + if (!account_id) { + console.log(`events_pres_mgmt_event [slug] +page.ts: The account_id was not found in the data!!!`); + return false; + } + + data.ae_events_pres_mgmt_event_slug_page_ts = true; + + // let param_slug_event_session_id = data.params.slug; + + let event_session_id = data.params.slug; + if (!event_session_id) { + console.log(`events_pres_mgmt_event [slug] +layout.ts: The event_session_id was not found in the data.params.slug!!!`); + return false; + } + + ae_acct.slct.event_session_id = event_session_id; + + let load_event_session_obj = events_func.handle_load_ae_obj_id__event_session({api_cfg: ae_acct.api, event_session_id: event_session_id, try_cache: false}); + + ae_acct.slct.event_session_obj = await load_event_session_obj; + + let load_event_presentation_obj_li = await events_func.handle_load_ae_obj_li__event_presentation({ + api_cfg: ae_acct.api, + event_session_id: event_session_id, + params: {enabled: 'all', qry__limit: 50}, + try_cache: false + }) + .then((event_presentation_obj_li) => { + console.log(`event_presentation_obj_li = `, event_presentation_obj_li); + for (let index = 0; index < event_presentation_obj_li.length; index++) { + let event_presentation_obj = event_presentation_obj_li[index]; + let event_presentation_id = event_presentation_obj.event_presentation_id_random; + + let load_event_presenter_obj_li = events_func.handle_load_ae_obj_li__event_presenter({ + api_cfg: ae_acct.api, + event_presentation_id: event_presentation_id, + params: {enabled: 'all', qry__limit: 15}, + try_cache: false + }); + console.log(`load_event_presenter_obj_li = `, load_event_presenter_obj_li); + event_presentation_obj_li[index].event_presenter_li = load_event_presenter_obj_li; + // ae_acct.slct.event_presentation_obj_li[index].event_presenter_obj_li = load_event_presenter_obj_li; + } + + // ae_acct.slct.event_presentation_obj_li = event_presentation_obj_li; + + return event_presentation_obj_li; + }); + console.log(`load_event_presentation_obj_li = `, load_event_presentation_obj_li); + ae_acct.slct.event_presentation_obj_li = load_event_presentation_obj_li; + + // WARNING: Precaution against shared data between sites and presentations. + data[account_id] = ae_acct; + + return data; +}