Fehler behoben Stay on first slide

This commit is contained in:
Erik Thiele
2026-06-22 21:39:20 +02:00
parent ab83c19997
commit 22ed03c8fa
3 changed files with 30 additions and 55 deletions

View File

@@ -96,11 +96,14 @@
"screens": {
"lobby": {
"playlist": [
"welcome.html",
{
"name": "welcome.html",
"enabled": true
},
{
"url": "https://dva-stage.cancom-ds.de/",
"zoom": 1.0,
"enabled": false
"enabled": true
}
],
"interval": 10,
@@ -124,35 +127,6 @@
"https://cdn.brandfetch.io/weisenburger.de/logo?c=1idyd4Tpb2nKaXIIc8T"
]
}
},
"dva": {
"screens": {
"dva": {
"playlist": [
{
"url": "https://dva-stage.cancom-ds.de/",
"zoom": 1.0,
"enabled": true
}
],
"interval": 10,
"show_images": true,
"show_videos": true,
"newsticker_text": "Wichtige Meldung",
"newsticker_enabled": false,
"stay_on_first": true,
"custom_url": "https://npm.teamthiele.de/nginx/proxy",
"custom_url_label": "Reverse Proxy",
"custom_url_enabled": false,
"custom_url_target": "overlay",
"custom_url_position": "top-center",
"voice_agent_enabled": true,
"voice_agent_label": "",
"voice_agent_target": "overlay",
"voice_agent_position": "top-left",
"voice_agent_show_image": false
}
}
}
},
"admin": {

View File

@@ -8,13 +8,13 @@
{
"timestamp": "2026-06-20 16:38:54",
"action": "user_updated",
"detail": "User 'test1@test.de' bearbeitet (Rolle: superuser \u2192 user)",
"detail": "User 'test1@test.de' bearbeitet (Rolle: superuser user)",
"user": "erik.thiele@cancom.de"
},
{
"timestamp": "2026-06-20 16:38:19",
"action": "site_deleted",
"detail": "Standort 'wdqwsqws' gel\u00f6scht",
"detail": "Standort 'wdqwsqws' gelöscht",
"user": "erik.thiele@cancom.de"
},
{
@@ -38,7 +38,7 @@
{
"timestamp": "2026-06-20 16:29:59",
"action": "site_deleted",
"detail": "Standort 'qwsqwsqs' gel\u00f6scht",
"detail": "Standort 'qwsqwsqs' gelöscht",
"user": "erik.thiele@cancom.de"
},
{
@@ -56,7 +56,7 @@
{
"timestamp": "2026-06-20 16:29:33",
"action": "site_deleted",
"detail": "Standort 'wsqwdsqws' gel\u00f6scht",
"detail": "Standort 'wsqwdsqws' gelöscht",
"user": "erik.thiele@cancom.de"
},
{
@@ -68,7 +68,7 @@
{
"timestamp": "2026-06-20 16:27:58",
"action": "site_deleted",
"detail": "Standort 'sdwqdwddd' gel\u00f6scht",
"detail": "Standort 'sdwqdwddd' gelöscht",
"user": "erik.thiele@cancom.de"
},
{
@@ -80,31 +80,31 @@
{
"timestamp": "2026-06-20 16:26:50",
"action": "site_deleted",
"detail": "Standort 'test1' gel\u00f6scht",
"detail": "Standort 'test1' gelöscht",
"user": "erik.thiele@cancom.de"
},
{
"timestamp": "2026-06-20 16:26:43",
"action": "site_deleted",
"detail": "Standort 'test2' gel\u00f6scht",
"detail": "Standort 'test2' gelöscht",
"user": "erik.thiele@cancom.de"
},
{
"timestamp": "2026-06-20 16:26:40",
"action": "screen_deleted",
"detail": "Screen 'dasdsfs' an Standort 'test2' gel\u00f6scht",
"detail": "Screen 'dasdsfs' an Standort 'test2' gelöscht",
"user": "erik.thiele@cancom.de"
},
{
"timestamp": "2026-06-20 16:26:36",
"action": "screen_deleted",
"detail": "Screen 'asdwedwed' an Standort 'test2' gel\u00f6scht",
"detail": "Screen 'asdwedwed' an Standort 'test2' gelöscht",
"user": "erik.thiele@cancom.de"
},
{
"timestamp": "2026-06-20 16:22:12",
"action": "site_deleted",
"detail": "Standort 'dwedwed' gel\u00f6scht",
"detail": "Standort 'dwedwed' gelöscht",
"user": "erik.thiele@cancom.de"
},
{
@@ -134,7 +134,7 @@
{
"timestamp": "2026-06-20 16:19:27",
"action": "screen_deleted",
"detail": "Screen 'test2' an Standort 'test2' gel\u00f6scht",
"detail": "Screen 'test2' an Standort 'test2' gelöscht",
"user": "erik.thiele@cancom.de"
},
{
@@ -158,7 +158,7 @@
{
"timestamp": "2026-06-20 16:16:32",
"action": "password_changed",
"detail": "Passwort f\u00fcr User 'erik.thiele@cancom.de' ge\u00e4ndert",
"detail": "Passwort für User 'erik.thiele@cancom.de' geändert",
"user": "erik.thiele@cancom.de"
},
{
@@ -170,7 +170,7 @@
{
"timestamp": "2026-06-20 16:14:03",
"action": "user_updated",
"detail": "User 'test1@test.de' bearbeitet (Rolle: user \u2192 superuser)",
"detail": "User 'test1@test.de' bearbeitet (Rolle: user superuser)",
"user": "admin"
},
{

View File

@@ -321,11 +321,8 @@
// Player-JavaScript
// ═════════════════════════════════════════════════════
let playerTimer = null;
// ─── Custom-URL/Voice-Agent-Overlay (open/close mit Zurück-Button-Position-Tracking) ───
function openOverlay(url, pos) {
if (playerTimer) clearTimeout(playerTimer);
document.getElementById("overlay").style.display = "block";
document.getElementById("overlay-iframe").src = url;
var backBtn = document.getElementById("overlay-back");
@@ -361,6 +358,7 @@ const site = "{{ site }}";
let normalIndex = 0;
let prioIndex = 0;
let mode = "normal"; // "normal" | "prio"
const img = document.getElementById("image");
const vid = document.getElementById("video");
const iframe = document.getElementById("iframe");
@@ -462,7 +460,6 @@ function playNext() {
iframe.style.height = `100vh`;
iframe.style.transform = `translate(-50%, -50%)`;
}
if (!stayOnFirst) playerTimer = setTimeout(playNext, interval);
return;
}
@@ -479,12 +476,10 @@ function playNext() {
iframe.style.width = `100vw`;
iframe.style.height = `100vh`;
iframe.style.transform = `translate(-50%, -50%)`;
if (!stayOnFirst) playerTimer = setTimeout(playNext, interval);
} else {
// Bild (jpg/png)
img.style.display = "block";
img.src = src;
if (!stayOnFirst) playerTimer = setTimeout(playNext, interval);
}
}
@@ -498,18 +493,14 @@ async function checkForUpdates() {
const hash = data.hash;
const serverStayOnFirst = data.stay_on_first;
// Dynamisch stayOnFirst vom Server übernehmen
const wasStopped = stayOnFirst === true;
stayOnFirst = serverStayOnFirst;
// Wenn stayOnFirst gerade ausgeschaltet wurde → sofort weiterlaufen
if (wasStopped && !stayOnFirst) {
if (playerTimer) clearTimeout(playerTimer);
playNext();
}
// Hash-Änderung → Seite komplett neu laden
if (lastHash && lastHash !== hash) {
if (lastHash && lastHash !== hash && !wasStopped) {
location.reload(true);
}
lastHash = hash;
@@ -565,6 +556,16 @@ async function checkForUpdates() {
// ─── Start ───
playNext();
// Zyklischer Durchlauf: alle `interval` ms vorrücken, wenn stayOnFirst aus ist
// und kein Video aktiv läuft (Videos steuern sich via onended)
setInterval(function() {
if (!stayOnFirst && vid.style.display !== "block") {
playNext();
}
}, interval);
// Config-Änderungen erkennen (stayOnFirst, Playlist)
setInterval(checkForUpdates, 5000);
</script>