Cleaning things up a little.
This commit is contained in:
@@ -22,6 +22,18 @@
|
|||||||
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';
|
||||||
|
|
||||||
|
let name_input: string = $state('');
|
||||||
|
|
||||||
|
async function handle_name_update() {
|
||||||
|
if (name_input && name_input.trim() !== '' && name_input !== display_name) {
|
||||||
|
console.log(`Jitsi: User updating name from "${display_name}" to "${name_input}"`);
|
||||||
|
display_name = name_input.trim();
|
||||||
|
await init_jitsi();
|
||||||
|
} else {
|
||||||
|
console.log('Jitsi: Name update skipped. New name is same as old or empty.');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async function get_jitsi_jwt(
|
async function get_jitsi_jwt(
|
||||||
display_name: string,
|
display_name: string,
|
||||||
email: string,
|
email: string,
|
||||||
@@ -134,6 +146,9 @@
|
|||||||
console.warn('Jitsi: Novi API not configured. Skipping user details/moderator check.');
|
console.warn('Jitsi: Novi API not configured. Skipping user details/moderator check.');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set initial value for the name input
|
||||||
|
name_input = display_name;
|
||||||
|
|
||||||
// --- All data fetched, now initialize Jitsi ---
|
// --- All data fetched, now initialize Jitsi ---
|
||||||
await init_jitsi();
|
await init_jitsi();
|
||||||
});
|
});
|
||||||
@@ -350,70 +365,113 @@
|
|||||||
<div id="{jitsi_container_id}" class="jitsi-container"></div>
|
<div id="{jitsi_container_id}" class="jitsi-container"></div>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
|
||||||
|
<div class="jitsi-tools text-sm max-w-xl outline">
|
||||||
{#if show_jitsi_tools}
|
{#if show_jitsi_tools}
|
||||||
<div class="jitsi-tools text-sm max-w-xl">
|
<!-- NOTE: This is a <div> instead of <header> to work with IDAA's Novi styles. -->
|
||||||
<h1 class="text-base">Jitsi Tools and Settings</h1>
|
<div class="flex flex-row gap-1 items-center justify-between w-full">
|
||||||
<ul>
|
<!-- NOTE: This is a <div> instead of <h1> to work with IDAA's Novi styles. -->
|
||||||
{#if display_name && email}
|
<div class="text-lg w-fit">IDAA Jitsi</div>
|
||||||
<li class="z-50 bg-amber-50">{display_name} ({email})</li>
|
|
||||||
{/if}
|
|
||||||
<li>Room: {room_name}</li>
|
|
||||||
<li>Domain: {domain}</li>
|
|
||||||
<li>User ID: {user_id}</li>
|
|
||||||
<li>Moderator: {is_moderator ? 'Yes' : 'No'}</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<!-- margin-top: 1.5em; border-top: 2px dashed #ccc; padding: 1em; background-color: pink; -->
|
|
||||||
<div
|
|
||||||
class="
|
|
||||||
mt-2 pt-2 border-t-2 border-dashed border-gray-400
|
|
||||||
flex flex-col lg:flex-row gap-05
|
|
||||||
"
|
|
||||||
>
|
|
||||||
<strong>Jitsi Sound Settings:</strong>
|
|
||||||
<label>
|
|
||||||
<input type="checkbox" id="incoming_msg_sound_checkbox" checked disabled />
|
|
||||||
Disable Incoming Message Sound
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<label>
|
|
||||||
<input type="checkbox" id="participant_joined_sound_checkbox" disabled />
|
|
||||||
Disable Participant Joined Sound
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<label>
|
|
||||||
<input type="checkbox" id="participant_left_sound_checkbox" disabled />
|
|
||||||
Disable Participant Left Sound
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<label>
|
|
||||||
<input type="checkbox" id="reaction_sound_checkbox" checked disabled />
|
|
||||||
Disable Reaction Sound
|
|
||||||
</label>
|
|
||||||
<label>
|
|
||||||
<input type="checkbox" id="raise_hand_sound_checkbox" checked disabled />
|
|
||||||
Disable Raise Hand Sound
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<button
|
<button
|
||||||
class="mt-2 px-2 py-1 bg-orange-500 text-white rounded hover:bg-orange-600"
|
class="px-2 py-1 bg-red-200 text-white rounded hover:bg-red-400"
|
||||||
onclick={() => init_jitsi()}
|
onclick={() => (show_jitsi_tools = false)}
|
||||||
>
|
>
|
||||||
Re-initialize Jitsi
|
<span class="fas fa-times" aria-hidden="true"></span>
|
||||||
</button>
|
<span class="sr-only">Close Jitsi Tools</span>
|
||||||
|
|
||||||
<button
|
|
||||||
class="mt-2 px-2 py-1 bg-blue-500 text-white rounded hover:bg-blue-600"
|
|
||||||
onclick={() => {
|
|
||||||
// Placeholder for function calls to update Novi data
|
|
||||||
console.log('Re-sync Novi Data button clicked. Implement as needed.');
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
Re-sync Novi Data
|
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
<ul>
|
||||||
|
{#if display_name && email}
|
||||||
|
<li class="bg-amber-50">{display_name} ({email})</li>
|
||||||
|
{/if}
|
||||||
|
<li>Room: <span class="text-sm font-mono">{room_name}</span></li>
|
||||||
|
<li>Domain: <span class="text-sm font-mono">{domain}</span></li>
|
||||||
|
<li>User ID: <span class="text-sm font-mono">{user_id}</span></li>
|
||||||
|
<li>Moderator: {is_moderator ? 'Yes' : 'No'}</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="mt-2 pt-2 border-t-2 border-dashed border-gray-400">
|
||||||
|
<label for="display_name_input" class="block font-bold">Change Name:</label>
|
||||||
|
<span class="w-full flex flex-row items-center justify-between gap-1">
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
id="display_name_input"
|
||||||
|
bind:value={name_input}
|
||||||
|
class="border rounded px-2 py-1 w-full"
|
||||||
|
placeholder="Enter new display name"
|
||||||
|
/>
|
||||||
|
<button
|
||||||
|
onclick={handle_name_update}
|
||||||
|
class="px-2 py-1 bg-green-500 text-white rounded hover:bg-green-600"
|
||||||
|
>
|
||||||
|
<span class="fas fa-user-edit" aria-hidden="true"></span>
|
||||||
|
Update
|
||||||
|
<span class="sr-only"> Display Name</span>
|
||||||
|
</button>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- margin-top: 1.5em; border-top: 2px dashed #ccc; padding: 1em; background-color: pink; -->
|
||||||
|
<div
|
||||||
|
class="
|
||||||
|
mt-2 pt-2 border-t-2 border-dashed border-gray-400
|
||||||
|
flex flex-col lg:flex-row gap-05
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<strong>Jitsi Sound Settings:</strong>
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" id="incoming_msg_sound_checkbox" checked disabled />
|
||||||
|
Disable Incoming Message Sound
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" id="participant_joined_sound_checkbox" disabled />
|
||||||
|
Disable Participant Joined Sound
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" id="participant_left_sound_checkbox" disabled />
|
||||||
|
Disable Participant Left Sound
|
||||||
|
</label>
|
||||||
|
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" id="reaction_sound_checkbox" checked disabled />
|
||||||
|
Disable Reaction Sound
|
||||||
|
</label>
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" id="raise_hand_sound_checkbox" checked disabled />
|
||||||
|
Disable Raise Hand Sound
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button
|
||||||
|
class="mt-2 px-2 py-1 bg-orange-500 text-white rounded hover:bg-orange-600"
|
||||||
|
onclick={() => init_jitsi()}
|
||||||
|
>
|
||||||
|
Re-initialize Jitsi
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<button
|
||||||
|
class="mt-2 px-2 py-1 bg-blue-500 text-white rounded hover:bg-blue-600"
|
||||||
|
onclick={() => {
|
||||||
|
// Placeholder for function calls to update Novi data
|
||||||
|
console.log('Re-sync Novi Data button clicked. Implement as needed.');
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Re-sync Novi Data
|
||||||
|
</button>
|
||||||
|
|
||||||
|
{:else}
|
||||||
|
<button
|
||||||
|
class="px-2 py-1 bg-red-200 text-white rounded hover:bg-red-400"
|
||||||
|
onclick={() => (show_jitsi_tools = true)}
|
||||||
|
aria-label="Open Jitsi Tools"
|
||||||
|
>
|
||||||
|
<span class="fas fa-tools" aria-hidden="true"></span>
|
||||||
|
<span class="sr-only">Open Jitsi Tools</span>
|
||||||
|
</button>
|
||||||
{/if}
|
{/if}
|
||||||
|
</div>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.jitsi-container {
|
.jitsi-container {
|
||||||
@@ -428,7 +486,7 @@
|
|||||||
.jitsi-tools {
|
.jitsi-tools {
|
||||||
z-index: 1000;
|
z-index: 1000;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 20px;
|
bottom: 6em;
|
||||||
right: 20px;
|
right: 20px;
|
||||||
background-color: rgba(255, 255, 255, 0.8);
|
background-color: rgba(255, 255, 255, 0.8);
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
|
|||||||
Reference in New Issue
Block a user