System Backups
Backups
Zeitplan
{{-- Policy Info --}} @if($policy)
Zeitplan: {{ $policy->schedule_cron }}  ·  @if($policy->enabled) Aktiv @else Deaktiviert @endif  ·  Aufbewahrung: {{ $policy->retention_count }} Backups
@else
Kein Backup-Zeitplan konfiguriert. Jetzt einrichten →
@endif {{-- Jobs Table --}}
Backup-Verlauf
{{ $jobs->total() }} Einträge
@if($jobs->isEmpty())
Noch keine Backups vorhanden.
Klicke auf „Jetzt sichern" um das erste Backup zu starten.
@else
@foreach($jobs as $job) @php $badge = match($job->status) { 'ok' => ['class' => 'mbx-badge-ok', 'label' => 'OK'], 'failed' => ['class' => 'mbx-badge-err', 'label' => 'Fehler'], 'running' => ['class' => 'mbx-badge-info-sm', 'label' => 'Läuft'], 'queued' => ['class' => 'mbx-badge-mute', 'label' => 'Warteschlange'], 'canceled'=> ['class' => 'mbx-badge-mute', 'label' => 'Abgebrochen'], default => ['class' => 'mbx-badge-mute', 'label' => ucfirst($job->status)], }; $duration = ($job->started_at && $job->finished_at) ? $job->started_at->diffInSeconds($job->finished_at) . 's' : ($job->started_at ? '…' : '—'); $size = $job->size_bytes > 0 ? (function($b) { $u = ['B','KB','MB','GB']; $i = 0; $v = (float)$b; while ($v >= 1024 && $i < 3) { $v /= 1024; $i++; } return number_format($v, $i <= 1 ? 0 : 1) . ' ' . $u[$i]; })($job->size_bytes) : '—'; @endphp @endforeach
Status Gestartet Dauer Größe Datei Aktionen
{{ $badge['label'] }} @if($job->status === 'running') @endif {{ $job->started_at?->diffForHumans() ?? '—' }} {{ $duration }} {{ $size }} {{ $job->artifact_path ? basename($job->artifact_path) : '—' }}
@if(in_array($job->status, ['queued','running'])) @endif @if($job->status === 'ok' && $job->artifact_path) @endif @if($job->error || $job->log_excerpt) @endif
@if($jobs->hasPages())
{{ $jobs->links() }}
@endif @endif