diff --git a/Client/src/App.jsx b/Client/src/App.jsx index 26f75cef8..7dd1404a1 100644 --- a/Client/src/App.jsx +++ b/Client/src/App.jsx @@ -18,6 +18,7 @@ import CheckEmail from "./Pages/CheckEmail"; import SetNewPassword from "./Pages/SetNewPassword"; import NewPasswordConfirmed from "./Pages/NewPasswordConfirmed"; import ProtectedRoute from "./Components/ProtectedRoute"; +import Maintenance from "./Pages/Maintenance"; function App() { return ( @@ -49,6 +50,10 @@ function App() { path="integrations" element={} /> + } + /> } diff --git a/Client/src/Components/DashboardMenu/index.jsx b/Client/src/Components/DashboardMenu/index.jsx index 2363352c1..a88274c5d 100644 --- a/Client/src/Components/DashboardMenu/index.jsx +++ b/Client/src/Components/DashboardMenu/index.jsx @@ -5,6 +5,7 @@ import Monitors from "../../assets/Images/Icon-monitor-gray.png"; import Incidents from "../../assets/Images/Icon-warning-gray.png"; import SensorsIcon from "../../assets/Images/Icon-signal-gray.png"; import AllInclusiveIcon from "../../assets/Images/Icon-link-gray.png"; +import MaintenanceIcon from "../../assets/Images/Icon-maintenance-gray.png"; import SettingsIcon from "../../assets/Images/Icon-setting-gray.png"; import React, { useState, useEffect } from "react"; import { useNavigate, useLocation } from "react-router-dom"; @@ -62,6 +63,13 @@ function DashboardMenu() { activeButton === "/integrations", () => handleClick(pathMap["/integrations"], "/integrations") )} + {DashboardMenuButton( + MaintenanceIcon, + "Maintenance", + "/maintenance", + activeButton === "/maintenance", + () => handleClick(pathMap["/maintenance"], "/maintenance") + )} {DashboardMenuButton( SettingsIcon, "Settings", diff --git a/Client/src/Pages/Maintenance/index.css b/Client/src/Pages/Maintenance/index.css new file mode 100644 index 000000000..f26a48767 --- /dev/null +++ b/Client/src/Pages/Maintenance/index.css @@ -0,0 +1,36 @@ +.maintenance-checklist-main { + max-width: 350px; + min-height: 390px; + margin: auto; + padding: 5px; +} + +.maintenance-image { + width: 280px; + height: 150px; + background-color: whitesmoke; + border-radius: 10px; +} + +.maintenance-title { + color: var(--env-var-color-2); + font-size: 16px; + font-weight: bold; + margin-top: 40px; + margin-bottom: 30px; +} + +.checklist-item { + font-size: 13px; + color: var(--env-var-color-2); + display: flex; + margin-bottom: 10px; +} + +.checklist-item-text { + margin-left: 10px; +} + +.maintenance-checklist-main .maintenance-checklist-button { + margin-top: 30px; +} diff --git a/Client/src/Pages/Maintenance/index.jsx b/Client/src/Pages/Maintenance/index.jsx new file mode 100644 index 000000000..4cf77b025 --- /dev/null +++ b/Client/src/Pages/Maintenance/index.jsx @@ -0,0 +1,39 @@ +import React from "react"; +import "./index.css"; +import WindowFrame from "./../../assets/Images/maintenance_window_frame.svg"; +import { Button } from "@mui/material"; +import CheckCircleOutlineIcon from "@mui/icons-material/CheckCircleOutline"; + +const Maintenance = () => { + const maintenanceItems = [ + { id: 1, text: "Mark your maintenance periods" }, + { id: 2, text: "Eliminate any misunderstandings" }, + { id: 3, text: "Stop sending alerts in maintenance windows" }, + ]; + + return ( +
+ WindowFrame +
Create a maintenance window to
+
+ {maintenanceItems.map((item) => ( +
+ +
{item.text}
+
+ ))} +
+ + +
+ ); +}; + +export default Maintenance; diff --git a/Client/src/Pages/Status/index.jsx b/Client/src/Pages/Status/index.jsx index 33729f7e1..f0cf82b60 100644 --- a/Client/src/Pages/Status/index.jsx +++ b/Client/src/Pages/Status/index.jsx @@ -1,9 +1,7 @@ -import React from 'react' +import React from "react"; const Status = () => { - return ( -
Status
- ) -} + return
Status
; +}; -export default Status \ No newline at end of file +export default Status; diff --git a/Client/src/Utils/PathMap.js b/Client/src/Utils/PathMap.js index 2a86c17f7..a14aafe63 100644 --- a/Client/src/Utils/PathMap.js +++ b/Client/src/Utils/PathMap.js @@ -1,9 +1,10 @@ const pathMap = { - "/monitors": "Monitors", - "/incidents": "Incidents", - "/status" : "Status Pages", - "/integrations": "Integrations", - "/settings" : "Settings" -} + "/monitors": "Monitors", + "/incidents": "Incidents", + "/status": "Status Pages", + "/integrations": "Integrations", + "/maintenance": "maintenance", + "/settings": "Settings", +}; -export default pathMap; \ No newline at end of file +export default pathMap; diff --git a/Client/src/assets/Images/Icon-maintenance-gray.png b/Client/src/assets/Images/Icon-maintenance-gray.png new file mode 100644 index 000000000..c2c203d76 Binary files /dev/null and b/Client/src/assets/Images/Icon-maintenance-gray.png differ diff --git a/Client/src/assets/Images/maintenance_window_frame.svg b/Client/src/assets/Images/maintenance_window_frame.svg new file mode 100644 index 000000000..51fd317fe --- /dev/null +++ b/Client/src/assets/Images/maintenance_window_frame.svg @@ -0,0 +1,9 @@ + + + + + + + + +