From ad18914736eaec0879bb0a85d0e63093d81f693a Mon Sep 17 00:00:00 2001 From: ScreenTinker Date: Tue, 4 Aug 2026 23:31:56 -0500 Subject: [PATCH] Label BrightSign players as BrightSign, not "Web Player" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A BrightSign runs the same web player, so client_type is 'player' and the device detail view fell through to a hardcoded "Web Player" — indistinguishable from a browser tab on someone's desk, for a dedicated signage appliance. Keyed on the platform the player now reports ('brightsign', from the ?platform=brightsign the host puts on the URL), with a user-agent fallback for panels paired before that existed — those registered as "Chrome 120" with a BrightSign user agent. Only en carries the new string; other locales fall back to en, which reads correctly since the label is a brand name. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01Uaeo9MvzKoyXuN6ZsbhtkL --- frontend/js/i18n/en.js | 1 + frontend/js/views/device-detail.js | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/frontend/js/i18n/en.js b/frontend/js/i18n/en.js index 7dd03dc..2c3ad53 100644 --- a/frontend/js/i18n/en.js +++ b/frontend/js/i18n/en.js @@ -472,6 +472,7 @@ export default { 'device.info.size_free': '{size} free', 'device.info.player_type': 'Player Type', 'device.info.web_player': 'Web Player', + 'device.info.brightsign_player': 'BrightSign', 'device.info.wifi': 'WiFi', 'device.info.uptime': 'Uptime', 'device.info.android_version': 'Android Version', diff --git a/frontend/js/views/device-detail.js b/frontend/js/views/device-detail.js index fad4b94..231e938 100644 --- a/frontend/js/views/device-detail.js +++ b/frontend/js/views/device-detail.js @@ -83,6 +83,17 @@ function renderDeviceClock(device) { return `${tz}${local ? `
${t('device.clock.reported', { time: local })}
` : ''}${warn}`; } +// A BrightSign runs the same web player, so client_type is 'player' and it would otherwise read as +// "Web Player" — indistinguishable from a browser tab on someone's desk. The player reports +// platform 'brightsign' (autorun.brs puts ?platform=brightsign on the URL); the user-agent check +// covers panels paired before that existed, which registered as "Chrome 120" with a BrightSign UA. +function isBrightSignDevice(device) { + if (!device) return false; + const platform = String(device.platform || '').toLowerCase(); + if (platform.includes('brightsign')) return true; + return String(device.user_agent || '').toLowerCase().includes('brightsign'); +} + export function render(container, deviceId) { container.innerHTML = `
@@ -341,7 +352,7 @@ async function loadDevice(deviceId, activeTab = null) { ` : `
${t('device.info.player_type')}
-
${t('device.info.web_player')}
+
${isBrightSignDevice(device) ? t('device.info.brightsign_player') : t('device.info.web_player')}
`} ${device.android_version && !device.android_version.startsWith('Web/') ? `