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

This commit is contained in:
lzstealth committed 2026-10-17 16:01:00 +01:00
1 parent 64aeb1b47e
commit 05c9341b08
25 files changed
+595 -31

No files matched your search

+2
View File
@@ -17,6 +17,7 @@ const AUDIT_EVENT_CATEGORIES = Object.freeze({
RSS_FEEDS: 'rss-feeds',
TIMETABLES: 'timetables',
WEATHER: 'weather',
MEDIA_ASSETS: 'media-assets',
SCREEN_CONTROLS: 'screen-controls'
});
const AUDIT_CATEGORY_KEYS = Object.freeze(Object.values(AUDIT_EVENT_CATEGORIES));
@@ -37,6 +38,7 @@ const AUDIT_CATEGORY_LABELS = Object.freeze({
'rss-feeds': 'RSS Feeds',
timetables: 'Timetables',
weather: 'Weather',
'media-assets': 'Media Assets',
'screen-controls': 'Screen Controls'
});
const SCREEN_CONTROL_COMMAND_KEYS = Object.freeze(['pause', 'blackout', 'reload', 'navigation', 'moveclient', 'setclientname']);
+18
View File
@@ -417,6 +417,24 @@ async function buildTemplateContent(pool, template, body, filesByField, existing
delete generic.timetable_display_mode;
delete generic.timetable_max_items;
generic.date_filter = ['between', 'before', 'after'].includes(generic.date_filter) ? generic.date_filter : 'all';
for (const field of ['date_from', 'date_to']) {
const value = String(generic[field] || '').trim();
const date = value ? new Date(value) : null;
const active = generic.date_filter === 'between' || generic.date_filter === (field === 'date_from' ? 'after' : 'before');
if (active && date && Number.isNaN(date.getTime())) {
const error = new Error('Timetable date range must contain valid date-times.');
error.statusCode = 400;
throw error;
}
generic[field] = date && !Number.isNaN(date.getTime()) ? date.toISOString() : '';
}
if (generic.date_filter === 'between' && generic.date_from && generic.date_to && generic.date_from > generic.date_to) {
const error = new Error('Timetable date range must end on or after its start.');
error.statusCode = 400;
throw error;
}
generic.text = normalizedText;
generic.value = normalizedText;
generic.type = region.region_type;