From 7e02aa05ece6d908ea3a9de351415a88bdf456f0 Mon Sep 17 00:00:00 2001 From: Alexander Madsen <alexander.madsen@ess.eu> Date: Fri, 13 Oct 2023 15:23:22 +0000 Subject: [PATCH] CE-2042: Use AlertBanner from common --- .../IOC/AlertMessages/AlertMessages.js | 46 ------------------- src/components/IOC/AlertMessages/index.js | 4 -- src/components/IOC/IOCDetails/IOCDetails.js | 42 ++++++++++------- src/components/IOC/IOCIcons/IOCIcons.js | 4 +- .../IOC/IOCLiveStatus/IOCLiveStatus.js | 4 +- src/components/IOC/IOCManage/IOCManage.js | 6 +-- src/components/Job/JobDetails.js | 13 ++++-- src/views/host/HostDetailsView.js | 6 +-- 8 files changed, 43 insertions(+), 82 deletions(-) delete mode 100644 src/components/IOC/AlertMessages/AlertMessages.js delete mode 100644 src/components/IOC/AlertMessages/index.js diff --git a/src/components/IOC/AlertMessages/AlertMessages.js b/src/components/IOC/AlertMessages/AlertMessages.js deleted file mode 100644 index e99dd3af..00000000 --- a/src/components/IOC/AlertMessages/AlertMessages.js +++ /dev/null @@ -1,46 +0,0 @@ -import React from "react"; -import { Button, Grid } from "@mui/material"; -import Alert from "@mui/material/Alert"; - -export default function AlertMessages({ alerts }) { - function determineSeverity(alarmType) { - return ["error", "warning", "success"].includes(alarmType?.toLowerCase()) - ? alarmType?.toLowerCase() - : "info"; - } - - return ( - <Grid - id="ioc-alerts" - container - spacing={1} - direction="column" - > - {alerts?.map((alert) => ( - <Grid - item - key={alert?.message || alert} - > - <Alert - severity={determineSeverity(alert?.type)} - action={ - alert?.link && ( - <Button - target="_blank" - href={alert.link} - color="inherit" - size="small" - > - More Info - </Button> - ) - } - component="p" - > - {alert?.message} - </Alert> - </Grid> - ))} - </Grid> - ); -} diff --git a/src/components/IOC/AlertMessages/index.js b/src/components/IOC/AlertMessages/index.js deleted file mode 100644 index 67da3975..00000000 --- a/src/components/IOC/AlertMessages/index.js +++ /dev/null @@ -1,4 +0,0 @@ -import AlertMessages from "./AlertMessages"; - -export { AlertMessages }; -export default AlertMessages; diff --git a/src/components/IOC/IOCDetails/IOCDetails.js b/src/components/IOC/IOCDetails/IOCDetails.js index eda7ad2e..769591b0 100644 --- a/src/components/IOC/IOCDetails/IOCDetails.js +++ b/src/components/IOC/IOCDetails/IOCDetails.js @@ -31,7 +31,10 @@ export function IOCDetails({ ioc, getSubset = defaultSubset, alert, buttons }) { return ( <> - <Grid container> + <Grid + container + spacing={1} + > {alert && ( <Grid item @@ -40,24 +43,29 @@ export function IOCDetails({ ioc, getSubset = defaultSubset, alert, buttons }) { {alert} </Grid> )} - <Grid - item - xs={12} - > - <Box - display="flex" - flexDirection="row-reverse" - p={2} - m={1} + {buttons && ( + <Grid + item + xs={12} > - <AccessControl - allowedRoles={["DeploymentToolAdmin", "DeploymentToolIntegrator"]} - renderNoAccess={() => <> </>} + <Box + display="flex" + flexDirection="row-reverse" + p={2} + m={1} > - <>{buttons}</> - </AccessControl> - </Box> - </Grid> + <AccessControl + allowedRoles={[ + "DeploymentToolAdmin", + "DeploymentToolIntegrator" + ]} + renderNoAccess={() => <> </>} + > + <>{buttons}</> + </AccessControl> + </Box> + </Grid> + )} <Grid item xs={12} diff --git a/src/components/IOC/IOCIcons/IOCIcons.js b/src/components/IOC/IOCIcons/IOCIcons.js index 95d52e15..f029ec56 100644 --- a/src/components/IOC/IOCIcons/IOCIcons.js +++ b/src/components/IOC/IOCIcons/IOCIcons.js @@ -11,7 +11,7 @@ import { PauseCircleFilled } from "@mui/icons-material"; import Popover from "../../common/Popover"; -import AlertMessages from "../AlertMessages/AlertMessages"; +import { AlertBannerList } from "@ess-ics/ce-ui-common"; function AlertMessagesPopoverContents({ title, alerts }) { // for now filter out links on alerts due to issues with @@ -31,7 +31,7 @@ function AlertMessagesPopoverContents({ title, alerts }) { {title} </Typography> {alertsWithoutLinks.length > 0 ? ( - <AlertMessages alerts={alertsWithoutLinks} /> + <AlertBannerList alerts={alertsWithoutLinks} /> ) : null} </div> ); diff --git a/src/components/IOC/IOCLiveStatus/IOCLiveStatus.js b/src/components/IOC/IOCLiveStatus/IOCLiveStatus.js index 85be7b35..848b1eb8 100644 --- a/src/components/IOC/IOCLiveStatus/IOCLiveStatus.js +++ b/src/components/IOC/IOCLiveStatus/IOCLiveStatus.js @@ -6,7 +6,7 @@ import { Link as ReactRouterLink } from "react-router-dom"; import { LokiContainer } from "../../common/Loki/LokiContainer"; import { RecordSearch } from "../../records/RecordSearch"; import GitRefLink from "../GitRefLink"; -import AlertMessages from "../AlertMessages"; +import { AlertBannerList } from "@ess-ics/ce-ui-common"; import AccessControl from "../../auth/AccessControl"; import { IocActiveDeployment } from "../../../api/DataTypes"; import useUrlState from "@ahooksjs/use-url-state"; @@ -83,7 +83,7 @@ export function IOCLiveStatus({ ioc }) { <IOCDetails ioc={liveIOC} getSubset={getSubset} - alert={<AlertMessages alerts={liveIOC.alerts} />} + alert={<AlertBannerList alerts={liveIOC.alerts} />} /> {liveIOC.activeDeployment?.host?.csEntryIdValid && ( <AccessControl diff --git a/src/components/IOC/IOCManage/IOCManage.js b/src/components/IOC/IOCManage/IOCManage.js index d2b8f3f7..8e3835ff 100644 --- a/src/components/IOC/IOCManage/IOCManage.js +++ b/src/components/IOC/IOCManage/IOCManage.js @@ -12,9 +12,9 @@ import { UndeployIOC } from "../UndeployIOC"; import { userContext, SimpleAccordion, - useAPIMethod + useAPIMethod, + AlertBannerList } from "@ess-ics/ce-ui-common"; -import AlertMessages from "../AlertMessages"; import AccessControl from "../../auth/AccessControl"; import { DeploymentStatus } from "../../../api/DataTypes"; import { IOCService } from "../IOCService"; @@ -181,7 +181,7 @@ export function IOCManage({ <IOCDetails ioc={managedIOC} getSubset={getSubset} - alert={<AlertMessages alerts={managedIOC.alerts} />} + alert={<AlertBannerList alerts={managedIOC.alerts} />} buttons={ <> <Tooltip title={disabledDebployButtonTitle}> diff --git a/src/components/Job/JobDetails.js b/src/components/Job/JobDetails.js index 628cbb05..082188c2 100644 --- a/src/components/Job/JobDetails.js +++ b/src/components/Job/JobDetails.js @@ -7,8 +7,12 @@ import { Container, Link as MuiLink } from "@mui/material"; -import { KeyValueTable, SimpleAccordion } from "@ess-ics/ce-ui-common"; -import { Stepper } from "@ess-ics/ce-ui-common"; +import { + KeyValueTable, + SimpleAccordion, + AlertBannerList, + Stepper +} from "@ess-ics/ce-ui-common"; import { JobBadge } from "./JobBadge"; import { DeploymentJobOutput } from "../deployments/DeploymentJobOutput"; import { Link as ReactRouterLink } from "react-router-dom"; @@ -16,7 +20,6 @@ import { formatDate } from "../common/Helper"; import GitRefLink from "../IOC/GitRefLink"; import AccessControl from "../auth/AccessControl"; import { AWXJobDetails } from "../../api/DataTypes"; -import AlertMessages from "../IOC/AlertMessages"; const STATUS = { queued: { @@ -147,7 +150,7 @@ export function JobDetails({ operation, job }) { item xs={12} > - <AlertMessages alerts={[alert].concat(jobAlert)} /> + <AlertBannerList alerts={[alert].concat(jobAlert)} /> </Grid> )} <Grid @@ -191,7 +194,7 @@ export function JobDetails({ operation, job }) { item xs={12} > - <AlertMessages alerts={[alert]} /> + <AlertBannerList alerts={[alert]} /> </Grid> )} <AccessControl diff --git a/src/views/host/HostDetailsView.js b/src/views/host/HostDetailsView.js index d82ac468..3a85bad6 100644 --- a/src/views/host/HostDetailsView.js +++ b/src/views/host/HostDetailsView.js @@ -15,7 +15,8 @@ import { KeyValueTable, SimpleAccordion, GlobalAppBarContext, - useAPIMethod + useAPIMethod, + AlertBannerList } from "@ess-ics/ce-ui-common"; import { LokiPanel } from "../../components/common/Loki/LokiPanel"; import { useNavigate, Link as ReactRouterLink } from "react-router-dom"; @@ -24,7 +25,6 @@ import { initRequestParams } from "../../components/common/Helper"; import AccessControl from "../../components/auth/AccessControl"; -import AlertMessages from "../../components/IOC/AlertMessages"; import useUrlState from "@ahooksjs/use-url-state"; import { serialize, @@ -188,7 +188,7 @@ export function HostDetailsView({ id, host }) { <ArrowBackIcon /> </IconButton> - {host && <AlertMessages alerts={host.alerts} />} + {host && <AlertBannerList alerts={host.alerts} />} <Card variant="outlined" sx={{ marginTop: 2 }} -- GitLab