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

View File

@ -42,6 +42,22 @@
</div>
</div>
<!-- Urlaubsmodus-Checkbox -->
<div class="row mb-3">
<div class="col-12 text-center">
<div class="form-check d-inline-block">
<input class="form-check-input" type="checkbox" id="vacationMode" style="transform: scale(1.2);">
<label class="form-check-label ms-2" for="vacationMode">
<strong>Urlaubsmodus</strong>
</label>
<i class="fas fa-info-circle ms-2 text-muted"
data-bs-toggle="tooltip"
data-bs-placement="top"
title="Der Urlaubsmodus deaktiviert den geplanten Autostart für alle Geräte"></i>
</div>
</div>
</div>
<!-- Neuen PC hinzufügen -->
<div class="row mb-4">
<div class="col-12">