Starting to wrap up for the night. Gemini cleaned up the tools and settings section.
This commit is contained in:
@@ -14,7 +14,7 @@
|
|||||||
// Toggles for collapsible sections
|
// Toggles for collapsible sections
|
||||||
let show_meeting_details: boolean = $state(false);
|
let show_meeting_details: boolean = $state(false);
|
||||||
let show_live_stats: boolean = $state(false);
|
let show_live_stats: boolean = $state(false);
|
||||||
let show_name_changer: boolean = $state(false);
|
let show_profile_editor: boolean = $state(false);
|
||||||
let show_sound_settings: boolean = $state(false);
|
let show_sound_settings: boolean = $state(false);
|
||||||
|
|
||||||
let user_id: null | string = $state(null);
|
let user_id: null | string = $state(null);
|
||||||
@@ -35,6 +35,7 @@
|
|||||||
let disable_raise_hand_sound: boolean = $state(true); // NOTE: Disable by default
|
let disable_raise_hand_sound: boolean = $state(true); // NOTE: Disable by default
|
||||||
|
|
||||||
let name_input: string = $state('');
|
let name_input: string = $state('');
|
||||||
|
let email_input: string = $state('');
|
||||||
|
|
||||||
// State for Live Meeting Stats
|
// State for Live Meeting Stats
|
||||||
let meeting_participants = $state(new Map<string, any>());
|
let meeting_participants = $state(new Map<string, any>());
|
||||||
@@ -114,13 +115,23 @@
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function handle_name_update() {
|
async function handle_profile_update() {
|
||||||
if (name_input && name_input.trim() !== '' && name_input !== display_name) {
|
const name_changed = name_input && name_input.trim() !== '' && name_input !== display_name;
|
||||||
console.log(`Jitsi: User updating name from "${display_name}" to "${name_input}"`);
|
const email_changed = email_input && email_input.trim() !== '' && email_input !== email;
|
||||||
display_name = name_input.trim();
|
|
||||||
|
if (name_changed || email_changed) {
|
||||||
|
console.log(`Jitsi: User updating profile.`);
|
||||||
|
if (name_changed) {
|
||||||
|
console.log(` - Name from "${display_name}" to "${name_input}"`);
|
||||||
|
display_name = name_input.trim();
|
||||||
|
}
|
||||||
|
if (email_changed) {
|
||||||
|
console.log(` - Email from "${email}" to "${email_input}"`);
|
||||||
|
email = email_input.trim();
|
||||||
|
}
|
||||||
await init_jitsi();
|
await init_jitsi();
|
||||||
} else {
|
} else {
|
||||||
console.log('Jitsi: Name update skipped. New name is same as old or empty.');
|
console.log('Jitsi: Profile update skipped. No changes detected.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -243,8 +254,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
|
// Set initial value for the profile editor inputs
|
||||||
name_input = display_name;
|
name_input = display_name;
|
||||||
|
email_input = email;
|
||||||
|
|
||||||
// --- All data fetched, now initialize Jitsi ---
|
// --- All data fetched, now initialize Jitsi ---
|
||||||
await init_jitsi();
|
await init_jitsi();
|
||||||
@@ -540,7 +552,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="mt-1">
|
<div class="mt-1">
|
||||||
<h4 class="font-semibold">Participants:</h4>
|
<div class="font-bold">Participants:</div>
|
||||||
<ul class="pl-4 list-disc">
|
<ul class="pl-4 list-disc">
|
||||||
{#each Array.from(meeting_participants.values()).filter((p) => p.role !== 'moderator') as person (person.id)}
|
{#each Array.from(meeting_participants.values()).filter((p) => p.role !== 'moderator') as person (person.id)}
|
||||||
<li>{person.displayName}</li>
|
<li>{person.displayName}</li>
|
||||||
@@ -553,34 +565,45 @@
|
|||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Change Name -->
|
<!-- Profile -->
|
||||||
<div class="mt-2 pt-2 border-t-2 border-dashed border-gray-400">
|
<div class="mt-2 pt-2 border-t-2 border-dashed border-gray-400">
|
||||||
<button
|
<button
|
||||||
onclick={() => (show_name_changer = !show_name_changer)}
|
onclick={() => (show_profile_editor = !show_profile_editor)}
|
||||||
class="w-full flex justify-between items-center font-bold text-left"
|
class="w-full flex justify-between items-center font-bold text-left"
|
||||||
>
|
>
|
||||||
Change Name
|
Profile
|
||||||
<span class="fas {show_name_changer ? 'fa-chevron-up' : 'fa-chevron-down'}"></span>
|
<span class="fas {show_profile_editor ? 'fa-chevron-up' : 'fa-chevron-down'}"></span>
|
||||||
</button>
|
</button>
|
||||||
{#if show_name_changer}
|
{#if show_profile_editor}
|
||||||
<div class="mt-1 pl-2">
|
<div class="mt-1 pl-2 space-y-2">
|
||||||
<span class="w-full flex flex-row items-center justify-between gap-1">
|
<div>
|
||||||
<input
|
<label for="display_name_input" class="block font-semibold">Name:</label>
|
||||||
type="text"
|
<input
|
||||||
id="display_name_input"
|
type="text"
|
||||||
bind:value={name_input}
|
id="display_name_input"
|
||||||
class="border rounded px-2 py-1 w-full"
|
bind:value={name_input}
|
||||||
placeholder="Enter new display name"
|
class="border rounded px-2 py-1 w-full"
|
||||||
/>
|
placeholder="Enter new display name"
|
||||||
<button
|
/>
|
||||||
onclick={handle_name_update}
|
</div>
|
||||||
class="px-2 py-1 bg-green-200 text-white rounded hover:bg-green-400"
|
<div>
|
||||||
title="Update your display name"
|
<label for="email_input" class="block font-semibold">Email:</label>
|
||||||
>
|
<input
|
||||||
<span class="fas fa-user-edit" aria-hidden="true"></span>
|
type="email"
|
||||||
<span class="sr-only">Update Display Name</span>
|
id="email_input"
|
||||||
</button>
|
bind:value={email_input}
|
||||||
</span>
|
class="border rounded px-2 py-1 w-full"
|
||||||
|
placeholder="Enter new email"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<button
|
||||||
|
onclick={handle_profile_update}
|
||||||
|
class="w-full mt-1 px-2 py-1 bg-green-500 text-white rounded hover:bg-green-600"
|
||||||
|
title="Update your profile"
|
||||||
|
>
|
||||||
|
<span class="fas fa-user-edit" aria-hidden="true"></span>
|
||||||
|
Update Profile
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
@@ -666,7 +689,9 @@
|
|||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mt-2 pt-2 border-t-2 border-dashed border-gray-400">
|
<div class="
|
||||||
|
flex flex-col sm:flex-row gap-1 items-center justify-center w-full
|
||||||
|
mt-2 pt-2 border-t-2 border-dashed border-gray-400">
|
||||||
|
|
||||||
<button
|
<button
|
||||||
class="mt-2 px-2 py-1 bg-orange-200 text-white rounded hover:bg-orange-400"
|
class="mt-2 px-2 py-1 bg-orange-200 text-white rounded hover:bg-orange-400"
|
||||||
|
|||||||
Reference in New Issue
Block a user