parent
d76ea0b703
commit
074d2da4ec
|
|
@ -1,20 +1,86 @@
|
|||
<div wire:key="storage-{{ md5($target ?? '/') }}" class="glass-card p-4 rounded-2xl border border-white/10 bg-white/5">
|
||||
<div class="flex items-center justify-between mb-2">
|
||||
<div
|
||||
@class([
|
||||
'glass-card p-4 rounded-2xl border bg-white/5',
|
||||
'border-white/10'
|
||||
])
|
||||
@if($state === 'running') wire:poll.1000ms="refresh" @endif
|
||||
>
|
||||
<div class="flex items-center justify-between mb-3">
|
||||
<div class="inline-flex items-center gap-2 bg-white/5 border border-white/10 px-2.5 py-1 rounded-full">
|
||||
<i class="ph ph-archive-box text-white/70 text-[13px]"></i>
|
||||
<span class="text-[11px] uppercase text-white/70">Backups</span>
|
||||
</div>
|
||||
<button wire:click="runNow" class="px-2 py-1 text-xs rounded-lg border border-white/10 bg-white/5 hover:border-white/20">Jetzt sichern</button>
|
||||
|
||||
<button
|
||||
wire:click="runNow"
|
||||
class="px-3 py-1.5 text-xs rounded-lg border border-white/10 bg-white/5 hover:border-white/20 disabled:opacity-50"
|
||||
@disabled($state === 'running')
|
||||
>
|
||||
{{ $state === 'running' ? 'Läuft…' : 'Jetzt sichern' }}
|
||||
</button>
|
||||
</div>
|
||||
<div class="space-y-1 text-sm">
|
||||
<div class="text-white/70">Letztes Backup: <span class="text-white/90">{{ $lastAt ?? '–' }}</span></div>
|
||||
<div class="text-white/70">Größe: <span class="text-white/90">{{ $lastSize ?? '–' }}</span></div>
|
||||
<div class="text-white/70">Dauer: <span class="text-white/90">{{ $lastDuration ?? '–' }}</span></div>
|
||||
<div>
|
||||
<span class="px-2 py-0.5 rounded-full border text-xs
|
||||
{{ $ok ? 'text-emerald-300 border-emerald-400/30 bg-emerald-500/10' : 'text-rose-300 border-rose-400/30 bg-rose-500/10' }}">
|
||||
{{ $ok === null ? 'unbekannt' : ($ok ? 'erfolgreich' : 'fehlgeschlagen') }}
|
||||
</span>
|
||||
|
||||
{{-- Laufender Fortschritt --}}
|
||||
@if($state === 'running')
|
||||
<div class="space-y-2">
|
||||
<div class="text-white/80 text-sm">Sicherung läuft…</div>
|
||||
<ul class="space-y-1">
|
||||
@foreach($steps as $k => $label)
|
||||
@php
|
||||
$done = $k === 'finish' ? false : ($k === $step ? false : (array_key_first(array_flip($steps)) !== $k && $k !== $step && $step && array_search($k, array_keys($steps)) < array_search($step, array_keys($steps))));
|
||||
$isCurrent = $k === $step;
|
||||
@endphp
|
||||
<li class="flex items-center gap-2 text-sm">
|
||||
<span class="w-2 h-2 rounded-full
|
||||
{{ $done ? 'bg-emerald-400' : ($isCurrent ? 'bg-amber-400 animate-pulse' : 'bg-white/20') }}"></span>
|
||||
<span class="{{ $done ? 'text-white/80' : ($isCurrent ? 'text-white' : 'text-white/60') }}">
|
||||
{{ $label }}
|
||||
</span>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@else
|
||||
{{-- Letztes Ergebnis --}}
|
||||
<div class="space-y-1 text-sm">
|
||||
<div class="text-white/70">Letztes Backup:
|
||||
<span class="text-white/90 font-medium">{{ $lastAt ?? '–' }}</span>
|
||||
</div>
|
||||
<div class="text-white/70">Größe:
|
||||
<span class="text-white/90 font-medium">{{ $lastSize ?? '–' }}</span>
|
||||
</div>
|
||||
<div class="text-white/70">Dauer:
|
||||
<span class="text-white/90 font-medium">{{ $lastDuration ?? '–' }}</span>
|
||||
</div>
|
||||
<div class="pt-1">
|
||||
<span class="px-2 py-0.5 rounded-full border text-xs
|
||||
{{ $ok === null
|
||||
? 'text-slate-300 border-slate-400/30 bg-slate-500/10'
|
||||
: ($ok ? 'text-emerald-300 border-emerald-400/30 bg-emerald-500/10'
|
||||
: 'text-rose-300 border-rose-400/30 bg-rose-500/10') }}">
|
||||
{{ $ok === null ? 'unbekannt' : ($ok ? 'erfolgreich' : 'fehlgeschlagen') }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
{{--<div wire:key="storage-{{ md5($target ?? '/') }}" class="glass-card p-4 rounded-2xl border border-white/10 bg-white/5">--}}
|
||||
{{-- <div class="flex items-center justify-between mb-2">--}}
|
||||
{{-- <div class="inline-flex items-center gap-2 bg-white/5 border border-white/10 px-2.5 py-1 rounded-full">--}}
|
||||
{{-- <i class="ph ph-archive-box text-white/70 text-[13px]"></i>--}}
|
||||
{{-- <span class="text-[11px] uppercase text-white/70">Backups</span>--}}
|
||||
{{-- </div>--}}
|
||||
{{-- <button wire:click="runNow" class="px-2 py-1 text-xs rounded-lg border border-white/10 bg-white/5 hover:border-white/20">Jetzt sichern</button>--}}
|
||||
{{-- </div>--}}
|
||||
{{-- <div class="space-y-1 text-sm">--}}
|
||||
{{-- <div class="text-white/70">Letztes Backup: <span class="text-white/90">{{ $lastAt ?? '–' }}</span></div>--}}
|
||||
{{-- <div class="text-white/70">Größe: <span class="text-white/90">{{ $lastSize ?? '–' }}</span></div>--}}
|
||||
{{-- <div class="text-white/70">Dauer: <span class="text-white/90">{{ $lastDuration ?? '–' }}</span></div>--}}
|
||||
{{-- <div>--}}
|
||||
{{-- <span class="px-2 py-0.5 rounded-full border text-xs--}}
|
||||
{{-- {{ $ok ? 'text-emerald-300 border-emerald-400/30 bg-emerald-500/10' : 'text-rose-300 border-rose-400/30 bg-rose-500/10' }}">--}}
|
||||
{{-- {{ $ok === null ? 'unbekannt' : ($ok ? 'erfolgreich' : 'fehlgeschlagen') }}--}}
|
||||
{{-- </span>--}}
|
||||
{{-- </div>--}}
|
||||
{{-- </div>--}}
|
||||
{{--</div>--}}
|
||||
|
|
|
|||
Loading…
Reference in New Issue