mailwolt/resources/views/livewire/ui/security/fail2ban-banlist.blade.php

63 lines
3.1 KiB
PHP

<div>
<div class="mbx-domain-head">
<div class="mbx-domain-info">
<span class="mbx-badge-mute">Gebannte IPs</span>
<span class="mbx-domain-count">{{ count($rows) }}</span>
</div>
<button wire:click="refreshList" class="mbx-act-btn" title="Aktualisieren">
<svg width="13" height="13" viewBox="0 0 14 14" fill="none">
<path d="M12 7A5 5 0 1 1 9 2.5" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/>
<path d="M9 .5l2.5 2L9 4.5" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</button>
</div>
@if(empty($rows))
<div style="padding:16px;text-align:center;font-size:12px;color:var(--mw-t4)">
Keine aktiven Banns vorhanden.
</div>
@else
{{-- Spalten: Dot | IP | Dienst | Status+Zeit | Button --}}
<div style="padding:6px 12px 10px">
@foreach($rows as $r)
<div class="f2b-row {{ $r['style'] }}"
style="display:grid;grid-template-columns:8px 140px 80px 1fr 28px;align-items:center;gap:0 10px">
{{-- Dot --}}
<div class="f2b-dot {{ $r['style'] }}" style="justify-self:center"></div>
{{-- IP --}}
<code style="font-size:12px;color:var(--mw-t1);letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap">{{ $r['ip'] }}</code>
{{-- Dienst --}}
<div style="display:flex;align-items:center;overflow:hidden">
<span class="f2b-jail-badge" title="{{ $r['jail'] }}"
style="white-space:nowrap;overflow:hidden;text-overflow:ellipsis">{{ $r['service'] }}</span>
</div>
{{-- Status + Restzeit --}}
<div style="display:flex;align-items:center;gap:6px;min-width:0">
<span style="font-size:10.5px;white-space:nowrap;color:{{ $r['style'] === 'permanent' ? 'rgba(252,165,165,.8)' : 'rgba(252,211,77,.8)' }}">{{ $r['label'] }}</span>
@if($r['remaining'] !== '')
<span style="font-size:10.5px;color:var(--mw-t4);white-space:nowrap">{{ $r['remaining'] }}</span>
@endif
</div>
{{-- Button --}}
<button wire:click="unban('{{ $r['ip'] }}','{{ $r['jail'] }}')"
class="mbx-act-btn mbx-act-danger" title="Entbannen"
wire:confirm="IP {{ $r['ip'] }} aus {{ $r['jail'] }} entbannen?">
<svg width="12" height="12" viewBox="0 0 14 14" fill="none">
<rect x="1.5" y="6" width="11" height="6.5" rx="1.5" stroke="currentColor" stroke-width="1.2"/>
<path d="M4.5 6V4a2.5 2.5 0 0 1 5 0" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/>
<circle cx="7" cy="9.5" r=".8" fill="currentColor"/>
</svg>
</button>
</div>
@endforeach
</div>
@endif
</div>