Saving a snapshot before Gemini works on things.
This commit is contained in:
@@ -7,6 +7,18 @@
|
|||||||
}
|
}
|
||||||
let { data }: Props = $props();
|
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;
|
let jitsi_api: any = null;
|
||||||
const jitsi_container_id = 'jitsi_meet_external_api_container';
|
const jitsi_container_id = 'jitsi_meet_external_api_container';
|
||||||
|
|
||||||
@@ -69,14 +81,14 @@
|
|||||||
console.log('Jitsi: url_params:', url_params);
|
console.log('Jitsi: url_params:', url_params);
|
||||||
|
|
||||||
// --- Start with fallback data from URL ---
|
// --- Start with fallback data from URL ---
|
||||||
let user_id = url_params.uuid; // Novi Customer GUID
|
user_id = url_params.uuid; // Novi Customer GUID
|
||||||
let display_name = url_params.full_name ?? 'Guest';
|
display_name = url_params.full_name ?? 'Guest'; // May be overridden after fetching from Novi API
|
||||||
let email = (url_params.email ?? 'guest@example.com').replace(/\s+/g, '+');
|
email = (url_params.email ?? 'guest@example.com').replace(/\s+/g, '+'); // May be overridden after fetching from Novi API
|
||||||
let is_moderator = false;
|
// is_moderator = false; // May be overridden after fetching from Novi API
|
||||||
const room_name = url_params.room ?? 'Default-Room';
|
room_name = url_params.room ?? 'Default-Room';
|
||||||
const domain = url_params.domain ?? 'jitsi.dgrzone.com';
|
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) {
|
if (!user_id) {
|
||||||
const container = document.getElementById(jitsi_container_id);
|
const container = document.getElementById(jitsi_container_id);
|
||||||
@@ -116,7 +128,15 @@
|
|||||||
if (last_initial) {
|
if (last_initial) {
|
||||||
full_name = `${first_name} ${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));
|
.catch((error) => console.log('error', error));
|
||||||
|
|
||||||
@@ -140,7 +160,7 @@
|
|||||||
|
|
||||||
if (mods_response.ok) {
|
if (mods_response.ok) {
|
||||||
const groupModeratorsRaw = await mods_response.json();
|
const groupModeratorsRaw = await mods_response.json();
|
||||||
// Normalise the payload and combine
|
// Normalize the payload and combine
|
||||||
let groupModList: any[] = [];
|
let groupModList: any[] = [];
|
||||||
if (Array.isArray(groupModeratorsRaw)) {
|
if (Array.isArray(groupModeratorsRaw)) {
|
||||||
groupModList = groupModeratorsRaw;
|
groupModList = groupModeratorsRaw;
|
||||||
@@ -186,12 +206,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// --- Initialize Jitsi ---
|
// --- Initialize Jitsi ---
|
||||||
let jwtToken = null;
|
let jwt_token = null;
|
||||||
console.log(`Jitsi: User is_moderator: ${is_moderator}`);
|
console.log(`Jitsi: User is_moderator: ${is_moderator}`);
|
||||||
if (is_moderator) {
|
if (is_moderator) {
|
||||||
console.log('Jitsi: Attempting to get JWT token for moderator...');
|
console.log('Jitsi: Attempting to get JWT token for moderator...');
|
||||||
jwtToken = await getJitsiJwt(display_name, email, is_moderator, room_name, user_id);
|
jwt_token = await getJitsiJwt(display_name, email, is_moderator, room_name, user_id);
|
||||||
if (!jwtToken) {
|
if (!jwt_token) {
|
||||||
const container = document.getElementById(jitsi_container_id);
|
const container = document.getElementById(jitsi_container_id);
|
||||||
if (container) {
|
if (container) {
|
||||||
container.innerHTML = '<h1>Authentication Failed. Please try again.</h1>';
|
container.innerHTML = '<h1>Authentication Failed. Please try again.</h1>';
|
||||||
@@ -231,7 +251,7 @@
|
|||||||
DISABLE_JOIN_LEAVE_NOTIFICATIONS: true,
|
DISABLE_JOIN_LEAVE_NOTIFICATIONS: true,
|
||||||
NOTIFICATION_SOUND_URL: ''
|
NOTIFICATION_SOUND_URL: ''
|
||||||
},
|
},
|
||||||
jwt: jwtToken
|
jwt: jwt_token
|
||||||
};
|
};
|
||||||
console.log('Jitsi: Jitsi options:', options);
|
console.log('Jitsi: Jitsi options:', options);
|
||||||
|
|
||||||
@@ -246,13 +266,46 @@
|
|||||||
jitsi_api.dispose();
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<svelte:head>
|
<svelte:head>
|
||||||
<script src="https://jitsi.dgrzone.com/external_api.js"></script>
|
<script src="https://jitsi.dgrzone.com/external_api.js"></script>
|
||||||
</svelte:head>
|
</svelte:head>
|
||||||
|
|
||||||
|
|
||||||
|
{#if show_jitsi_container}
|
||||||
<div id="{jitsi_container_id}" class="jitsi-container"></div>
|
<div id="{jitsi_container_id}" class="jitsi-container"></div>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
{#if show_jitsi_tools}
|
||||||
|
<div class="jitsi-tools text-sm">
|
||||||
|
<p><strong>Jitsi Tools</strong></p>
|
||||||
|
{#if display_name && email}
|
||||||
|
<p class="z-50 bg-amber-50">{display_name} ({email})</p>
|
||||||
|
{/if}
|
||||||
|
<p>Room: {room_name}</p>
|
||||||
|
<p>Domain: {domain}</p>
|
||||||
|
<p>User ID: {user_id}</p>
|
||||||
|
<p>Moderator: {is_moderator ? 'Yes' : 'No'}</p>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.jitsi-container {
|
.jitsi-container {
|
||||||
@@ -263,4 +316,15 @@
|
|||||||
left: 0;
|
left: 0;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.jitsi-tools {
|
||||||
|
z-index: 1000;
|
||||||
|
position: fixed;
|
||||||
|
bottom: 20px;
|
||||||
|
right: 20px;
|
||||||
|
background-color: rgba(255, 255, 255, 0.8);
|
||||||
|
padding: 10px;
|
||||||
|
border-radius: 8px;
|
||||||
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user