- add flag images for language switcher

- hide messages if room parameter is not given
This commit is contained in:
stefan.tollkuehn committed 2026-09-30 13:53:23 +02:00
1 parent 0d06c9ab24
commit 77367e86a1
4 files changed
+62 -6

No files matched your search

+42 -6
View File
@@ -32,6 +32,9 @@
top: 16px;
right: 16px;
z-index: 100;
display: flex;
align-items: flex-start;
gap: 8px;
}
.lang-menu {
@@ -78,6 +81,14 @@
background: #f0f8ff;
}
.lang-flag {
width: 20px;
height: 13px;
margin-right: 6px;
border-radius: 2px;
vertical-align: -2px;
}
.card {
box-sizing: border-box;
width: min(600px, calc(100% - 32px));
@@ -266,14 +277,18 @@
<body>
<nav class="navbar">
<a class="button secondary" href="https://www.bnvb-ingenieure.de/impressum" target="_blank" rel="noopener noreferrer">
Impressum
</a>
<div id="langMenu" class="lang-menu">
<button id="langButton" class="button secondary" type="button" aria-haspopup="true" aria-expanded="false">
English
<img id="langFlag" class="lang-flag" src="assets/uk.svg" alt="">
<span id="langLabel">English</span>
</button>
<div id="langDropdown" class="lang-dropdown">
<button type="button" data-lang="en">English</button>
<button type="button" data-lang="de">Deutsch</button>
<button type="button" data-lang="fr">Français</button>
<button type="button" data-lang="en"><img class="lang-flag" src="assets/uk.svg" alt="">English</button>
<button type="button" data-lang="de"><img class="lang-flag" src="assets/de.svg" alt="">Deutsch</button>
<button type="button" data-lang="fr"><img class="lang-flag" src="assets/fr.svg" alt="">Français</button>
</div>
</div>
</nav>
@@ -881,8 +896,15 @@
fr: "Français"
};
const LANGUAGE_FLAGS = {
en: "assets/uk.svg",
de: "assets/de.svg",
fr: "assets/fr.svg"
};
function updateLanguageMenu() {
langButton.textContent = LANGUAGE_NAMES[currentLanguage];
langFlag.src = LANGUAGE_FLAGS[currentLanguage];
langLabel.textContent = LANGUAGE_NAMES[currentLanguage];
langDropdown
.querySelectorAll("button[data-lang]")
@@ -982,6 +1004,8 @@
const langMenu = document.getElementById("langMenu");
const langButton = document.getElementById("langButton");
const langDropdown = document.getElementById("langDropdown");
const langFlag = document.getElementById("langFlag");
const langLabel = document.getElementById("langLabel");
/* ============================================================
* GET ROOM FROM QUERY-PARAMETER
@@ -1501,7 +1525,19 @@ END:VCALENDAR`;
const room = getRoom();
/*
* Kein room-Parameter
* Kein room-Parameter: Meldungen ausblenden,
* nur den Create-Button anzeigen.
*/
if (room === null) {
invalidRoom.querySelector("h1").classList.add("hidden");
invalidRoom.querySelector(".error").classList.add("hidden");
invalidRoom.classList.remove("hidden");
createNewMeetingButton.classList.remove("hidden");
return;
}
/*
* Ungültiger room-Parameter.
*/
if (!isValidRoom(room)) {
invalidRoom.classList.remove("hidden");