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_url=config.get("voice_agent_url", ""),
|
||||||
voice_agent_label=screen_cfg.get("voice_agent_label", "Digitaler Assistent"),
|
voice_agent_label=screen_cfg.get("voice_agent_label", "Digitaler Assistent"),
|
||||||
voice_agent_target=screen_cfg.get("voice_agent_target", "overlay"),
|
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_images": true,
|
||||||
"show_videos": true,
|
"show_videos": true,
|
||||||
"playlist": [
|
"playlist": [
|
||||||
"welcome.html",
|
{
|
||||||
|
"name": "welcome.html",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"url": "https://www.meteoblue.com/en/meteotv/d7b0fd",
|
"url": "https://www.meteoblue.com/en/meteotv/d7b0fd",
|
||||||
"zoom": 1.0,
|
"zoom": 1.0,
|
||||||
|
|||||||
@@ -324,7 +324,7 @@
|
|||||||
// ─── 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) {
|
||||||
document.getElementById("overlay").style.display = "block";
|
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");
|
var backBtn = document.getElementById("overlay-back");
|
||||||
backBtn.className = "overlay-back-" + (pos || "top-left");
|
backBtn.className = "overlay-back-" + (pos || "top-left");
|
||||||
}
|
}
|
||||||
@@ -352,6 +352,14 @@ const interval = {{ interval }} * 1000;
|
|||||||
let stayOnFirst = {{ "true" if stay_on_first else "false" }};
|
let stayOnFirst = {{ "true" if stay_on_first else "false" }};
|
||||||
const screen = "{{ screen }}";
|
const screen = "{{ screen }}";
|
||||||
const site = "{{ site }}";
|
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)
|
// stayOnFirst: Player bleibt auf erstem Element (kein Timer/Advance)
|
||||||
|
|
||||||
// ─── Player-Status ───
|
// ─── Player-Status ───
|
||||||
@@ -448,7 +456,7 @@ function playNext() {
|
|||||||
// URL im iframe anzeigen (mit Zoom-Unterstützung)
|
// URL im iframe anzeigen (mit Zoom-Unterstützung)
|
||||||
if (item.kind === "url") {
|
if (item.kind === "url") {
|
||||||
iframe.style.display = "block";
|
iframe.style.display = "block";
|
||||||
iframe.src = item.url;
|
iframe.src = appendParams(item.url, playerParams);
|
||||||
const zoom = item.zoom || 1.0;
|
const zoom = item.zoom || 1.0;
|
||||||
if (zoom !== 1.0) {
|
if (zoom !== 1.0) {
|
||||||
const scale = 1 / zoom;
|
const scale = 1 / zoom;
|
||||||
|
|||||||
Reference in New Issue
Block a user