From 6899603eb7a2dc1cbcf6363f2eafb8c282cd4823 Mon Sep 17 00:00:00 2001 From: Abhigyan Mohanta <110360901+ABHIGYAN-MOHANTA@users.noreply.github.com> Date: Sat, 9 Nov 2024 21:00:08 +0530 Subject: [PATCH 1/5] fix #5314 Email Address Friendly Name Error (#5318) --- src/components/notifications/SendGrid.vue | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/notifications/SendGrid.vue b/src/components/notifications/SendGrid.vue index 18118f469..53f1f1137 100644 --- a/src/components/notifications/SendGrid.vue +++ b/src/components/notifications/SendGrid.vue @@ -5,20 +5,20 @@
- +
- +
- +
{{ $t("Separate multiple email addresses with commas") }}
- + {{ $t("Separate multiple email addresses with commas") }}
From 778363a948513f0f33977563384a1e27d5c7005d Mon Sep 17 00:00:00 2001 From: Dorence Deng Date: Mon, 11 Nov 2024 18:08:43 +0800 Subject: [PATCH 2/5] fix(notification): #5323 fix EditMonitor.vue useToast error (#5333) --- src/pages/EditMonitor.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/EditMonitor.vue b/src/pages/EditMonitor.vue index 4763f8722..a4f93bc2c 100644 --- a/src/pages/EditMonitor.vue +++ b/src/pages/EditMonitor.vue @@ -1065,7 +1065,7 @@ import { hostNameRegexPattern } from "../util-frontend"; import HiddenInput from "../components/HiddenInput.vue"; import EditMonitorConditions from "../components/EditMonitorConditions.vue"; -const toast = useToast; +const toast = useToast(); const pushTokenLength = 32; From 8a432ac93776f01a5464f70e7d34e223193aad2e Mon Sep 17 00:00:00 2001 From: Ionys <9364594+Ionys320@users.noreply.github.com> Date: Tue, 12 Nov 2024 19:00:09 +0100 Subject: [PATCH 3/5] fix(status page): Make sure the group deletion is correctly handled when `groupIDList` is empty (#5340) --- .../status-page-socket-handler.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/server/socket-handlers/status-page-socket-handler.js b/server/socket-handlers/status-page-socket-handler.js index 0804da15d..cbcc52b8f 100644 --- a/server/socket-handlers/status-page-socket-handler.js +++ b/server/socket-handlers/status-page-socket-handler.js @@ -220,13 +220,17 @@ module.exports.statusPageSocketHandler = (socket) => { // Delete groups that are not in the list log.debug("socket", "Delete groups that are not in the list"); - const slots = groupIDList.map(() => "?").join(","); + if (groupIDList.length === 0) { + await R.exec("DELETE FROM `group` WHERE status_page_id = ?", [ statusPage.id ]); + } else { + const slots = groupIDList.map(() => "?").join(","); - const data = [ - ...groupIDList, - statusPage.id - ]; - await R.exec(`DELETE FROM \`group\` WHERE id NOT IN (${slots}) AND status_page_id = ?`, data); + const data = [ + ...groupIDList, + statusPage.id + ]; + await R.exec(`DELETE FROM \`group\` WHERE id NOT IN (${slots}) AND status_page_id = ?`, data); + } const server = UptimeKumaServer.getInstance(); From 4228dd0a29a792c98b1d25f9ce558c74e402b2f4 Mon Sep 17 00:00:00 2001 From: Ionys <9364594+Ionys320@users.noreply.github.com> Date: Tue, 19 Nov 2024 01:29:35 +0100 Subject: [PATCH 4/5] Fix the timeout value (#5352) --- src/pages/EditMonitor.vue | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/pages/EditMonitor.vue b/src/pages/EditMonitor.vue index a4f93bc2c..a83f91cab 100644 --- a/src/pages/EditMonitor.vue +++ b/src/pages/EditMonitor.vue @@ -1443,11 +1443,14 @@ message HealthCheckResponse { } } - if (this.monitor.type === "snmp") { + // Set a default timeout if the monitor type has changed or if it's a new monitor + if (oldType || this.isAdd) { + if (this.monitor.type === "snmp") { // snmp is not expected to be executed via the internet => we can choose a lower default timeout - this.monitor.timeout = 5; - } else { - this.monitor.timeout = 48; + this.monitor.timeout = 5; + } else { + this.monitor.timeout = 48; + } } // Set default SNMP version From cdb8ad321dbdce48d5baa47970da5b5d1de43df1 Mon Sep 17 00:00:00 2001 From: Luke Thomas <96008479+Zoobdude@users.noreply.github.com> Date: Tue, 26 Nov 2024 00:56:23 +0000 Subject: [PATCH 5/5] fix: slug input (#5239) Co-authored-by: Frank Elsinga --- server/routers/status-page-router.js | 8 +++++++- server/socket-handlers/status-page-socket-handler.js | 1 + src/pages/AddStatusPage.vue | 11 ++++++----- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/server/routers/status-page-router.js b/server/routers/status-page-router.js index b209d33d1..893f57564 100644 --- a/server/routers/status-page-router.js +++ b/server/routers/status-page-router.js @@ -15,11 +15,13 @@ const server = UptimeKumaServer.getInstance(); router.get("/status/:slug", cache("5 minutes"), async (request, response) => { let slug = request.params.slug; + slug = slug.toLowerCase(); await StatusPage.handleStatusPageResponse(response, server.indexHTML, slug); }); router.get("/status/:slug/rss", cache("5 minutes"), async (request, response) => { let slug = request.params.slug; + slug = slug.toLowerCase(); await StatusPage.handleStatusPageRSSResponse(response, slug); }); @@ -37,6 +39,7 @@ router.get("/status-page", cache("5 minutes"), async (request, response) => { router.get("/api/status-page/:slug", cache("5 minutes"), async (request, response) => { allowDevAllOrigin(response); let slug = request.params.slug; + slug = slug.toLowerCase(); try { // Get Status Page @@ -69,6 +72,7 @@ router.get("/api/status-page/heartbeat/:slug", cache("1 minutes"), async (reques let uptimeList = {}; let slug = request.params.slug; + slug = slug.toLowerCase(); let statusPageID = await StatusPage.slugToID(slug); let monitorIDList = await R.getCol(` @@ -111,6 +115,7 @@ router.get("/api/status-page/heartbeat/:slug", cache("1 minutes"), async (reques router.get("/api/status-page/:slug/manifest.json", cache("1440 minutes"), async (request, response) => { allowDevAllOrigin(response); let slug = request.params.slug; + slug = slug.toLowerCase(); try { // Get Status Page @@ -145,7 +150,8 @@ router.get("/api/status-page/:slug/manifest.json", cache("1440 minutes"), async // overall status-page status badge router.get("/api/status-page/:slug/badge", cache("5 minutes"), async (request, response) => { allowDevAllOrigin(response); - const slug = request.params.slug; + let slug = request.params.slug; + slug = slug.toLowerCase(); const statusPageID = await StatusPage.slugToID(slug); const { label, diff --git a/server/socket-handlers/status-page-socket-handler.js b/server/socket-handlers/status-page-socket-handler.js index cbcc52b8f..1114d81fd 100644 --- a/server/socket-handlers/status-page-socket-handler.js +++ b/server/socket-handlers/status-page-socket-handler.js @@ -292,6 +292,7 @@ module.exports.statusPageSocketHandler = (socket) => { ok: true, msg: "successAdded", msgi18n: true, + slug: slug }); } catch (error) { diff --git a/src/pages/AddStatusPage.vue b/src/pages/AddStatusPage.vue index bae61449c..b35091cc2 100644 --- a/src/pages/AddStatusPage.vue +++ b/src/pages/AddStatusPage.vue @@ -16,14 +16,11 @@
/status/ - +
  • {{ $t("Accept characters:") }} a-z 0-9 -
  • - - a-z 0-9 -
  • {{ $t("No consecutive dashes") }} --
  • default @@ -65,7 +62,7 @@ export default { this.processing = false; if (res.ok) { - location.href = "/status/" + this.slug + "?edit"; + location.href = "/status/" + res.slug + "?edit"; } else { if (res.msg.includes("UNIQUE constraint")) { @@ -85,4 +82,8 @@ export default { .shadow-box { padding: 20px; } + +#slug { + text-transform: lowercase; +}