49 lines
No EOL
1.8 KiB
JavaScript
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);
|