Various UI Improvements

This commit is contained in:
Shay Nehmad 2019-09-01 10:51:33 +03:00
parent 85401e5d48
commit 5e059f78eb
6 changed files with 21 additions and 21 deletions

View File

@ -113,12 +113,18 @@ class ZeroTrustReportPageComponent extends AuthComponent {
grades={this.state.pillars.grades}/> grades={this.state.pillars.grades}/>
</Col> </Col>
<Col xs={4} sm={4} md={4} lg={4}> <Col xs={4} sm={4} md={4} lg={4}>
<StatusesToPillarsSummary statusesToPillars={this.state.pillars.statusesToPillars}/> <ZeroTrustReportLegend/>
</Col> </Col>
</Row> </Row>
<Row> <Row>
<Col xs={12} sm={12} md={12} lg={12}> <Col xs={12} sm={12} md={12} lg={12}>
<ZeroTrustReportLegend/> <h4>What am I seeing?</h4>
<p>
The <a href="https://www.forrester.com/report/The+Zero+Trust+eXtended+ZTX+Ecosystem/-/E-RES137210">Zero Trust eXtended framework</a> categorizes its <b>recommendations</b> into 7 <b>pillars</b>. Infection Monkey
Zero Trust edition tests some of those recommendations. The <b>tests</b> that the monkey executes
produce <b>findings</b>. The tests, recommendations and pillars are then granted a <b>status</b> in accordance
with the tests results.
</p>
</Col> </Col>
</Row> </Row>
</Grid> </Grid>

View File

@ -5,7 +5,7 @@ import FileSaver from "file-saver";
import * as PropTypes from "prop-types"; import * as PropTypes from "prop-types";
import ExportEventsButton from "./ExportEventsButton"; import ExportEventsButton from "./ExportEventsButton";
export default class EventsButtonsComponent extends Component { export default class EventsButton extends Component {
constructor(props) { constructor(props) {
super(props); super(props);
this.state = { this.state = {
@ -27,7 +27,7 @@ export default class EventsButtonsComponent extends Component {
<EventsModal events={this.props.events} showEvents={this.state.isShow} hideCallback={this.hide} exportFilename={this.props.exportFilename} /> <EventsModal events={this.props.events} showEvents={this.state.isShow} hideCallback={this.hide} exportFilename={this.props.exportFilename} />
<div className="text-center" style={{"display": "grid"}}> <div className="text-center" style={{"display": "grid"}}>
<Button className="btn btn-primary btn-lg" onClick={this.show}> <Button className="btn btn-primary btn-lg" onClick={this.show}>
Show Events <i className="fa fa-list"/> Events
</Button> </Button>
</div> </div>
</div> </div>
@ -36,7 +36,7 @@ export default class EventsButtonsComponent extends Component {
} }
EventsButtonsComponent.propTypes = { EventsButton.propTypes = {
events: PropTypes.array, events: PropTypes.array,
exportFilename: PropTypes.string, exportFilename: PropTypes.string,
}; };

View File

@ -7,7 +7,7 @@ export default class ExportEventsButton extends Component {
return <Button className="btn btn-primary btn-lg" return <Button className="btn btn-primary btn-lg"
onClick={this.props.onClick} onClick={this.props.onClick}
> >
Export Events <i className="fa fa-download"/> Export
</Button> </Button>
} }
} }

View File

@ -1,6 +1,6 @@
import React, {Component, Fragment} from "react"; import React, {Component, Fragment} from "react";
import PillarLabel from "./PillarLabel"; import PillarLabel from "./PillarLabel";
import EventsButtonsComponent from "./EventsButtonsComponent"; import EventsButton from "./EventsButton";
import {ZeroTrustStatuses} from "./ZeroTrustPillars"; import {ZeroTrustStatuses} from "./ZeroTrustPillars";
import {FindingsTable} from "./FindingsTable"; import {FindingsTable} from "./FindingsTable";

View File

@ -3,7 +3,7 @@ import StatusLabel from "./StatusLabel";
import PaginatedTable from "../common/PaginatedTable"; import PaginatedTable from "../common/PaginatedTable";
import * as PropTypes from "prop-types"; import * as PropTypes from "prop-types";
import PillarLabel from "./PillarLabel"; import PillarLabel from "./PillarLabel";
import EventsButtonsComponent from "./EventsButtonsComponent"; import EventsButton from "./EventsButton";
const columns = [ const columns = [
{ {
@ -16,7 +16,7 @@ const columns = [
{ {
Header: 'Events', id: "events", Header: 'Events', id: "events",
accessor: x => { accessor: x => {
return <EventsButtonsComponent events={x.events} exportFilename={"Events_" + x.test_key}/>; return <EventsButton events={x.events} exportFilename={"Events_" + x.test_key}/>;
}, },
maxWidth: 160, maxWidth: 160,
}, },

View File

@ -27,41 +27,35 @@ class ZeroTrustReportLegend extends Component {
getLegendContent() { getLegendContent() {
return <div id={this.constructor.name}> return <div id={this.constructor.name}>
<h4>What is this?</h4>
<p>
The Zero Trust eXtended framework categorizes its <b>recommendations</b> into 7 <b>pillars</b>. Infection Monkey
Zero Trust edition tests some of those recommendations. The <b>tests</b> that the monkey executes
produce <b>findings</b>. The tests, recommendations and pillars are then granted a <b>status</b> in accordance
with the tests results.
</p>
<h4>Statuses</h4> <h4>Statuses</h4>
<ul style={{listStyle: "none"}}> <ul style={{listStyle: "none"}}>
<li> <li>
<div style={{display: "inline-block"}}> <div style={{display: "inline-block"}}>
<StatusLabel showText={true} status={ZeroTrustStatuses.failed}/> <StatusLabel showText={true} status={ZeroTrustStatuses.failed}/>
</div> </div>
{"\t"}The test failed; the monkeys found something wrong. {"\t"}Some tests failed; the monkeys found something wrong.
</li> </li>
<li> <li>
<div style={{display: "inline-block"}}> <div style={{display: "inline-block"}}>
<StatusLabel showText={true} status={ZeroTrustStatuses.inconclusive}/> <StatusLabel showText={true} status={ZeroTrustStatuses.inconclusive}/>
</div> </div>
{"\t"}The test was executed, but manual verification is required to determine the results. {"\t"}The test ran; manual verification is required to determine the results.
</li> </li>
<li> <li>
<div style={{display: "inline-block"}}> <div style={{display: "inline-block"}}>
<StatusLabel showText={true} status={ZeroTrustStatuses.passed}/> <StatusLabel showText={true} status={ZeroTrustStatuses.passed}/>
</div> </div>
{"\t"}This status means the test passed 🙂 {"\t"}The test passed, so this is OK 🙂
</li> </li>
<li> <li>
<div style={{display: "inline-block"}}> <div style={{display: "inline-block"}}>
<StatusLabel showText={true} status={ZeroTrustStatuses.unexecuted}/> <StatusLabel showText={true} status={ZeroTrustStatuses.unexecuted}/>
</div> </div>
{"\t"}This status means the test wasn't executed. Some of the tests can be activated or deactivated using {"\t"}This status means the test wasn't executed.
the <NavLink to="/configuration">configuration</NavLink>.
</li> </li>
</ul> </ul>
<hr />
Some of the tests can be activated using the <NavLink to="/configuration"><u>configuration</u></NavLink>.
</div>; </div>;
} }
} }