diff --git a/src/lib/ae_events_stores.ts b/src/lib/ae_events_stores.ts index 975108bf..48a353dc 100644 --- a/src/lib/ae_events_stores.ts +++ b/src/lib/ae_events_stores.ts @@ -99,6 +99,8 @@ let events_local_data_struct: key_val = { // Event Presentation Launcher (and native Electron app) 'launcher': { + controller_group_code: 'ae_launcher', + qry_limit__sessions: 50, qry_limit__presentations: 25, qry_limit__presenters: 75, @@ -115,6 +117,8 @@ let events_local_data_struct: key_val = { show_content__presentation_code: true, show_content__presenter_code: true, + show_section__controller: false, + datetime_format: 'datetime_12_long', time_format: 'time_12_short', time_hours: 12, // 12 or 24 diff --git a/src/lib/ae_stores.ts b/src/lib/ae_stores.ts index a1f0a999..d2b79601 100644 --- a/src/lib/ae_stores.ts +++ b/src/lib/ae_stores.ts @@ -1,11 +1,12 @@ import { localStorageStore } from '@skeletonlabs/skeleton'; -import { writable } from 'svelte/store'; -import type { Writable } from 'svelte/store'; +import { readable, writable } from 'svelte/store'; +import type { Readable, Writable } from 'svelte/store'; import { PUBLIC_TESTING, PUBLIC_AE_API_PROTOCOL, PUBLIC_AE_API_SERVER, PUBLIC_AE_API_BAK_SERVER, PUBLIC_AE_API_PORT, PUBLIC_AE_API_PATH, PUBLIC_AE_API_SECRET_KEY, PUBLIC_AE_API_CRUD_SUPER_KEY, PUBLIC_AE_NO_ACCOUNT_ID, PUBLIC_AE_NO_ACCOUNT_ID_TOKEN, PUBLIC_AE_ACCOUNT_ID, PUBLIC_AE_EVENT_ID, PUBLIC_AE_SPONSORSHIP_CFG_ID } from '$env/static/public'; console.log(`AE Stores - PUBLIC_TESTING:`, PUBLIC_TESTING); +const api_server_fqdn = PUBLIC_AE_API_SERVER; // 'api.oneskyit.com' const api_base_url = `${PUBLIC_AE_API_PROTOCOL}://${PUBLIC_AE_API_SERVER}:${PUBLIC_AE_API_PORT}${PUBLIC_AE_API_PATH}`; const api_base_url_bak = `${PUBLIC_AE_API_PROTOCOL}://${PUBLIC_AE_API_BAK_SERVER}:${PUBLIC_AE_API_PORT}${PUBLIC_AE_API_PATH}`; @@ -255,6 +256,7 @@ export let ae_sess = writable(ae_app_session_data_struct); // *** BEGIN *** Temporary API data. This should be stored to session storage. export let ae_api_data_struct: key_val = { 'ver': '2024-08-11_11', + 'fqdn': api_server_fqdn, 'base_url': api_base_url, 'base_url_bak': api_base_url_bak, 'api_secret_key': api_secret_key, // 'YOUR_API_SECRET_KEY', @@ -338,3 +340,16 @@ export let slct = writable(slct_obj_template); // Updated 2024-02-27 export let slct_trigger: any = writable(null); // console.log(`AE Stores - Selected Trigger:`, slct_trigger); + + +/* *** BEGIN *** Create time variable */ +// Updated 2020 +export const time = readable(new Date(), function start(set) { + const interval = setInterval(() => { + set(new Date()); + }, 1000); + + return function stop() { + clearInterval(interval); + }; +}); diff --git a/src/lib/ae_utils/ae_utils__datetime_format.ts b/src/lib/ae_utils/ae_utils__datetime_format.ts index 51c871f3..fd0765fb 100644 --- a/src/lib/ae_utils/ae_utils__datetime_format.ts +++ b/src/lib/ae_utils/ae_utils__datetime_format.ts @@ -118,6 +118,9 @@ export let iso_datetime_formatter = function iso_datetime_formatter( datetime_string = dayjs(raw_datetime).format('HH:mm:ss'); break; case 'time_long': + datetime_string = dayjs(raw_datetime).format('HH:mm:ss A'); + break; + case 'time_12_long': datetime_string = dayjs(raw_datetime).format('hh:mm:ss A'); break; case 'time_short': diff --git a/src/lib/element_websocket_v2.svelte b/src/lib/element_websocket_v2.svelte new file mode 100644 index 00000000..c1ca796b --- /dev/null +++ b/src/lib/element_websocket_v2.svelte @@ -0,0 +1,311 @@ + + + +
+ +
+

Websockets

+
+ + + +{#if 1==2} +
+ + + + + + + + + + +
+{/if} + + + + + +

Messages

+ + + +
+ +

Commands

+ + + +
+ + + + diff --git a/src/routes/events/[event_id]/(launcher)/+layout.svelte b/src/routes/events/[event_id]/(launcher)/+layout.svelte index 97390876..86ec0d2f 100644 --- a/src/routes/events/[event_id]/(launcher)/+layout.svelte +++ b/src/routes/events/[event_id]/(launcher)/+layout.svelte @@ -8,10 +8,11 @@ import { sineIn } from 'svelte/easing'; import { liveQuery } from "dexie"; import { Drawer, Footer } from 'flowbite-svelte'; import { ae_util } from '$lib/ae_utils/ae_utils'; -import { db_events } from "$lib/db_events"; -import { ae_snip, ae_loc, ae_sess, ae_api, ae_trig, slct, slct_trigger } from '$lib/ae_stores'; +import { db_events } from '$lib/db_events'; +import { ae_snip, ae_loc, ae_sess, ae_api, ae_trig, slct, slct_trigger, time } from '$lib/ae_stores'; import { events_loc, events_sess, events_slct, events_trigger, events_trig } from '$lib/ae_events_stores'; +import Element_websocket_v2 from '$lib/element_websocket_v2.svelte'; import Event_launcher_menu from './launcher_menu.svelte'; import Event_launcher_session_view from './launcher_session_view.svelte'; @@ -135,9 +136,10 @@ console.log(`BROWSER Events - [event_id] launcher +layout.svelte start`); " >

Æ Presentation Launcher

-

{$lq__event_obj?.name}

-

{$lq__event_location_obj?.name} - {$events_slct.event_location_id} +

{$lq__event_obj.cfg_json?.short_name}

+

+ {$lq__event_location_obj?.name} +

{/if} @@ -276,8 +278,8 @@ console.log(`BROWSER Events - [event_id] launcher +layout.svelte start`); [Help] -
- [Session Name] +
+ {$lq__event_location_obj?.name}
@@ -285,18 +287,27 @@ console.log(`BROWSER Events - [event_id] launcher +layout.svelte start`);
- [Recording] + {#if $events_loc.launcher?.av_recording} + AV Recording Active + {:else} + AV Recording Inactive + {/if}
-
- [Date and Time] +
+ {ae_util.iso_datetime_formatter($time,'date_full_no_year')} + {#if $events_loc.launcher?.time_hours == 12} + {ae_util.iso_datetime_formatter($time,'time_12_long')} + {:else} + {ae_util.iso_datetime_formatter($time,'time_long')} + {/if}
-

+ +
+

+ +

+ +
+ + + + +
+ + {#if $events_loc.launcher.controller_group_code} + + + + + + {/if} +
+ +
+ + + +

{JSON.stringify($events_loc.launcher, null, 2)} +
+
+        {JSON.stringify($ae_api, null, 2)}
+    

\ No newline at end of file diff --git a/src/routes/events/[event_id]/+layout.svelte b/src/routes/events/[event_id]/+layout.svelte new file mode 100644 index 00000000..2934c627 --- /dev/null +++ b/src/routes/events/[event_id]/+layout.svelte @@ -0,0 +1,47 @@ + + + + diff --git a/src/routes/events/[event_id]/+layout.ts b/src/routes/events/[event_id]/+layout.ts new file mode 100644 index 00000000..60c91eb9 --- /dev/null +++ b/src/routes/events/[event_id]/+layout.ts @@ -0,0 +1,76 @@ +/** @type {import('./$types').LayoutLoad} */ +console.log(`Events - [event_id] launcher +layout.ts start`); + +import { error } from '@sveltejs/kit'; +import { browser } from '$app/environment'; +import { events_func } from '$lib/ae_events_functions'; + +export async function load({ params, parent }) { // route + let log_lvl = 0; + + let data = await parent(); + // console.log(`ae events_pres_mgmt event [event_id] +page.ts data:`, data); + data.log_lvl = log_lvl; + + 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 [event_id] +page.ts: The account_id was not found in the data!!!`); + // return false; + // } + + // data.ae_events_pres_mgmt_event_event_id_page_ts = true; + + let event_id = params.event_id; + if (!event_id) { + console.log(`ae Events - [event_id] +page.ts: The event_id was not found in the params.event_id!!!`); + error(404, { + message: 'Event ID not found' + }); + } + + ae_acct.slct.event_id = event_id; + + // let load_event_obj = events_func.handle_load_ae_obj_id__event({ + // api_cfg: ae_acct.api, event_id: event_id, try_cache: true + // }); + + // ae_acct.slct.event_obj = await load_event_obj; + + if (browser) { + let load_event_obj = events_func.handle_load_ae_obj_id__event({ + api_cfg: ae_acct.api, event_id: event_id, try_cache: true + }); + console.log(`load_event_obj = `, load_event_obj); + ae_acct.slct.event_obj = load_event_obj; + + let load_event_session_obj_li = events_func.load_ae_obj_li__event_session({ + api_cfg: ae_acct.api, + for_obj_type: 'event', + for_obj_id: event_id, + params: {qry__enabled: 'enabled', qry__hidden: 'all', qry__limit: 200}, + try_cache: true, + log_lvl: 1 + }); + console.log(`load_event_session_obj_li = `, load_event_session_obj_li); + ae_acct.slct.event_session_obj_li = load_event_session_obj_li; + + let load_event_location_obj_li = events_func.load_ae_obj_li__event_location({ + api_cfg: ae_acct.api, + for_obj_type: 'event', + for_obj_id: event_id, + params: {qry__enabled: 'enabled', qry__hidden: 'all', qry__limit: 200}, + try_cache: true, + log_lvl: 1 + }); + console.log(`load_event_location_obj_li = `, load_event_location_obj_li); + ae_acct.slct.event_location_obj_li = load_event_location_obj_li; + } + + // WARNING: Precaution against shared data between sites and sessions. + data[account_id] = ae_acct; + + return data; +} diff --git a/src/routes/events/[event_id]/+page.svelte b/src/routes/events/[event_id]/+page.svelte index 4e200d54..987372b3 100644 --- a/src/routes/events/[event_id]/+page.svelte +++ b/src/routes/events/[event_id]/+page.svelte @@ -25,16 +25,19 @@ import Event_page_menu from '../event_page_menu.svelte'; // Quickly save the data passed from the parent(s) to the Svelte stores, localStorage, and other. -$slct.account_id = data.account_id; +// $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); -console.log(`event_id: ${data.params.event_id}`); +console.log(`event_id layout A: ${data.params.event_id}`); +console.log(`event_id layout B: ${ae_acct.slct.event_id}`); +console.log(`event_id layout C: ${$events_slct.event_id}`); +$: event_id = data.params.event_id; -$events_slct.event_id = data.params.event_id; +// $events_slct.event_id = data.params.event_id; // $events_slct.event_obj = ae_acct.slct.event_obj; -$events_slct.event_session_obj_li = ae_acct.slct.event_session_obj_li; +// $events_slct.event_session_obj_li = ae_acct.slct.event_session_obj_li; // import Leads_add_scan from './leads_add_scan.svelte'; // import Sessions_list from './sessions_list.svelte'; @@ -42,8 +45,9 @@ $events_slct.event_session_obj_li = ae_acct.slct.event_session_obj_li; // import Leads_payment from './leads_payment.svelte'; $: lq__event_obj = liveQuery(async () => { + console.log(`*** LiveQuery: lq__event_obj *** event_id=${$events_slct.event_id}`); let results = await db_events.events - .get($events_slct.event_id) + .get($events_slct.event_id) return results; }); diff --git a/src/routes/events/[event_id]/+page.ts b/src/routes/events/[event_id]/+page.ts index 32cebfa9..9db19ade 100644 --- a/src/routes/events/[event_id]/+page.ts +++ b/src/routes/events/[event_id]/+page.ts @@ -1,76 +1,76 @@ /** @type {import('./$types').PageLoad} */ console.log(`Events - [event_id] +page.ts start`); -import { error } from '@sveltejs/kit'; -import { browser } from '$app/environment'; -import { events_func } from '$lib/ae_events_functions'; +// import { error } from '@sveltejs/kit'; +// import { browser } from '$app/environment'; +// import { events_func } from '$lib/ae_events_functions'; export async function load({ params, parent }) { // route - let log_lvl = 0; + // let log_lvl = 0; - let data = await parent(); - // console.log(`ae events_pres_mgmt event [event_id] +page.ts data:`, data); - data.log_lvl = log_lvl; + // let data = await parent(); + // // console.log(`ae events_pres_mgmt event [event_id] +page.ts data:`, data); + // data.log_lvl = log_lvl; - let account_id = data.account_id; - let ae_acct = data[account_id]; - // console.log(`ae_acct = `, ae_acct); + // 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 [event_id] +page.ts: The account_id was not found in the data!!!`); - // return false; + // // if (!account_id) { + // // console.log(`events_pres_mgmt_event [event_id] +page.ts: The account_id was not found in the data!!!`); + // // return false; + // // } + + // // data.ae_events_pres_mgmt_event_event_id_page_ts = true; + + // let event_id = params.event_id; + // if (!event_id) { + // console.log(`ae Events - [event_id] +page.ts: The event_id was not found in the params.event_id!!!`); + // error(404, { + // message: 'Event ID not found' + // }); // } - // data.ae_events_pres_mgmt_event_event_id_page_ts = true; + // // ae_acct.slct.event_id = event_id; - let event_id = params.event_id; - if (!event_id) { - console.log(`ae Events - [event_id] +page.ts: The event_id was not found in the params.event_id!!!`); - error(404, { - message: 'Event ID not found' - }); - } + // // let load_event_obj = events_func.handle_load_ae_obj_id__event({ + // // api_cfg: ae_acct.api, event_id: event_id, try_cache: true + // // }); - // ae_acct.slct.event_id = event_id; + // // ae_acct.slct.event_obj = await load_event_obj; - // let load_event_obj = events_func.handle_load_ae_obj_id__event({ - // api_cfg: ae_acct.api, event_id: event_id, try_cache: true - // }); + // if (browser) { + // let load_event_obj = events_func.handle_load_ae_obj_id__event({ + // api_cfg: ae_acct.api, event_id: event_id, try_cache: true + // }); + // console.log(`load_event_obj = `, load_event_obj); + // ae_acct.slct.event_obj = load_event_obj; - // ae_acct.slct.event_obj = await load_event_obj; + // let load_event_session_obj_li = events_func.load_ae_obj_li__event_session({ + // api_cfg: ae_acct.api, + // for_obj_type: 'event', + // for_obj_id: event_id, + // params: {qry__enabled: 'enabled', qry__hidden: 'all', qry__limit: 200}, + // try_cache: true, + // log_lvl: 1 + // }); + // console.log(`load_event_session_obj_li = `, load_event_session_obj_li); + // ae_acct.slct.event_session_obj_li = load_event_session_obj_li; - if (browser) { - let load_event_obj = events_func.handle_load_ae_obj_id__event({ - api_cfg: ae_acct.api, event_id: event_id, try_cache: true - }); - console.log(`load_event_obj = `, load_event_obj); - ae_acct.slct.event_obj = load_event_obj; + // let load_event_location_obj_li = events_func.load_ae_obj_li__event_location({ + // api_cfg: ae_acct.api, + // for_obj_type: 'event', + // for_obj_id: event_id, + // params: {qry__enabled: 'enabled', qry__hidden: 'all', qry__limit: 200}, + // try_cache: true, + // log_lvl: 1 + // }); + // console.log(`load_event_location_obj_li = `, load_event_location_obj_li); + // ae_acct.slct.event_location_obj_li = load_event_location_obj_li; + // } - let load_event_session_obj_li = events_func.load_ae_obj_li__event_session({ - api_cfg: ae_acct.api, - for_obj_type: 'event', - for_obj_id: event_id, - params: {qry__enabled: 'enabled', qry__hidden: 'all', qry__limit: 200}, - try_cache: true, - log_lvl: 1 - }); - console.log(`load_event_session_obj_li = `, load_event_session_obj_li); - ae_acct.slct.event_session_obj_li = load_event_session_obj_li; + // // WARNING: Precaution against shared data between sites and sessions. + // data[account_id] = ae_acct; - let load_event_location_obj_li = events_func.load_ae_obj_li__event_location({ - api_cfg: ae_acct.api, - for_obj_type: 'event', - for_obj_id: event_id, - params: {qry__enabled: 'enabled', qry__hidden: 'all', qry__limit: 200}, - try_cache: true, - log_lvl: 1 - }); - console.log(`load_event_location_obj_li = `, load_event_location_obj_li); - ae_acct.slct.event_location_obj_li = load_event_location_obj_li; - } - - // WARNING: Precaution against shared data between sites and sessions. - data[account_id] = ae_acct; - - return data; + // return data; } diff --git a/src/routes/events_pres_mgmt/ae_comp__pres_mgmt_menu_nav.svelte b/src/routes/events_pres_mgmt/ae_comp__pres_mgmt_menu_nav.svelte index be4e1de1..53e61b36 100644 --- a/src/routes/events_pres_mgmt/ae_comp__pres_mgmt_menu_nav.svelte +++ b/src/routes/events_pres_mgmt/ae_comp__pres_mgmt_menu_nav.svelte @@ -51,9 +51,10 @@ export let pres_mgmt__session_search: boolean = false; // event_id class="ae_menu__navigation_options flex flex-row items-center justify-around" > + + diff --git a/src/routes/events_pres_mgmt/event/[slug]/+page.svelte b/src/routes/events_pres_mgmt/event/[slug]/+page.svelte index 31530bb6..b5ba156f 100644 --- a/src/routes/events_pres_mgmt/event/[slug]/+page.svelte +++ b/src/routes/events_pres_mgmt/event/[slug]/+page.svelte @@ -32,7 +32,7 @@ console.log(`ae_acct = `, ae_acct); // $events_slct.event_id = ae_acct.slct.event_id; // $events_slct.event_obj = ae_acct.slct.event_obj; -$events_slct.event_session_obj_li = ae_acct.slct.event_session_obj_li; +// $events_slct.event_session_obj_li = ae_acct.slct.event_session_obj_li; // import Leads_add_scan from './leads_add_scan.svelte'; // import Sessions_list from './sessions_list.svelte'; diff --git a/src/routes/events_pres_mgmt/event/[slug]/+page.ts b/src/routes/events_pres_mgmt/event/[slug]/+page.ts index aea203ac..52889fea 100644 --- a/src/routes/events_pres_mgmt/event/[slug]/+page.ts +++ b/src/routes/events_pres_mgmt/event/[slug]/+page.ts @@ -28,7 +28,7 @@ export async function load({ params, parent }) { // route // return false; // } - // ae_acct.slct.event_id = event_id; + ae_acct.slct.event_id = event_id; // let load_event_obj = events_func.handle_load_ae_obj_id__event({ // api_cfg: ae_acct.api, event_id: event_id, try_cache: true