From 58b102b921f5890bcb90caa571faedf52cfb86f2 Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Thu, 26 Jun 2025 09:09:41 +0800 Subject: [PATCH] fix status page --- client/src/Pages/StatusPage/Create/index.jsx | 2 +- client/src/Pages/StatusPage/Status/index.jsx | 2 +- client/src/locales/en.json | 3 ++ server/db/models/Monitor.js | 5 +++ server/db/mongo/modules/statusPageModule.js | 39 ++++++++++++++++++++ 5 files changed, 49 insertions(+), 2 deletions(-) diff --git a/client/src/Pages/StatusPage/Create/index.jsx b/client/src/Pages/StatusPage/Create/index.jsx index 63c248786..b682fb16a 100644 --- a/client/src/Pages/StatusPage/Create/index.jsx +++ b/client/src/Pages/StatusPage/Create/index.jsx @@ -246,7 +246,7 @@ const CreateStatusPage = () => { color="accent" onClick={handleSubmit} > - {t("settingsSave")} + {t("statusPageCreate.buttonSave")} diff --git a/client/src/Pages/StatusPage/Status/index.jsx b/client/src/Pages/StatusPage/Status/index.jsx index 45822f6c6..0d4ed61f2 100644 --- a/client/src/Pages/StatusPage/Status/index.jsx +++ b/client/src/Pages/StatusPage/Status/index.jsx @@ -62,7 +62,7 @@ const PublicStatus = () => { return ; } - if (monitors.length === 0) { + if (monitors?.length === 0) { return ( { const stringService = ServiceRegistry.get(StringService.SERVICE_NAME); try { + const preliminaryStatusPage = await StatusPage.findOne({ url }); + if (!preliminaryStatusPage) { + const error = new Error(stringService.statusPageNotFound); + error.status = 404; + throw error; + } + + if (!preliminaryStatusPage.monitors || preliminaryStatusPage.monitors.length === 0) { + const { + _id, + color, + companyName, + isPublished, + logo, + originalMonitors, + showCharts, + showUptimePercentage, + timezone, + showAdminLoginLink, + url, + } = preliminaryStatusPage; + return { + statusPage: { + _id, + color, + companyName, + isPublished, + logo, + originalMonitors, + showCharts, + showUptimePercentage, + timezone, + showAdminLoginLink, + url, + }, + monitors: [], + }; + } + const statusPageQuery = await StatusPage.aggregate([ { $match: { url: url } }, {