Added annotationCheck and fixed workflow deletion by viewer (#2365)
* Added annotationCheck and fixed workflow deletion for viewer Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io> * Minor change Signed-off-by: Amit Kumar Das <amitkumar.das@mayadata.io>
This commit is contained in:
parent
f42cc14421
commit
1a53f9ef28
|
@ -15,9 +15,11 @@ import React from 'react';
|
||||||
import cronstrue from 'cronstrue';
|
import cronstrue from 'cronstrue';
|
||||||
import YAML from 'yaml';
|
import YAML from 'yaml';
|
||||||
import GetAppIcon from '@material-ui/icons/GetApp';
|
import GetAppIcon from '@material-ui/icons/GetApp';
|
||||||
|
import { useSelector } from 'react-redux';
|
||||||
import { ScheduleWorkflow } from '../../../models/graphql/scheduleData';
|
import { ScheduleWorkflow } from '../../../models/graphql/scheduleData';
|
||||||
import useStyles from './styles';
|
import useStyles from './styles';
|
||||||
import ExperimentPoints from './ExperimentPoints';
|
import ExperimentPoints from './ExperimentPoints';
|
||||||
|
import { RootState } from '../../../redux/reducers';
|
||||||
|
|
||||||
interface TableDataProps {
|
interface TableDataProps {
|
||||||
data: ScheduleWorkflow;
|
data: ScheduleWorkflow;
|
||||||
|
@ -38,6 +40,8 @@ const TableData: React.FC<TableDataProps> = ({ data, deleteRow }) => {
|
||||||
setPopAnchorEl(null);
|
setPopAnchorEl(null);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const userData = useSelector((state: RootState) => state.userData);
|
||||||
|
|
||||||
const handlePopOverClick = (event: React.MouseEvent<HTMLElement>) => {
|
const handlePopOverClick = (event: React.MouseEvent<HTMLElement>) => {
|
||||||
setPopAnchorEl(event.currentTarget);
|
setPopAnchorEl(event.currentTarget);
|
||||||
};
|
};
|
||||||
|
@ -183,6 +187,7 @@ const TableData: React.FC<TableDataProps> = ({ data, deleteRow }) => {
|
||||||
</Typography>
|
</Typography>
|
||||||
</div>
|
</div>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
|
{userData.userRole !== 'Viewer' ? (
|
||||||
<MenuItem
|
<MenuItem
|
||||||
value="Analysis"
|
value="Analysis"
|
||||||
onClick={() => deleteRow(data.workflow_id)}
|
onClick={() => deleteRow(data.workflow_id)}
|
||||||
|
@ -193,11 +198,15 @@ const TableData: React.FC<TableDataProps> = ({ data, deleteRow }) => {
|
||||||
alt="Delete Schedule"
|
alt="Delete Schedule"
|
||||||
className={classes.btnImg}
|
className={classes.btnImg}
|
||||||
/>
|
/>
|
||||||
<Typography data-cy="deleteSchedule" className={classes.btnText}>
|
<Typography
|
||||||
|
data-cy="deleteSchedule"
|
||||||
|
className={classes.btnText}
|
||||||
|
>
|
||||||
Delete Schedule
|
Delete Schedule
|
||||||
</Typography>
|
</Typography>
|
||||||
</div>
|
</div>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
|
) : null}
|
||||||
</Menu>
|
</Menu>
|
||||||
</TableCell>
|
</TableCell>
|
||||||
</>
|
</>
|
||||||
|
|
|
@ -42,7 +42,7 @@ const TuneCustomWorkflow: React.FC<VerifyCommitProps> = ({ gotoStep }) => {
|
||||||
applabel: 'k8s-app=kube-proxy',
|
applabel: 'k8s-app=kube-proxy',
|
||||||
appkind: 'daemonset',
|
appkind: 'daemonset',
|
||||||
});
|
});
|
||||||
|
const [annotation, setAnnotation] = useState('true');
|
||||||
const [env, setEnv] = useState<EnvValues[]>([]);
|
const [env, setEnv] = useState<EnvValues[]>([]);
|
||||||
const [yaml, setYaml] = useState<string>('');
|
const [yaml, setYaml] = useState<string>('');
|
||||||
const [loadingEnv, setLoadingEnv] = useState(true);
|
const [loadingEnv, setLoadingEnv] = useState(true);
|
||||||
|
@ -112,6 +112,7 @@ const TuneCustomWorkflow: React.FC<VerifyCommitProps> = ({ gotoStep }) => {
|
||||||
applabel: parsedYaml.spec.appinfo.applabel,
|
applabel: parsedYaml.spec.appinfo.applabel,
|
||||||
appkind: parsedYaml.spec.appinfo.appkind,
|
appkind: parsedYaml.spec.appinfo.appkind,
|
||||||
});
|
});
|
||||||
|
setAnnotation(parsedYaml.spec.annotationCheck);
|
||||||
setEnv([...parsedYaml.spec.experiments[0].spec.components.env]);
|
setEnv([...parsedYaml.spec.experiments[0].spec.components.env]);
|
||||||
setYaml(customWorkflow.yaml as string);
|
setYaml(customWorkflow.yaml as string);
|
||||||
setLoadingEnv(false);
|
setLoadingEnv(false);
|
||||||
|
@ -164,6 +165,7 @@ const TuneCustomWorkflow: React.FC<VerifyCommitProps> = ({ gotoStep }) => {
|
||||||
parsedYaml.spec.appinfo.appns = appInfo.appns;
|
parsedYaml.spec.appinfo.appns = appInfo.appns;
|
||||||
parsedYaml.spec.appinfo.applabel = appInfo.applabel;
|
parsedYaml.spec.appinfo.applabel = appInfo.applabel;
|
||||||
parsedYaml.spec.appinfo.appkind = appInfo.appkind;
|
parsedYaml.spec.appinfo.appkind = appInfo.appkind;
|
||||||
|
parsedYaml.spec.annotationCheck = annotation;
|
||||||
parsedYaml.metadata.name = customWorkflow.experiment_name?.split('/')[1];
|
parsedYaml.metadata.name = customWorkflow.experiment_name?.split('/')[1];
|
||||||
parsedYaml.metadata.namespace =
|
parsedYaml.metadata.namespace =
|
||||||
'{{workflow.parameters.adminModeNamespace}}';
|
'{{workflow.parameters.adminModeNamespace}}';
|
||||||
|
@ -248,10 +250,11 @@ const TuneCustomWorkflow: React.FC<VerifyCommitProps> = ({ gotoStep }) => {
|
||||||
</Typography>
|
</Typography>
|
||||||
<div className={classes.appInfoDiv}>
|
<div className={classes.appInfoDiv}>
|
||||||
<Typography className={classes.appInfoText}>appns:</Typography>
|
<Typography className={classes.appInfoText}>appns:</Typography>
|
||||||
|
<div className={classes.inputField}>
|
||||||
<InputField
|
<InputField
|
||||||
label="appns"
|
label="appns"
|
||||||
styles={{
|
styles={{
|
||||||
width: '20%',
|
width: '100%',
|
||||||
}}
|
}}
|
||||||
data-cy="inputWorkflow"
|
data-cy="inputWorkflow"
|
||||||
validationError={false}
|
validationError={false}
|
||||||
|
@ -264,12 +267,14 @@ const TuneCustomWorkflow: React.FC<VerifyCommitProps> = ({ gotoStep }) => {
|
||||||
value={appInfo.appns}
|
value={appInfo.appns}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
<div className={classes.appInfoDiv}>
|
<div className={classes.appInfoDiv}>
|
||||||
<Typography className={classes.appInfoText}>applabel:</Typography>
|
<Typography className={classes.appInfoText}>applabel:</Typography>
|
||||||
|
<div className={classes.inputField}>
|
||||||
<InputField
|
<InputField
|
||||||
label="applabel"
|
label="applabel"
|
||||||
styles={{
|
styles={{
|
||||||
width: '20%',
|
width: '100%',
|
||||||
}}
|
}}
|
||||||
data-cy="inputWorkflow"
|
data-cy="inputWorkflow"
|
||||||
validationError={false}
|
validationError={false}
|
||||||
|
@ -282,12 +287,14 @@ const TuneCustomWorkflow: React.FC<VerifyCommitProps> = ({ gotoStep }) => {
|
||||||
value={appInfo.applabel}
|
value={appInfo.applabel}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
<div className={classes.appKind}>
|
<div className={classes.appKind}>
|
||||||
<Typography className={classes.appInfoText}>appkind:</Typography>
|
<Typography className={classes.appInfoText}>appkind:</Typography>
|
||||||
|
<div className={classes.inputField}>
|
||||||
<InputField
|
<InputField
|
||||||
label="appkind"
|
label="appkind"
|
||||||
styles={{
|
styles={{
|
||||||
width: '20%',
|
width: '100%',
|
||||||
}}
|
}}
|
||||||
data-cy="inputWorkflow"
|
data-cy="inputWorkflow"
|
||||||
validationError={false}
|
validationError={false}
|
||||||
|
@ -300,6 +307,24 @@ const TuneCustomWorkflow: React.FC<VerifyCommitProps> = ({ gotoStep }) => {
|
||||||
value={appInfo.appkind}
|
value={appInfo.appkind}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className={classes.appKind}>
|
||||||
|
<Typography className={classes.appInfoText}>
|
||||||
|
annotationCheck:
|
||||||
|
</Typography>
|
||||||
|
<div className={classes.inputField}>
|
||||||
|
<InputField
|
||||||
|
label="annotationCheck"
|
||||||
|
styles={{
|
||||||
|
width: '100%',
|
||||||
|
}}
|
||||||
|
data-cy="inputWorkflow"
|
||||||
|
validationError={false}
|
||||||
|
handleChange={(event) => setAnnotation(event.target.value)}
|
||||||
|
value={annotation}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<hr className={classes.horizontalLine} />
|
<hr className={classes.horizontalLine} />
|
||||||
<Typography className={classes.envHeader}>
|
<Typography className={classes.envHeader}>
|
||||||
{t('customWorkflow.tuneExperiment.envText')}
|
{t('customWorkflow.tuneExperiment.envText')}
|
||||||
|
|
|
@ -39,6 +39,9 @@ const useStyles = makeStyles((theme) => ({
|
||||||
marginTop: theme.spacing(2.5),
|
marginTop: theme.spacing(2.5),
|
||||||
marginBottom: theme.spacing(1.25),
|
marginBottom: theme.spacing(1.25),
|
||||||
},
|
},
|
||||||
|
inputField: {
|
||||||
|
marginLeft: theme.spacing(2.5),
|
||||||
|
},
|
||||||
appInfoText: {
|
appInfoText: {
|
||||||
fontSize: '0.875rem',
|
fontSize: '0.875rem',
|
||||||
width: '6.25rem',
|
width: '6.25rem',
|
||||||
|
@ -48,7 +51,6 @@ const useStyles = makeStyles((theme) => ({
|
||||||
flexDirection: 'row',
|
flexDirection: 'row',
|
||||||
alignItems: 'center',
|
alignItems: 'center',
|
||||||
paddingLeft: theme.spacing(2.5),
|
paddingLeft: theme.spacing(2.5),
|
||||||
marginBottom: theme.spacing(2.5),
|
|
||||||
},
|
},
|
||||||
envHeader: {
|
envHeader: {
|
||||||
fontSize: '0.75rem',
|
fontSize: '0.75rem',
|
||||||
|
@ -102,7 +104,7 @@ const useStyles = makeStyles((theme) => ({
|
||||||
horizontalLine: {
|
horizontalLine: {
|
||||||
border: `1px solid ${theme.palette.customColors.black(0.3)}`,
|
border: `1px solid ${theme.palette.customColors.black(0.3)}`,
|
||||||
width: '100%',
|
width: '100%',
|
||||||
marginTop: theme.spacing(1.25),
|
marginTop: theme.spacing(3.25),
|
||||||
marginBottom: theme.spacing(1.25),
|
marginBottom: theme.spacing(1.25),
|
||||||
},
|
},
|
||||||
formControl: {
|
formControl: {
|
||||||
|
|
Loading…
Reference in New Issue