diff --git a/server/routers/api-router.js b/server/routers/api-router.js index da036ee2c..84fc8c550 100644 --- a/server/routers/api-router.js +++ b/server/routers/api-router.js @@ -180,7 +180,7 @@ async function getMaintenanceList(statusPageId) { return publicMaintenanceList; } catch (error) { - return null; + return []; } } diff --git a/src/languages/en.js b/src/languages/en.js index b235904ec..2653b0298 100644 --- a/src/languages/en.js +++ b/src/languages/en.js @@ -20,6 +20,7 @@ export default { End: "End", affectedMonitorsDescription: "Select monitors that are affected by current maintenance", atLeastOneMonitor: "Select at least one affected monitor", + maintenanceInvalidDate: "Invalid maintenance end date entered", selectedStatusPagesDescription: "Select status pages to display maintenance info on", atLeastOneStatusPage: "Select at least one status page", maintenanceTitleExample: "Network infrastructure maintenance", diff --git a/src/pages/EditMaintenance.vue b/src/pages/EditMaintenance.vue index 26aa857f2..281f1241d 100644 --- a/src/pages/EditMaintenance.vue +++ b/src/pages/EditMaintenance.vue @@ -260,6 +260,11 @@ export default { return this.processing = false; } + if (this.maintenance.start_date >= this.maintenance.end_date) { + toast.error(this.$t("maintenanceInvalidDate")); + return this.processing = false; + } + if (!this.showOnAllPages && this.selectedStatusPages.length === 0) { toast.error(this.$t("atLeastOneStatusPage")); return this.processing = false; diff --git a/src/pages/StatusPage.vue b/src/pages/StatusPage.vue index 4d021dc46..85f3803bc 100644 --- a/src/pages/StatusPage.vue +++ b/src/pages/StatusPage.vue @@ -595,7 +595,7 @@ export default { } this.incident = res.data.incident; - this.maintenance = res.data.maintenance || []; + this.maintenance = res.data.maintenance; this.$root.publicGroupList = res.data.publicGroupList; });