diff --git a/src/components/IOC/AlertMessages.js b/src/components/IOC/AlertMessages.js index 7f8e59bac8630dc9f4bb92555a292130b65e3680..a4aaf67e6fbf317ef0062bf57cf6421245a8b744 100644 --- a/src/components/IOC/AlertMessages.js +++ b/src/components/IOC/AlertMessages.js @@ -13,19 +13,9 @@ export default function AlertMessages({ alerts }) { const classes = useStyles(theme); function determineSeverity(alarmType) { - if (alarmType === "ERROR") { - return "error"; - } - - if (alarmType === "WARNING") { - return "warning"; - } - - if (alarmType === "SUCCESS") { - return "success"; - } - - return "info"; + return ["error", "warning", "success"].includes(alarmType?.toLowerCase()) + ? alarmType?.toLowerCase() + : "info"; } function determineClassName(alarmType) { @@ -47,10 +37,10 @@ export default function AlertMessages({ alerts }) { key={alert} > <Alert - className={determineClassName(alert.type)} - severity={determineSeverity(alert.type)} + className={determineClassName(alert?.type)} + severity={determineSeverity(alert?.type)} action={ - alert.link && ( + alert?.link && ( <Button target="_blank" href={alert.link} @@ -62,7 +52,7 @@ export default function AlertMessages({ alerts }) { ) } > - {alert.message} + {alert?.message} </Alert> </Grid> ))} diff --git a/src/components/IOC/IOCManage.js b/src/components/IOC/IOCManage.js index 61afd795e1b2fc10e204277808519acabad2fa52..090f8257cb46d2f0ca72d223303fc7002a945100 100644 --- a/src/components/IOC/IOCManage.js +++ b/src/components/IOC/IOCManage.js @@ -41,7 +41,7 @@ export function IOCManage({ }) { const { user } = useContext(userContext); const [state, setState] = useUrlState({ - log_open: "false" + log_open: "true" }); const [deployDialogOpen, setDeployDialogOpen] = useState(false); diff --git a/src/components/Job/JobDetails.js b/src/components/Job/JobDetails.js index eb4bac341ba9df959a33dd54a2ca3c468f358812..08964927092de7ac964e2e9a38f043fdb733f3cf 100644 --- a/src/components/Job/JobDetails.js +++ b/src/components/Job/JobDetails.js @@ -19,7 +19,6 @@ import GitRefLink from "../IOC/GitRefLink"; import AccessControl from "../auth/AccessControl"; import { theme } from "../../style/Theme"; import { AWXJobDetails } from "../../api/DataTypes"; -import { Alert } from "@material-ui/lab"; import AlertMessages from "../IOC/AlertMessages"; const useStyles = makeStyles((theme) => ({ @@ -28,20 +27,14 @@ const useStyles = makeStyles((theme) => ({ } })); -function createAlert(operation, job, finishedSuccessfully) { +function createAlert(operation, job) { const jobDetails = new AWXJobDetails(operation.type, job); const message = jobDetails.message(); const severity = jobDetails.severity(); - return ( - !finishedSuccessfully && ( - <Alert - severity={severity} - variant="standard" - > - {message} - </Alert> - ) - ); + return { + type: severity, + message: message + }; } export function JobDetails({ operation, job }) { @@ -49,17 +42,12 @@ export function JobDetails({ operation, job }) { let jobAlert = useMemo(() => operation.alerts ?? [], [operation]); - const successfulJob = useMemo( - () => - operation && - jobAlert?.length === 0 && - job?.status.toLowerCase() === "successful", - [operation, jobAlert, job] + const finishedJob = useMemo( + () => operation && new AWXJobDetails(operation.type, job).isFinished(), + [operation, job] ); - const [alert, setAlert] = useState( - createAlert(operation, job, successfulJob) - ); + const [alert, setAlert] = useState(createAlert(operation, job)); const jobDetails = useMemo( () => new AWXJobDetails(operation.type, job), @@ -67,16 +55,8 @@ export function JobDetails({ operation, job }) { ); useEffect(() => { - setAlert(createAlert(operation, job, successfulJob)); - - // show SUCCESS message only to successful deployments (where no warnings came back from BE) - if (successfulJob) { - jobAlert.push({ - type: "SUCCESS", - message: jobDetails.typeLabel() + " was successful!" - }); - } - }, [successfulJob, jobAlert, operation, job, jobDetails]); + setAlert(createAlert(operation, job, finishedJob)); + }, [finishedJob, operation, job]); function calculateHostText() { // host is resolvable => show link for users @@ -139,12 +119,12 @@ export function JobDetails({ operation, job }) { container spacing={1} > - {jobAlert && ( + {finishedJob && ( <Grid item xs={12} > - <AlertMessages alerts={jobAlert} /> + <AlertMessages alerts={[alert].concat(jobAlert)} /> </Grid> )} <Grid @@ -186,12 +166,12 @@ export function JobDetails({ operation, job }) { </CardContent> </Card> </Grid> - {alert && ( + {!finishedJob && alert && ( <Grid item xs={12} > - {alert} + <AlertMessages alerts={[alert]} /> </Grid> )} <AccessControl diff --git a/src/components/deployments/DeploymentDetails.js b/src/components/deployments/DeploymentDetails.js index 1c744efc0cb8fe9aad147adb3cd653eedbcb6554..c33459cb517acbc53cb9b8fa83e731c2657f1ed5 100644 --- a/src/components/deployments/DeploymentDetails.js +++ b/src/components/deployments/DeploymentDetails.js @@ -13,7 +13,6 @@ import { KeyValueTable } from "../common/KeyValueTable/KeyValueTable"; import { SimpleAccordion } from "../common/Accordion/SimpleAccordion"; import { DeploymentBadge } from "./DeploymentBadge"; import { DeploymentJobOutput } from "./DeploymentJobOutput"; -import { Alert } from "@material-ui/lab"; import { Link as ReactRouterLink } from "react-router-dom"; import { formatDate } from "../common/Helper"; import GitRefLink from "../IOC/GitRefLink"; @@ -22,20 +21,14 @@ import { AWXJobDetails, DeploymentStatus } from "../../api/DataTypes"; import { theme } from "../../style/Theme"; import AlertMessages from "../IOC/AlertMessages"; -function createAlert(deployment, deploymentJob, finishedSuccessfully) { +function createAlert(deployment, deploymentJob) { const deploymentStatus = new DeploymentStatus(deployment, deploymentJob); const message = deploymentStatus.message(); const severity = deploymentStatus.severity(); - return ( - !finishedSuccessfully && ( - <Alert - severity={severity} - variant="standard" - > - {message} - </Alert> - ) - ); + return { + type: severity, + message: message + }; } const useStyles = makeStyles((theme) => ({ @@ -49,16 +42,15 @@ export function DeploymentDetails({ deployment, deploymentJob }) { let deplAlert = deployment.alerts; - const successfulJob = useMemo( + const finishedJob = useMemo( () => deployment && - deplAlert?.length === 0 && - deploymentJob?.status.toLowerCase() === "successful", - [deployment, deplAlert, deploymentJob] + new DeploymentStatus(deployment, deploymentJob).isFinished(), + [deployment, deploymentJob] ); const [alert, setAlert] = useState( - createAlert(deployment, deploymentJob, successfulJob) + createAlert(deployment, deploymentJob, finishedJob) ); const jobDetails = useMemo( @@ -71,16 +63,8 @@ export function DeploymentDetails({ deployment, deploymentJob }) { ); useEffect(() => { - setAlert(createAlert(deployment, deploymentJob, successfulJob)); - - // show SUCCESS message only to successful deployments (where no warnings came back from BE) - if (successfulJob) { - deplAlert.push({ - type: "SUCCESS", - message: jobDetails.typeLabel() + " was successful!" - }); - } - }, [successfulJob, deplAlert, deployment, deploymentJob, jobDetails]); + setAlert(createAlert(deployment, deploymentJob)); + }, [deployment, deploymentJob]); function calculateHostText() { // host is resolvable => show link for users @@ -141,21 +125,17 @@ export function DeploymentDetails({ deployment, deploymentJob }) { : "-" }; - /* {alert && <Grid item xs={12}> - <AlertMessages alerts={liveIOC.alerts} /> - </Grid>}*/ - return ( <Grid container spacing={1} > - {deplAlert && ( + {finishedJob && ( <Grid item xs={12} > - <AlertMessages alerts={deplAlert} /> + <AlertMessages alerts={[alert].concat(deplAlert)} /> </Grid> )} <Grid @@ -197,12 +177,12 @@ export function DeploymentDetails({ deployment, deploymentJob }) { </CardContent> </Card> </Grid> - {alert && ( + {!finishedJob && alert && ( <Grid item xs={12} > - {alert} + <AlertMessages alerts={[alert]} /> </Grid> )} <AccessControl diff --git a/src/views/IOC/IOCDetailsView.js b/src/views/IOC/IOCDetailsView.js index 0caebb191409c5007da0d6329a116d8ee0953c39..7561f4fdd06881c2df3a7bb62c5fe487196d76d0 100644 --- a/src/views/IOC/IOCDetailsView.js +++ b/src/views/IOC/IOCDetailsView.js @@ -71,12 +71,9 @@ export function IOCDetailsView({ ioc, getIOC, loading }) { }; useEffect(() => { - if (ioc.activeDeployment) { - let requestParams = initRequestParams(jobLazyParams()); - requestParams.ioc_id = ioc.id; - // requestParams.deployment_id = ioc.activeDeployment.id; - getOperations(requestParams); - } + let requestParams = initRequestParams(jobLazyParams()); + requestParams.ioc_id = ioc.id; + getOperations(requestParams); }, [getOperations, jobLazyParams, ioc]); const handleClick = () => {