From 368ed89173990b3df97f01923bc6dc89b981be69 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Mon, 15 Dec 2025 13:16:22 -0500 Subject: [PATCH] Saving a snapshot before Gemini works on things. --- .../(idaa)/video_conferences/+page.svelte | 90 ++++++++++++++++--- 1 file changed, 77 insertions(+), 13 deletions(-) diff --git a/src/routes/idaa/(idaa)/video_conferences/+page.svelte b/src/routes/idaa/(idaa)/video_conferences/+page.svelte index fc01a8ee..d159abfc 100644 --- a/src/routes/idaa/(idaa)/video_conferences/+page.svelte +++ b/src/routes/idaa/(idaa)/video_conferences/+page.svelte @@ -7,6 +7,18 @@ } let { data }: Props = $props(); + let show_jitsi_container: boolean = $state(true); + let show_jitsi_tools: boolean = $state(true); + let expand_jitsi_tools: boolean = $state(false); + + let user_id: null | string = $state(null); + let display_name: null | string = $state(null); + let email: null | string = $state(null); + let is_moderator: boolean = $state(false); + + let room_name: null | string = $state(null); + let domain: null | string = $state(null); + let jitsi_api: any = null; const jitsi_container_id = 'jitsi_meet_external_api_container'; @@ -69,14 +81,14 @@ console.log('Jitsi: url_params:', url_params); // --- Start with fallback data from URL --- - let user_id = url_params.uuid; // Novi Customer GUID - let display_name = url_params.full_name ?? 'Guest'; - let email = (url_params.email ?? 'guest@example.com').replace(/\s+/g, '+'); - let is_moderator = false; - const room_name = url_params.room ?? 'Default-Room'; - const domain = url_params.domain ?? 'jitsi.dgrzone.com'; + user_id = url_params.uuid; // Novi Customer GUID + display_name = url_params.full_name ?? 'Guest'; // May be overridden after fetching from Novi API + email = (url_params.email ?? 'guest@example.com').replace(/\s+/g, '+'); // May be overridden after fetching from Novi API + // is_moderator = false; // May be overridden after fetching from Novi API + room_name = url_params.room ?? 'Default-Room'; + domain = url_params.domain ?? 'jitsi.dgrzone.com'; - console.log(`Jitsi: user_id: ${user_id}, display_name: ${display_name}, email: ${email}, room_name: ${room_name}, domain: ${domain}`); + console.log(`Jitsi: From URL params for: user_id: ${user_id}, display_name: ${display_name}, email: ${email}, room_name: ${room_name}, domain: ${domain}`); if (!user_id) { const container = document.getElementById(jitsi_container_id); @@ -116,7 +128,15 @@ if (last_initial) { full_name = `${first_name} ${last_initial}`; } - console.log(`Jitsi: Novi's Current User's Full Name: ${full_name}`); + + let novi_email = novi_current_user_obj?.Email; + if (novi_email) { + email = novi_email.replace(/\s+/g, '+'); + console.log(`Jitsi: Updated email based on Novi: ${email}`); + } + + display_name = full_name; + console.log(`Jitsi: Updated display_name and email based on Novi: ${full_name} / ${email}`); }) .catch((error) => console.log('error', error)); @@ -140,7 +160,7 @@ if (mods_response.ok) { const groupModeratorsRaw = await mods_response.json(); - // Normalise the payload and combine + // Normalize the payload and combine let groupModList: any[] = []; if (Array.isArray(groupModeratorsRaw)) { groupModList = groupModeratorsRaw; @@ -186,12 +206,12 @@ } // --- Initialize Jitsi --- - let jwtToken = null; + let jwt_token = null; console.log(`Jitsi: User is_moderator: ${is_moderator}`); if (is_moderator) { console.log('Jitsi: Attempting to get JWT token for moderator...'); - jwtToken = await getJitsiJwt(display_name, email, is_moderator, room_name, user_id); - if (!jwtToken) { + jwt_token = await getJitsiJwt(display_name, email, is_moderator, room_name, user_id); + if (!jwt_token) { const container = document.getElementById(jitsi_container_id); if (container) { container.innerHTML = '

Authentication Failed. Please try again.

'; @@ -231,7 +251,7 @@ DISABLE_JOIN_LEAVE_NOTIFICATIONS: true, NOTIFICATION_SOUND_URL: '' }, - jwt: jwtToken + jwt: jwt_token }; console.log('Jitsi: Jitsi options:', options); @@ -246,13 +266,46 @@ jitsi_api.dispose(); } }); + + + // Get Novi member details + // args: novi_customer_uid + // returns: novi member object + function get_novi_member_details() { + // Placeholder function if needed in the future + } + + // Get Novi group moderators + // args: novi_group_guid + // returns: array of novi member objects + function get_novi_group_moderators() { + // Placeholder function if needed in the future + } + + + +{#if show_jitsi_container}
+{/if} + +{#if show_jitsi_tools} +
+

Jitsi Tools

+ {#if display_name && email} +

{display_name} ({email})

+ {/if} +

Room: {room_name}

+

Domain: {domain}

+

User ID: {user_id}

+

Moderator: {is_moderator ? 'Yes' : 'No'}

+
+{/if}