Files
WebAPP/resources/views/admin/list-generator/document.blade.php
Rhino ee89141628 UI-Verbesserungen, PWA-Icons, Branding und Settings-Erweiterung
Invertiertes Logo für Admin-Navbar, neue PWA-Icons, Manifest-Updates,
Tailwind-Config-Extraktion, Farb-/Namenseinstellungen im Admin-Bereich
und diverse Layout-Optimierungen.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 23:49:12 +01:00

177 lines
5.3 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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: #4a5e7a;
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">&mdash;</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>