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:
3
app.py
3
app.py
@@ -1039,7 +1039,8 @@ def player(site, screen):
|
||||
voice_agent_url=config.get("voice_agent_url", ""),
|
||||
voice_agent_label=screen_cfg.get("voice_agent_label", "Digitaler Assistent"),
|
||||
voice_agent_target=screen_cfg.get("voice_agent_target", "overlay"),
|
||||
voice_agent_position=screen_cfg.get("voice_agent_position", "top-left")
|
||||
voice_agent_position=screen_cfg.get("voice_agent_position", "top-left"),
|
||||
player_params=dict(request.args)
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -19,7 +19,10 @@
|
||||
"show_images": true,
|
||||
"show_videos": true,
|
||||
"playlist": [
|
||||
"welcome.html",
|
||||
{
|
||||
"name": "welcome.html",
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"url": "https://www.meteoblue.com/en/meteotv/d7b0fd",
|
||||
"zoom": 1.0,
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user