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": { "screens": {
"lobby": { "lobby": {
"playlist": [ "playlist": [
"welcome.html", {
"name": "welcome.html",
"enabled": true
},
{ {
"url": "https://dva-stage.cancom-ds.de/", "url": "https://dva-stage.cancom-ds.de/",
"zoom": 1.0, "zoom": 1.0,
"enabled": false "enabled": true
} }
], ],
"interval": 10, "interval": 10,
@@ -124,35 +127,6 @@
"https://cdn.brandfetch.io/weisenburger.de/logo?c=1idyd4Tpb2nKaXIIc8T" "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": { "admin": {

View File

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

View File

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