Skip to content

Commit

Permalink
made the ui to look good
Browse files Browse the repository at this point in the history
  • Loading branch information
satti-hari-krishna-reddy committed Jun 11, 2024
1 parent 796fde7 commit e864650
Show file tree
Hide file tree
Showing 2 changed files with 126 additions and 28 deletions.
6 changes: 6 additions & 0 deletions frontend/src/App.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import HealthPage from "./components/HealthPage.jsx";
import theme from "./theme";
import Apps from "./views/Apps";
import AppCreator from "./views/AppCreator";
import Dectection from "./views/Detection.jsx";

import Welcome from "./views/Welcome.jsx";
import Dashboard from "./views/Dashboard.jsx";
Expand Down Expand Up @@ -414,6 +415,11 @@ const App = (message, props) => {
/>
}
/>
<Route
exact
path="/detections/sigma"
element={<Dectection globalUrl={globalUrl} />}
/>
<Route
exact
path="/workflows"
Expand Down
148 changes: 120 additions & 28 deletions frontend/src/views/Detection.jsx
Original file line number Diff line number Diff line change
@@ -1,55 +1,147 @@
import React from 'react';
import { Container, Box, TextField, Switch, Card, CardContent, IconButton, Typography, Button } from '@mui/material';
import EditIcon from '@mui/icons-material/Edit';
import { styled } from '@mui/system';
import React from "react";
import {
Container,
Box,
TextField,
Switch,
Card,
CardContent,
IconButton,
Typography,
Button,
} from "@mui/material";
import EditIcon from "@mui/icons-material/Edit";
import { styled } from "@mui/system";
import { toast } from "react-toastify";

const ConnectedButton = styled(Button)({
backgroundColor: 'red',
color: 'white',
backgroundColor: "red",
color: "white",
});

const RuleCard = ({ ruleName, description }) => (
const disableRule = (fileId) => {

}


const RuleCard = ({ ruleName, description, ...otherProps }) => {
const [additionalProps, setAdditionalProps] = React.useState(otherProps);
return (
<Card variant="outlined" sx={{ mb: 2 }}>
<CardContent>
<div style = {{display: 'flex', justifyContent: 'space-between', alignItems: 'center', mb: 2 }}>
<Typography variant="h6">{ruleName}</Typography>
<div style ={{ display: 'flex', alignItems: 'center'}}>
<IconButton >
<div
style={{
display: "flex",
justifyContent: "space-between",
alignItems: "center",
mb: 2,
}}
>
<Typography variant="h6">{ruleName}</Typography>
<div style={{ display: "flex", alignItems: "center" }}>
<IconButton>
<EditIcon />
</IconButton>
<Switch defaultChecked />
<Switch
checked={additionalProps.is_enabled}
disabled={!additionalProps.is_enabled}
/>
</div>
</div>
<Typography variant="body2" style = {{marginTop: '2%'}}>{description}</Typography>
<Box sx={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', mt: 2 }}>
<Box sx={{ display: 'flex', gap: 1 }}>
</div>
<Typography variant="body2" style={{ marginTop: "2%" }}>
{description}
</Typography>
<Box
sx={{
display: "flex",
justifyContent: "space-between",
alignItems: "center",
mt: 2,
}}
>
<Box sx={{ display: "flex", gap: 1 }}>
{/* we need icons here ??? */}
</Box>
</Box>
</CardContent>
</Card>
);
</Card>)
}

const Detection = (props) => {
const {globalUrl} = props;
const [ruleInfo, setRuleInfo] = React.useState([]);

const getSigmaInfo = () => {
const url = globalUrl + "/api/v1/files/detection/sigma_rules"

fetch(url, {
method: "GET",
credentials: "include",
headers: {
"Content-Type": "application/json",
},
}) .then((response) =>
response.json().then((responseJson) => {
if (responseJson["success"] === false) {
toast("Failed to get sigma rules");
} else {
setRuleInfo(responseJson);
}

}),
)
.catch((error) => {
console.log("Error in geting sigma files: ", error);
});
}

const Detection = () => {
React.useEffect(() => {
getSigmaInfo()
}, []);

return (
<Container sx={{ mt: 4 }}>
<Box sx={{ border: '1px solid #ccc', borderRadius: 2, p: 3 }}>
<Box sx={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', mb: 2 }}>
<Box sx={{ border: "1px solid #ccc", borderRadius: 2, p: 3 }}>
<Box
sx={{
display: "flex",
justifyContent: "space-between",
alignItems: "center",
mb: 2,
}}
>
<Typography variant="h6" component="div">
Group 1 Title
</Typography>
<ConnectedButton variant="contained">Not Connected to SIEM</ConnectedButton>
<ConnectedButton variant="contained">
Not Connected to SIEM
</ConnectedButton>
</Box>
<Box sx={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', mb: 2 }}>
<Box
sx={{
display: "flex",
justifyContent: "space-between",
alignItems: "center",
mb: 2,
}}
>
<TextField label="Search rules" variant="outlined" size="small" />
<Box sx={{ display: 'flex', alignItems: 'center' }}>
<Typography variant="body2" sx={{ mr: 1 }}>Global disable/enable</Typography>
<Box sx={{ display: "flex", alignItems: "center" }}>
<Typography variant="body2" sx={{ mr: 1 }}>
Global disable/enable
</Typography>
<Switch defaultChecked />
</Box>
</Box>
<RuleCard ruleName="Rule Name" description="this is the random text generated by me to check how this looks in the ui" />
<RuleCard ruleName="Rule Name" description="Lorum Ipsum Lorum Ipsum Lorum Ipsum Lorum Ipsum Lorum Ipsum" />
<RuleCard ruleName="Rule Name" description="LorumIpsumLorumIpsumLorumIpsumLorumIpsumLorumIpsum" />
{ruleInfo.length > 0 &&
ruleInfo.map((card) => (
<RuleCard
key={card.title}
ruleName={card.title}
description={card.description}
{...card}
/>
))}
</Box>
</Container>
);
Expand Down

0 comments on commit e864650

Please sign in to comment.