From 9c793da0f0f344aaec083f28606f4e4ae1675844 Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Tue, 10 Dec 2024 14:23:46 +0800 Subject: [PATCH] Monitors -> Uptime --- Client/src/App.jsx | 26 +++--- Client/src/Components/Sidebar/index.jsx | 6 +- Client/src/Pages/Auth/Login.jsx | 4 +- Client/src/Pages/Auth/Register/Register.jsx | 2 +- .../Infrastructure/CreateMonitor/index.jsx | 2 +- .../Pages/Infrastructure/Details/index.jsx | 2 +- .../Infrastructure/components/Menu/index.jsx | 82 ------------------- Client/src/Pages/Infrastructure/index.jsx | 4 +- .../src/Pages/PageSpeed/Configure/index.jsx | 4 +- .../Pages/PageSpeed/CreatePageSpeed/index.jsx | 2 +- Client/src/Pages/PageSpeed/Details/index.jsx | 2 +- Client/src/Pages/PageSpeed/card.jsx | 2 +- .../{Monitors => Uptime}/Configure/index.css | 0 .../{Monitors => Uptime}/Configure/index.jsx | 8 +- .../Configure/skeleton.jsx | 0 .../CreateUptime}/index.css | 0 .../CreateUptime}/index.jsx | 6 +- .../Details/Charts/index.jsx | 0 .../Details/PaginationTable/index.jsx | 0 .../{Monitors => Uptime}/Details/index.css | 0 .../{Monitors => Uptime}/Details/index.jsx | 15 ++-- .../{Monitors => Uptime}/Details/skeleton.jsx | 0 .../{Monitors => Uptime}/Details/styled.jsx | 0 .../Home/CurrentMonitoring/index.jsx | 4 +- .../{Monitors => Uptime}/Home/StatusBox.jsx | 0 .../Home/UptimeTable}/Skeleton/index.jsx | 0 .../Home/UptimeTable}/index.jsx | 2 +- .../{Monitors => Uptime}/Home/actionsMenu.jsx | 6 +- .../{Monitors => Uptime}/Home/fallback.jsx | 0 .../Pages/{Monitors => Uptime}/Home/host.jsx | 0 .../Pages/{Monitors => Uptime}/Home/index.css | 0 .../Pages/{Monitors => Uptime}/Home/index.jsx | 32 ++++---- .../{Monitors => Uptime}/Home/skeleton.jsx | 0 .../src/Pages/{Monitors => Uptime}/styled.jsx | 0 .../src/Pages/{Monitors => Uptime}/utils.jsx | 0 35 files changed, 65 insertions(+), 146 deletions(-) rename Client/src/Pages/{Monitors => Uptime}/Configure/index.css (100%) rename Client/src/Pages/{Monitors => Uptime}/Configure/index.jsx (98%) rename Client/src/Pages/{Monitors => Uptime}/Configure/skeleton.jsx (100%) rename Client/src/Pages/{Monitors/CreateMonitor => Uptime/CreateUptime}/index.css (100%) rename Client/src/Pages/{Monitors/CreateMonitor => Uptime/CreateUptime}/index.jsx (98%) rename Client/src/Pages/{Monitors => Uptime}/Details/Charts/index.jsx (100%) rename Client/src/Pages/{Monitors => Uptime}/Details/PaginationTable/index.jsx (100%) rename Client/src/Pages/{Monitors => Uptime}/Details/index.css (100%) rename Client/src/Pages/{Monitors => Uptime}/Details/index.jsx (97%) rename Client/src/Pages/{Monitors => Uptime}/Details/skeleton.jsx (100%) rename Client/src/Pages/{Monitors => Uptime}/Details/styled.jsx (100%) rename Client/src/Pages/{Monitors => Uptime}/Home/CurrentMonitoring/index.jsx (93%) rename Client/src/Pages/{Monitors => Uptime}/Home/StatusBox.jsx (100%) rename Client/src/Pages/{Monitors/Home/MonitorTable => Uptime/Home/UptimeTable}/Skeleton/index.jsx (100%) rename Client/src/Pages/{Monitors/Home/MonitorTable => Uptime/Home/UptimeTable}/index.jsx (99%) rename Client/src/Pages/{Monitors => Uptime}/Home/actionsMenu.jsx (97%) rename Client/src/Pages/{Monitors => Uptime}/Home/fallback.jsx (100%) rename Client/src/Pages/{Monitors => Uptime}/Home/host.jsx (100%) rename Client/src/Pages/{Monitors => Uptime}/Home/index.css (100%) rename Client/src/Pages/{Monitors => Uptime}/Home/index.jsx (73%) rename Client/src/Pages/{Monitors => Uptime}/Home/skeleton.jsx (100%) rename Client/src/Pages/{Monitors => Uptime}/styled.jsx (100%) rename Client/src/Pages/{Monitors => Uptime}/utils.jsx (100%) diff --git a/Client/src/App.jsx b/Client/src/App.jsx index 82c8203a8..5e7ab4e97 100644 --- a/Client/src/App.jsx +++ b/Client/src/App.jsx @@ -8,8 +8,8 @@ import NotFound from "./Pages/NotFound"; import Login from "./Pages/Auth/Login"; import Register from "./Pages/Auth/Register/Register"; import Account from "./Pages/Account"; -import Monitors from "./Pages/Monitors/Home"; -import CreateMonitor from "./Pages/Monitors/CreateMonitor"; +import Uptime from "./Pages/Uptime/Home"; +import CreateMonitor from "./Pages/Uptime/CreateUptime"; import CreateInfrastructureMonitor from "./Pages/Infrastructure/CreateMonitor"; import Incidents from "./Pages/Incidents"; import Status from "./Pages/Status"; @@ -20,10 +20,10 @@ import CheckEmail from "./Pages/Auth/CheckEmail"; import SetNewPassword from "./Pages/Auth/SetNewPassword"; import NewPasswordConfirmed from "./Pages/Auth/NewPasswordConfirmed"; import ProtectedRoute from "./Components/ProtectedRoute"; -import Details from "./Pages/Monitors/Details"; +import UptimeDetails from "./Pages/Uptime/Details"; import AdvancedSettings from "./Pages/AdvancedSettings"; import Maintenance from "./Pages/Maintenance"; -import Configure from "./Pages/Monitors/Configure"; +import Configure from "./Pages/Uptime/Configure"; import PageSpeed from "./Pages/PageSpeed"; import CreatePageSpeed from "./Pages/PageSpeed/CreatePageSpeed"; import CreateNewMaintenanceWindow from "./Pages/Maintenance/CreateMaintenance"; @@ -43,8 +43,8 @@ import { Infrastructure } from "./Pages/Infrastructure"; import InfrastructureDetails from "./Pages/Infrastructure/Details"; function App() { const AdminCheckedRegister = withAdminCheck(Register); - const MonitorsWithAdminProp = withAdminProp(Monitors); - const MonitorDetailsWithAdminProp = withAdminProp(Details); + const UptimeWithAdminProp = withAdminProp(Uptime); + const UptimeDetailsWithAdminProp = withAdminProp(UptimeDetails); const PageSpeedWithAdminProp = withAdminProp(PageSpeed); const PageSpeedDetailsWithAdminProp = withAdminProp(PageSpeedDetails); const MaintenanceWithAdminProp = withAdminProp(Maintenance); @@ -92,22 +92,22 @@ function App() { } + element={} /> } + path="/uptime" + element={} /> } /> } + path="/uptime/:monitorId/" + element={} /> } /> }, + { name: "Uptime", path: "uptime", icon: }, { name: "Pagespeed", path: "pagespeed", icon: }, { name: "Infrastructure", path: "infrastructure", icon: }, { name: "Incidents", path: "incidents", icon: }, @@ -262,10 +262,10 @@ function Sidebar() { Menu } - sx={{ + sx={{ px: theme.spacing(6), height: "100%", - overflow: "hidden" + overflow: "hidden", }} > {menu.map((item) => diff --git a/Client/src/Pages/Auth/Login.jsx b/Client/src/Pages/Auth/Login.jsx index 6329835ef..a7554a7c1 100644 --- a/Client/src/Pages/Auth/Login.jsx +++ b/Client/src/Pages/Auth/Login.jsx @@ -388,7 +388,7 @@ const Login = () => { useEffect(() => { if (authToken) { - navigate("/monitors"); + navigate("/uptime"); return; } networkService @@ -454,7 +454,7 @@ const Login = () => { } else { const action = await dispatch(login(form)); if (action.payload.success) { - navigate("/monitors"); + navigate("/uptime"); createToast({ body: "Welcome back! You're successfully logged in.", }); diff --git a/Client/src/Pages/Auth/Register/Register.jsx b/Client/src/Pages/Auth/Register/Register.jsx index 2f4c26040..65c20ca40 100644 --- a/Client/src/Pages/Auth/Register/Register.jsx +++ b/Client/src/Pages/Auth/Register/Register.jsx @@ -237,7 +237,7 @@ const Register = ({ isSuperAdmin }) => { if (action.payload.success) { const authToken = action.payload.data; localStorage.setItem("token", authToken); - navigate("/monitors"); + navigate("/uptime"); createToast({ body: "Welcome! Your account was created successfully.", }); diff --git a/Client/src/Pages/Infrastructure/CreateMonitor/index.jsx b/Client/src/Pages/Infrastructure/CreateMonitor/index.jsx index f1d2d0ce2..1e4b64f48 100644 --- a/Client/src/Pages/Infrastructure/CreateMonitor/index.jsx +++ b/Client/src/Pages/Infrastructure/CreateMonitor/index.jsx @@ -12,7 +12,7 @@ import { useNavigate } from "react-router-dom"; import { useTheme } from "@emotion/react"; import { createToast } from "../../../Utils/toastUtils"; import Link from "../../../Components/Link"; -import { ConfigBox } from "../../Monitors/styled"; +import { ConfigBox } from "../../Uptime/styled"; import TextInput from "../../../Components/Inputs/TextInput"; import Select from "../../../Components/Inputs/Select"; import Checkbox from "../../../Components/Inputs/Checkbox"; diff --git a/Client/src/Pages/Infrastructure/Details/index.jsx b/Client/src/Pages/Infrastructure/Details/index.jsx index 06fb1296a..60dcf68ee 100644 --- a/Client/src/Pages/Infrastructure/Details/index.jsx +++ b/Client/src/Pages/Infrastructure/Details/index.jsx @@ -8,7 +8,7 @@ import AreaChart from "../../../Components/Charts/AreaChart"; import { useSelector } from "react-redux"; import { networkService } from "../../../main"; import PulseDot from "../../../Components/Animated/PulseDot"; -import useUtils from "../../Monitors/utils"; +import useUtils from "../../Uptime/utils"; import { useNavigate } from "react-router-dom"; import Empty from "./empty"; import { logger } from "../../../Utils/Logger"; diff --git a/Client/src/Pages/Infrastructure/components/Menu/index.jsx b/Client/src/Pages/Infrastructure/components/Menu/index.jsx index 9794a34d9..98b3f9878 100644 --- a/Client/src/Pages/Infrastructure/components/Menu/index.jsx +++ b/Client/src/Pages/Infrastructure/components/Menu/index.jsx @@ -109,88 +109,6 @@ const InfrastructureMenu = ({ monitor, isAdmin, updateCallback }) => { }, }} > - {/* - Open site action. Not necessary for infrastructure? - - {actions.url !== null ? ( - { - closeMenu(e); - e.stopPropagation(); - window.open(actions.url, "_blank", "noreferrer"); - }} - > - Open site - - ) : ( - "" - )} - */} - openDetails(monitor.id)}>Details - {/* - Incidents. Necessary? - { - e.stopPropagation(); - navigate(`/incidents/${actions.id}`); - }} - > - Incidents - */} - {/* - Configure. Necessary? - {isAdmin && ( - { - e.stopPropagation(); - - navigate(`/monitors/configure/${actions.id}`); - }} - > - Configure - - )} */} - {/* - Clone. Necessary? - {isAdmin && ( - { - e.stopPropagation(); - navigate(`/monitors/create/${actions.id}`); - }} - > - Clone - - )} */} - {/* - Pause. Necessary? - const handlePause = async () => { - try { - const action = await dispatch( - pauseUptimeMonitor({ authToken, monitorId: monitor._id }) - ); - if (pauseUptimeMonitor.fulfilled.match(action)) { - updateCallback(); - const state = action?.payload?.data.isActive === false ? "paused" : "resumed"; - createToast({ body: `Monitor ${state} successfully.` }); - } else { - throw new Error(action?.error?.message ?? "Failed to pause monitor."); - } - } catch (error) { - logger.error("Error pausing monitor:", monitor._id, error); - createToast({ body: "Failed to pause monitor." }); - } - }; - {isAdmin && ( - { - e.stopPropagation(); - handlePause(e); - }} - > - {monitor?.isActive === true ? "Pause" : "Resume"} - - )} */} {isAdmin && Remove} { diff --git a/Client/src/Pages/PageSpeed/card.jsx b/Client/src/Pages/PageSpeed/card.jsx index ba694bae2..56ba62346 100644 --- a/Client/src/Pages/PageSpeed/card.jsx +++ b/Client/src/Pages/PageSpeed/card.jsx @@ -8,7 +8,7 @@ import { IconBox } from "./Details/styled"; import { Area, AreaChart, CartesianGrid, ResponsiveContainer, Tooltip } from "recharts"; import { useSelector } from "react-redux"; import { formatDateWithTz, formatDurationSplit } from "../../Utils/timeUtils"; -import useUtils from "../Monitors/utils"; +import useUtils from "../Uptime/utils"; import { useState } from "react"; /** diff --git a/Client/src/Pages/Monitors/Configure/index.css b/Client/src/Pages/Uptime/Configure/index.css similarity index 100% rename from Client/src/Pages/Monitors/Configure/index.css rename to Client/src/Pages/Uptime/Configure/index.css diff --git a/Client/src/Pages/Monitors/Configure/index.jsx b/Client/src/Pages/Uptime/Configure/index.jsx similarity index 98% rename from Client/src/Pages/Monitors/Configure/index.jsx rename to Client/src/Pages/Uptime/Configure/index.jsx index ba23c5634..1c7fc762c 100644 --- a/Client/src/Pages/Monitors/Configure/index.jsx +++ b/Client/src/Pages/Uptime/Configure/index.jsx @@ -166,7 +166,7 @@ const Configure = () => { event.preventDefault(); const action = await dispatch(deleteUptimeMonitor({ authToken, monitor })); if (action.meta.requestStatus === "fulfilled") { - navigate("/monitors"); + navigate("/uptime"); } else { createToast({ body: "Failed to delete monitor." }); } @@ -207,9 +207,9 @@ const Configure = () => { <> { const theme = useTheme(); const { monitorId } = useParams(); const crumbs = [ - { name: "monitors", path: "/monitors" }, - { name: "create", path: `/monitors/create` }, + { name: "uptime", path: "/uptime" }, + { name: "create", path: `/uptime/create` }, ]; // State @@ -125,7 +125,7 @@ const CreateMonitor = () => { const action = await dispatch(createUptimeMonitor({ authToken, monitor: form })); if (action.meta.requestStatus === "fulfilled") { createToast({ body: "Monitor created successfully!" }); - navigate("/monitors"); + navigate("/uptime"); } else { createToast({ body: "Failed to create monitor." }); } diff --git a/Client/src/Pages/Monitors/Details/Charts/index.jsx b/Client/src/Pages/Uptime/Details/Charts/index.jsx similarity index 100% rename from Client/src/Pages/Monitors/Details/Charts/index.jsx rename to Client/src/Pages/Uptime/Details/Charts/index.jsx diff --git a/Client/src/Pages/Monitors/Details/PaginationTable/index.jsx b/Client/src/Pages/Uptime/Details/PaginationTable/index.jsx similarity index 100% rename from Client/src/Pages/Monitors/Details/PaginationTable/index.jsx rename to Client/src/Pages/Uptime/Details/PaginationTable/index.jsx diff --git a/Client/src/Pages/Monitors/Details/index.css b/Client/src/Pages/Uptime/Details/index.css similarity index 100% rename from Client/src/Pages/Monitors/Details/index.css rename to Client/src/Pages/Uptime/Details/index.css diff --git a/Client/src/Pages/Monitors/Details/index.jsx b/Client/src/Pages/Uptime/Details/index.jsx similarity index 97% rename from Client/src/Pages/Monitors/Details/index.jsx rename to Client/src/Pages/Uptime/Details/index.jsx index ebb664b79..60b67fdc8 100644 --- a/Client/src/Pages/Monitors/Details/index.jsx +++ b/Client/src/Pages/Uptime/Details/index.jsx @@ -100,7 +100,7 @@ const DetailsPage = ({ isAdmin }) => { } }; fetchCertificate(); - }, [authToken, monitorId, monitor]); + }, [authToken, monitorId, monitor, dateRange, uiTimezone, dateFormat]); const splitDuration = (duration) => { const { time, format } = formatDurationSplit(duration); @@ -117,18 +117,17 @@ const DetailsPage = ({ isAdmin }) => { const [hoveredUptimeData, setHoveredUptimeData] = useState(null); const [hoveredIncidentsData, setHoveredIncidentsData] = useState(null); + const BREADCRUMBS = [ + { name: "uptime", path: "/uptime" }, + { name: "details", path: `/uptime/${monitorId}` }, + ]; return ( {loading ? ( ) : ( <> - + { )} + {noMonitors && } {loading ? ( @@ -77,20 +79,20 @@ const Monitors = ({ isAdmin }) => { > @@ -101,7 +103,7 @@ const Monitors = ({ isAdmin }) => { ); }; -Monitors.propTypes = { +UptimeMonitors.propTypes = { isAdmin: PropTypes.bool, }; -export default Monitors; +export default UptimeMonitors; diff --git a/Client/src/Pages/Monitors/Home/skeleton.jsx b/Client/src/Pages/Uptime/Home/skeleton.jsx similarity index 100% rename from Client/src/Pages/Monitors/Home/skeleton.jsx rename to Client/src/Pages/Uptime/Home/skeleton.jsx diff --git a/Client/src/Pages/Monitors/styled.jsx b/Client/src/Pages/Uptime/styled.jsx similarity index 100% rename from Client/src/Pages/Monitors/styled.jsx rename to Client/src/Pages/Uptime/styled.jsx diff --git a/Client/src/Pages/Monitors/utils.jsx b/Client/src/Pages/Uptime/utils.jsx similarity index 100% rename from Client/src/Pages/Monitors/utils.jsx rename to Client/src/Pages/Uptime/utils.jsx