From 4d51aaa6f8b6b847ce8779e4659718faf5bd6f62 Mon Sep 17 00:00:00 2001 From: Ionys <9364594+Ionys320@users.noreply.github.com> Date: Thu, 12 Jun 2025 00:28:04 +0200 Subject: [PATCH 1/2] Fix invalid maintenance date (#5901) --- server/model/maintenance.js | 10 ++++++++++ src/pages/EditMaintenance.vue | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/server/model/maintenance.js b/server/model/maintenance.js index 7111a18cb..d3314d3f8 100644 --- a/server/model/maintenance.js +++ b/server/model/maintenance.js @@ -158,12 +158,22 @@ class Maintenance extends BeanModel { bean.active = obj.active; if (obj.dateRange[0]) { + const parsedDate = new Date(obj.dateRange[0]); + if (isNaN(parsedDate.getTime()) || parsedDate.getFullYear() > 9999) { + throw new Error("Invalid start date"); + } + bean.start_date = obj.dateRange[0]; } else { bean.start_date = null; } if (obj.dateRange[1]) { + const parsedDate = new Date(obj.dateRange[1]); + if (isNaN(parsedDate.getTime()) || parsedDate.getFullYear() > 9999) { + throw new Error("Invalid end date"); + } + bean.end_date = obj.dateRange[1]; } else { bean.end_date = null; diff --git a/src/pages/EditMaintenance.vue b/src/pages/EditMaintenance.vue index 953fe337c..6341c5bed 100644 --- a/src/pages/EditMaintenance.vue +++ b/src/pages/EditMaintenance.vue @@ -223,12 +223,12 @@
{{ $t("startDateTime") }}
- +
{{ $t("endDateTime") }}
- +
From c7bacbb7fe89ed14855c5237c10f497281432247 Mon Sep 17 00:00:00 2001 From: Ionys <9364594+Ionys320@users.noreply.github.com> Date: Thu, 12 Jun 2025 01:42:25 +0200 Subject: [PATCH 2/2] Ensure maintenance are always runned at the right moment (#5903) Co-authored-by: Frank Elsinga --- server/model/maintenance.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/model/maintenance.js b/server/model/maintenance.js index d3314d3f8..0a70063ff 100644 --- a/server/model/maintenance.js +++ b/server/model/maintenance.js @@ -243,7 +243,7 @@ class Maintenance extends BeanModel { try { this.beanMeta.status = "scheduled"; - let startEvent = (customDuration = 0) => { + let startEvent = async (customDuration = 0) => { log.info("maintenance", "Maintenance id: " + this.id + " is under maintenance now"); this.beanMeta.status = "under-maintenance";