diff --git a/public/js/script.js b/public/js/script.js index 35aa59e..a6d79f9 100644 --- a/public/js/script.js +++ b/public/js/script.js @@ -1,395 +1,424 @@ - // index.html - - // Funktion, um die WEB_NAME-Variable abzurufen und einzufügen - document.addEventListener('DOMContentLoaded', () => { - fetch('/api/web-name') - .then(response => response.json()) - .then(data => { - const webName = data.name; - // Ersetze den Text im h1- und title-Tag - document.getElementById('welcome-title').textContent = `Willkommen bei ${webName}`; - document.getElementById('web-title').textContent = webName; - }) - .catch(error => console.error('Fehler beim Abrufen des Web-Namens:', error)); -}); - - -// Funktion, um die Umgebungsvariablen abzurufen -const fetchEnvVariables = async () => { - const response = await fetch('/api/env'); - const data = await response.json(); - - document.getElementById('bot-alias').textContent = data.botAlias; - document.getElementById('telegram-link').href = data.telegramLink; -}; - -document.addEventListener('DOMContentLoaded', () => { - fetch('/api/telegram-link') // API-Endpunkt zum Abrufen des Telegram-Links - .then(response => response.json()) - .then(data => { - const telegramLink = document.getElementById('telegram-link'); - telegramLink.href = data.link; // Setze den Link im Anchor-Tag - }) - .catch(error => console.error('Fehler beim Abrufen des Telegram-Links:', error)); - - // Version abrufen - fetch('/api/bot-version') - .then(response => response.json()) - .then(data => { - const botVersion = document.getElementById('bot-version'); - botVersion.textContent = data.version; // Setze die Versionsnummer - }) - .catch(error => console.error('Fehler beim Abrufen der Bot-Version:', error)); - - // Funktion, um die neuesten Filme abzurufen - async function fetchLatestMovies() { - try { - const response = await fetch('/api/latest-movies'); // API-URL - const movies = await response.json(); // Filme abrufen - const moviesList = document.getElementById('movies-list'); - - // Leere die Liste, bevor du neue Filme hinzufügst - moviesList.innerHTML = ''; - - // Füge die neuesten Filme zur Liste hinzu - movies.forEach(movie => { - const listItem = document.createElement('li'); - listItem.classList.add('movie-item'); // Füge Klasse hinzu für CSS - - // Erstelle das Coverbild - const coverImage = document.createElement('img'); - coverImage.src = movie.coverImage; // URL des Coverbilds - coverImage.alt = movie.title; // Alternativtext für das Bild - - // Überprüfen, ob das Bild geladen werden kann - coverImage.onerror = () => { - console.error(`Konnte das Bild für ${movie.title} nicht laden: ${coverImage.src}`); - coverImage.src = 'fallback-image-url.jpg'; // Fallback-Bild, wenn das Bild nicht geladen werden kann - }; - - // Füge das Bild zur Liste hinzu - listItem.appendChild(coverImage); - moviesList.appendChild(listItem); - }); - - // Animation für das Einblenden der Filme - requestAnimationFrame(() => { - moviesList.childNodes.forEach((item, index) => { - setTimeout(() => { - item.style.opacity = 1; // Opazität für sanftes Einblenden - }, index * 100); // Verzögerung für jeden Film - }); - }); - - } catch (error) { - console.error('Fehler beim Abrufen der Filme:', error); - } - } - - // Event-Listener für das Formular - document.getElementById('subscribe-form').addEventListener('submit', function(event) { - event.preventDefault(); - const email = document.getElementById('email').value; - const username = document.getElementById('username').value; - - // Generiere eine Dummy-Chat-ID - const chatId = Math.floor(Math.random() * 1000000); // Zufällige Zahl zwischen 0 und 999999 - - fetch('/subscribe', { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ email, chatId, username }) - }) - .then(response => response.text()) - .then(data => alert(data)) - .catch(error => alert('Fehler: ' + error)); - }); - - // Darkmode umschalten - const toggle = document.getElementById('dark-mode-toggle'); - - // Darkmode-Zustand beim Laden der Seite überprüfen und anwenden - const darkModeEnabled = localStorage.getItem('darkMode') === 'true'; - toggle.checked = darkModeEnabled; - if (darkModeEnabled) { - document.body.classList.add('dark-mode'); - } - - toggle.addEventListener('change', () => { - const isChecked = toggle.checked; - document.body.classList.toggle('dark-mode', isChecked); - // Speichere den Zustand in localStorage - localStorage.setItem('darkMode', isChecked); - }); - - // Beim Laden der Seite die neuesten Filme abrufen - window.onload = fetchLatestMovies; - - // Aktualisiere die Filme jede Minute (60000 Millisekunden) - setInterval(fetchLatestMovies, 60000); - - // Changelog-Daten - const changelogData = { -"changelog": [ -{ - "version": "1.8.5", - "date": "2024-10-18", - "changes": [ - "Dev-Report Filme können jetzt gemeldet werden", - "Backend Notification für Dev-Melungen hinzugefügt", - "Diverse kleinere Bugfix", - "Darkmode Bugfix" - ] -}, -{ - "version": "1.8.4", - "date": "2024-10-17", - "changes": [ - "Backups Passwort schutz", - "Verbesserter Passwort schutz für Admin Bereich" - ] -}, -{ - "version": "1.8.3", - "date": "2024-10-17", - "changes": [ - "Logout Timer hinzugefügt.", - "Automatisches Logout bei Inaktivität", - "Login-Seite überarbeitet für bessere Benutzerfreundlichkeit.", - "Darkmode im Adminbereich hinzugefügt." - ] -}, -{ - "version": "1.8.2", - "date": "2024-10-16", - "changes": [ - "Neue FAQ-Seite für Benutzer hinzugefügt.", - "Benutzerfreundliche Darstellung der FAQs.", - "Verbesserte Performance bei der Datenabfrage.", - "Diverse kleinere Fehlerbehebungen." - ] -}, -{ - "version": "1.8.1", - "date": "2024-10-16", - "changes": [ - "Bugfix mit Darkmode.", - "Dev-Report hinzugefügt (Bug-Report & Funktionswünsche)." - ] -} -] -}; - - - // Changelog im Popup anzeigen - const changelogList = document.getElementById('changelog-list'); - - changelogData.changelog.forEach(entry => { - const changelogItem = document.createElement('div'); - changelogItem.classList.add('changelog-entry'); // Füge eine Klasse für das Styling hinzu - - changelogItem.innerHTML = ` - Version ${entry.version} (${entry.date}): - - `; - changelogList.appendChild(changelogItem); - }); - - // Changelog-Popup-Elemente - const changelogIcon = document.getElementById('changelog-icon'); - const popup = document.getElementById('changelog-popup'); - const closePopup = document.getElementById('close-popup'); - - // Popup öffnen - changelogIcon.addEventListener('click', () => { - popup.style.display = 'block'; - document.body.classList.toggle('dark-mode', toggle.checked); // Darkmode bei Popup-Anzeige aktivieren - }); - - // Popup schließen - closePopup.addEventListener('click', () => { - popup.style.display = 'none'; - document.body.classList.toggle('dark-mode', toggle.checked); // Darkmode wieder zurücksetzen - }); - - // Klick außerhalb des Popups schließt es - window.addEventListener('click', (event) => { - if (event.target === popup) { - popup.style.display = 'none'; - document.body.classList.toggle('dark-mode', toggle.checked); // Darkmode wieder zurücksetzen - } - }); -}); - - - -//wunsch html - - - -document.addEventListener('DOMContentLoaded', () => { - fetch('/api/telegram-link') // API-Endpunkt zum Abrufen des Telegram-Links - .then(response => response.json()) - .then(data => { - const telegramLink = document.getElementById('telegram-link'); - telegramLink.href = data.link; // Setze den Link im Anchor-Tag - }) - .catch(error => console.error('Fehler beim Abrufen des Telegram-Links:', error)); - - // Version abrufen - fetch('/api/bot-version') - .then(response => response.json()) - .then(data => { - const botVersion = document.getElementById('bot-version'); - botVersion.textContent = data.version; // Setze die Versionsnummer - }) - .catch(error => console.error('Fehler beim Abrufen der Bot-Version:', error)); - - - // Handle form submission - document.getElementById('wunsch-form').addEventListener('submit', function(event) { - event.preventDefault(); - const wunsch = document.getElementById('wunsch').value; - const type = document.getElementById('type').value; - - fetch('/api/telegram-wunsch', { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ wunsch, type }) - }) - .then(response => response.json()) - .then(data => { - document.getElementById('response-message').textContent = data.message; - }) - .catch(error => { - document.getElementById('response-message').textContent = 'Fehler beim Senden des Wunsches: ' + error; - }); - }); -}); - -// Darkmode umschalten -const toggle = document.getElementById('dark-mode-toggle'); -const darkModeEnabled = localStorage.getItem('darkMode') === 'true'; -toggle.checked = darkModeEnabled; -if (darkModeEnabled) document.body.classList.add('dark-mode'); - -toggle.addEventListener('change', () => { - const isChecked = toggle.checked; - document.body.classList.toggle('dark-mode', isChecked); - localStorage.setItem('darkMode', isChecked); -}); - - - -//faq html - // Funktion zum Abrufen der FAQs - function fetchFaqs() { - fetch('/api/faqs') - .then(response => response.json()) - .then(data => { - const faqSection = document.getElementById('faq-section'); - faqSection.innerHTML = ''; // Leere den Inhalt zuerst - - if (data.length === 0) { - faqSection.innerHTML = '

Es gibt derzeit keine FAQs.

'; - } else { - data.forEach((faq, index) => { - const faqItem = document.createElement('div'); - faqItem.classList.add('faq-item'); - - const faqToggle = document.createElement('div'); - faqToggle.classList.add('faq-toggle'); - faqToggle.innerHTML = `

${index + 1}. ${faq.question}

- `; - faqItem.appendChild(faqToggle); - - const faqAnswer = document.createElement('p'); - faqAnswer.classList.add('faq-answer'); - faqAnswer.innerText = faq.answer; - faqItem.appendChild(faqAnswer); - - // Event-Listener hinzufügen, um die Antwort anzuzeigen oder auszublenden - faqToggle.addEventListener('click', () => { - faqAnswer.classList.toggle('show'); - const arrow = faqToggle.querySelector('.arrow'); - arrow.style.transform = faqAnswer.classList.contains('show') ? 'rotate(180deg)' : 'rotate(0deg)'; - }); - - faqSection.appendChild(faqItem); - }); - } - }) - .catch(error => console.error('Fehler beim Abrufen der FAQs:', error)); - } - - document.addEventListener('DOMContentLoaded', () => { - // FAQs beim Laden der Seite abrufen - fetchFaqs(); - - - }); - - -//kontakt html - -// Kontaktinformationen aus .env abrufen -document.addEventListener('DOMContentLoaded', () => { - fetch('/api/contact-info') // API-Endpunkt zum Abrufen der Kontaktinformationen - .then(response => response.json()) - .then(data => { - document.getElementById('contact-email').href = `mailto:${data.email}`; - document.getElementById('contact-email').textContent = data.email; - document.getElementById('contact-telegram').href = data.telegram; - document.getElementById('contact-telegram').textContent = data.telegram.split('/').pop(); // Extrahiere den Benutzernamen aus der URL - }) - .catch(error => console.error('Fehler beim Abrufen der Kontaktinformationen:', error)); -}); - - -//Report html - -document.getElementById('report-form').addEventListener('submit', function(event) { - event.preventDefault(); - - const type = document.getElementById('report-type').value; - const user = { name: document.getElementById('username').value }; - const message = document.getElementById('message').value; - - fetch('/api/submit-report', { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ type, user, message }) - }) - .then(response => response.json()) - .then(data => { - // Bestätigung anzeigen - document.getElementById('confirmation').style.display = 'block'; - - // Formular leeren - document.getElementById('report-form').reset(); - - // Bestätigung nach 5 Sekunden ausblenden - setTimeout(() => { - document.getElementById('confirmation').style.display = 'none'; - }, 5000); - }) - .catch(error => { - console.error('Fehler beim Übermitteln des Berichts:', error); - alert('Es gab ein Problem beim Senden des Berichts. Bitte versuche es später erneut.'); - }); -}); - - -toggle.addEventListener('change', () => { - const isChecked = toggle.checked; - document.body.classList.toggle('dark-mode', isChecked); - // Speichere den Zustand in localStorage - localStorage.setItem('darkMode', isChecked); -}); - - -//link html --> keine Scripte - -//funktionen html --> keine Scripte + // index.html + + // Funktion, um die WEB_NAME-Variable abzurufen und einzufügen + document.addEventListener('DOMContentLoaded', () => { + fetch('/api/web-name') + .then(response => response.json()) + .then(data => { + const webName = data.name; + // Ersetze den Text im h1- und title-Tag + document.getElementById('welcome-title').textContent = `Willkommen bei ${webName}`; + document.getElementById('web-title').textContent = webName; + }) + .catch(error => console.error('Fehler beim Abrufen des Web-Namens:', error)); +}); + + +// Funktion, um die Umgebungsvariablen abzurufen +const fetchEnvVariables = async () => { + const response = await fetch('/api/env'); + const data = await response.json(); + + document.getElementById('bot-alias').textContent = data.botAlias; + document.getElementById('telegram-link').href = data.telegramLink; +}; + +document.addEventListener('DOMContentLoaded', () => { + fetch('/api/telegram-link') // API-Endpunkt zum Abrufen des Telegram-Links + .then(response => response.json()) + .then(data => { + const telegramLink = document.getElementById('telegram-link'); + telegramLink.href = data.link; // Setze den Link im Anchor-Tag + }) + .catch(error => console.error('Fehler beim Abrufen des Telegram-Links:', error)); + + // Version abrufen + fetch('/api/bot-version') + .then(response => response.json()) + .then(data => { + const botVersion = document.getElementById('bot-version'); + botVersion.textContent = data.version; // Setze die Versionsnummer + }) + .catch(error => console.error('Fehler beim Abrufen der Bot-Version:', error)); + + async function fetchLatestMovies() { + try { + const response = await fetch('/api/latest-movies'); // API-URL + const movies = await response.json(); // Filme abrufen + const moviesList = document.getElementById('movies-list'); + + // Leere die Liste, bevor du neue Filme hinzufügst + moviesList.innerHTML = ''; + + // Füge die neuesten Filme zur Liste hinzu + movies.forEach(movie => { + const listItem = document.createElement('li'); + listItem.classList.add('movie-item'); // Füge Klasse hinzu für CSS + + // Erstelle das Coverbild + const coverImage = document.createElement('img'); + coverImage.src = movie.coverImage; // URL des Coverbilds + coverImage.alt = movie.title; // Alternativtext für das Bild + + // Überprüfen, ob das Bild geladen werden kann + coverImage.onerror = () => { + console.error(`Konnte das Bild für ${movie.title} nicht laden: ${coverImage.src}`); + coverImage.src = 'fallback-image-url.jpg'; // Fallback-Bild, wenn das Bild nicht geladen werden kann + }; + + // Füge ein Klick-Event hinzu, um das Popup zu öffnen + coverImage.addEventListener('click', () => { + openMoviePopup(movie); // Popup mit Filminformationen öffnen + }); + + // Füge das Bild zur Liste hinzu + listItem.appendChild(coverImage); + moviesList.appendChild(listItem); + }); + + // Animation für das Einblenden der Filme + requestAnimationFrame(() => { + moviesList.childNodes.forEach((item, index) => { + setTimeout(() => { + item.style.opacity = 1; // Opazität für sanftes Einblenden + }, index * 100); // Verzögerung für jeden Film + }); + }); + + } catch (error) { + console.error('Fehler beim Abrufen der Filme:', error); + } + } + + // Funktion zum Öffnen des Popups mit Filmdetails + function openMoviePopup(movie) { + document.getElementById('popup-title').innerText = movie.title; // Titel + document.getElementById('popup-cover').src = movie.coverImage; // Cover + document.getElementById('popup-summary').innerText = movie.summary || "Keine Zusammenfassung verfügbar."; // Zusammenfassung + + // Popup anzeigen + document.getElementById('movie-popup').style.display = 'block'; + } + + // Event Listener zum Schließen des Popups + document.getElementById('close-popup').addEventListener('click', () => { + document.getElementById('movie-popup').style.display = 'none'; + }); + + // Event Listener zum Schließen des Popups, wenn außerhalb des Inhalts geklickt wird + window.addEventListener('click', (event) => { + const popup = document.getElementById('movie-popup'); + if (event.target === popup) { + popup.style.display = 'none'; + } + }); + + // Event-Listener für das Formular + document.getElementById('subscribe-form').addEventListener('submit', function(event) { + event.preventDefault(); + const email = document.getElementById('email').value; + const username = document.getElementById('username').value; + + // Generiere eine Dummy-Chat-ID + const chatId = Math.floor(Math.random() * 1000000); // Zufällige Zahl zwischen 0 und 999999 + + fetch('/subscribe', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ email, chatId, username }) + }) + .then(response => response.text()) + .then(data => alert(data)) + .catch(error => alert('Fehler: ' + error)); + }); + + // Darkmode umschalten + const toggle = document.getElementById('dark-mode-toggle'); + + // Darkmode-Zustand beim Laden der Seite überprüfen und anwenden + const darkModeEnabled = localStorage.getItem('darkMode') === 'true'; + toggle.checked = darkModeEnabled; + if (darkModeEnabled) { + document.body.classList.add('dark-mode'); + } + + toggle.addEventListener('change', () => { + const isChecked = toggle.checked; + document.body.classList.toggle('dark-mode', isChecked); + // Speichere den Zustand in localStorage + localStorage.setItem('darkMode', isChecked); + }); + + // Beim Laden der Seite die neuesten Filme abrufen + window.onload = fetchLatestMovies; + + // Aktualisiere die Filme jede Minute (60000 Millisekunden) + setInterval(fetchLatestMovies, 60000); + + // Changelog-Daten + const changelogData = { + "changelog": [ + { + "version": "1.8.8", // Hinzugefügte Version + "date": "2024-10-21", // Aktuelles Datum + "changes": [ + "Mehrere Bugfix", + "Genre im Profil hinzugefügt", + "Nachtmodus Zeit in Profil eingebaut" + ] + }, + { + "version": "1.8.7", // Hinzugefügte Version + "date": "2024-10-20", // Aktuelles Datum + "changes": [ + "Fehlerbehebung mit Profil.", + "Nachtmodus komplett überarbeitet.", + "Fehler beim Wunsch behoben.", + "Benutzerlevel erweitert" + ] + }, + { + "version": "1.8.6", // Neue Version hinzufügen + "date": "2024-10-19", // Aktuelles Datum + "changes": [ + "Neue Popup-Funktionalität für Filmcover hinzugefügt.", + "Cursor wechselt zu Handzeiger über Filmcover.", + "Rahmenfarbe für das Popup hinzugefügt.", + "Verschiedene kleinere Bugfixes." + ] + }, + { + "version": "1.8.5", + "date": "2024-10-18", + "changes": [ + "Dev-Report Filme können jetzt gemeldet werden", + "Backend Notification für Dev-Melungen hinzugefügt", + "Diverse kleinere Bugfix", + "Darkmode Bugfix" + ] + }, + { + "version": "1.8.4", + "date": "2024-10-17", + "changes": [ + "Backups Passwort schutz", + "Verbesserter Passwort schutz für Admin Bereich" + ] + } + ] + }; + + + + // Changelog im Popup anzeigen + const changelogList = document.getElementById('changelog-list'); + + changelogData.changelog.forEach(entry => { + const changelogItem = document.createElement('div'); + changelogItem.classList.add('changelog-entry'); // Füge eine Klasse für das Styling hinzu + + changelogItem.innerHTML = ` + Version ${entry.version} (${entry.date}): + + `; + changelogList.appendChild(changelogItem); + }); + + // Changelog-Popup-Elemente + const changelogIcon = document.getElementById('changelog-icon'); + const popup = document.getElementById('changelog-popup'); + const closePopup = document.getElementById('close-popup'); + + // Popup öffnen + changelogIcon.addEventListener('click', () => { + popup.style.display = 'block'; + document.body.classList.toggle('dark-mode', toggle.checked); // Darkmode bei Popup-Anzeige aktivieren + }); + + // Popup schließen + closePopup.addEventListener('click', () => { + popup.style.display = 'none'; + document.body.classList.toggle('dark-mode', toggle.checked); // Darkmode wieder zurücksetzen + }); + + // Klick außerhalb des Popups schließt es + window.addEventListener('click', (event) => { + if (event.target === popup) { + popup.style.display = 'none'; + document.body.classList.toggle('dark-mode', toggle.checked); // Darkmode wieder zurücksetzen + } + }); +}); + + +//wunsch html + + + +document.addEventListener('DOMContentLoaded', () => { + fetch('/api/telegram-link') // API-Endpunkt zum Abrufen des Telegram-Links + .then(response => response.json()) + .then(data => { + const telegramLink = document.getElementById('telegram-link'); + telegramLink.href = data.link; // Setze den Link im Anchor-Tag + }) + .catch(error => console.error('Fehler beim Abrufen des Telegram-Links:', error)); + + // Version abrufen + fetch('/api/bot-version') + .then(response => response.json()) + .then(data => { + const botVersion = document.getElementById('bot-version'); + botVersion.textContent = data.version; // Setze die Versionsnummer + }) + .catch(error => console.error('Fehler beim Abrufen der Bot-Version:', error)); + + + // Handle form submission + document.getElementById('wunsch-form').addEventListener('submit', function(event) { + event.preventDefault(); + const wunsch = document.getElementById('wunsch').value; + const type = document.getElementById('type').value; + + fetch('/api/telegram-wunsch', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ wunsch, type }) + }) + .then(response => response.json()) + .then(data => { + document.getElementById('response-message').textContent = data.message; + }) + .catch(error => { + document.getElementById('response-message').textContent = 'Fehler beim Senden des Wunsches: ' + error; + }); + }); +}); + +// Darkmode umschalten +const toggle = document.getElementById('dark-mode-toggle'); +const darkModeEnabled = localStorage.getItem('darkMode') === 'true'; +toggle.checked = darkModeEnabled; +if (darkModeEnabled) document.body.classList.add('dark-mode'); + +toggle.addEventListener('change', () => { + const isChecked = toggle.checked; + document.body.classList.toggle('dark-mode', isChecked); + localStorage.setItem('darkMode', isChecked); +}); + + + +//faq html + // Funktion zum Abrufen der FAQs + function fetchFaqs() { + fetch('/api/faqs') + .then(response => response.json()) + .then(data => { + const faqSection = document.getElementById('faq-section'); + faqSection.innerHTML = ''; // Leere den Inhalt zuerst + + if (data.length === 0) { + faqSection.innerHTML = '

Es gibt derzeit keine FAQs.

'; + } else { + data.forEach((faq, index) => { + const faqItem = document.createElement('div'); + faqItem.classList.add('faq-item'); + + const faqToggle = document.createElement('div'); + faqToggle.classList.add('faq-toggle'); + faqToggle.innerHTML = `

${index + 1}. ${faq.question}

+ `; + faqItem.appendChild(faqToggle); + + const faqAnswer = document.createElement('p'); + faqAnswer.classList.add('faq-answer'); + faqAnswer.innerText = faq.answer; + faqItem.appendChild(faqAnswer); + + // Event-Listener hinzufügen, um die Antwort anzuzeigen oder auszublenden + faqToggle.addEventListener('click', () => { + faqAnswer.classList.toggle('show'); + const arrow = faqToggle.querySelector('.arrow'); + arrow.style.transform = faqAnswer.classList.contains('show') ? 'rotate(180deg)' : 'rotate(0deg)'; + }); + + faqSection.appendChild(faqItem); + }); + } + }) + .catch(error => console.error('Fehler beim Abrufen der FAQs:', error)); + } + + document.addEventListener('DOMContentLoaded', () => { + // FAQs beim Laden der Seite abrufen + fetchFaqs(); + + + }); + + +//kontakt html + +// Kontaktinformationen aus .env abrufen +document.addEventListener('DOMContentLoaded', () => { + fetch('/api/contact-info') // API-Endpunkt zum Abrufen der Kontaktinformationen + .then(response => response.json()) + .then(data => { + document.getElementById('contact-email').href = `mailto:${data.email}`; + document.getElementById('contact-email').textContent = data.email; + document.getElementById('contact-telegram').href = data.telegram; + document.getElementById('contact-telegram').textContent = data.telegram.split('/').pop(); // Extrahiere den Benutzernamen aus der URL + }) + .catch(error => console.error('Fehler beim Abrufen der Kontaktinformationen:', error)); +}); + + +//Report html + +document.getElementById('report-form').addEventListener('submit', function(event) { + event.preventDefault(); + + const type = document.getElementById('report-type').value; + const user = { name: document.getElementById('username').value }; + const message = document.getElementById('message').value; + + fetch('/api/submit-report', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ type, user, message }) + }) + .then(response => response.json()) + .then(data => { + // Bestätigung anzeigen + document.getElementById('confirmation').style.display = 'block'; + + // Formular leeren + document.getElementById('report-form').reset(); + + // Bestätigung nach 5 Sekunden ausblenden + setTimeout(() => { + document.getElementById('confirmation').style.display = 'none'; + }, 5000); + }) + .catch(error => { + console.error('Fehler beim Übermitteln des Berichts:', error); + alert('Es gab ein Problem beim Senden des Berichts. Bitte versuche es später erneut.'); + }); +}); + + +toggle.addEventListener('change', () => { + const isChecked = toggle.checked; + document.body.classList.toggle('dark-mode', isChecked); + // Speichere den Zustand in localStorage + localStorage.setItem('darkMode', isChecked); +}); + + +//link html --> keine Scripte + +//funktionen html --> keine Scripte +