diff --git a/app/public/assets/js/live-day.js b/app/public/assets/js/live-day.js new file mode 100644 index 0000000..690d807 --- /dev/null +++ b/app/public/assets/js/live-day.js @@ -0,0 +1,32 @@ +function dayNowMinute() { + const now = new Date(); + return now.getHours() * 60 + now.getMinutes() + now.getSeconds() / 60; +} + +function dayUpdateNowLine() { + document.querySelectorAll('[data-live-now-line]').forEach(line => { + line.style.left = `calc(${dayNowMinute()} * var(--minute-width))`; + }); +} + +function dayUpdateProgrammeStates() { + const now = Math.floor(Date.now() / 1000); + + document.querySelectorAll('[data-live-programme]').forEach(programme => { + const start = Number(programme.dataset.liveStart); + const stop = Number(programme.dataset.liveStop); + + programme.classList.toggle('is-current', now >= start && now < stop); + programme.classList.toggle('is-past', now >= stop); + }); +} + +function dayTick() { + dayUpdateNowLine(); + dayUpdateProgrammeStates(); +} + +document.addEventListener('DOMContentLoaded', () => { + dayTick(); + setInterval(dayTick, 1000); +}); diff --git a/app/templates/day.php b/app/templates/day.php index 4983685..50bd15d 100644 --- a/app/templates/day.php +++ b/app/templates/day.php @@ -143,6 +143,7 @@ foreach ($dayProgrammes as $channel) {