Compare commits

..
2 Commits
Author SHA1 Message Date
stefan.tollkuehn eb1e62c511 add email validator 2026-09-29 14:38:34 +02:00
stefan.tollkuehn a557d76e72 - rename AGENT.md to AGENTS.md
- show new meeting button only if the room parameter is not provided
2026-09-23 17:35:16 +02:00
2 changed files with 80 additions and 15 deletions

No files matched your search

View File
File renamed without changes.
+80 -15
View File
@@ -241,7 +241,7 @@
Open meeting
</button>
<button id="createNewFromLauncherButton" class="button secondary" type="button" data-i18n="creator.createNewButton">
<button id="createNewFromLauncherButton" class="button secondary hidden" type="button" data-i18n="creator.createNewButton">
Create New Meeting
</button>
</div>
@@ -277,12 +277,11 @@
<!-- Windows -->
<div id="windowsDownload" class="download hidden">
<h2 data-i18n="downloads.windows.title">
Jitsi Meet for Windows
Jitsi Meet for Microsoft Windows
</h2>
<p data-i18n="downloads.windows.description">
Install the Jitsi Meet desktop client and then try opening the
meeting again.
Install the Jitsi Meet desktop client and then try opening the meeting again.
</p>
<a id="windowsLink" class="button secondary" target="_blank" rel="noopener noreferrer" data-i18n="downloads.windows.button">
@@ -293,12 +292,11 @@
<!-- macOS -->
<div id="macosDownload" class="download hidden">
<h2 data-i18n="downloads.macos.title">
Jitsi Meet for macOS
Jitsi Meet for Apple macOS
</h2>
<p data-i18n="downloads.macos.description">
Install the Jitsi Meet desktop client and then try opening the
meeting again.
Install the Jitsi Meet desktop client and then try opening the meeting again.
</p>
<a id="macosLink" class="button secondary" target="_blank" rel="noopener noreferrer" data-i18n="downloads.macos.button">
@@ -306,7 +304,22 @@
</a>
</div>
<!-- Linux / unbekannt -->
<!-- Linux -->
<div id="linuxDownload" class="download hidden">
<h2 data-i18n="downloads.linux.title">
Jitsi Meet for Linux
</h2>
<p data-i18n="downloads.linux.description">
Install the Jitsi Meet desktop client and then try opening the meeting again.
</p>
<a id="linuxLink" class="button secondary" target="_blank" rel="noopener noreferrer" data-i18n="downloads.linux.button">
Download Jitsi for Linux
</a>
</div>
<!-- unknown -->
<div id="otherDownload" class="download hidden">
<h2 data-i18n="downloads.other.title">
Jitsi Meet Desktop
@@ -350,7 +363,7 @@
</div>
<div style="margin-top: 24px;">
<button id="createNewMeetingButton" class="button primary" type="button" data-i18n="creator.createNewButton">
<button id="createNewMeetingButton" class="button primary hidden" type="button" data-i18n="creator.createNewButton">
Create New Meeting
</button>
</div>
@@ -416,7 +429,11 @@
const CONFIG = {
/*
* Your Jitsi Domain.
* Your Jitsi Launcher domain
*/
jitsiLauncher: "meet.bnvb.eu",
/*
* Your Jitsi domain.
*/
jitsiHost: "meet.bnvb-ingenieure.de",
/*
@@ -429,7 +446,8 @@
*/
downloads: {
windows: "https://github.com/jitsi/jitsi-meet-electron/releases",
macos: "https://github.com/jitsi/jitsi-meet-electron/releases"
macos: "https://github.com/jitsi/jitsi-meet-electron/releases",
linux: "https://github.com/jitsi/jitsi-meet-electron/releases"
}
};
@@ -475,6 +493,13 @@
button: "Download Jitsi for macOS"
},
linux: {
title: "Jitsi Meet for Linux",
description:
"Install the Jitsi Meet desktop client and then try opening the meeting again.",
button: "Download Jitsi for Linux"
},
other: {
title: "Jitsi Meet Desktop",
description:
@@ -511,7 +536,8 @@
startTimeRequired: "Please select a start time",
endTimeRequired: "Please select an end time",
endAfterStart: "End time must be after start time",
organizerRequired: "Please enter an organizer email"
organizerRequired: "Please enter an organizer email",
organizerInvalid: "Please enter a valid organizer email address"
}
},
@@ -552,6 +578,13 @@
button: "Jitsi für macOS herunterladen"
},
linux: {
title: "Jitsi Meet für Linux",
description:
"Installiere den Jitsi Meet Desktop-Client und versuche anschließend erneut, das Meeting zu öffnen.",
button: "Jitsi für Linux herunterladen"
},
other: {
title: "Jitsi Meet Desktop",
description:
@@ -589,7 +622,8 @@
startTimeRequired: "Bitte wähle eine Startzeit",
endTimeRequired: "Bitte wähle eine Endzeit",
endAfterStart: "Die Endzeit muss nach der Startzeit liegen",
organizerRequired: "Bitte gib eine Organisator-E-Mail ein"
organizerRequired: "Bitte gib eine Organisator-E-Mail ein",
organizerInvalid: "Bitte gib eine gültige Organisator-E-Mail-Adresse ein"
}
},
@@ -630,6 +664,13 @@
button: "Télécharger Jitsi pour macOS"
},
linux: {
title: "Jitsi Meet pour Linux",
description:
"Installez le client bureau Jitsi Meet, puis essayez de rouvrir la réunion.",
button: "Télécharger Jitsi pour Linux"
},
other: {
title: "Jitsi Meet Desktop",
description:
@@ -666,7 +707,8 @@
startTimeRequired: "Veuillez sélectionner une heure de début",
endTimeRequired: "Veuillez sélectionner une heure de fin",
endAfterStart: "L'heure de fin doit être après l'heure de début",
organizerRequired: "Veuillez entrer un email d'organisateur"
organizerRequired: "Veuillez entrer un email d'organisateur",
organizerInvalid: "Veuillez entrer une adresse email d'organisateur valide"
}
}
};
@@ -770,9 +812,11 @@
const browserLink = document.getElementById("browserLink");
const windowsDownload = document.getElementById("windowsDownload");
const macosDownload = document.getElementById("macosDownload");
const linuxDownload = document.getElementById("linuxDownload");
const otherDownload = document.getElementById("otherDownload");
const windowsLink = document.getElementById("windowsLink");
const macosLink = document.getElementById("macosLink");
const linuxLink = document.getElementById("linuxLink");
const createNewMeetingButton = document.getElementById("createNewMeetingButton");
const createNewFromLauncherButton = document.getElementById("createNewFromLauncherButton");
@@ -977,6 +1021,7 @@
windowsDownload.classList.add("hidden");
macosDownload.classList.add("hidden");
linuxDownload.classList.add("hidden");
otherDownload.classList.add("hidden");
/* Windows */
@@ -993,6 +1038,13 @@
return;
}
/* Linux */
if (os === "linux") {
linuxLink.href = CONFIG.downloads.linux;
linuxDownload.classList.remove("hidden");
return;
}
/* Alles andere */
otherDownload.classList.remove("hidden");
}
@@ -1135,7 +1187,7 @@
function generateICS(meetingName, description, startTime, endTime, organizer) {
/* Generate a unique room name from the meeting name */
const roomName = meetingName.toLowerCase().replace(/\s+/g, '-').replace(/[^a-z0-9-]/g, '');
const meetingUrl = `https://${CONFIG.jitsiHost}/launch.html?room=${encodeURIComponent(roomName)}`;
const meetingUrl = `https://${CONFIG.jitsiLauncher}/launch.html?room=${encodeURIComponent(roomName)}`;
/* Format dates for ICS */
const formatICSDate = (date) => {
@@ -1252,6 +1304,12 @@ END:VCALENDAR`;
return;
}
const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
if (!emailPattern.test(organizer)) {
alert(getTranslation('creator.organizerInvalid') || 'Please enter a valid organizer email address');
return;
}
/* Generate ICS */
const icsData = generateICS(meetingName, description || meetingName, startTime, endTime, organizer);
@@ -1295,6 +1353,8 @@ END:VCALENDAR`;
*/
if (!isValidRoom(room)) {
invalidRoom.classList.remove("hidden");
/* Show the create new meeting button when no room is specified */
createNewMeetingButton.classList.remove("hidden");
return;
}
@@ -1313,6 +1373,11 @@ END:VCALENDAR`;
*/
launcher.classList.remove("hidden");
/*
* Hide the "Create New Meeting" button when a valid room is specified
*/
createNewFromLauncherButton.classList.add("hidden");
/*
* Debug-Informationen.
*/