mirror of
https://github.com/ysoftdevs/odc-analyzer.git
synced 2026-01-16 16:47:13 +01:00
35 lines
1.7 KiB
HTML
35 lines
1.7 KiB
HTML
@(idPrefix: String, list: Seq[GroupedDependency], selectorOption: Option[String], expandByDefault: Boolean = true, addButtons: Boolean = true)
|
||
@cpeHtmlId(cpe: String) = @{
|
||
cpe.getBytes("utf-8").mkString("-")
|
||
}
|
||
|
||
@for(dep <- list; depPrefix = s"$idPrefix-${dep.sha1}"){
|
||
<h3 class="library-identification" id="@depPrefix-head" data-toggle="collapse" data-target="#@depPrefix-details">
|
||
@libraryIdentification(dep, Some(cpe => s"$idPrefix-${dep.sha1}-suppression-cpe-${cpeHtmlId(cpe)}"), addLink = false, addButtons = addButtons)
|
||
@for(s <- dep.maxCvssScore) {
|
||
<span class="severity">
|
||
(<span title="highest vulnerability score" class="explained">@s</span>
|
||
× <span class="explained" title="affected project count">@dep.projects.size</span>
|
||
= <span class="explained score" title="total score">@dep.ysdssScore</span>)
|
||
(vulns: @dep.vulnerabilities.size)
|
||
</span>
|
||
}
|
||
@dep.cpeIdentifiers.toSeq match {
|
||
case Seq() => {}
|
||
case cpeIds => {
|
||
<a href="@routes.Statistics.searchVulnerableSoftware(cpeIds.map(_.name.split(':').take(4).mkString(":")).toSeq, None)" title="Search for known vulnerabilities"><span class="glyphicon glyphicon-flash"></span></a>
|
||
}
|
||
}
|
||
</h3>
|
||
@for(identifier <- dep.identifiers; cpe <- identifier.toCpeIdentifierOption ) {
|
||
<div id="@(s"$idPrefix-${dep.sha1}-suppression-cpe-${cpeHtmlId(cpe)}")" class="collapse">@SuppressionXml.forCpe(dep, cpe)</div>
|
||
}
|
||
@dependencyDetails(
|
||
depPrefix = depPrefix,
|
||
expandByDefault = expandByDefault,
|
||
selectorOption = selectorOption,
|
||
dep = dep
|
||
)
|
||
|
||
}
|