Urlaubsmodus implementiert - Globale Checkbox zum Deaktivieren des Schedulers

This commit is contained in:
2025-08-22 08:35:13 +02:00
parent 0488e4ec47
commit 1dfa0c9b32
6 changed files with 194 additions and 1 deletions

View File

@ -12,6 +12,7 @@ class PCManager {
init() {
this.loadPCs();
this.loadVacationMode();
this.setupEventListeners();
this.startAutoStatus();
}
@ -47,6 +48,11 @@ class PCManager {
document.getElementById('refreshStatusBtn').addEventListener('click', () => {
this.refreshStatus();
});
// Urlaubsmodus Checkbox
document.getElementById('vacationMode').addEventListener('change', (e) => {
this.setVacationMode(e.target.checked);
});
}
async loadPCs() {
@ -460,6 +466,60 @@ class PCManager {
content += '</div>';
return content;
}
// Urlaubsmodus laden
async loadVacationMode() {
try {
const response = await fetch('/api/settings/vacation-mode');
const data = await response.json();
if (data.success) {
const vacationModeCheckbox = document.getElementById('vacationMode');
if (vacationModeCheckbox) {
vacationModeCheckbox.checked = data.vacation_mode;
}
}
} catch (error) {
console.error('Fehler beim Laden des Urlaubsmodus:', error);
}
}
// Urlaubsmodus setzen
async setVacationMode(enabled) {
try {
const response = await fetch('/api/settings/vacation-mode', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
vacation_mode: enabled
})
});
const data = await response.json();
if (data.success) {
const status = enabled ? 'aktiviert' : 'deaktiviert';
this.showNotification('Erfolg', `Urlaubsmodus ${status}`, 'success');
} else {
this.showNotification('Fehler', data.message, 'danger');
// Checkbox zurücksetzen bei Fehler
const vacationModeCheckbox = document.getElementById('vacationMode');
if (vacationModeCheckbox) {
vacationModeCheckbox.checked = !enabled;
}
}
} catch (error) {
console.error('Fehler beim Setzen des Urlaubsmodus:', error);
this.showNotification('Fehler', 'Fehler beim Setzen des Urlaubsmodus', 'danger');
// Checkbox zurücksetzen bei Fehler
const vacationModeCheckbox = document.getElementById('vacationMode');
if (vacationModeCheckbox) {
vacationModeCheckbox.checked = !enabled;
}
}
}
}
// PC Manager initialisieren, wenn die Seite geladen ist