parent
2fb66df19e
commit
dcb4456ba6
|
|
@ -1,56 +1,43 @@
|
|||
<div wire:poll.2s="refresh" class="p-5">
|
||||
|
||||
{{-- Header --}}
|
||||
<div class="flex items-center gap-3 mb-4">
|
||||
<div class="shrink-0 flex items-center justify-center w-10 h-10 rounded-xl"
|
||||
style="background:linear-gradient(135deg,#6366f1,#4338ca);box-shadow:0 0 16px rgba(99,102,241,.35)">
|
||||
<svg viewBox="0 0 28 28" width="18" height="18" fill="none">
|
||||
<path d="M5 19 C5 19 8 10 15 9 C19 8 23 11 24 15" stroke="white" stroke-width="2.5" stroke-linecap="round"/>
|
||||
<path d="M5 19 C6.5 22 9 23.5 12 23.5 C15 23.5 18 22 19.5 19" stroke="white" stroke-width="2.5" stroke-linecap="round"/>
|
||||
<circle cx="19" cy="8" r="2" fill="white"/>
|
||||
</svg>
|
||||
<div wire:poll.2s="refresh" class="p-4">
|
||||
<div class="flex items-center gap-3 mb-3">
|
||||
<div class="shrink-0 w-10 h-10 rounded-full bg-emerald-500/15 border border-emerald-400/30
|
||||
flex items-center justify-center">
|
||||
<i class="ph ph-arrows-clockwise text-xl {{ $state==='done' ? '' : 'animate-spin' }}"></i>
|
||||
</div>
|
||||
<div class="flex-1 min-w-0">
|
||||
<div class="text-[13px] font-semibold text-white/90">
|
||||
<div>
|
||||
<div class="text-white/90 font-semibold">
|
||||
{{ $state==='done'
|
||||
? ($rc===0 ? 'Update abgeschlossen' : 'Update fehlgeschlagen')
|
||||
: 'Update läuft …' }}
|
||||
</div>
|
||||
<div class="text-xs text-white/60">
|
||||
{{ $line ?? '–' }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- Log Tail --}}
|
||||
<div class="rounded-lg bg-black/40 border border-white/10 p-2 max-h-64 overflow-auto text-[12px] font-mono text-white/80">
|
||||
@foreach($tail as $l)
|
||||
{{ $l }}
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
<div class="mt-4 flex justify-end gap-2">
|
||||
@if($state==='done' && $rc===0)
|
||||
Update abgeschlossen
|
||||
@elseif($state === 'done')
|
||||
Update fehlgeschlagen
|
||||
@else
|
||||
Update wird durchgeführt …
|
||||
@endif
|
||||
</div>
|
||||
<div class="text-[11px] mt-0.5 truncate text-white/50">
|
||||
{{ $line ?: 'Warte auf Ausgabe …' }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- Log --}}
|
||||
<div class="rounded-lg text-[11px] font-mono leading-relaxed overflow-auto max-h-56 p-3 mb-4"
|
||||
style="background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.08);color:rgba(255,255,255,.55)">
|
||||
@forelse($tail as $l)
|
||||
<div>{{ $l }}</div>
|
||||
@empty
|
||||
<div style="color:rgba(255,255,255,.25)">Warte auf Log-Ausgabe …</div>
|
||||
@endforelse
|
||||
</div>
|
||||
|
||||
{{-- Footer --}}
|
||||
<div class="flex justify-end">
|
||||
@if($state === 'done')
|
||||
<button wire:click="$dispatch('closeModal')"
|
||||
class="inline-flex items-center gap-1.5 rounded-lg px-3 py-1.5 text-[12px] font-medium border transition-colors
|
||||
{{ $rc === 0
|
||||
? 'text-emerald-200 bg-emerald-500/10 border-emerald-400/30 hover:bg-emerald-500/20'
|
||||
: 'text-rose-200 bg-rose-500/10 border-rose-400/30 hover:bg-rose-500/20' }}">
|
||||
<button wire:click="$dispatch('closeModal')" class="px-3 py-1 rounded-md
|
||||
bg-emerald-500/10 border border-emerald-400/30 text-emerald-200">
|
||||
Schließen
|
||||
</button>
|
||||
@elseif($state==='done' && $rc!==0)
|
||||
<button wire:click="$dispatch('closeModal')" class="px-3 py-1 rounded-md
|
||||
bg-rose-500/10 border border-rose-400/30 text-rose-200">
|
||||
Schließen
|
||||
</button>
|
||||
@else
|
||||
<button disabled class="inline-flex items-center gap-1.5 rounded-lg px-3 py-1.5 text-[12px] border opacity-40 cursor-not-allowed text-white/40 border-white/10">
|
||||
<button class="px-3 py-1 rounded-md bg-white/10 border border-white/15 text-white/50 cursor-not-allowed" disabled>
|
||||
Bitte warten …
|
||||
</button>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue