@php $folderLabels = ['INBOX'=>'Posteingang','Sent'=>'Gesendet','Drafts'=>'Entwürfe','Junk'=>'Spam','Trash'=>'Papierkorb','Archive'=>'Archiv','_starred'=>'Markiert']; $isDrafts = $folder === 'Drafts'; $isTrash = $folder === 'Trash'; $hasTabs = in_array($folder, ['INBOX', '_starred']); $unread = collect($messages)->where('seen', false)->count(); $mailbox = session('webmail_email'); $allUids = collect($messages)->pluck('uid')->values()->toJson(); $moveTargets = array_filter( ['INBOX'=>'Posteingang','Sent'=>'Gesendet','Archive'=>'Archiv','Junk'=>'Spam','Trash'=>'Papierkorb'], fn($k) => $k !== $folder, ARRAY_FILTER_USE_KEY ); $tabCounts = $hasTabs ? [ 'all' => count($messages), 'general' => collect($messages)->where('category', 'general')->count(), 'promo' => collect($messages)->where('category', 'promo')->count(), 'social' => collect($messages)->where('category', 'social')->count(), ] : []; @endphp
{{-- ═══ 1. TITEL ═══ --}}
{{ $mailbox }}
{{ $folderLabels[$folder] ?? $folder }} @if($unread > 0) {{ $unread }} ungelesen @endif
{{-- ═══ 2. SUCHE ═══ --}}
@if($searching) @elseif($search) @endif
@if($search && !$searching)
@if(empty($searchResults))
Keine Ergebnisse für „{{ $search }}"
@else @foreach($searchResults as $r)
{{ strtoupper(substr($r['from_name'] ?: $r['from'], 0, 1)) }}
{{ $r['from_name'] ?: $r['from'] }}
{{ $r['subject'] ?: '(kein Betreff)' }}
{{ $r['date'] ? \Carbon\Carbon::parse($r['date'])->format('d.m. H:i') : '' }}
@endforeach @endif
@endif
{{-- ═══ 3. TOOLBAR ═══ --}}
@if($isTrash && $total > 0) @endif Schreiben
{{-- ═══ 4+5. TABS + TABELLE ═══ --}}
@if($hasTabs && !empty($messages)) @php $tabs = ['all'=>'Alle', 'general'=>'Allgemein', 'promo'=>'Werbung', 'social'=>'Soziale Medien']; @endphp
@foreach($tabs as $tabKey => $tabLabel) @php $cnt = $tabCounts[$tabKey] ?? 0; $isActive = $tab === $tabKey; @endphp @if($tabKey === 'all' || $cnt > 0) @endif @endforeach
@endif {{-- Skeleton: sichtbar während Livewire lädt --}} @php $wt = 'load,switchFolder,switchTab,nextPage,prevPage,bulkDelete,bulkMoveTo,bulkMarkSeen,bulkMarkUnseen,toggleFlag,deleteDraft,emptyTrash'; @endphp {{-- Tabelle: thead immer sichtbar, tbody wechselt zwischen Skeleton und Inhalt --}} {{-- Betreff: nimmt den gesamten Rest --}} {{-- Skeleton tbody: via Custom-Events gesteuert --}} @for($i = 0; $i < 7; $i++) @php $senderW = [55,75,45,82,50,70,42,78,60,68][$i]; $subjW = [72,88,55,92,65,80,60,85,70,78][$i]; $delay = round($i * 0.09, 2); $delay2 = round($i * 0.09 + 0.12, 2); @endphp @endfor {{-- Echter Inhalt tbody --}} @if(empty($messages)) @else @foreach($messages as $msg) @php $uid = $msg['uid']; $unseen = !($msg['seen'] ?? true); $msgCat = $msg['category'] ?? 'general'; if ($hasTabs && $tab !== 'all' && $msgCat !== $tab) continue; $rowUrl = $isDrafts ? route('ui.webmail.compose', ['draftUid'=>$uid,'draftFolder'=>$folder]) : route('ui.webmail.view', ['uid'=>$uid,'folder'=>$folder]); $sName = $msg['from_name'] ?: $msg['from']; $sEmail = $msg['from']; @endphp {{-- Checkbox --}} {{-- Ungelesen-Dot --}} {{-- Stern --}} {{-- Absender (mit Hover-Tooltip nur auf dem Namen) --}} {{-- Betreff --}} {{-- Datum --}} {{-- ··· Aktionen --}} @endforeach @endif
{{ $isDrafts ? 'An' : 'Von' }} Betreff Datum
Keine Nachrichten
@if($unseen) @endif @if($isDrafts) @else @endif @if($isDrafts) {{ $msg['to'] ?? '—' }} @else {{ $sName }} @endif {{ $msg['subject'] ?: '(kein Betreff)' }} @if($msg['flagged'] ?? false) @endif @if($msg['has_attachments'] ?? false) @endif {{ $msg['date'] ? \Carbon\Carbon::parse($msg['date'])->format('d.m. H:i') : '—' }}
@if($total > $perPage)
{{ ($page-1)*$perPage+1 }}–{{ min($page*$perPage,$total) }} von {{ $total }}
@endif
{{-- /mbx-section --}} {{-- ═══ SENDER-TOOLTIP (position:fixed, kein x-teleport) ═══ --}}
{{-- ═══ RECHTSKLICK-MENÜ (position:fixed, kein x-teleport) ═══ --}}
@if(!$isDrafts) @php $btnStyle = "display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:7px 11px;border:none;background:none;cursor:pointer;border-radius:6px;font-size:12.5px;color:var(--mw-t2);"; @endphp @endif