diff --git a/server/model/maintenance.js b/server/model/maintenance.js index 7111a18cb..0a70063ff 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; @@ -233,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"; diff --git a/server/model/status_page.js b/server/model/status_page.js index 38f548ebb..2f3511ec5 100644 --- a/server/model/status_page.js +++ b/server/model/status_page.js @@ -120,8 +120,8 @@ class StatusPage extends BeanModel { const head = $("head"); - if (statusPage.googleAnalyticsTagId) { - let escapedGoogleAnalyticsScript = googleAnalytics.getGoogleAnalyticsScript(statusPage.googleAnalyticsTagId); + if (statusPage.google_analytics_tag_id) { + let escapedGoogleAnalyticsScript = googleAnalytics.getGoogleAnalyticsScript(statusPage.google_analytics_tag_id); head.append($(escapedGoogleAnalyticsScript)); } diff --git a/server/notification-providers/ntfy.js b/server/notification-providers/ntfy.js index ad1d39f8f..e44e7e868 100644 --- a/server/notification-providers/ntfy.js +++ b/server/notification-providers/ntfy.js @@ -41,8 +41,8 @@ class Ntfy extends NotificationProvider { if (heartbeatJSON.status === DOWN) { tags = [ "red_circle" ]; status = "Down"; - // if priority is not 5, increase priority for down alerts - priority = priority === 5 ? priority : priority + 1; + // defaults to max(priority + 1, 5) + priority = notification.ntfyPriorityDown || (priority === 5 ? priority : priority + 1); } else if (heartbeatJSON["status"] === UP) { tags = [ "green_circle" ]; status = "Up"; diff --git a/src/components/TagsManager.vue b/src/components/TagsManager.vue index aa8f93a83..e7e370a4c 100644 --- a/src/components/TagsManager.vue +++ b/src/components/TagsManager.vue @@ -4,7 +4,7 @@