- Only the first {{ \App\Services\ImageScan\TeamVulnerabilities::MAX_DECODED_SCANS }} images with a match were searched. Filter by server or project to see the rest.
-
- {{ $notScannedLine }}
- @if ($notCheckedToggle !== null)
-
{{ $notCheckedToggle }}
- @endif
+ @if ($items->isEmpty())
+ @if ($searching)
+
+ @elseif ($hasFilters)
+
+ @elseif (! $hasResources)
+
+ @elseif ($hidesNotChecked)
+
+ @endif
+ @else
+
+
+ @foreach ($items as $entry)
+ @php
+ $resource = $entry['resource'];
+ $security = $entry['security'];
+ $status = $security->status;
+ $checkedAt = $security->checkedAt ?? $entry['scans']->max('scanned_at');
+ $action = $searching ? null : \App\Services\ImageScan\TeamVulnerabilities::action($security);
+ $statusLabel = \App\Services\ImageScan\TeamVulnerabilities::statusLabel($status);
+ $badgeType = match ($status) {
+ \App\Enums\SecurityStatusType::UpdateNow => 'error',
+ \App\Enums\SecurityStatusType::UpdateAvailable => 'warning',
+ \App\Enums\SecurityStatusType::NoFix, \App\Enums\SecurityStatusType::CheckNeeded => 'neutral',
+ default => null,
+ };
+ @endphp
+
+
+
+
+
+
+
+ @if ($entry['link'])
+
{{ $resource->name }}
+ @else
+
{{ $resource->name }}
+ @endif
+ @if ($searching && $badgeType !== null)
+
+ @endif
+
+
{{ $entry['project']?->name }} / {{ $entry['environment']?->name }}
+
+
+
+ @if ($searching)
+ @php
+ $match = $entry['match'];
+ @endphp
+
+
+ {{ $match['id'] }} · {{ $match['package'] }} {{ $match['version'] }}
+ @if ($match['more'] > 0)
+ +{{ number_format($match['more']) }} more
+ @endif
+
+
+ {{ $stateLabels[$match['state']] }}@if ($match['state'] === 'fixed' && filled($match['fixedIn'])) → {{ $match['fixedIn'] }} @endif
+
+ @else
+ @php
+ $imagesLine = \App\Services\ImageScan\TeamVulnerabilities::imagesLine($security, $entry['images']);
+ @endphp
+
+ @if ($badgeType !== null)
+
+ @else
+ {{ $statusLabel }}
+ @endif
+ @if ($imagesLine !== null)
+ {{ $imagesLine }}
+ @endif
+
+
+ @if ($action !== null)
+ @php
+ $actionClass = $action['muted'] ? 'text-[12px] text-neutral-500 dark:text-fg-faint' : 'text-[12px] text-neutral-800 dark:text-fg';
+ @endphp
+ @if ($action['link'] && $entry['link'])
+
{{ $action['text'] }}
+ @else
+
{{ $action['text'] }}
+ @endif
+ @endif
+
+ @endif
+
+
{{ $entry['server']?->name }}
+
{{ $checkedAt?->diffForHumans() }}
+
+ @endforeach
@endif
+ Only the first {{ \App\Services\ImageScan\TeamVulnerabilities::MAX_DECODED_SCANS }} images with a match were searched. Filter by server or project to see the rest.
+
+ {{ $notScannedLine }}
+ @if ($notCheckedToggle !== null)
+ {{ $notCheckedToggle }}
+ @endif
+