Feat: Language support via json files in the locales folder + Feat: Popup with title, channel, schedule, duration, season, episode, synopsis, Watch button (if M3U provided) and IMDb link + Fix: Date added to the timebar

This commit is contained in:
Johnnybegood90
2026-03-12 13:11:49 +01:00
parent 8d223359f4
commit 8826926168
13 changed files with 289 additions and 31 deletions
+45
View File
@@ -0,0 +1,45 @@
// ── PROGRAM MODAL ─────────────────────────────────────────────────────────────
function openProgramModal(ch, p) {
const now = new Date();
const isLive = p.start <= now && p.stop > now;
const dur = Math.round((p.stop - p.start) / 60000);
const ep = fmtEpisode(p.season, p.episode);
document.getElementById('pm-title').textContent = p.title;
document.getElementById('pm-channel').textContent = ch.name;
document.getElementById('pm-time').textContent =
`${fmtTime(p.start)}${fmtTime(p.stop)} · ${dur} ${L.duration_min}` +
(ep ? ` · ${ep}` : '');
document.getElementById('pm-desc').textContent = p.desc || '';
document.getElementById('pm-desc').style.display = p.desc ? 'block' : 'none';
// Bouton Watch now — seulement si live
const watchBtn = document.getElementById('pm-watch');
if (isLive) {
watchBtn.style.display = 'inline-flex';
watchBtn.onclick = () => { closeProgramModal(); openPip(ch.name, p.title); };
} else {
watchBtn.style.display = 'none';
}
// Bouton IMDb
document.getElementById('pm-imdb').href =
`https://www.imdb.com/find/?q=${encodeURIComponent(p.title)}&s=tt`;
document.getElementById('programModal').classList.add('visible');
}
function closeProgramModal() {
document.getElementById('programModal').classList.remove('visible');
}
// Fermer sur clic overlay
document.addEventListener('click', e => {
const modal = document.getElementById('programModal');
if (e.target === modal) closeProgramModal();
});
// Fermer sur Escape
document.addEventListener('keydown', e => {
if (e.key === 'Escape') closeProgramModal();
});