Fix: Mailbox Stats über Dovecot mit config/mailpool.php

main v1.0.70
boban 2025-10-27 18:25:09 +01:00
parent d76ea0b703
commit 074d2da4ec
1 changed files with 79 additions and 13 deletions

View File

@ -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>--}}