Release v2.10.4
Publish Docker Image / build-and-push-existing-registry (./build/Dockerfile, web, pulse-signage-web) (push) Successful in 1m14s
Publish Docker Image / build-and-push-existing-registry (./build/Dockerfile.player, player, pulse-signage-player) (push) Successful in 33s

This commit is contained in:
2026-08-29 12:27:01 +01:00
parent 3f4f57020a
commit ca9f38f3b9
22 changed files with 277 additions and 164 deletions
+21 -2
View File
@@ -15,6 +15,7 @@ module.exports = function registerManageRoutes(app, deps) {
const getScreenConnections = deps.getScreenConnections;
const forwardPlayerCommand = deps.forwardPlayerCommand;
const forwardPlayerCommandToBaseUrl = deps.forwardPlayerCommandToBaseUrl;
const forwardPlayerCommandToDevice = deps.forwardPlayerCommandToDevice;
const requirePermission = deps.requirePermission;
const SCREEN_NAME_MAX_LENGTH = 255;
@@ -88,12 +89,30 @@ module.exports = function registerManageRoutes(app, deps) {
}
async function forwardPlayerCommandForConnections(slug, connections, commandPayload) {
const targetBaseUrls = await resolvePlayerBaseUrlsForConnections(connections);
const connectionList = Array.isArray(connections) ? connections : [];
const remoteDeviceIds = Array.from(new Set(connectionList.map(function (connection) {
return String(connection && connection.playerDeviceId || '').trim();
}).filter(Boolean)));
const localConnections = connectionList.filter(function (connection) {
return !String(connection && connection.playerDeviceId || '').trim();
});
const results = [];
if (remoteDeviceIds.length && typeof forwardPlayerCommandToDevice === 'function') {
const remoteResults = await Promise.allSettled(remoteDeviceIds.map(function (deviceId) {
return forwardPlayerCommandToDevice(deviceId, Object.assign({ screenSlug: slug }, commandPayload || {}));
}));
results.push.apply(results, remoteResults);
}
const targetBaseUrls = await resolvePlayerBaseUrlsForConnections(localConnections);
if (targetBaseUrls.length && typeof forwardPlayerCommandToBaseUrl === 'function') {
const results = await Promise.allSettled(targetBaseUrls.map(function (targetBaseUrl) {
const localResults = await Promise.allSettled(targetBaseUrls.map(function (targetBaseUrl) {
return forwardPlayerCommandToBaseUrl(targetBaseUrl, slug, commandPayload);
}));
results.push.apply(results, localResults);
}
if (results.length) {
return {
ok: true,
sent: results.filter(function (result) {