From c8cdcd88a61698d102bddf218e7aa88e11fedf3b Mon Sep 17 00:00:00 2001 From: terryjung0244 Date: Mon, 1 Jul 2024 22:30:57 -0400 Subject: [PATCH 1/6] Issue 225: Add basic structure for Incidents Component --- Client/src/Pages/Incidents/index.css | 13 +++++++++++++ Client/src/Pages/Incidents/index.jsx | 21 +++++++++++++++------ Client/src/Pages/Status/index.jsx | 10 ++++------ 3 files changed, 32 insertions(+), 12 deletions(-) diff --git a/Client/src/Pages/Incidents/index.css b/Client/src/Pages/Incidents/index.css index e69de29bb..9886428f3 100644 --- a/Client/src/Pages/Incidents/index.css +++ b/Client/src/Pages/Incidents/index.css @@ -0,0 +1,13 @@ +.maintenance-checklist-card { + max-width: 314; + margin: auto; + padding: 2; + box-shadow: 3; +} + +.maintenance-checklist-box { + height: 100; + background-color: grey; + border-radius: 1px; + margin-bottom: 2px; +} diff --git a/Client/src/Pages/Incidents/index.jsx b/Client/src/Pages/Incidents/index.jsx index e1aa44740..a6f305498 100644 --- a/Client/src/Pages/Incidents/index.jsx +++ b/Client/src/Pages/Incidents/index.jsx @@ -1,9 +1,18 @@ -import React from 'react' +import React from "react"; +import { Card, CardContent, Box, Typography, Button } from "@mui/material"; const Incidents = () => { - return ( -
Incidents
- ) -} + return ( + + + + Create a maintenance window to + + + + + + ); +}; -export default Incidents \ No newline at end of file +export default Incidents; 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; From 5cd7e362e959fd51d229e4e6c1bce0cb49641cd7 Mon Sep 17 00:00:00 2001 From: terryjung0244 Date: Tue, 2 Jul 2024 13:41:59 -0400 Subject: [PATCH 2/6] Define an array of maintenance item and Map maintenance items array to ListItem components with icons --- Client/src/Pages/Incidents/index.jsx | 38 ++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/Client/src/Pages/Incidents/index.jsx b/Client/src/Pages/Incidents/index.jsx index a6f305498..70659aabc 100644 --- a/Client/src/Pages/Incidents/index.jsx +++ b/Client/src/Pages/Incidents/index.jsx @@ -1,15 +1,49 @@ import React from "react"; -import { Card, CardContent, Box, Typography, Button } from "@mui/material"; +import "./index.css"; +import { + Card, + CardContent, + Box, + Typography, + Button, + List, + ListItem, + ListItemIcon, + ListItemText, +} from "@mui/material"; +import CheckCircleOutlineIcon from "@mui/icons-material/CheckCircleOutline"; const Incidents = () => { + const maintenanceItems = [ + "Mark your maintenance periods", + "Eliminate any misunderstandings", + "Stop sending alerts in maintenance windows", + ]; + return ( Create a maintenance window to + + {maintenanceItems.map((item, index) => { + + + + + + ; + })} + - + ); From 7d27a72f628394b4b1f484471714a7c9f3bbb545 Mon Sep 17 00:00:00 2001 From: terryjung0244 Date: Tue, 2 Jul 2024 21:44:03 -0400 Subject: [PATCH 3/6] Issue 225: update maintenance checklist component structure --- Client/src/Pages/Incidents/index.css | 38 +++++++++++++---- Client/src/Pages/Incidents/index.jsx | 64 +++++++++++----------------- 2 files changed, 54 insertions(+), 48 deletions(-) diff --git a/Client/src/Pages/Incidents/index.css b/Client/src/Pages/Incidents/index.css index 9886428f3..77ec42814 100644 --- a/Client/src/Pages/Incidents/index.css +++ b/Client/src/Pages/Incidents/index.css @@ -1,13 +1,33 @@ -.maintenance-checklist-card { - max-width: 314; +.maintenance-checklist-main { + max-width: 350px; + min-height: 390px; margin: auto; - padding: 2; - box-shadow: 3; + padding: 5px; } -.maintenance-checklist-box { - height: 100; - background-color: grey; - border-radius: 1px; - margin-bottom: 2px; +.maintenance-image { + width: 280px; + height: 150px; + background-color: whitesmoke; + border-radius: 10px; +} + +.maintenance-title { + font-size: 20px; + font-weight: bold; + margin-top: 40px; + margin-bottom: 30px; +} + +.checklist-item { + 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/Incidents/index.jsx b/Client/src/Pages/Incidents/index.jsx index 70659aabc..888584ee5 100644 --- a/Client/src/Pages/Incidents/index.jsx +++ b/Client/src/Pages/Incidents/index.jsx @@ -1,51 +1,37 @@ import React from "react"; import "./index.css"; -import { - Card, - CardContent, - Box, - Typography, - Button, - List, - ListItem, - ListItemIcon, - ListItemText, -} from "@mui/material"; +import { Button } from "@mui/material"; import CheckCircleOutlineIcon from "@mui/icons-material/CheckCircleOutline"; const Incidents = () => { const maintenanceItems = [ - "Mark your maintenance periods", - "Eliminate any misunderstandings", - "Stop sending alerts in maintenance windows", + { id: 1, text: "Mark your maintenance periods" }, + { id: 2, text: "Eliminate any misunderstandings" }, + { id: 3, text: "Stop sending alerts in maintenance windows" }, ]; return ( - - - - Create a maintenance window to - - {maintenanceItems.map((item, index) => { - - - - - - ; - })} - - - - - - +
+
+
Create a maintenance window to
+
+ {maintenanceItems.map((item) => ( +
+ +
{item.text}
+
+ ))} +
+ + +
); }; From 60e18daa159a90110cf7c032459ea47d6f8ceb82 Mon Sep 17 00:00:00 2001 From: terryjung0244 Date: Fri, 5 Jul 2024 12:22:36 -0400 Subject: [PATCH 4/6] Fixed as requested: 1. Added maintenance window frame image. 2. Updated font color and size. --- Client/src/Pages/Incidents/index.css | 5 ++++- Client/src/Pages/Incidents/index.jsx | 3 ++- Client/src/assets/Images/maintenance_window_frame.svg | 9 +++++++++ 3 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 Client/src/assets/Images/maintenance_window_frame.svg diff --git a/Client/src/Pages/Incidents/index.css b/Client/src/Pages/Incidents/index.css index 77ec42814..f26a48767 100644 --- a/Client/src/Pages/Incidents/index.css +++ b/Client/src/Pages/Incidents/index.css @@ -13,13 +13,16 @@ } .maintenance-title { - font-size: 20px; + 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; } diff --git a/Client/src/Pages/Incidents/index.jsx b/Client/src/Pages/Incidents/index.jsx index 888584ee5..705ead72b 100644 --- a/Client/src/Pages/Incidents/index.jsx +++ b/Client/src/Pages/Incidents/index.jsx @@ -1,5 +1,6 @@ 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"; @@ -12,7 +13,7 @@ const Incidents = () => { return (
-
+ WindowFrame
Create a maintenance window to
{maintenanceItems.map((item) => ( 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 @@ + + + + + + + + + From a0bb52001e542357a3f843313d76e8b94538b5f6 Mon Sep 17 00:00:00 2001 From: terryjung0244 Date: Sun, 7 Jul 2024 22:02:08 -0400 Subject: [PATCH 5/6] 1. Added route setup for the maintenance page in App.jsx. 2. Added a dashboard menu button for the maintenance page in DashboardMenu. 3. Moved content with CSS from the Incidents page to the Maintenance page. 4. Updated pathMap in PathMap.js to include the maintenance route. --- Client/src/App.jsx | 5 +++ Client/src/Components/DashboardMenu/index.jsx | 7 ++++ Client/src/Pages/Incidents/index.css | 36 ----------------- Client/src/Pages/Incidents/index.jsx | 34 +--------------- Client/src/Pages/Maintenance/index.css | 36 +++++++++++++++++ Client/src/Pages/Maintenance/index.jsx | 39 +++++++++++++++++++ Client/src/Utils/PathMap.js | 15 +++---- 7 files changed, 96 insertions(+), 76 deletions(-) create mode 100644 Client/src/Pages/Maintenance/index.css create mode 100644 Client/src/Pages/Maintenance/index.jsx diff --git a/Client/src/App.jsx b/Client/src/App.jsx index 4bd5bfed1..bcb3fb847 100644 --- a/Client/src/App.jsx +++ b/Client/src/App.jsx @@ -17,6 +17,7 @@ import SetNewPassword from "./Pages/SetNewPassword"; import NewPasswordConfirmed from "./Pages/NewPasswordConfirmed"; import ToastComponent from "./Components/Toast"; import ProtectedRoute from "./Components/ProtectedRoute"; +import Maintenance from "./Pages/Maintenance"; function App() { return ( @@ -44,6 +45,10 @@ function App() { path="integrations" element={} /> + } + /> } diff --git a/Client/src/Components/DashboardMenu/index.jsx b/Client/src/Components/DashboardMenu/index.jsx index 2363352c1..0730ea643 100644 --- a/Client/src/Components/DashboardMenu/index.jsx +++ b/Client/src/Components/DashboardMenu/index.jsx @@ -62,6 +62,13 @@ function DashboardMenu() { activeButton === "/integrations", () => handleClick(pathMap["/integrations"], "/integrations") )} + {DashboardMenuButton( + AllInclusiveIcon, + "Maintenance", + "/maintenance", + activeButton === "/maintenance", + () => handleClick(pathMap["/maintenance"], "/maintenance") + )} {DashboardMenuButton( SettingsIcon, "Settings", diff --git a/Client/src/Pages/Incidents/index.css b/Client/src/Pages/Incidents/index.css index f26a48767..e69de29bb 100644 --- a/Client/src/Pages/Incidents/index.css +++ b/Client/src/Pages/Incidents/index.css @@ -1,36 +0,0 @@ -.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/Incidents/index.jsx b/Client/src/Pages/Incidents/index.jsx index 705ead72b..cf6081d9f 100644 --- a/Client/src/Pages/Incidents/index.jsx +++ b/Client/src/Pages/Incidents/index.jsx @@ -1,39 +1,7 @@ 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 Incidents = () => { - 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}
-
- ))} -
- - -
- ); + return
Incidents
; }; export default Incidents; 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/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; From 31c16e8d3d89f93b93c5d7844f844e5cfd198ece Mon Sep 17 00:00:00 2001 From: terryjung0244 Date: Sun, 7 Jul 2024 22:18:57 -0400 Subject: [PATCH 6/6] 1.Added Icon-maintenance-gray.png to assets/images. 2.Imported and used MaintenanceIcon in DashboardMenuButton for the maintenance page button. --- Client/src/Components/DashboardMenu/index.jsx | 3 ++- .../src/assets/Images/Icon-maintenance-gray.png | Bin 0 -> 744 bytes 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 Client/src/assets/Images/Icon-maintenance-gray.png diff --git a/Client/src/Components/DashboardMenu/index.jsx b/Client/src/Components/DashboardMenu/index.jsx index 0730ea643..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"; @@ -63,7 +64,7 @@ function DashboardMenu() { () => handleClick(pathMap["/integrations"], "/integrations") )} {DashboardMenuButton( - AllInclusiveIcon, + MaintenanceIcon, "Maintenance", "/maintenance", activeButton === "/maintenance", 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 0000000000000000000000000000000000000000..c2c203d762cb335da8ada629280951221090729b GIT binary patch literal 744 zcmVP)f-wFA^a*ZY zz;?8pyRtze%a$N_#@^M{>g?IwbI&sEh$nj3B&K`HP%|cSB*#QE!xU7^{Nk-Qh_-#p zdC8uB**2tHL)2cSA|?|_#}GHrG?P9BXb#8T@w5;aEIlNj3s_9XU(({t_Xe}{n2vt! z)F^HbrQ3z!#A^(nx)5B5HoAFT70zXOJSVG5T0 zv3GJb4JSV{lj^&z`>n6xWth%ig_o1P)&nqPz1MowxC%dgl)PFkU-rxu&~xu(kjJb- zW*-yp=e>JpzhMt6)m@y=A7K2A&_vrn%fy_12{;Z}xfZjBgRrO1ai4Aw$$7*+R@Igr zP}dyW<;~4~mZts=v6qd6HAl+CP1$1z-W19zA;L~iyUy-02Kr}5 zQOPi5F3_MD>ffH};rpTq1UM2VR1lC9ibma*Lcp&h6Lj^d-XuT`;LTLbBz5j|wA&~G z_r0S?s%t#~Gn@2#Q5c%0m{hf9XtKmpm1^P-rF1M4pgG9qudRO&E#Q3W4V(!Nfgy5-V;hIoxQol;f1@79FAgr6fZ5UKS$t%nSw3H||d1)6xx zc=X~!LN*m^+syOVywKRX?^L(0n6*vboIUYZbR+Q(g;LL6K?3-L>R2+1cRS+WkmF%` zOzzcWO@zz{*HC+vnu5_R`GB1S%oa^RtYrBcK9dW)4toW`q@Y&F$gC8Dl4Ugo>Ll;3 aTgPukNgD_r569mC0000