Adjusted formatting of library identifiers in vulnerability details

This commit is contained in:
Šesták Vít
2018-04-16 10:34:50 +02:00
parent a2a4ee01c7
commit 181a4c596c
3 changed files with 25 additions and 46 deletions

View File

@@ -45,11 +45,6 @@
font-size: smaller;
}
h3.library-identification{
border: 1px solid black;
padding: 5px;
}
.library-identification-badge-hack{
display: inline-block;
width: 1px;
@@ -75,11 +70,19 @@ h3.library-identification{
color: white;
font-weight: bold;
}
.dependencies-table .identifiers ul, .dependencies-table .identifiers ul li{
.identifiers ul, .identifiers ul li{
margin-left: 0;
padding-left: 0;
list-style-type: none;
}
div.identifiers li.library-identification{
border: 2px solid gray;
border-left-width: 0;
border-right-width: 0;
padding: 5px 5px 5px 16px;
display: block;
margin: 0 0 -2px 0;
}
.severity{
font-size: smaller;
@@ -196,11 +199,11 @@ h3.library-identification{
.dependencies-table .severity .score-vulnerability:hover{
color: rgb(192, 0, 0);
}
.dependencies-table .identifiers .tooltip-inner {
.identifiers .tooltip-inner {
max-width: 350px;
width: 350px;
}
.dependencies-table .identifiers .explained{
.identifiers .explained{
border-bottom: none;
}
.dependencies-table .vulnerabilities-details > li{

View File

@@ -1,28 +0,0 @@
@(dep: GroupedDependency, suppressionXmlIdOption: Option[String => String] = None, addLink: Boolean = true, addButtons: Boolean = true)
@import com.ysoft.odc.Confidence
@implicitOrdering = @{
// This implicit should not be theoretically needed, but missing this used to cause somehow non-deterministic scalac behavior:
// The first ….sortBy expression used to pass, while the second one used to fail sometimes. Even though both expressions are essentially the same.
// When these expressions are swapped, still the first (after swapping) one passes and the second one fails, no matter which one is the first and
// which is the second. So, it looks like some compiler bug related to mutable state.
// It also seems to be related to some compiler cache. It is somehow possible to compile it by incremental compilation and some code changes, but
// clean build deterministically fails at the second expression.
// So, making the implicit explicit is a workaround for this issue.
Ordering.Tuple5[Confidence.Value, Boolean, String, String, String]
}
@if(!dep.identifiers.exists(_.confidence >= Confidence.High)){
<span class="badge">file: @dep.fileNames.toSeq.sorted.mkString(", ")@if(addButtons){<span class="btn-xs library-identification-badge-hack">&nbsp;</span>}</span>
}
@for(id <- dep.identifiers.toSeq.sortBy(i => (i.confidence, i.identifierType == "cpe", i.identifierType, i.name, i.url)).reverse){
<span class="badge">
@identifier(id, addLink)
@for(cpe <- id.toCpeIdentifierOption; suppressionXmlId <- suppressionXmlIdOption; if addButtons){
<button class="btn btn-default btn-xs" data-toggle="collapse" data-target="#@suppressionXmlId(cpe)">×</button>
}
@if(addButtons && suppressionXmlIdOption.isDefined){<span class="btn-xs library-identification-badge-hack">&nbsp;</span>}
</span>
}
@for(id <- dep.suppressedIdentifiers.toSeq.sortBy(i => (i.confidence, i.identifierType == "cpe", i.identifierType, i.name, i.url)).reverse){
<span class="badge"><del>@identifier(id, addLink)</del></span>
}

View File

@@ -31,20 +31,24 @@
</ul>
}
@section("affected-deps", s"Unique affected dependencies (${vulnerableDependencies.size})"){
<ul>
@for(dep <- vulnerableDependencies){
<li class="library-identification">@libraryIdentification(dep)</li>
}
</ul>
<div class="identifiers">
<ul>
@for(dep <- vulnerableDependencies){
<li class="library-identification">@libraryIdentificationList(dep, addButtons = false, addLink = false)</li>
}
</ul>
</div>
}
@section("affected-projects", s"Affected projects (${affectedProjects.size} projects with ${affectedProjects.flatMap(_._2).size} occurrences)"){
@for((project, dependencies) <- affectedProjects.toSeq.sortBy(_._1)){
<h3><a href="@routes.Statistics.basic(Some("project:"+project.fullId))">@friendlyProjectName(project)</a> (@dependencies.size)</h3>
<ul>
@for(dep <- dependencies.toSeq){
<li class="library-identification">@libraryIdentification(dep)</li>
}
</ul>
<div class="identifiers">
<ul>
@for(dep <- dependencies.toSeq){
<li class="library-identification">@libraryIdentificationList(dep, addButtons = false, addLink = false)</li>
}
</ul>
</div>
}
}
}