2018-11-14 13:59:05 +00:00
< div class = "manifest-security-view-element" >
< span class = "cor-loader-inline" ng-if = "$ctrl.getSecurityStatus($ctrl.repository, $ctrl.manifestDigest).loading" > < / span >
< span class = "vuln-load-error" ng-if = "$ctrl.getSecurityStatus($ctrl.repository, $ctrl.manifestDigest).hasError"
data-title="The vulnerabilities for this tag could not be retrieved at the present time, try again later"
bs-tooltip>
< i class = "fa fa-times-circle" > < / i >
Could not load security information
< / span >
< span ng-if = "!$ctrl.getSecurityStatus($ctrl.repository, $ctrl.manifestDigest).loading" >
<!-- Queued -->
< span class = "scanning" ng-if = "$ctrl.getSecurityStatus($ctrl.repository, $ctrl.manifestDigest).status == 'queued'"
2018-11-20 12:14:34 +00:00
data-title="The manifest for this tag is queued to be scanned for vulnerabilities"
2018-11-14 13:59:05 +00:00
bs-tooltip>
< i class = "fa fa-ellipsis-h" > < / i >
Queued
< / span >
<!-- Scan Failed -->
< span class = "failed-scan" ng-if = "$ctrl.getSecurityStatus($ctrl.repository, $ctrl.manifestDigest).status == 'failed'"
2018-11-20 12:14:34 +00:00
data-title="The manifest for this tag could not be scanned for vulnerabilities"
2018-11-14 13:59:05 +00:00
bs-tooltip>
< span class = "donut-chart" width = "22" data = "[{'index': 0, 'value': 1, 'color': '#eee'}]" > < / span >
Unable to scan
< / span >
2018-11-20 12:14:34 +00:00
<!-- Unsupported -->
< span class = "failed-scan"
ng-if="$ctrl.getSecurityStatus($ctrl.repository, $ctrl.manifestDigest).status == 'unsupported'"
data-title="The manifest for this tag has an operating system or package manager unsupported by Quay Security Scanner"
bs-tooltip
bindonce>
< span class = "donut-chart" width = "22" data = "[{'index': 0, 'value': 1, 'color': '#eee'}]" > < / span >
Unsupported
< / span >
2018-11-14 13:59:05 +00:00
<!-- No Features -->
< span class = "failed-scan"
ng-if="$ctrl.getSecurityStatus($ctrl.repository, $ctrl.manifestDigest).status == 'scanned' & & !$ctrl.getSecurityStatus($ctrl.repository, $ctrl.manifestDigest).hasFeatures"
2018-11-20 12:14:34 +00:00
data-title="The manifest for this tag has an operating system or package manager unsupported by Quay Security Scanner"
2018-11-14 13:59:05 +00:00
bs-tooltip
bindonce>
< span class = "donut-chart" width = "22" data = "[{'index': 0, 'value': 1, 'color': '#eee'}]" > < / span >
Unsupported
< / span >
<!-- Features and No Vulns -->
< span class = "no-vulns"
ng-if="$ctrl.getSecurityStatus($ctrl.repository, $ctrl.manifestDigest).status == 'scanned' & & $ctrl.getSecurityStatus($ctrl.repository, $ctrl.manifestDigest).hasFeatures & & !$ctrl.getSecurityStatus($ctrl.repository, $ctrl.manifestDigest).hasVulnerabilities"
2018-11-20 12:14:34 +00:00
data-title="The manifest for this tag has no vulnerabilities as found in our database"
2018-11-14 13:59:05 +00:00
bs-tooltip
bindonce>
< a bo-href-i = "/repository/{{ $ctrl.repository.namespace }}/{{ $ctrl.repository.name }}/manifest/{{ tag.manifest_digest }}?tab=vulnerabilities" >
< span class = "donut-chart" width = "22" data = "[{'index': 0, 'value': 1, 'color': '#2FC98E'}]" > < / span >
Passed
< / a >
< / span >
<!-- Vulns -->
< span ng-if = "$ctrl.getSecurityStatus($ctrl.repository, $ctrl.manifestDigest).status == 'scanned' && $ctrl.getSecurityStatus($ctrl.repository, $ctrl.manifestDigest).hasFeatures && $ctrl.getSecurityStatus($ctrl.repository, $ctrl.manifestDigest).hasVulnerabilities"
ng-class="$ctrl.getSecurityStatus($ctrl.repository, $ctrl.manifestDigest).highestVulnerability.Priority"
class="has-vulns" bindonce>
< a class = "vuln-link" bo-href-i = "/repository/{{ $ctrl.repository.namespace }}/{{ $ctrl.repository.name }}/manifest/{{ tag.manifest_digest }}?tab=vulnerabilities"
data-title="This tag has {{ $ctrl.getSecurityStatus($ctrl.repository, $ctrl.manifestDigest).vulnerabilities.length }} vulnerabilities across {{ $ctrl.getSecurityStatus($ctrl.repository, $ctrl.manifestDigest).featuresInfo.brokenFeaturesCount }} packages"
bs-tooltip>
<!-- Donut -->
< span class = "donut-chart" min-percent = "10" width = "22" data = "$ctrl.getSecurityStatus($ctrl.repository, $ctrl.manifestDigest).vulnerabilitiesInfo.severityBreakdown" > < / span >
<!-- Messaging -->
< span class = "highest-vuln" >
< span class = "vulnerability-priority-view" hide-icon = "true" priority = "$ctrl.getSecurityStatus($ctrl.repository, $ctrl.manifestDigest).highestVulnerability.Priority" >
{{ $ctrl.getSecurityStatus($ctrl.repository, $ctrl.manifestDigest).highestVulnerability.Count }}
< / span >
< / span >
< / a >
< span class = "dot" ng-if = "$ctrl.getSecurityStatus($ctrl.repository, $ctrl.manifestDigest).vulnerabilitiesInfo.fixable.length" > · < / span >
< a class = "vuln-link" bo-href-i = "/repository/{{ $ctrl.repository.namespace }}/{{ $ctrl.repository.name }}/manifest/{{ tag.manifest_digest }}?tab=vulnerabilities&fixable=true" ng-if = "$ctrl.getSecurityStatus($ctrl.repository, $ctrl.manifestDigest).vulnerabilitiesInfo.fixable.length" >
{{ $ctrl.getSecurityStatus($ctrl.repository, $ctrl.manifestDigest).vulnerabilitiesInfo.fixable.length }} fixable
< / a >
< / span >
< / span >
< / div >