Release v2.20.5
Publish Docker Image / build-and-push-existing-registry (./build/Dockerfile, web, pulse-signage-web) (push) Successful in 1m24s
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-25 21:55:33 +00:00
1 parent e6c48c6340
commit 1e8bcae72a
8 files changed
+35 -7

No files matched your search

+6
View File
@@ -2,6 +2,12 @@
All notable changes to this project will be documented in this file.
## 2.20.5 - 2026-10-25
### Fixed
- Fixed playlist schedule summaries showing weekday text and omitting boundary times when dates are returned as `Date` objects.
## 2.20.4 - 2026-10-25
### Added
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "pulse-signage-player",
"version": "2.20.4",
"version": "2.20.5",
"private": false,
"description": "Pulse Signage player application bundle",
"engines": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "pulse-signage-web",
"version": "2.20.4",
"version": "2.20.5",
"private": false,
"description": "Pulse Signage web and bridge application bundle",
"engines": {
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "pulse-signage",
"version": "2.20.4",
"version": "2.20.5",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "pulse-signage",
"version": "2.20.4",
"version": "2.20.5",
"dependencies": {
"@better-auth/passkey": "^1.7.13",
"animate.css": "^4.1.1",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "pulse-signage",
"version": "2.20.4",
"version": "2.20.5",
"private": false,
"description": "Pulse Signage application with MySQL and media storage",
"engines": {
+8
View File
@@ -3,6 +3,14 @@
const DAY_NAMES = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
function normalizeDateTimeValue(value) {
if (value instanceof Date || Object.prototype.toString.call(value) === '[object Date]') {
if (Number.isNaN(value.getTime())) {
return null;
}
const pad = (part) => String(part).padStart(2, '0');
return value.getFullYear() + '-' + pad(value.getMonth() + 1) + '-' + pad(value.getDate())
+ 'T' + pad(value.getHours()) + ':' + pad(value.getMinutes());
}
const raw = String(value || '').trim();
return raw ? raw : null;
}
@@ -14,6 +14,18 @@
};
// Schedule helpers.
function normalizeDateTimeValue(value) {
if (value instanceof Date || Object.prototype.toString.call(value) === '[object Date]') {
if (Number.isNaN(value.getTime())) {
return '';
}
var pad = function (part) { return String(part).padStart(2, '0'); };
return value.getFullYear() + '-' + pad(value.getMonth() + 1) + '-' + pad(value.getDate())
+ 'T' + pad(value.getHours()) + ':' + pad(value.getMinutes());
}
return String(value || '').trim();
}
function formatDays(daysValue) {
var days = [];
if (Array.isArray(daysValue)) {
@@ -36,8 +48,8 @@
function normalizeScheduleRuleValue(rule) {
var input = rule && typeof rule === 'object' ? rule : {};
var startDatetime = String(input.start_datetime || input.startDateTime || input.startDateTimeValue || '').trim();
var endDatetime = String(input.end_datetime || input.endDateTime || input.endDateTimeValue || '').trim();
var startDatetime = normalizeDateTimeValue(input.start_datetime || input.startDateTime || input.startDateTimeValue);
var endDatetime = normalizeDateTimeValue(input.end_datetime || input.endDateTime || input.endDateTimeValue);
var startTime = String(input.start_time || input.startTime || input.startTimeValue || '').trim();
var endTime = String(input.end_time || input.endTime || input.endTimeValue || '').trim();
var days = [];
+2
View File
@@ -26,6 +26,8 @@ test('playlist schedule summaries show up to two short rules on separate lines a
[[{ days: [1] }, { days: [2] }, { days: [3] }, { days: [4] }], '4 rules'],
[[{ start_datetime: '2026-10-25T09:00', end_datetime: '2026-10-26T17:00', days: [1] }],
'Rule 1: Dates 2026-10-25 09:00 to 2026-10-26 17:00: Mon'],
[[{ start_datetime: new Date(2026, 0, 1, 0, 0), end_datetime: new Date(2026, 9, 30, 20, 0) }],
'Rule 1: Dates 2026-01-01 00:00 to 2026-10-30 20:00'],
[[{ start_datetime: '2026-10-25T09:00', end_datetime: '2026-10-26T17:00',
days: [1, 2], start_time: '09:00', end_time: '17:00' }],
'1 rule'],