@( vulnsAndVersionOption: Option[(Traversable[Vulnerability], String)], cpes: Seq[String], isDbOld: Boolean )(implicit header: DefaultRequest, mainTemplateData: MainTemplateData) @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 ){
Include all trailing zeros, please. For example, if version number is 3.2.0, do not shorten it to 3.2.

If you think you are getting irrelevant vulnerabilities, you might want to review what identifiers to match.

} @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 and relevancy before using the library or try a newer version (if available), 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){ *@ @* } *@ }