ht-OwnCraft/static/js/opening-status.js
2025-01-04 02:40:01 +01:00

49 lines
No EOL
1.8 KiB
JavaScript

function updateTime() {
const now = new Date();
const currentTime = now.toLocaleTimeString('de-DE', {
hour: '2-digit',
minute: '2-digit',
hour12: false
});
// Update displayed time
const timeDisplay = document.getElementById('current-time');
if (timeDisplay) {
timeDisplay.textContent = currentTime;
}
// Check opening status
fetch('/api/check-open-status')
.then(response => response.json())
.then(status => {
// Update status bar
const statusBar = document.getElementById('status-bar');
const statusText = document.getElementById('status-text');
if (statusBar) {
statusBar.className = status.isOpen
? 'bg-status-green transition-colors duration-300'
: 'bg-status-red transition-colors duration-300';
}
if (statusText) {
const textOpen = statusText.dataset.textOpen;
const textClosed = statusText.dataset.textClosed;
statusText.textContent = status.isOpen ? textOpen : textClosed;
}
// Update opening hours rows
document.querySelectorAll('.hours-row').forEach(row => {
const open = row.dataset.open;
const close = row.dataset.close;
const isCurrentTimeSlot = currentTime >= open && currentTime <= close;
row.classList.toggle('border-2', isCurrentTimeSlot && status.isOpen);
row.classList.toggle('border-status-green', isCurrentTimeSlot && status.isOpen);
});
});
}
// Update immediately and then every minute
updateTime();
setInterval(updateTime, 60000);