Commit e601ec3c authored by Dimitris Tsoukalas's avatar Dimitris Tsoukalas
Browse files

Initial commit

parent e6b4a7b6
Showing with 93 additions and 3 deletions
+93 -3
......@@ -215,6 +215,42 @@ const ProjectPanel = props => {
)
}
 
// The Project Panel
const ProjectPanel2 = props => {
return (
<MDBRow className="mb-4">
<MDBCol md="12" lg="12" className="mb-12">
<MDBCard className="mb-12">
<MDBCardBody>
<MDBFormInline className="md-form m-0">
<MDBCol>
<h3 align="left" style={{color:'#548235'}}>Project: <span style={{color:'#000000'}}>{props.myprojectName}</span></h3>
</MDBCol>
<MDBCol>
<h5 align="center" style={{color:'#548235'}}><MDBIcon icon="calendar-check" className="mr-1" size="sm"/>Last Analysis: <span style={{color:'#000000'}}>{props.mylastAnalysis}</span></h5>
</MDBCol>
<MDBCol>
<div align="right">
<MDBDropdown>
<MDBDropdownToggle caret className="white-text" color=" light-green darken-4">
Select Version
</MDBDropdownToggle>
<MDBDropdownMenu basic>
{props.myprojectHistoryVersionsDropdown}
</MDBDropdownMenu>
<MDBBtn className="white-text" color=" light-green darken-4" onClick={(param) => props.updateProjectData(props.myprojectName)}><MDBIcon icon="sync-alt" className="mr-1" size="lg"/>New Analysis</MDBBtn>
</MDBDropdown>
</div>
</MDBCol>
</MDBFormInline>
</MDBCardBody>
</MDBCard>
</MDBCol>
</MDBRow>
)
}
// The Security Index Panel
const SecurityIndexPanel = props => {
......@@ -529,6 +565,8 @@ class SecurityDashPage extends React.Component {
projectTableSelectedProperty: '',
projectVulnerabilityTableData: {},
projectHistoryIndexScore: {},
projectHistoryVersions: [],
projectHistoryVersionsDropdown: [],
}
}
......@@ -701,7 +739,7 @@ class SecurityDashPage extends React.Component {
// Update panel by fetching past analysis data from DB
updateProjectDataDB = (projectName) => {
this.setState({
this.setState({
isLoadingSecurity: true,
isLoadingVulnerability: true,
isLoadingSecurityEvolution: true,
......@@ -791,7 +829,9 @@ class SecurityDashPage extends React.Component {
this.setState({
isLoadingSecurityEvolution: false,
projectHistoryIndexScore: projectHistoryIndexScoreJson,
projectHistoryVersions: resp.projects,
})
this.updateVersionDropdownData(resp.projects)
}).catch(error => this.setState({ error, isLoadingSecurity: false }))
}else if(projectName === 'Airbus'){
// Code for fetching json data from DB API
......@@ -908,6 +948,42 @@ class SecurityDashPage extends React.Component {
*/
}
updateProjectVersionData = (projectData, projectVersion) => {
this.setState({
isLoadingSecurity: true,
isLoadingVulnerability: true,
isLoadingSecurityEvolution: true,
});
for(var i = 0; i < projectData.length; i++) {
if (projectData[i]['report']['name'] === projectVersion) {
this.setState({
isLoadingSecurity: false,
name: projectData.report.name,
lastAnalysis: toDate(projectData.timestamp),
securityIndex: projectData.report.security_index.eval,
characteristics: projectData.report.characteristics.characteristics,
properties: projectData.report.properties.properties,
issues: projectData.report.issues,
})
this.updateTabledData(projectData.report.issues, projectData.report.issues[0].propertyName)
this.setState({
isLoadingVulnerability: false,
isProjectVisible: true,
vulnerabilityResults: holisunJson.vulnerability_results.results,
})
this.updateVulnerabilityTabledData(holisunJson.vulnerability_results.results)
this.setState({
isLoadingSecurityEvolution: false,
projectHistoryIndexScore: {},
})
}
}
}
// Update table
updateTabledData = (data, name) => {
var tableData = []
......@@ -954,6 +1030,19 @@ class SecurityDashPage extends React.Component {
projectVulnerabilityTableData: tableData,
})
}
// Update version dropdown
updateVersionDropdownData = (data) => {
var dropdownData = []
for(var i = 0; i < data.length; i++) {
dropdownData.push(<MDBDropdownItem onClick={(param) => this.updateProjectVersionData(data, data[i]['report']['name'])}>{data[i]['report']['name']}</MDBDropdownItem>)
}
this.setState({
projectHistoryVersionsDropdown: dropdownData,
})
}
 
componentDidMount(){
// Check if session storage contains selected project
......@@ -969,7 +1058,7 @@ class SecurityDashPage extends React.Component {
}
render(){
const { error, isLoadingSecurity, isLoadingVulnerability, isLoadingSecurityEvolution, isProjectVisible, selectedProject, lastAnalysis, name, securityIndex, characteristics, properties, issues, vulnerabilityResults, projectTableData, projectTableSelectedProperty, projectVulnerabilityTableData, projectHistoryIndexScore } = this.state
const { error, isLoadingSecurity, isLoadingVulnerability, isLoadingSecurityEvolution, isProjectVisible, selectedProject, lastAnalysis, name, securityIndex, characteristics, properties, issues, vulnerabilityResults, projectTableData, projectTableSelectedProperty, projectVulnerabilityTableData, projectHistoryIndexScore, projectHistoryVersions, projectHistoryVersionsDropdown } = this.state
if (error) {
return (
......@@ -999,9 +1088,10 @@ class SecurityDashPage extends React.Component {
if ( !isEmpty(projectHistoryIndexScore)) {
return(
<React.Fragment>
<ProjectPanel
<ProjectPanel2
myprojectName={selectedProject}
mylastAnalysis={lastAnalysis}
myprojectHistoryVersionsDropdown={projectHistoryVersionsDropdown}
updateProjectData={this.updateProjectData}
updateSelectedProject={this.updateSelectedProject}
/>
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment