From 8d8fb0b6388da178a7fe5396167ce9291ad7cc6c Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Wed, 27 Mar 2024 17:55:31 -0400 Subject: [PATCH] I guess this is better than it was... --- src/lib/ae_core_functions.ts | 110 +++++++- src/lib/ae_events_stores.ts | 2 +- src/lib/api.js | 16 +- src/lib/element_access_type.svelte | 2 +- src/lib/element_data_store.svelte | 3 +- src/routes/+layout.svelte | 37 ++- src/routes/+layout.ts | 125 ++++----- src/routes/events_badges/+layout.svelte | 29 +- src/routes/events_badges/+layout.ts | 29 +- src/routes/events_leads/+layout.svelte | 39 +-- src/routes/events_leads/+layout.ts | 37 +-- src/routes/events_leads/+page.svelte | 41 ++- src/routes/events_leads/+page.ts | 2 +- .../events_leads/exhibit/[slug]/+page.svelte | 18 +- .../events_leads/exhibit/[slug]/+page.ts | 40 +-- src/routes/events_speakers/+layout.svelte | 16 +- src/routes/events_speakers/+layout.ts | 190 ++++--------- src/routes/events_speakers/+page.svelte | 3 +- src/routes/events_speakers/[slug]/+layout.ts | 4 +- .../events_speakers/[slug]/+page.svelte | 3 +- src/routes/sponsorships/+layout.svelte | 29 +- src/routes/sponsorships/+layout.ts | 250 ++++++++++-------- 22 files changed, 582 insertions(+), 443 deletions(-) diff --git a/src/lib/ae_core_functions.ts b/src/lib/ae_core_functions.ts index 40ac0af6..6e21e285 100644 --- a/src/lib/ae_core_functions.ts +++ b/src/lib/ae_core_functions.ts @@ -1,3 +1,4 @@ +import { browser } from '$app/environment'; import type { key_val } from '$lib/ae_stores'; import { api } from '$lib/api'; @@ -56,7 +57,26 @@ async function handle_load_ae_obj_id__site_domain({ api_cfg, fqdn, try_cache=fal } // handle_load_ae_obj_code__data_store -async function handle_load_ae_obj_code__data_store({ api_cfg, code=null, data_type='text' }) { +async function handle_load_ae_obj_code__data_store( + { + api_cfg, + code, + data_type='text', + for_type=null, + for_id=null, + try_cache=true, + save_idb=false + }: { + api_cfg: any, + code: string, + data_type: string, + for_type: string|null, + for_id: string|null, + try_cache: boolean, + save_idb: boolean + } + ) { + console.log(`*** handle_get_data_store_obj_w_code() *** code=${code}`); if (!code) { @@ -75,16 +95,90 @@ async function handle_load_ae_obj_code__data_store({ api_cfg, code=null, data_ty data_type: data_type, log_lvl: 0 }) - .then(function (get_data_store_result) { + .then(function (get_ds_result) { let return_this = null; - if (get_data_store_result) { + if (get_ds_result) { + console.log(`Got a result for code ${code}`); - if (data_type == 'text') { - // console.log(get_data_store_result.text); - return_this = get_data_store_result.text; + if (!get_ds_result.data_store_id_random) { + console.log('Something went wrong? No data store ID found.'); + return false; + } + + // let ae_ds_tmp: key_val = {}; + let ds_code_obj = + { + id: null, + account_id: null, + code: code, + name: null, + type: data_type, + for_type: null, // for_type + for_id: null, // for_id + access_read: null, // 'super', 'administrator', 'trusted', 'anonymous' + access_write: null, // 'super', 'administrator', 'trusted', 'anonymous' + access_delete: null, // 'super', 'administrator', 'trusted', 'anonymous' + html: null, + json: null, + md: null, + text: null, + updated_on: null, + chk_account_id: api_cfg.account_id, + loaded_on: new Date().toISOString(), + }; + let val_json: key_val; + let val_html: key_val; + let val_md: key_val; + let val_sql: key_val; + let val_text: string; + + // Set the loaded_on datetime to the current time for reference later. This will be used to determine if the data store is stale. + // ds_code_obj.loaded_on = new Date().toISOString(); + // Set the chk_account_id as a backup check to make sure the data store belongs to the account for the current site. This should not be needed, but here we are... + // ds_code_obj.chk_account_id = api_cfg.account_id; + + ds_code_obj.id = get_ds_result.data_store_id_random; + ds_code_obj.account_id = get_ds_result.account_id_random; + ds_code_obj.code = get_ds_result.code; // This will overwrite whatever was passed in. + ds_code_obj.name = get_ds_result.name; + ds_code_obj.type = get_ds_result.type; // This will overwrite whatever was passed in. + if (data_type == 'html') { + ds_code_obj.html = get_ds_result.text; + val_html = get_ds_result.text; + return_this = get_ds_result.html; } else if (data_type == 'json') { - // console.log(get_data_store_result.json); - return_this = get_data_store_result.json; + ds_code_obj.json = get_ds_result.json; + val_json = get_ds_result.json; + return_this = get_ds_result.json; + } else if (data_type == 'md') { + ds_code_obj.text = get_ds_result.text; + val_md = get_ds_result.text; + return_this = get_ds_result.text; + } else if (data_type == 'sql') { + ds_code_obj.text = get_ds_result.text; + val_sql = get_ds_result.text; + return_this = get_ds_result.text; + } else { + ds_code_obj.text = get_ds_result.text; + val_text = get_ds_result.text; + return_this = get_ds_result.text; + } + + // if (data_type == 'text') { + // // console.log(get_ds_result.text); + // return_this = get_ds_result.text; + // } else if (data_type == 'json') { + // // console.log(get_ds_result.json); + // return_this = get_ds_result.json; + // } + + if (save_idb) { + if (browser) { + console.log(`ae_ds__ key: ${code}, value:`, get_ds_result); + localStorage.setItem(`ae_ds__${code}`, JSON.stringify(get_ds_result)); + } else { + console.log('No browser!!!'); + } } } else { diff --git a/src/lib/ae_events_stores.ts b/src/lib/ae_events_stores.ts index ec846626..9abfcb17 100644 --- a/src/lib/ae_events_stores.ts +++ b/src/lib/ae_events_stores.ts @@ -91,7 +91,7 @@ console.log(`AE Stores - App Events Local Storage Data:`, events_local_data_stru // export let ae_loc = writable(events_local_data_struct); // This works and uses *local* storage: -export let events_loc: Writable = localStorageStore('ae_ events_loc', events_local_data_struct); +export let events_loc: Writable = localStorageStore('ae_events_loc', events_local_data_struct); // console.log(`AE Stores - App Local Storage Data:`, get(ae_loc)); diff --git a/src/lib/api.js b/src/lib/api.js index 60ad1387..cdcd1dc0 100644 --- a/src/lib/api.js +++ b/src/lib/api.js @@ -92,8 +92,10 @@ export let get_object = async function get_object({api_cfg, endpoint='', headers /* other custom settings */ }); axios_api.defaults.headers = api_cfg['headers']; - console.log('axios_api.defaults.headers:', axios_api.defaults.headers); - console.log('Additional headers:', headers); + if (log_lvl) { + console.log('axios_api.defaults.headers:', axios_api.defaults.headers); + console.log('Additional headers:', headers); + } // console.log('Clean the headers. No _underscores_!') let headers_cleaned = {}; @@ -113,12 +115,16 @@ export let get_object = async function get_object({api_cfg, endpoint='', headers } } headers = headers_cleaned; - console.log('All headers cleaned:', headers); + if (log_lvl) { + console.log('All headers cleaned:', headers); + } - console.log('URL params:'); + if (log_lvl) { + console.log('URL params:'); + } for (const prop in params) { if (log_lvl) { - console.log(`${prop}: ${params[prop]}`); + console.log(`URL param: ${prop}: ${params[prop]}`); } if (params[prop] === null ) { params[prop] = 'null'; diff --git a/src/lib/element_access_type.svelte b/src/lib/element_access_type.svelte index 39a22594..d7910d8a 100644 --- a/src/lib/element_access_type.svelte +++ b/src/lib/element_access_type.svelte @@ -39,7 +39,7 @@ $: if (trigger && $ae_loc.access_type) { function handle_check_access_type_passcode() { - // console.log('*** handle_check_access_type_passcode() ***'); + console.log(`*** handle_check_access_type_passcode() *** passcode list:`, $ae_loc.page_access_code_li); if (entered_passcode && entered_passcode.length >= 5) { if ($ae_loc.page_access_code_li.administrator == entered_passcode) { diff --git a/src/lib/element_data_store.svelte b/src/lib/element_data_store.svelte index 71fa2563..d144589b 100644 --- a/src/lib/element_data_store.svelte +++ b/src/lib/element_data_store.svelte @@ -64,7 +64,8 @@ let ds_code_obj = }; let ae_ds_loc: Writable = localStorageStore(`ae_ds__${ds_code}`, ds_code_obj); -console.log(`ae_e_data_store cached: ${ds_code} = `, $ae_ds_loc); +// console.log(`ae_e_data_store cached: ${ds_code} = `, $ae_ds_loc); +console.log(`ae_e_data_store cached: ${ds_code} account_id=${$ae_loc.account_id}`); if (!$ae_ds_loc.id) { ds_loading_status = '-- loading --'; diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index b424bfa4..5d1f9e7b 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -67,11 +67,28 @@ import Element_data_store from '$lib/element_data_store.svelte'; // Quickly save the data passed from the parent(s) to the Svelte stores, localStorage, and other. This should catch anything that is a child of this layout.svelte file. $slct.account_id = data.account_id; console.log(`$slct.account_id = `, $slct.account_id); -let ae_acct = data.ae_acct[$slct.account_id]; +let ae_acct = data[$slct.account_id]; console.log(`ae_acct = `, ae_acct); // let ae_acct = data.ae_acct; -// $ae_loc = ae_acct.loc; // $ae_api = ae_acct.api; +// $ae_loc = ae_acct.loc; + +$ae_api = { + ...$ae_api, + ...ae_acct.api, +} +console.log(`$ae_api = `, $ae_api); + +$ae_loc = { + ...$ae_loc, + ...ae_acct.loc, +} +console.log(`$ae_loc = `, $ae_loc); + +$slct = { + ...$slct, + ...ae_acct.slct, +} if ($ae_loc.site_cfg_json.slct__event_id) { $events_slct.event_id = $ae_loc.site_cfg_json.slct__event_id; @@ -86,6 +103,14 @@ if ($ae_loc.site_cfg_json.slct__event_id) { console.log(`No Event ID set.`); } +if ($ae_loc.site_cfg_json.slct__sponsorship_cfg_id) { + $slct.sponsorship_cfg_id = $ae_loc.site_cfg_json.slct__sponsorship_cfg_id; +} else if ($ae_loc.default__sponsorship_cfg_id) { + $slct.sponsorship_cfg_id = $ae_loc.default__sponsorship_cfg_id; +} else { + console.log(`No Sponsorship Config ID set.`); +} + if (browser) { // Waiting until the browser exists. // save_ds_to_local(ae_acct.ds); @@ -162,6 +187,10 @@ onMount(() => { $events_slct.event_id = data.url.searchParams.get('event_id'); $events_loc.event_id = data.url.searchParams.get('event_id'); } + + if (data.url.searchParams.get('sponsorship_cfg_id')) { + $slct.sponsorship_cfg_id = data.url.searchParams.get('sponsorship_cfg_id'); + } }); @@ -178,7 +207,7 @@ onMount(() => { - {ae_acct.loc.title ?? 'loading...'} + {$ae_loc.title ?? 'Æ loading...'} @@ -232,7 +261,7 @@ onMount(() => { - + /** @type {import('./$types').LayoutData} */ export let data: any; + import { goto } from '$app/navigation'; import type { Writable } from 'svelte/store'; import { localStorageStore } from '@skeletonlabs/skeleton'; @@ -14,15 +15,25 @@ import { events_loc, events_slct, events_trigger } from '$lib/ae_events_stores'; // import Element_data_store from '$lib/element_data_store.svelte'; +$events_loc.qry__enabled = 'enabled'; +$events_loc.qry__hidden = 'not_hidden'; +$events_loc.qry__limit = 15; +$events_loc.qry__offset = 0; -// let ae_slct_loc: Writable = localStorageStore(`ae_slct__event_id`, ds_code_obj); -// console.log(`ae_ Data Store ${ds_code} = `, $ae_slct_loc); +// Quickly save the data passed from the parent(s) to the Svelte stores, localStorage, and other. +$slct.account_id = data.account_id; +console.log(`$slct.account_id = `, $slct.account_id); +let ae_acct = data[$slct.account_id]; +console.log(`ae_acct = `, ae_acct); + +$events_slct.event_id = ae_acct.slct.event_id +$events_slct.event_obj = ae_acct.slct.event_obj let ae_promises: key_val = {}; -if (data.ae_loc.site_cfg_json.slct__event_id) { - $events_slct.event_id = data.ae_loc.site_cfg_json.slct__event_id; - $events_loc.event_id = data.ae_loc.site_cfg_json.slct__event_id; +if (ae_acct.loc.site_cfg_json.slct__event_id) { + $events_slct.event_id = ae_acct.loc.site_cfg_json.slct__event_id; + $events_loc.event_id = ae_acct.loc.site_cfg_json.slct__event_id; } else if ($events_loc.default__event_id) { $events_slct.event_id = $events_loc.default__event_id; $events_loc.event_id = $events_loc.default__event_id; @@ -98,7 +109,7 @@ async function handle_load_ae_obj_id__event({event_id, try_cache=false}) { - Events Badges - {data.ae_loc.title} + Events Badges - {$events_loc.title ?? 'Æ loading...'} @@ -112,7 +123,7 @@ async function handle_load_ae_obj_id__event({event_id, try_cache=false}) {