- Fix: Notifiable-Trait zum User-Model hinzugefuegt (behebt notify()-500er) - Installer: SMTP-Verbindungstest mit EsmtpTransport + Ueberspringen-Link - Admin: Neuer E-Mail-Tab mit SMTP-Konfiguration + Verbindungstest - Admin: Lazy Quill-Initialisierung (nur sichtbare Locale wird geladen) - Uebersetzungen: 17 neue Mail-Keys in allen 6 Sprachen Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
177 lines
5.3 KiB
PHP
177 lines
5.3 KiB
PHP
<!DOCTYPE html>
|
||
<html lang="de">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<title>{{ $title }}</title>
|
||
<style>
|
||
@page {
|
||
size: {{ $orientation ?? 'portrait' }};
|
||
margin: 10mm;
|
||
}
|
||
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||
body {
|
||
font-family: 'DejaVu Sans', Helvetica, Arial, sans-serif;
|
||
font-size: {{ $fontSize ?? 10 }}pt;
|
||
color: #374151;
|
||
background: #f3f4f6;
|
||
}
|
||
|
||
/* Card container */
|
||
.card {
|
||
background: #ffffff;
|
||
border-radius: 8px;
|
||
overflow: hidden;
|
||
}
|
||
|
||
/* Dark header */
|
||
.card-header {
|
||
background: #1f2937;
|
||
padding: 14px 20px;
|
||
}
|
||
.card-header h1 {
|
||
font-size: {{ max(($fontSize ?? 10) + 4, 13) }}pt;
|
||
font-weight: 700;
|
||
color: #ffffff;
|
||
margin: 0;
|
||
}
|
||
.card-header .subtitle {
|
||
font-size: {{ max(($fontSize ?? 10), 9) }}pt;
|
||
color: #d1d5db;
|
||
margin-top: 2px;
|
||
}
|
||
|
||
/* Notes bar */
|
||
.notes-bar {
|
||
padding: 8px 20px;
|
||
background: #f9fafb;
|
||
border-bottom: 1px solid #e5e7eb;
|
||
font-size: {{ max(($fontSize ?? 10) - 1, 8) }}pt;
|
||
color: #4b5563;
|
||
}
|
||
|
||
/* Table */
|
||
table {
|
||
width: 100%;
|
||
border-collapse: collapse;
|
||
}
|
||
th {
|
||
background: #f3f4f6;
|
||
border-bottom: 1px solid #e5e7eb;
|
||
padding: 7px 12px;
|
||
text-align: left;
|
||
font-size: {{ max(($fontSize ?? 10) - 2, 7) }}pt;
|
||
font-weight: 600;
|
||
color: #6b7280;
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.5px;
|
||
}
|
||
td {
|
||
padding: 6px 12px;
|
||
border-bottom: 1px solid #f3f4f6;
|
||
font-size: {{ $fontSize ?? 10 }}pt;
|
||
color: #374151;
|
||
}
|
||
tr:nth-child(even) td {
|
||
background: #fafbfc;
|
||
}
|
||
.row-num {
|
||
color: #9ca3af;
|
||
font-size: {{ max(($fontSize ?? 10) - 2, 7) }}pt;
|
||
width: 28px;
|
||
font-family: monospace;
|
||
}
|
||
.empty-cell {
|
||
color: #d1d5db;
|
||
}
|
||
.link {
|
||
color: #2563eb;
|
||
text-decoration: none;
|
||
}
|
||
|
||
/* Footer bar */
|
||
.card-footer {
|
||
padding: 8px 20px;
|
||
background: #f9fafb;
|
||
border-top: 1px solid #e5e7eb;
|
||
font-size: {{ max(($fontSize ?? 10) - 3, 7) }}pt;
|
||
color: #9ca3af;
|
||
}
|
||
.card-footer table { border: none; }
|
||
.card-footer td {
|
||
border: none;
|
||
padding: 0;
|
||
background: none;
|
||
font-size: {{ max(($fontSize ?? 10) - 3, 7) }}pt;
|
||
color: #9ca3af;
|
||
}
|
||
.card-footer .right {
|
||
text-align: right;
|
||
}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<div class="card">
|
||
{{-- Dark header --}}
|
||
<div class="card-header">
|
||
<h1>{{ $title }}</h1>
|
||
@if ($subtitle)
|
||
<div class="subtitle">{{ $subtitle }}</div>
|
||
@endif
|
||
</div>
|
||
|
||
{{-- Notes --}}
|
||
@if ($notes)
|
||
<div class="notes-bar">{{ $notes }}</div>
|
||
@endif
|
||
|
||
{{-- Data table --}}
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th class="row-num">#</th>
|
||
@foreach ($columns as $key => $header)
|
||
<th>{{ $header }}</th>
|
||
@endforeach
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
@forelse ($rows as $i => $row)
|
||
<tr>
|
||
<td class="row-num">{{ $i + 1 }}</td>
|
||
@foreach ($columns as $key => $header)
|
||
<td>
|
||
@if (($key === 'email') && !empty($row[$key]))
|
||
<a class="link" href="mailto:{{ $row[$key] }}">{{ $row[$key] }}</a>
|
||
@elseif (($key === 'phone') && !empty($row[$key]) && $row[$key] !== '–')
|
||
<a class="link" href="tel:{{ $row[$key] }}">{{ $row[$key] }}</a>
|
||
@elseif (($row[$key] ?? '') === '')
|
||
<span class="empty-cell">—</span>
|
||
@else
|
||
{{ $row[$key] }}
|
||
@endif
|
||
</td>
|
||
@endforeach
|
||
</tr>
|
||
@empty
|
||
<tr>
|
||
<td colspan="{{ count($columns) + 1 }}" style="text-align: center; color: #9ca3af; padding: 20px;">
|
||
{{ __('admin.no_entries') }}
|
||
</td>
|
||
</tr>
|
||
@endforelse
|
||
</tbody>
|
||
</table>
|
||
|
||
{{-- Footer bar --}}
|
||
<div class="card-footer">
|
||
<table>
|
||
<tr>
|
||
<td>{{ count($rows) }} {{ __('admin.list_entries_count') }}</td>
|
||
<td class="right">{{ __('admin.list_generated_at') }}: {{ $generatedAt->translatedFormat('d.m.Y, H:i') }} Uhr</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|