@( vulnsAndVersionOption: Option[(Traversable[Vulnerability], String)], cpes: Seq[String], isDbOld: Boolean )(implicit header: DefaultRequest) @import helper._ @main( title = "Vulnerabilities for a library" ){ @form(routes.Statistics.searchVulnerableSoftware(Seq(), None), 'onsubmit-> """ |return (function(f){ | var selectedCpes = $(f.elements.versionlessCpes).filter(function(i, x){return x.checked;}).map(function(i, x){return x.value;}).toArray() | if(selectedCpes.length == 0){ | alert("Choose at least one CPE, please!"); | return false; | } |})(this); |""".stripMargin ){ } @if(isDbOld){
The vulnerability database seems to be outdated. Result might be thus inaccurate. Contact the administrator, please.
} @vulnsAndVersionOption.fold{ Select desired version, please }{ case (vulns, version) => @if(vulns.isEmpty){
No known vulnerabilities for version @version.
}else{
There @if(vulns.size == 1){is one known vulnerability}else{are some known vulnerabilities} for version @version. Consider @if(vulns.size==1){its}else{their} impact before using the library, please.
@for(vuln <- vulns.toIndexedSeq.sortBy(v => (v.cvssScore.map(-_), v.name))){

@vuln.name

@vulnerability("h3", s"vulnerability-${vuln.name}-details", vuln) } } } @*if(vulnsAndVersionOption.isEmpty){ *@ @* } *@ }