📚 Improved blueprint structures & templates for better organization

This commit is contained in:
2025-06-11 08:53:07 +02:00
parent 23d6a8c6d0
commit 36c2466e53
10 changed files with 181 additions and 6 deletions

View File

@ -885,6 +885,32 @@
</div>
</div>
<!-- Additional Options Row -->
<div class="grid grid-cols-1 md:grid-cols-3 gap-6 mb-6">
<!-- Steckdosen-Events Toggle -->
<div>
<label class="flex items-center cursor-pointer">
<input type="checkbox" id="showPlugEvents" class="sr-only">
<div class="relative">
<div class="w-11 h-6 bg-gray-200 dark:bg-gray-700 rounded-full shadow-inner transition-colors duration-300"></div>
<div class="dot absolute w-4 h-4 bg-white rounded-full shadow top-1 left-1 transition-transform duration-300"></div>
</div>
<div class="ml-3">
<span class="text-sm font-medium text-mercedes-black dark:text-slate-300">
🔌 Steckdosen-Status anzeigen
</span>
<div class="text-xs text-mercedes-gray dark:text-slate-400">
Ein-/Ausschalt-Ereignisse der Drucker-Steckdosen
</div>
</div>
</label>
</div>
<!-- Spacer for future options -->
<div></div>
<div></div>
</div>
<!-- Quick Analytics -->
<div class="grid grid-cols-2 md:grid-cols-4 gap-4">
<div class="stat-card active p-4">
@ -1178,7 +1204,32 @@ document.addEventListener('DOMContentLoaded', function() {
startTime: '08:00',
endTime: '18:00'
},
events: '/api/calendar/events',
events: function(info, successCallback, failureCallback) {
const params = new URLSearchParams({
start: info.start.toISOString(),
end: info.end.toISOString()
});
// Drucker-Filter hinzufügen
const printerFilter = document.getElementById('printerFilter');
if (printerFilter && printerFilter.value) {
params.append('printer_id', printerFilter.value);
}
// Steckdosen-Events hinzufügen falls aktiviert
const showPlugEvents = document.getElementById('showPlugEvents');
if (showPlugEvents && showPlugEvents.checked) {
params.append('show_plug_events', 'true');
}
fetch(`/api/calendar/events?${params.toString()}`)
.then(response => response.json())
.then(data => successCallback(data))
.catch(error => {
console.error('Fehler beim Laden der Events:', error);
failureCallback(error);
});
},
editable: canEdit,
selectable: canEdit,
selectMirror: true,
@ -1223,6 +1274,30 @@ document.addEventListener('DOMContentLoaded', function() {
calendar.refetchEvents();
});
// Steckdosen-Events Toggle Handler
const showPlugEventsToggle = document.getElementById('showPlugEvents');
if (showPlugEventsToggle) {
showPlugEventsToggle.addEventListener('change', function() {
// Toggle-Animation
const toggleElement = this.nextElementSibling;
const dot = toggleElement.querySelector('.dot');
const toggleBg = toggleElement.querySelector('div');
if (this.checked) {
dot.classList.add('translate-x-5');
toggleBg.classList.remove('bg-gray-200', 'dark:bg-gray-700');
toggleBg.classList.add('bg-green-500', 'dark:bg-green-600');
} else {
dot.classList.remove('translate-x-5');
toggleBg.classList.remove('bg-green-500', 'dark:bg-green-600');
toggleBg.classList.add('bg-gray-200', 'dark:bg-gray-700');
}
// Kalender neu laden
calendar.refetchEvents();
});
}
// Form Submit Handler
document.getElementById('eventForm').addEventListener('submit', async function(e) {
e.preventDefault();