Skip to content
Snippets Groups Projects
Commit b5985db0 authored by Zoltan Runyo's avatar Zoltan Runyo
Browse files

ICSHWI-7718: IOC page fixes

parent e5544c00
No related branches found
No related tags found
1 merge request!64ICSHWI-7718: Highlight table row in case of IOC discrepancy: IOC name check...
SERVER_ADDRESS='' SERVER_ADDRESS=''
API_BASE_ENDPOINT='/ccce-api' API_BASE_ENDPOINT='/ccce-api'
TOKEN_RENEW_INTERVAL=180000 TOKEN_RENEW_INTERVAL=180000
\ No newline at end of file CCDB_ADDRESS='https://ccdb.esss.lu.se'
...@@ -4,12 +4,12 @@ import { IOCDeployDialog } from "./IOCDeployDialog"; ...@@ -4,12 +4,12 @@ import { IOCDeployDialog } from "./IOCDeployDialog";
import { notificationContext } from "../../components/common/notification/Notifications"; import { notificationContext } from "../../components/common/notification/Notifications";
// Process component // Process component
export function DeployIOC({ open, setOpen, submitCallback, hook, init={}}) { export function DeployIOC({ open, setOpen, submitCallback, hook, hasActiveDeployment, init={}}) {
const [deployment, action] = hook(); const [deployment, action] = hook();
const {watchDeployment} = useContext(notificationContext); const {watchDeployment} = useContext(notificationContext);
if (!deployment) { if (!deployment) {
return (<IOCDeployDialog open={open} setOpen={setOpen} submitCallback={action} init={init}/>); return (<IOCDeployDialog open={open} setOpen={setOpen} submitCallback={action} init={init} hasActiveDeployment={hasActiveDeployment}/>);
} }
else { else {
submitCallback(); // This works but throws a warning because I am changing state in the parent while the child is rerendering. Not sure yet how to fix. submitCallback(); // This works but throws a warning because I am changing state in the parent while the child is rerendering. Not sure yet how to fix.
......
...@@ -10,7 +10,7 @@ const useStyles = makeStyles((theme) => ({ ...@@ -10,7 +10,7 @@ const useStyles = makeStyles((theme) => ({
}, },
})); }));
export function IOCDeployDialog({ open, setOpen, submitCallback, init = {}}) { export function IOCDeployDialog({ open, setOpen, submitCallback, hasActiveDeployment, init = {}}) {
const classes = useStyles(); const classes = useStyles();
const [hosts, getHosts] = useCSEntrySearch(); const [hosts, getHosts] = useCSEntrySearch();
const [host, setHost] = useState(null); const [host, setHost] = useState(null);
...@@ -47,7 +47,7 @@ export function IOCDeployDialog({ open, setOpen, submitCallback, init = {}}) { ...@@ -47,7 +47,7 @@ export function IOCDeployDialog({ open, setOpen, submitCallback, init = {}}) {
return ( return (
<Dialog open={open} onClose={handleClose}> <Dialog open={open} onClose={handleClose}>
<form onSubmit={onSubmit}> <form onSubmit={onSubmit}>
<DialogTitle id="form-dialog-title">Deploy IOC</DialogTitle> <DialogTitle id="form-dialog-title">{ hasActiveDeployment ? "Deploy new revision" : "Deploy" }</DialogTitle>
<DialogContent> <DialogContent>
<TextField autoComplete="off" className={classes.textField} id="comment" label="Deployment comment" variant="outlined" fullWidth required/> <TextField autoComplete="off" className={classes.textField} id="comment" label="Deployment comment" variant="outlined" fullWidth required/>
<TextField autoComplete="off" className={classes.textField} id="git" label="Git repository" variant="outlined" defaultValue={init.git || ""} fullWidth <TextField autoComplete="off" className={classes.textField} id="git" label="Git repository" variant="outlined" defaultValue={init.git || ""} fullWidth
......
import { Button, Snackbar, Typography } from "@material-ui/core"; import { Button, Typography } from "@material-ui/core";
import { Alert } from "@material-ui/lab"; import { Alert } from "@material-ui/lab";
import React from "react"; import React from "react";
import { useGlobalAppBar } from "../navigation/GlobalAppBar/GlobalAppBar"; import { useGlobalAppBar } from "../navigation/GlobalAppBar/GlobalAppBar";
...@@ -35,7 +35,6 @@ export function IOCLiveStatus({ ioc }) { ...@@ -35,7 +35,6 @@ export function IOCLiveStatus({ ioc }) {
}) })
}; };
const alert = <Alert severity="info">This is the currently deployed version</Alert>;
const gitAlert = <Alert severity="warning">Git repository state: unknown</Alert>; const gitAlert = <Alert severity="warning">Git repository state: unknown</Alert>;
const [iocHost] = useHost(liveIOC.activeDeployment?.host.csEntryId); const [iocHost] = useHost(liveIOC.activeDeployment?.host.csEntryId);
...@@ -49,7 +48,6 @@ export function IOCLiveStatus({ ioc }) { ...@@ -49,7 +48,6 @@ export function IOCLiveStatus({ ioc }) {
<SimpleAccordion summary="ProcServLog info" defaultExpanded> <SimpleAccordion summary="ProcServLog info" defaultExpanded>
{iocHost && <LokiPanel host={iocHost} isSyslog={false} iocName={ioc.latestVersion?.namingName} isDeployed={isIocDeployed(ioc)} />} {iocHost && <LokiPanel host={iocHost} isSyslog={false} iocName={ioc.latestVersion?.namingName} isDeployed={isIocDeployed(ioc)} />}
</SimpleAccordion> </SimpleAccordion>
<Snackbar open autoHideDuration={6000}>{alert}</Snackbar>
</> </>
); );
} }
......
...@@ -40,6 +40,8 @@ export function IOCManage({ ioc, getIOC }) { ...@@ -40,6 +40,8 @@ export function IOCManage({ ioc, getIOC }) {
const { sourceUrl: git } = ioc.latestVersion; const { sourceUrl: git } = ioc.latestVersion;
const host = ioc.activeDeployment?.host.host; const host = ioc.activeDeployment?.host.host;
return { return {
"CCDB name": <Typography><MuiLink href={`${window.CCDB_ADDRESS}?name=${ioc.latestVersion.namingName}`}
target="_blank" rel="noreferrer">{ioc.latestVersion.namingName}</MuiLink></Typography>,
description, description,
// active: (active && (ioc.latestVersion.id == ioc.deployedVersion?.id)), // active: (active && (ioc.latestVersion.id == ioc.deployedVersion?.id)),
git: <Typography><MuiLink href={git} target="_blank" rel="noreferrer">{git}</MuiLink></Typography>, git: <Typography><MuiLink href={git} target="_blank" rel="noreferrer">{git}</MuiLink></Typography>,
...@@ -69,15 +71,18 @@ export function IOCManage({ ioc, getIOC }) { ...@@ -69,15 +71,18 @@ export function IOCManage({ ioc, getIOC }) {
<IOCDetails ioc={managedIOC} getSubset={getSubset} alert={((managedIOC.dirty === null) || (managedIOC.hasLocalCommits === null)) ? gitAlert : null} <IOCDetails ioc={managedIOC} getSubset={getSubset} alert={((managedIOC.dirty === null) || (managedIOC.hasLocalCommits === null)) ? gitAlert : null}
buttons={ buttons={
<> <>
<Button variant="contained" color="secondary" onClick={() => { setDeployDialogOpen(true) }}>Deploy IOC</Button> <Button variant="contained" color="secondary" onClick={() => { setDeployDialogOpen(true) }}>
{ioc.activeDeployment ? "Deploy new revision" : "Deploy"}
</Button>
{ioc.activeDeployment ? {ioc.activeDeployment ?
<Button variant="contained" color="secondary" style={{ marginRight: 20 }} onClick={() => { setUndeployDialogOpen(true) }}>Undeploy IOC</Button> : <Button variant="contained" color="secondary" style={{ marginRight: 20 }} onClick={() => { setUndeployDialogOpen(true) }}>Undeploy</Button> :
<></> <></>
} }
</> </>
} /> } />
<SimpleModal open={deployDialogOpen} setOpen={setDeployDialogOpen}> <SimpleModal open={deployDialogOpen} setOpen={setDeployDialogOpen}>
<DeployIOC open={deployDialogOpen} setOpen={setDeployDialogOpen} submitCallback={closeDeployModal} init={formInit} hook={useUpdateAndDeployIoc.bind(null, ioc.id)} /> <DeployIOC open={deployDialogOpen} setOpen={setDeployDialogOpen} submitCallback={closeDeployModal} init={formInit} hook={useUpdateAndDeployIoc.bind(null, ioc.id)}
hasActiveDeployment={ioc.activeDeployment} />
</SimpleModal> </SimpleModal>
<SimpleModal open={undeployDialogOpen} setOpen={setUndeployDialogOpen}> <SimpleModal open={undeployDialogOpen} setOpen={setUndeployDialogOpen}>
<UndeployIOC open={undeployDialogOpen} setOpen={setUndeployDialogOpen} submitCallback={closeUndeployModal} ioc={ioc} hook={useCreateUndeployment} /> <UndeployIOC open={undeployDialogOpen} setOpen={setUndeployDialogOpen} submitCallback={closeUndeployModal} ioc={ioc} hook={useCreateUndeployment} />
......
...@@ -29,7 +29,7 @@ export function IOCUndeployDialog({ open, setOpen, submitCallback, ioc }) { ...@@ -29,7 +29,7 @@ export function IOCUndeployDialog({ open, setOpen, submitCallback, ioc }) {
return ( return (
<Dialog open={open} onClose={handleClose}> <Dialog open={open} onClose={handleClose}>
<form onSubmit={onSubmit}> <form onSubmit={onSubmit}>
<DialogTitle id="form-dialog-title">Undeploy IOC</DialogTitle> <DialogTitle id="form-dialog-title">Undeploy</DialogTitle>
<DialogContent> <DialogContent>
<DialogContentText> <DialogContentText>
Do you really want to undeploy {ioc.latestVersion.namingName} from {ioc.activeDeployment.host.host}? Do you really want to undeploy {ioc.latestVersion.namingName} from {ioc.activeDeployment.host.host}?
......
...@@ -8,7 +8,7 @@ import { useHistory } from "react-router-dom"; ...@@ -8,7 +8,7 @@ import { useHistory } from "react-router-dom";
export function IOCDetailsView({ match }) { export function IOCDetailsView({ match }) {
const id = parseInt(match.params.id); const id = parseInt(match.params.id);
const [selectedTab, setSelectedTab] = useState("Manage IOC"); const [selectedTab, setSelectedTab] = useState("Manage deployment");
const [firstTime, setFirstTime] = useState(true); const [firstTime, setFirstTime] = useState(true);
const [ioc, getIOC] = useIOC(id); const [ioc, getIOC] = useIOC(id);
const history = useHistory(); const history = useHistory();
...@@ -47,13 +47,13 @@ export function IOCDetailsView({ match }) { ...@@ -47,13 +47,13 @@ export function IOCDetailsView({ match }) {
textColor="primary" textColor="primary"
> >
{ioc && ioc.activeDeployment && <Tab label={<Typography variant="h5">Live Status</Typography>} value="Live Status" />} {ioc && ioc.activeDeployment && <Tab label={<Typography variant="h5">Live Status</Typography>} value="Live Status" />}
{ioc && <Tab label={<Typography variant="h5">Manage IOC</Typography>} value="Manage IOC" />} {ioc && <Tab label={<Typography variant="h5">Manage deployment</Typography>} value="Manage deployment" />}
</Tabs> </Tabs>
</Grid> </Grid>
</Grid> </Grid>
<Grid item xs={12}> <Grid item xs={12}>
{selectedTab === "Live Status" && <IOCLiveStatus ioc={ioc} />} {selectedTab === "Live Status" && <IOCLiveStatus ioc={ioc} />}
{selectedTab === "Manage IOC" && <IOCManage ioc={ioc} getIOC={getIOC} />} {selectedTab === "Manage deployment" && <IOCManage ioc={ioc} getIOC={getIOC} />}
</Grid> </Grid>
</Grid> </Grid>
</Paper> </Paper>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment