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
|
||||||
<div class="flex items-center justify-between mb-2">
|
@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">
|
<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>
|
<i class="ph ph-archive-box text-white/70 text-[13px]"></i>
|
||||||
<span class="text-[11px] uppercase text-white/70">Backups</span>
|
<span class="text-[11px] uppercase text-white/70">Backups</span>
|
||||||
</div>
|
</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>
|
||||||
<div class="space-y-1 text-sm">
|
|
||||||
<div class="text-white/70">Letztes Backup: <span class="text-white/90">{{ $lastAt ?? '–' }}</span></div>
|
{{-- Laufender Fortschritt --}}
|
||||||
<div class="text-white/70">Größe: <span class="text-white/90">{{ $lastSize ?? '–' }}</span></div>
|
@if($state === 'running')
|
||||||
<div class="text-white/70">Dauer: <span class="text-white/90">{{ $lastDuration ?? '–' }}</span></div>
|
<div class="space-y-2">
|
||||||
<div>
|
<div class="text-white/80 text-sm">Sicherung läuft…</div>
|
||||||
<span class="px-2 py-0.5 rounded-full border text-xs
|
<ul class="space-y-1">
|
||||||
{{ $ok ? 'text-emerald-300 border-emerald-400/30 bg-emerald-500/10' : 'text-rose-300 border-rose-400/30 bg-rose-500/10' }}">
|
@foreach($steps as $k => $label)
|
||||||
{{ $ok === null ? 'unbekannt' : ($ok ? 'erfolgreich' : 'fehlgeschlagen') }}
|
@php
|
||||||
</span>
|
$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>
|
||||||
</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>
|
||||||
|
{{--<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