Query-Parameter der Player-URL an Playlist-URLs übergeben

- player_params als dict(request.args) an player.html übergeben
- appendParams() fügt Parameter an iframe.src + Overlay-URLs an
- Funktioniert mit & ohne bestehende Query-Parameter in der Ziel-URL
- Beispiel: /player/stuttgart/lobby?customer=acme → https://dashboard?customer=acme
This commit is contained in:
Erik Thiele
2026-07-10 17:20:37 +02:00
parent fca129b367
commit 5ee9e0b373
3 changed files with 16 additions and 4 deletions

View File

@@ -324,7 +324,7 @@
// ─── Custom-URL/Voice-Agent-Overlay (open/close mit Zurück-Button-Position-Tracking) ───
function openOverlay(url, pos) {
document.getElementById("overlay").style.display = "block";
document.getElementById("overlay-iframe").src = url;
document.getElementById("overlay-iframe").src = appendParams(url, playerParams);
var backBtn = document.getElementById("overlay-back");
backBtn.className = "overlay-back-" + (pos || "top-left");
}
@@ -352,6 +352,14 @@ const interval = {{ interval }} * 1000;
let stayOnFirst = {{ "true" if stay_on_first else "false" }};
const screen = "{{ screen }}";
const site = "{{ site }}";
const playerParams = {{ player_params | tojson }};
// Query-Parameter aus der Player-URL an URLs anhängen
function appendParams(url, params) {
if (!params || Object.keys(params).length === 0) return url;
const sep = url.includes('?') ? '&' : '?';
return url + sep + new URLSearchParams(params).toString();
}
// stayOnFirst: Player bleibt auf erstem Element (kein Timer/Advance)
// ─── Player-Status ───
@@ -448,7 +456,7 @@ function playNext() {
// URL im iframe anzeigen (mit Zoom-Unterstützung)
if (item.kind === "url") {
iframe.style.display = "block";
iframe.src = item.url;
iframe.src = appendParams(item.url, playerParams);
const zoom = item.zoom || 1.0;
if (zoom !== 1.0) {
const scale = 1 / zoom;