118 lines
4.5 KiB
JavaScript
118 lines
4.5 KiB
JavaScript
// Navigation
|
|
document.getElementById('hamburger').addEventListener('click', function() {
|
|
document.getElementById('navMenu').style.display = 'block';
|
|
});
|
|
document.getElementById('closeBtn').addEventListener('click', function() {
|
|
document.getElementById('navMenu').style.display = 'none';
|
|
});
|
|
document.getElementById('homeLink').addEventListener('click', function(e) {
|
|
e.preventDefault();
|
|
document.getElementById('content').style.display = 'block';
|
|
document.getElementById('settingsPage').style.display = 'none';
|
|
document.getElementById('navMenu').style.display = 'none';
|
|
});
|
|
document.getElementById('settingsLink').addEventListener('click', function(e) {
|
|
e.preventDefault();
|
|
document.getElementById('content').style.display = 'none';
|
|
document.getElementById('settingsPage').style.display = 'block';
|
|
document.getElementById('navMenu').style.display = 'none';
|
|
});
|
|
|
|
// Timezone Cookie
|
|
function getCookie(name) {
|
|
const value = `; ${document.cookie}`;
|
|
const parts = value.split(`; ${name}=`);
|
|
if (parts.length === 2) return parts.pop().split(';').shift();
|
|
}
|
|
function setCookie(name, value, days = 365) {
|
|
const date = new Date();
|
|
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
|
|
document.cookie = `${name}=${value}; expires=${date.toUTCString()}; path=/`;
|
|
}
|
|
function loadTimezone() {
|
|
const savedTimezone = getCookie('userTimezone');
|
|
if (savedTimezone) {
|
|
document.getElementById('timezone').value = savedTimezone;
|
|
}
|
|
}
|
|
document.getElementById('timezoneForm').addEventListener('submit', function(e) {
|
|
e.preventDefault();
|
|
const timezone = document.getElementById('timezone').value;
|
|
setCookie('userTimezone', timezone);
|
|
alert('Zeitzone gespeichert!');
|
|
loadServerData();
|
|
});
|
|
|
|
// Serverdaten laden
|
|
function loadServerData() {
|
|
fetch('status.txt')
|
|
.then(response => response.text())
|
|
.then(data => {
|
|
const lines = data.split('\n');
|
|
const tbody = document.getElementById('serverData');
|
|
tbody.innerHTML = '';
|
|
const userTimezone = getCookie('userTimezone') || 'UTC';
|
|
lines.forEach(line => {
|
|
if (line.trim() === '') return;
|
|
const [hostname, ip, status, checkdat, checktim] = line.split(' ');
|
|
const tr = document.createElement('tr');
|
|
const isoString = `${checkdat}T${checktim}Z`;
|
|
const date = new Date(isoString);
|
|
const formatter = new Intl.DateTimeFormat('de-DE', {
|
|
timeZone: userTimezone,
|
|
dateStyle: 'short',
|
|
timeStyle: 'medium',
|
|
hour12: false
|
|
});
|
|
const localTimeStr = formatter.format(date);
|
|
tr.innerHTML = `
|
|
<td>${hostname}</td>
|
|
<td>${ip}</td>
|
|
<td><span class="status ${status.toLowerCase()}">${status}</span></td>
|
|
<td class="last-check">${localTimeStr} (${userTimezone})</td>
|
|
`;
|
|
tbody.appendChild(tr);
|
|
});
|
|
})
|
|
.catch(error => {
|
|
console.error('Fehler beim Laden der status.conf:', error);
|
|
document.getElementById('serverData').innerHTML = `
|
|
<tr>
|
|
<td colspan="4" style="text-align: center; color: red;">
|
|
Fehler beim Laden der Serverdaten.
|
|
</td>
|
|
</tr>
|
|
`;
|
|
});
|
|
}
|
|
|
|
// Aktuelle Uhrzeit
|
|
function currentTime() {
|
|
let date = new Date();
|
|
let dd = date.getDate();
|
|
let m = date.getMonth() + 1;
|
|
let yy = date.getFullYear();
|
|
let hh = date.getHours();
|
|
let mm = date.getMinutes();
|
|
let ss = date.getSeconds();
|
|
dd = (dd < 10) ? "0" + dd : dd;
|
|
m = (m < 10) ? "0" + m : m;
|
|
hh = (hh < 10) ? "0" + hh : hh;
|
|
mm = (mm < 10) ? "0" + mm : mm;
|
|
ss = (ss < 10) ? "0" + ss : ss;
|
|
let time = dd + "." + m + "." + yy + "\u00A0\u00A0\u00A0\u00A0" + hh + ":" + mm + ":" + ss + " Uhr";
|
|
document.getElementById("datumuhrzeit").innerText = time;
|
|
let t = setTimeout(function(){ currentTime() }, 1000);
|
|
}
|
|
|
|
// Initialisierung
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
loadTimezone();
|
|
loadServerData();
|
|
const timezoneElement = document.getElementById('timezonestring');
|
|
const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
timezoneElement.innerText = timezone;
|
|
// console.log(timezone);
|
|
currentTime();
|
|
});
|
|
|