diff options
| author | Ernst Widerberg <ernst@sunet.se> | 2022-04-11 15:36:24 +0200 |
|---|---|---|
| committer | Ernst Widerberg <ernst@sunet.se> | 2022-04-11 15:36:24 +0200 |
| commit | e81061b11637a1918a0c938022357e5858c9eed1 (patch) | |
| tree | da5e481b5188ac1edb868ca2954a8a4064d80159 /src/components/ScanDetail.js | |
| parent | 3d24518dd254d54c7be8bb56e66ce1242630af18 (diff) | |
Edit JSON format
- "result" changed from array to object
- optional "description" key added on result objects
- "reliability" key added on result objects, mandatory on positive
results
Diffstat (limited to 'src/components/ScanDetail.js')
| -rw-r--r-- | src/components/ScanDetail.js | 46 |
1 files changed, 34 insertions, 12 deletions
diff --git a/src/components/ScanDetail.js b/src/components/ScanDetail.js index f818710..36c52c2 100644 --- a/src/components/ScanDetail.js +++ b/src/components/ScanDetail.js @@ -3,6 +3,9 @@ import React from "react"; import Alert from "@mui/material/Alert"; import Button from "@mui/material/Button"; import Card from "@mui/material/Card"; +import Tooltip from "@mui/material/Tooltip"; + +import InfoOutlinedIcon from "@mui/icons-material/InfoOutlined"; class ScanDetail extends React.Component { render() { @@ -67,11 +70,18 @@ class ScanDetail extends React.Component { </div> </h2> - <div id="cves"> - {this.props.result - .sort((a, b) => (a.vulnerable ? -1 : 1)) - .map(cve => ( - <CVE {...cve} /> + <div id="results"> + {Object.entries(this.props.result) + // Sort by vulnerable, reliability, name + .sort((a, b) => + a[1].display_name > b[1].display_name ? -1 : 1 + ) + .sort((a, b) => + a[1].reliability < b[1].reliability ? -1 : 1 + ) + .sort((a, b) => (a[1].vulnerable ? -1 : 1)) + .map(([id, res]) => ( + <Result key={id} {...res} /> ))} </div> </Card> @@ -108,14 +118,26 @@ function CustomElement(props) { ); } -function CVE(props) { +function Result(props) { return ( - <Card - className={"cve" + (props.vulnerable ? " vulnerable" : "")} - variant="outlined" - > - {props.cve} - </Card> + <div className="resultContainer"> + <Card + className={"result" + (props.vulnerable ? " vulnerable" : "")} + variant="outlined" + > + {props.display_name} + {props.description && ( + <Tooltip title={props.description}> + <InfoOutlinedIcon /> + </Tooltip> + )} + </Card> + {props.vulnerable && ( + <Card className="reliability" variant="outlined"> + {props.reliability} + </Card> + )} + </div> ); } |
