Fehler behoben Stay on first slide
This commit is contained in:
36
config.json
36
config.json
@@ -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": {
|
||||
|
||||
26
history.json
26
history.json
@@ -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"
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user