Implement pausing/resuming maintenance windows

This commit is contained in:
Alex Holliday committed 2024-10-09 14:28:44 +08:00
1 parent ad9d735127
commit 6e95d28e27
3 files changed
+30 -4

No files matched your search

@@ -19,6 +19,7 @@ import { networkService } from "../../../../main";
import { createToast } from "../../../../Utils/toastUtils";
const ActionsMenu = ({ isAdmin, maintenanceWindow, updateCallback }) => {
maintenanceWindow;
const { authToken } = useSelector((state) => state.auth);
const [anchorEl, setAnchorEl] = useState(null);
const [isOpen, setIsOpen] = useState(false);
@@ -46,6 +47,26 @@ const ActionsMenu = ({ isAdmin, maintenanceWindow, updateCallback }) => {
setIsOpen(false);
};
const handlePause = async () => {
try {
setIsLoading(true);
const data = {
active: !maintenanceWindow.active,
};
await networkService.editMaintenanceWindow({
authToken,
maintenanceWindowId: maintenanceWindow._id,
maintenanceWindow: data,
});
updateCallback();
} catch (error) {
logger.error(error);
createToast({ body: "Failed to pause maintenance window." });
} finally {
setIsLoading(false);
}
};
const handleEdit = () => {
navigate(`/maintenance/create/${maintenanceWindow._id}`);
};
@@ -117,12 +138,12 @@ const ActionsMenu = ({ isAdmin, maintenanceWindow, updateCallback }) => {
</MenuItem>
<MenuItem
onClick={(e) => {
handlePause();
closeMenu(e);
e.stopPropagation();
console.log("Pause");
}}
>
Pause
{`${maintenanceWindow.active === true ? "Pause" : "Resume"}`}
</MenuItem>
<MenuItem
@@ -188,10 +188,14 @@ const editMaintenanceWindow = async (req, res, next) => {
return;
}
try {
await req.db.editMaintenanceWindowById(req.params.id, req.body);
return res.status(201).json({
const editedMaintenanceWindow = await req.db.editMaintenanceWindowById(
req.params.id,
req.body
);
return res.status(200).json({
success: true,
msg: successMessages.MAINTENANCE_WINDOW_EDIT,
data: editedMaintenanceWindow,
});
} catch (error) {
error.service === undefined ? (error.service = SERVICE_NAME) : null;
@@ -205,6 +205,7 @@ const editMaintenanceWindowById = async (
maintenanceWindowId,
maintenanceWindowData
) => {
console.log(maintenanceWindowData);
try {
const editedMaintenanceWindow = MaintenanceWindow.findByIdAndUpdate(
maintenanceWindowId,