From 003c1689c86a3f099b554a73fc7b2da6d407b975 Mon Sep 17 00:00:00 2001 From: Zoltan Runyo <zoltan.runyo@ess.eu> Date: Tue, 7 Feb 2023 11:32:52 +0000 Subject: [PATCH] ICSHWI-10972: Logs and command details --- src/components/IOC/AlertMessages.js | 24 +++------ src/components/IOC/IOCManage.js | 2 +- src/components/Job/JobDetails.js | 50 ++++++------------- .../deployments/DeploymentDetails.js | 50 ++++++------------- src/views/IOC/IOCDetailsView.js | 9 ++-- 5 files changed, 41 insertions(+), 94 deletions(-) diff --git a/src/components/IOC/AlertMessages.js b/src/components/IOC/AlertMessages.js index 7f8e59ba..a4aaf67e 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 61afd795..090f8257 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 eb4bac34..08964927 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 1c744efc..c33459cb 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 0caebb19..7561f4fd 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 = () => { -- GitLab