diff --git a/src/routes/idaa/(idaa)/video_conferences/+page.svelte b/src/routes/idaa/(idaa)/video_conferences/+page.svelte
index 57bccd27..a3b418a3 100644
--- a/src/routes/idaa/(idaa)/video_conferences/+page.svelte
+++ b/src/routes/idaa/(idaa)/video_conferences/+page.svelte
@@ -75,8 +75,67 @@
}
}
- onMount(() => {
- init_jitsi();
+ onMount(async () => {
+ console.log('Jitsi: onMount - fetching user data and initializing Jitsi...');
+ const url_params = data.params;
+ console.log('Jitsi: url_params:', url_params);
+
+ // --- Start with fallback data from URL ---
+ user_id = url_params.uuid; // Novi Customer GUID
+ display_name = url_params.full_name ?? 'Guest'; // May be overridden
+ email = (url_params.email ?? 'guest@example.com').replace(/\s+/g, '+'); // May be overridden
+ room_name = url_params.room ?? 'Default-Room';
+ domain = url_params.domain ?? 'jitsi.dgrzone.com';
+
+ console.log(
+ `Jitsi: Initial data: 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);
+ if (container) {
+ container.innerHTML = '
User ID (uuid) is missing. Cannot start meeting.
';
+ }
+ console.error('Jitsi: User ID (uuid) is missing. Cannot start meeting.');
+ return;
+ }
+
+ // --- Fetch dynamic data from Novi API ---
+ const novi_api_root_url = $ae_loc.site_cfg_json?.novi_api_root_url;
+ const novi_api_key = $ae_loc.site_cfg_json?.novi_idaa_api_key;
+
+ if (novi_api_root_url && novi_api_key) {
+ const member_details = await get_novi_member_details(user_id, novi_api_root_url, novi_api_key);
+ if (member_details.display_name) {
+ display_name = member_details.display_name;
+ console.log(`Jitsi: Updated display_name from Novi: ${display_name}`);
+ }
+ if (member_details.email) {
+ email = member_details.email;
+ console.log(`Jitsi: Updated email from Novi: ${email}`);
+ }
+
+ const novi_idaa_group_guid_li = $ae_loc.site_cfg_json?.novi_idaa_group_guid_li ?? [];
+ const moderatorIdSet = await get_novi_group_moderators(
+ novi_idaa_group_guid_li,
+ novi_api_root_url,
+ novi_api_key
+ );
+ const normalizedUserId = String(user_id ?? '').toLowerCase().trim();
+
+ if (normalizedUserId && moderatorIdSet.has(normalizedUserId)) {
+ is_moderator = true;
+ console.log(`Jitsi: User ${user_id} is a moderator.`);
+ } else {
+ is_moderator = false; // Explicitly set to false if not in the set
+ console.log(`Jitsi: User ${user_id} is not a moderator.`);
+ }
+ } else {
+ console.warn('Jitsi: Novi API not configured. Skipping user details/moderator check.');
+ }
+
+ // --- All data fetched, now initialize Jitsi ---
+ await init_jitsi();
});
onDestroy(() => {
@@ -216,63 +275,19 @@
jitsi_api = null;
}
- console.log('Jitsi: Starting initialization...');
- const url_params = data.params;
- console.log('Jitsi: url_params:', url_params);
+ console.log('Jitsi: Initializing Jitsi meeting interface...');
- // --- Start with fallback data from URL ---
- user_id = url_params.uuid; // Novi Customer GUID
- display_name = url_params.full_name ?? 'Guest'; // May be overridden
- email = (url_params.email ?? 'guest@example.com').replace(/\s+/g, '+'); // May be overridden
- room_name = url_params.room ?? 'Default-Room';
- domain = url_params.domain ?? 'jitsi.dgrzone.com';
-
- console.log(
- `Jitsi: Initial data: user_id: ${user_id}, display_name: ${display_name}, email: ${email}, room_name: ${room_name}, domain: ${domain}`
- );
-
- if (!user_id) {
+ // These variables are now expected to be set in the component's state
+ if (!user_id || !display_name || !email || !room_name || !domain) {
+ console.error('Jitsi: Missing required data to initialize meeting. Aborting.');
const container = document.getElementById(jitsi_container_id);
if (container) {
- container.innerHTML = 'User ID (uuid) is missing. Cannot start meeting.
';
+ container.innerHTML = 'Could not initialize meeting: missing user data.
';
}
- console.error('Jitsi: User ID (uuid) is missing. Cannot start meeting.');
return;
}
- // --- Fetch dynamic data from Novi API ---
- const novi_api_root_url = $ae_loc.site_cfg_json?.novi_api_root_url;
- const novi_api_key = $ae_loc.site_cfg_json?.novi_idaa_api_key;
-
- if (novi_api_root_url && novi_api_key) {
- const member_details = await get_novi_member_details(user_id, novi_api_root_url, novi_api_key);
- if (member_details.display_name) {
- display_name = member_details.display_name;
- console.log(`Jitsi: Updated display_name from Novi: ${display_name}`);
- }
- if (member_details.email) {
- email = member_details.email;
- console.log(`Jitsi: Updated email from Novi: ${email}`);
- }
-
- const novi_idaa_group_guid_li = $ae_loc.site_cfg_json?.novi_idaa_group_guid_li ?? [];
- const moderatorIdSet = await get_novi_group_moderators(
- novi_idaa_group_guid_li,
- novi_api_root_url,
- novi_api_key
- );
- const normalizedUserId = String(user_id ?? '').toLowerCase().trim();
-
- if (normalizedUserId && moderatorIdSet.has(normalizedUserId)) {
- is_moderator = true;
- console.log(`Jitsi: User ${user_id} is a moderator.`);
- } else {
- is_moderator = false; // Explicitly set to false if not in the set
- console.log(`Jitsi: User ${user_id} is not a moderator.`);
- }
- } else {
- console.warn('Jitsi: Novi API not configured. Skipping user details/moderator check.');
- }
+ const url_params = data.params;
// --- Initialize Jitsi ---
let jwt_token = null;