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 @@
+
+
+
+
+
+
+
+
+
+{#if 1==2}
+
+{/if}
+
+
+
+
+
+Messages
+
+
+ {#each ws_received_list_other as msg_entry}
+ -
+ [{(msg_entry.group_id||'No Group ID')}]
+ {(msg_entry.client_id||'No Client ID')}
+ —
+ {(msg_entry.target||'No Target')}
+ —
+ {(msg_entry.type||'No Type')}: {msg_entry.msg}
+
+
+ {/each}
+
+
+
+
+Commands
+
+
+ {#each ws_received_list_cmd as cmd_entry}
+ -
+ [{(cmd_entry.group_id||'No Group ID')}]
+ {(cmd_entry.client_id||'No Client ID')}
+ —
+ {(cmd_entry.target||'No Target')}
+ —
+ {(cmd_entry.type||'No Type')}: {cmd_entry.cmd}
+
+ {/each}
+
+
+
+
+
+
+
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}
-
+
+
+
+
+
+
+
+
{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"
>
+
+