Add onboarding weather and template gradients
Publish Docker Image / build-and-push-existing-registry (./build/Dockerfile, web, pulse-signage-web) (push) Successful in 1m53s
Publish Docker Image / build-and-push-existing-registry (./build/Dockerfile.player, player, pulse-signage-player) (push) Successful in 34s

This commit is contained in:
2026-08-28 20:05:23 +01:00
parent aa07a78912
commit 3960931ebe
80 changed files with 12750 additions and 519 deletions
+16 -2
View File
@@ -180,13 +180,27 @@
var backgroundColor = String(payload.backgroundColor || '#111111').trim() || '#111111';
var backgroundImagePath = String(payload.backgroundImagePath || '').trim();
var backgroundGradient = '';
try {
var gradientData = typeof payload.backgroundGradient === 'string' ? JSON.parse(payload.backgroundGradient) : payload.backgroundGradient;
if (gradientData && gradientData.type === 'linear' && Array.isArray(gradientData.colors) && gradientData.colors.length >= 2) {
var gradientStops = Array.isArray(gradientData.stops) ? gradientData.stops : (gradientData.colors || []).map(function (color, index, colors) { return { color: color, position: colors.length > 1 ? Math.round(index * 100 / (colors.length - 1)) : 0 }; });
gradientStops = gradientStops.filter(function (stop) { return stop && /^#[0-9a-fA-F]{3,8}$/.test(String(stop.color || '').trim()); }).slice(0, 12);
if (gradientStops.length >= 2) {
var gradientAngle = Number(gradientData.angle);
backgroundGradient = 'linear-gradient(' + (Number.isFinite(gradientAngle) ? Math.max(0, Math.min(360, gradientAngle)) : 90) + 'deg,' + gradientStops.map(function (stop) { return stop.color + ' ' + Math.max(0, Math.min(100, Number(stop.position) || 0)) + '%'; }).join(',') + ')';
}
}
} catch (_error) {
backgroundGradient = '';
}
var canvasWidth = Math.max(1, Number(payload.canvasWidth || 1920));
var canvasHeight = Math.max(1, Number(payload.canvasHeight || 1080));
canvas.style.backgroundColor = backgroundColor;
canvas.style.backgroundImage = backgroundImagePath ? 'url("' + encodeURI(backgroundImagePath) + '")' : 'none';
canvas.style.backgroundImage = [backgroundImagePath ? 'url("' + encodeURI(backgroundImagePath) + '")' : '', backgroundGradient].filter(Boolean).join(',') || 'none';
canvas.style.backgroundPosition = 'center';
canvas.style.backgroundSize = '100% 100%';
canvas.style.backgroundSize = backgroundImagePath ? 'contain, cover' : 'cover';
canvas.style.backgroundRepeat = 'no-repeat';
canvas.style.transformOrigin = 'center center';
canvas.style.width = canvasWidth + 'px';