<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Abfahrtsinformationen</title> <style> body { font-family: Arial, sans-serif; background-color: #f0f0f0; /* Hintergrundfarbe im Standardmodus */ color: #333; /* Textfarbe im Standardmodus */ position: relative; } /* Dark-Mode-Stile */ body.dark-mode { background-color: #333; /* Hintergrundfarbe im Dark-Mode */ color: #ffff; /* Textfarbe im Dark-Mode */ } /* Dark-Mode-Stile für die Tabelle */ body.dark-mode table { color: #fff; /* Textfarbe in der Tabelle im Dark-Mode */ } h1 { text-align: center; } h2 { text-align: center; } form { display: flex; justify-content: center; margin-top: 20px; } label { font-weight: bold; margin-right: 10px; } input[type="text"] { padding: 5px; border: 1px solid #ccc; border-radius: 5px; } button[type="submit"] { background-color: #007bff; color: white; border: none; border-radius: 5px; padding: 5px 10px; cursor: pointer; } table { width: 100%; border-collapse: collapse; margin-top: 20px; } table, th, td { border: 1px solid #ccc; } th, td { padding: 10px; text-align: left; } th { background-color: #007bff; color: white; } /* Dark-Mode-Schalter */ #dark-mode-toggle { position: absolute; top: 10px; right: 10px; background-color: transparent; border: none; cursor: pointer; font-size: 20px; color: #007bff; } </style> <script> function updateDepartures() { // Hier setzen Sie den Namen Ihrer Flask-Route, die die Abfahrtsdaten zurückgibt. const apiUrl = "/update_departures"; fetch(apiUrl) .then(response => response.json()) .then(data => { // Aktualisieren Sie die Tabelle mit den neuen Daten const tableBody = document.querySelector('table tbody'); tableBody.innerHTML = ''; data.departures.forEach(leg => { const row = document.createElement('tr'); row.innerHTML = ` <td>${leg.train}<br>(${leg.trainNumber})</td> <td>${leg.destination}</td> <td>${leg.via.join(', ')}</td> <td>${leg.scheduledDeparture}</td> <td>${leg.delayDeparture}</td> <td>${leg.scheduledPlatform}</td> `; tableBody.appendChild(row); }); }); } // Führen Sie die Aktualisierungsfunktion alle 10 Sekunden aus setInterval(updateDepartures, 10000); </script> </head> <body class="{{ station_name }}"> <button id="dark-mode-toggle">🌙</button> <!-- Mond-Emoji als Dark-Mode-Symbol --> <h1>Abfahrten / Departures</h1> <h2>Station: {{ station_name }}</h2> <form method="POST"> <label for="station_name">Station:</label> <input type="text" name="station_name" id="station_name" value="{{ station_name }}"> <button type="submit">Suchen</button> </form> {% if departures %} <table> <thead> <tr> <th>Name</th> <th>Richtung / Direction</th> <th>Über/ via</th> <th>Geplante Abfahrtszeit / Planned departure</th> <th>Verspätung (Minuten) / Delay (minutes)</th> <th>Bahnsteig / Platform</th> </tr> </thead> <tbody> {% for leg in departures %} <tr> <td>{{ leg.train }}<br>({{leg.trainNumber}})</td> <td>{{ leg.destination }}</td> <td>{{ leg.via | join(', ') }}</td> <td>{{ leg.scheduledDeparture }}</td> <td>{{ leg.delayDeparture }}</td> <td>{{ leg.scheduledPlatform }}</td> </tr> {% endfor %} </tbody> </table> {% endif %} <script> // JavaScript, um zwischen Dark-Mode und Standardmodus zu wechseln const darkModeToggle = document.getElementById('dark-mode-toggle'); const body = document.body; darkModeToggle.addEventListener('click', () => { body.classList.toggle('dark-mode'); }); </script> <script> // JavaScript, um zwischen Dark-Mode und Standardmodus zu wechseln const prefersDarkMode = window.matchMedia('(prefers-color-scheme: dark)'); // Prüfe, ob der Browser im Dark-Mode geöffnet wurde if (prefersDarkMode.matches) { // Füge die CSS-Klasse `dark-mode` zum Body-Element hinzu const body = document.body; body.classList.add('dark-mode'); } // Registriere den `change`-Ereignishandler prefersDarkMode.addEventListener('change', () => { const body = document.body; if (prefersDarkMode.matches) { body.classList.add('dark-mode'); } else { body.classList.remove('dark-mode'); } }); </script> </body> </html>