Add documentation and templates for Start-/Ergebnislisten v07: Introduce foundational templates, print styles and partials, and consolidate related session notes.
This commit is contained in:
@@ -0,0 +1,237 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Ergebnisliste - Turniersystem</title>
|
||||
<style>
|
||||
/* --- PRINT SETTINGS --- */
|
||||
@page {
|
||||
size: A4;
|
||||
margin: 15mm 10mm 20mm 10mm;
|
||||
@bottom-right {
|
||||
content: "Seite " counter(page) " von " counter(pages);
|
||||
font-family: sans-serif;
|
||||
font-size: 8pt;
|
||||
}
|
||||
@bottom-left {
|
||||
content: "Gedruckt: 30.03.2026 21:15"; /* Dynamisch zu füllen */
|
||||
font-family: sans-serif;
|
||||
font-size: 8pt;
|
||||
}
|
||||
}
|
||||
|
||||
:root {
|
||||
--font-main: 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
||||
--border-color: #333;
|
||||
--row-border: #ccc;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: var(--font-main);
|
||||
font-size: 9pt;
|
||||
line-height: 1.2;
|
||||
margin: 0;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/* --- HEADER --- */
|
||||
header {
|
||||
border-bottom: 2px solid var(--border-color);
|
||||
padding-bottom: 5px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.header-top {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: flex-end;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 18pt;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.software-version {
|
||||
font-size: 8pt;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
/* --- METADATA GRID --- */
|
||||
.metadata {
|
||||
display: grid;
|
||||
grid-template-columns: 2fr 1fr 1.5fr;
|
||||
gap: 10px;
|
||||
margin-bottom: 10px;
|
||||
font-size: 9pt;
|
||||
}
|
||||
|
||||
.meta-item {
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
.label {
|
||||
font-weight: normal;
|
||||
display: inline-block;
|
||||
min-width: 80px;
|
||||
}
|
||||
|
||||
.value {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.officials {
|
||||
margin-top: 5px;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/* --- TABLE --- */
|
||||
table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
thead th {
|
||||
border-top: 1px solid var(--border-color);
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
text-align: left;
|
||||
padding: 4px 2px;
|
||||
font-size: 8pt;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
tbody td {
|
||||
border-bottom: 1px solid var(--row-border);
|
||||
padding: 6px 2px;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
/* Spaltenbreiten & Ausrichtung */
|
||||
.col-pos { width: 30px; font-weight: bold; text-align: center; }
|
||||
.col-knr { width: 45px; }
|
||||
.col-horse { width: 30%; }
|
||||
.col-rider { width: 30%; }
|
||||
.col-cat { width: 25px; text-align: center; }
|
||||
.col-land { width: 40px; text-align: center; }
|
||||
.col-score { width: 60px; text-align: right; font-weight: bold; }
|
||||
.col-prize { width: 60px; text-align: right; }
|
||||
|
||||
/* Multi-line fields */
|
||||
.sub-info {
|
||||
display: block;
|
||||
font-size: 7.5pt;
|
||||
color: #333;
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
/* Zebra-Striping optional */
|
||||
/* tbody tr:nth-child(even) { background-color: #f9f9f9; } */
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header>
|
||||
<div class="header-top">
|
||||
<h1>Ergebnisliste für Bewerb Nr.: 8 Abteilung: 1</h1>
|
||||
<div class="software-version">PSO v1.07</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="metadata">
|
||||
<div>
|
||||
<div class="meta-item"><span class="label">Turnier:</span> <span class="value">Neumarkt/M. OÖ - CDN-C_Neu CDNP-C_Neu</span></div>
|
||||
<div class="meta-item"><span class="label">Prüfung:</span> <span class="value">Dressurreiterprüfung</span></div>
|
||||
<div class="meta-item"><span class="label">Anzahl Starter:</span> <span class="value">8</span> <span class="label">Platziert:</span> <span class="value">5</span></div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="meta-item"><span class="label">Turnier Nr.:</span> <span class="value">25320</span></div>
|
||||
<div class="meta-item"><span class="label">Klasse:</span> <span class="value">A</span></div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="meta-item"><span class="label">am</span> <span class="value">08.06.2025</span></div>
|
||||
<div class="meta-item"><span class="label">Start um</span> <span class="value">12:30</span></div>
|
||||
<div class="meta-item"><span class="label">Richtverfahren:</span> <span class="value">A</span></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="officials">
|
||||
Richter: C: Oberhumer Julia;
|
||||
</div>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="col-pos">Pos.</th>
|
||||
<th class="col-knr">Kopf Nr.</th>
|
||||
<th class="col-horse">Pferd<br><span style="font-size:7pt">Abstammung</span></th>
|
||||
<th class="col-rider">Reiter<br><span style="font-size:7pt">Verein</span></th>
|
||||
<th class="col-cat">K</th>
|
||||
<th class="col-land">Land</th>
|
||||
<th class="col-score">Wertung<br><span style="font-size:7pt">Gesamtnote</span></th>
|
||||
<th class="col-prize">Geldpreis</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="col-pos">1</td>
|
||||
<td class="col-knr">5617</td>
|
||||
<td class="col-horse">
|
||||
<strong>Amigo 222</strong>
|
||||
<span class="sub-info">Andalusier-PRE/2013/W/Brauner/Decisivo A</span>
|
||||
</td>
|
||||
<td class="col-rider">
|
||||
<strong>Pelzeder Sandra</strong>
|
||||
<span class="sub-info">Sportunion Pferdefreunde Altenberg</span>
|
||||
</td>
|
||||
<td class="col-cat"></td>
|
||||
<td class="col-land">O</td>
|
||||
<td class="col-score">8,00</td>
|
||||
<td class="col-prize"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-pos">2</td>
|
||||
<td class="col-knr">4G13</td>
|
||||
<td class="col-horse">
|
||||
<strong>Kokusz</strong>
|
||||
<span class="sub-info">Ung. HB/2011/S/Fuchs/3108 Dárda</span>
|
||||
</td>
|
||||
<td class="col-rider">
|
||||
<strong>Resch Lisa</strong>
|
||||
<span class="sub-info">Reitclub Scherhaufgut</span>
|
||||
</td>
|
||||
<td class="col-cat"></td>
|
||||
<td class="col-land">O</td>
|
||||
<td class="col-score">7,80</td>
|
||||
<td class="col-prize"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-pos">3</td>
|
||||
<td class="col-knr">A404</td>
|
||||
<td class="col-horse">
|
||||
<strong>Cordonello</strong>
|
||||
<span class="sub-info">Österr. WB/2018/W/Schimmel/Cordolensky</span>
|
||||
</td>
|
||||
<td class="col-rider">
|
||||
<strong>Neubauer Sandra</strong>
|
||||
<span class="sub-info">Union Reiterhof Premser</span>
|
||||
</td>
|
||||
<td class="col-cat"></td>
|
||||
<td class="col-land">O</td>
|
||||
<td class="col-score">5,00</td>
|
||||
<td class="col-prize"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<footer style="position: fixed; bottom: 0; width: 100%; font-size: 8pt; border-top: 1px solid #eee; padding-top: 5px;">
|
||||
<div style="display: flex; justify-content: space-between;">
|
||||
<span>Gedruckt: 08.06.2025 16:09:22</span>
|
||||
<span>Seite 1 von 1</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,217 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<style>
|
||||
/* --- DESIGN SYSTEM --- */
|
||||
:root {
|
||||
--primary-color: #1a2b3c; /* Dunkelblau/Anthrazit */
|
||||
--accent-gray: #f8f9fa;
|
||||
--border-light: #e0e0e0;
|
||||
--text-main: #212529;
|
||||
--text-muted: #6c757d;
|
||||
--font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
|
||||
}
|
||||
|
||||
@page {
|
||||
size: A4;
|
||||
margin: 15mm;
|
||||
@bottom-center {
|
||||
content: "Seite " counter(page) " von " counter(pages);
|
||||
font-family: var(--font-family);
|
||||
font-size: 8pt;
|
||||
color: var(--text-muted);
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: var(--font-family);
|
||||
color: var(--text-main);
|
||||
line-height: 1.4;
|
||||
margin: 0;
|
||||
-webkit-print-color-adjust: exact;
|
||||
}
|
||||
|
||||
/* --- HEADER & METADATA --- */
|
||||
header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: flex-start;
|
||||
border-bottom: 3px solid var(--primary-color);
|
||||
padding-bottom: 10px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.title-area h1 {
|
||||
font-size: 20pt;
|
||||
margin: 0;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 1px;
|
||||
color: var(--primary-color);
|
||||
}
|
||||
|
||||
.badge-bewerb {
|
||||
background: var(--primary-color);
|
||||
color: white;
|
||||
padding: 4px 12px;
|
||||
border-radius: 4px;
|
||||
font-weight: bold;
|
||||
font-size: 11pt;
|
||||
margin-top: 5px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.event-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
gap: 20px;
|
||||
background: var(--accent-gray);
|
||||
padding: 15px;
|
||||
border-radius: 8px;
|
||||
margin-bottom: 20px;
|
||||
font-size: 9pt;
|
||||
}
|
||||
|
||||
.meta-box strong {
|
||||
display: block;
|
||||
color: var(--text-muted);
|
||||
text-transform: uppercase;
|
||||
font-size: 7pt;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
/* --- TABLE DESIGN --- */
|
||||
table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
thead th {
|
||||
text-align: left;
|
||||
padding: 10px 5px;
|
||||
border-bottom: 2px solid var(--primary-color);
|
||||
font-size: 8pt;
|
||||
text-transform: uppercase;
|
||||
color: var(--primary-color);
|
||||
}
|
||||
|
||||
tbody tr {
|
||||
border-bottom: 1px solid var(--border-light);
|
||||
}
|
||||
|
||||
tbody td {
|
||||
padding: 10px 5px;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
/* Spalten-Styling */
|
||||
.rank { font-weight: bold; font-size: 11pt; width: 35px; }
|
||||
.knr { color: var(--text-muted); font-family: monospace; width: 50px; }
|
||||
.name-bold { font-weight: 600; font-size: 10pt; display: block; }
|
||||
.sub-text { font-size: 8pt; color: var(--text-muted); display: block; margin-top: 2px; }
|
||||
|
||||
.score-cell {
|
||||
text-align: right;
|
||||
font-weight: bold;
|
||||
font-size: 11pt;
|
||||
background: rgba(26, 43, 60, 0.03);
|
||||
width: 80px;
|
||||
}
|
||||
|
||||
.nation-flag {
|
||||
font-weight: bold;
|
||||
color: #d32f2f; /* Dezent für AUT-Klub Kennzeichnung */
|
||||
}
|
||||
|
||||
/* --- FOOTER --- */
|
||||
footer {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
font-size: 7pt;
|
||||
color: var(--text-muted);
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
border-top: 1px solid var(--border-light);
|
||||
padding-top: 5px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header>
|
||||
<div class="title-area">
|
||||
<h1>Ergebnisliste</h1>
|
||||
<div class="badge-bewerb">Bewerb 08 | Abt. 1</div>
|
||||
</div>
|
||||
<div style="text-align: right; font-size: 8pt; color: var(--text-muted);">
|
||||
Turnier-ID: 25320<br>
|
||||
Reglement: ÖTO 2026
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="event-grid">
|
||||
<div class="meta-box">
|
||||
<strong>Veranstaltungsort</strong>
|
||||
Neumarkt/M. OÖ — CDN-C_Neu
|
||||
</div>
|
||||
<div class="meta-box">
|
||||
<strong>Prüfung / Klasse</strong>
|
||||
Dressurreiterprüfung | Klasse A
|
||||
</div>
|
||||
<div class="meta-box">
|
||||
<strong>Datum / Richter</strong>
|
||||
08.06.2025 | Julia Oberhumer (C)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Rang</th>
|
||||
<th>KNR</th>
|
||||
<th>Pferd / Abstammung</th>
|
||||
<th>Reiter / Verein</th>
|
||||
<th style="text-align:center">Land</th>
|
||||
<th style="text-align:right">Wertung</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="rank">1</td>
|
||||
<td class="knr">5617</td>
|
||||
<td>
|
||||
<span class="name-bold">Amigo 222</span>
|
||||
<span class="sub-text">Andalusier-PRE / 2013 / W / Brauner</span>
|
||||
</td>
|
||||
<td>
|
||||
<span class="name-bold">Pelzeder Sandra</span>
|
||||
<span class="sub-text">Sportunion Pferdefreunde Altenberg</span>
|
||||
</td>
|
||||
<td style="text-align:center" class="nation-flag">AUT</td>
|
||||
<td class="score-cell">8,00</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="rank">2</td>
|
||||
<td class="knr">4G13</td>
|
||||
<td>
|
||||
<span class="name-bold">Kokusz</span>
|
||||
<span class="sub-text">Ung. HB / 2011 / S / Fuchs</span>
|
||||
</td>
|
||||
<td>
|
||||
<span class="name-bold">Resch Lisa</span>
|
||||
<span class="sub-text">Reitclub Scherhaufgut</span>
|
||||
</td>
|
||||
<td style="text-align:center" class="nation-flag">AUT</td>
|
||||
<td class="score-cell">7,80</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<footer>
|
||||
<span>Erstellt mit Turniersystem Pro v1.07</span>
|
||||
<span>Zeitstempel: 30.03.2026 21:10</span>
|
||||
</footer>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,255 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<style>
|
||||
:root {
|
||||
--primary-dark: #1a202c;
|
||||
--accent-blue: #2b6cb0;
|
||||
--gray-bg: #f7fafc;
|
||||
--border-color: #e2e8f0;
|
||||
--text-main: #2d3748;
|
||||
--text-muted: #718096;
|
||||
--font-sans: 'Inter', -apple-system, sans-serif;
|
||||
}
|
||||
|
||||
@page {
|
||||
size: A4;
|
||||
margin: 12mm;
|
||||
@bottom-left {
|
||||
content: "Generiert am: 30.03.2026";
|
||||
font-size: 7pt;
|
||||
color: #a0aec0;
|
||||
}
|
||||
@bottom-right {
|
||||
content: "Seite " counter(page) " von " counter(pages);
|
||||
font-size: 7pt;
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: var(--font-sans);
|
||||
color: var(--text-main);
|
||||
font-size: 9pt;
|
||||
line-height: 1.3;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* --- HEADER SECTION --- */
|
||||
.event-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
border-bottom: 2px solid var(--primary-dark);
|
||||
padding-bottom: 10px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.event-title h1 {
|
||||
font-size: 16pt;
|
||||
margin: 0;
|
||||
color: var(--primary-dark);
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
.event-id {
|
||||
font-family: monospace;
|
||||
background: var(--primary-dark);
|
||||
color: white;
|
||||
padding: 2px 8px;
|
||||
border-radius: 4px;
|
||||
font-size: 9pt;
|
||||
}
|
||||
|
||||
/* --- DETAIL GRID --- */
|
||||
.info-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 20px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.info-group {
|
||||
background: var(--gray-bg);
|
||||
padding: 10px;
|
||||
border-radius: 6px;
|
||||
border: 1px solid var(--border-color);
|
||||
}
|
||||
|
||||
.info-group h2 {
|
||||
font-size: 7pt;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.05em;
|
||||
color: var(--accent-blue);
|
||||
margin: 0 0 5px 0;
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
padding-bottom: 3px;
|
||||
}
|
||||
|
||||
.detail-row {
|
||||
display: flex;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
.detail-label {
|
||||
width: 100px;
|
||||
font-weight: 600;
|
||||
font-size: 8pt;
|
||||
}
|
||||
|
||||
/* --- START LIST TABLE --- */
|
||||
table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
thead th {
|
||||
text-align: left;
|
||||
background: var(--primary-dark);
|
||||
color: white;
|
||||
padding: 8px 5px;
|
||||
font-size: 8pt;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
tbody tr {
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
}
|
||||
|
||||
tbody tr:nth-child(even) {
|
||||
background-color: #fcfcfc;
|
||||
}
|
||||
|
||||
.col-time { width: 60px; font-weight: bold; color: var(--accent-blue); }
|
||||
.col-knr { width: 45px; font-family: monospace; font-weight: bold; }
|
||||
.col-rider { width: 35%; }
|
||||
.col-horse { width: 35%; }
|
||||
.col-nat { width: 40px; text-align: center; font-weight: bold; }
|
||||
|
||||
.sub-data {
|
||||
display: block;
|
||||
font-size: 7.5pt;
|
||||
color: var(--text-muted);
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.name-main {
|
||||
display: block;
|
||||
font-weight: 700;
|
||||
font-size: 9.5pt;
|
||||
}
|
||||
|
||||
.badge-status {
|
||||
font-size: 7pt;
|
||||
padding: 1px 4px;
|
||||
border-radius: 3px;
|
||||
background: #edf2f7;
|
||||
border: 1px solid #cbd5e0;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header class="event-header">
|
||||
<div class="event-title">
|
||||
<h1>STARTLISTE</h1>
|
||||
<span style="color: var(--accent-blue); font-weight: 600;">CDN-C Neumarkt / Oberösterreich</span>
|
||||
</div>
|
||||
<div style="text-align: right">
|
||||
<span class="event-id">Turnier-Nr: 25320</span>
|
||||
<div style="font-size: 8pt; margin-top: 5px;">08.06.2025 – 10.06.2025</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="info-grid">
|
||||
<div class="info-group">
|
||||
<h2>Bewerb-Informationen</h2>
|
||||
<div class="detail-row">
|
||||
<span class="detail-label">Bewerb:</span>
|
||||
<span><strong>008</strong> | Dressurreiterprüfung</span>
|
||||
</div>
|
||||
<div class="detail-row">
|
||||
<span class="detail-label">Klasse/Aufg:</span>
|
||||
<span>A | Aufgabe A3 (20x40m)</span>
|
||||
</div>
|
||||
<div class="detail-row">
|
||||
<span class="detail-label">Richtverf.:</span>
|
||||
<span>ÖTO §204.2 (Gemeinsames Richten)</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="info-group">
|
||||
<h2>Jury & Offizielle</h2>
|
||||
<div class="detail-row">
|
||||
<span class="detail-label">Richter:</span>
|
||||
<span>Julia Oberhumer (C), Dr. Max Mustermann</span>
|
||||
</div>
|
||||
<div class="detail-row">
|
||||
<span class="detail-label">Parcours:</span>
|
||||
<span>Ing. Franz Beispieler</span>
|
||||
</div>
|
||||
<div class="detail-row">
|
||||
<span class="detail-label">Startzeit:</span>
|
||||
<span><strong>12:30 Uhr</strong></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="col-time">Zeit</th>
|
||||
<th class="col-knr">KNR</th>
|
||||
<th class="col-rider">Reiter / Verein</th>
|
||||
<th class="col-nat">Nat.</th>
|
||||
<th class="col-horse">Pferd / Abstammung</th>
|
||||
<th style="text-align: right;">Info</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="col-time">12:30</td>
|
||||
<td class="col-knr">5617</td>
|
||||
<td>
|
||||
<span class="name-main">PELZEDER Sandra</span>
|
||||
<span class="sub-data">Sportunion Pferdefreunde Altenberg</span>
|
||||
</td>
|
||||
<td class="col-nat">AUT</td>
|
||||
<td>
|
||||
<span class="name-main">Amigo 222</span>
|
||||
<span class="sub-data">PRE / 2013 / W / Brauner / Decisivo A</span>
|
||||
</td>
|
||||
<td style="text-align: right;"><span class="badge-status">OK</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-time">12:38</td>
|
||||
<td class="col-knr">4G13</td>
|
||||
<td>
|
||||
<span class="name-main">RESCH Lisa</span>
|
||||
<span class="sub-data">Reitclub Scherhaufgut</span>
|
||||
</td>
|
||||
<td class="col-nat">AUT</td>
|
||||
<td>
|
||||
<span class="name-main">Kokusz</span>
|
||||
<span class="sub-data">Ung. HB / 2011 / S / Fuchs / Dárda</span>
|
||||
</td>
|
||||
<td style="text-align: right;"><span class="badge-status">OK</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-time">12:46</td>
|
||||
<td class="col-knr">4Y59</td>
|
||||
<td>
|
||||
<span class="name-main">RINTELEN-BERNEGGER Flora</span>
|
||||
<span class="sub-data">Reitverein Exaequo</span>
|
||||
</td>
|
||||
<td class="col-nat">AUT</td>
|
||||
<td>
|
||||
<span class="name-main">Legolas 196</span>
|
||||
<span class="sub-data">Oldenburger / 2011 / W / Brauner / Levisonn</span>
|
||||
</td>
|
||||
<td style="text-align: right;"><span class="badge-status">a.K.</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,212 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<style>
|
||||
:root {
|
||||
--primary: #000;
|
||||
--secondary: #4a5568;
|
||||
--bg-light: #f8f9fa;
|
||||
--border: #cbd5e0;
|
||||
--font-size-main: 9pt;
|
||||
--font-size-sub: 7.5pt;
|
||||
}
|
||||
|
||||
@page {
|
||||
size: A4;
|
||||
margin: 10mm 12mm 15mm 12mm;
|
||||
@bottom-left { content: "Turniersystem 2026"; font-size: 7pt; color: #718096; }
|
||||
@bottom-right { content: "Seite " counter(page) " von " counter(pages); font-size: 7pt; }
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
||||
color: var(--primary);
|
||||
font-size: var(--font-size-main);
|
||||
line-height: 1.25;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* --- HEADER: Turnier & Bewerb --- */
|
||||
.header-container {
|
||||
border-bottom: 2px solid var(--primary);
|
||||
margin-bottom: 15px;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
.top-row {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: baseline;
|
||||
}
|
||||
|
||||
.top-row h1 {
|
||||
font-size: 16pt;
|
||||
margin: 0;
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.meta-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1.5fr 1fr 1fr;
|
||||
gap: 15px;
|
||||
margin-top: 10px;
|
||||
padding: 8px;
|
||||
background-color: var(--bg-light);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.meta-item b {
|
||||
display: block;
|
||||
font-size: 6.5pt;
|
||||
text-transform: uppercase;
|
||||
color: var(--secondary);
|
||||
}
|
||||
|
||||
/* --- TABLE --- */
|
||||
table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
thead th {
|
||||
text-align: left;
|
||||
border-top: 1px solid var(--primary);
|
||||
border-bottom: 1px solid var(--primary);
|
||||
padding: 6px 4px;
|
||||
font-size: 8pt;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
tbody td {
|
||||
border-bottom: 1px solid var(--border);
|
||||
padding: 8px 4px;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.col-time { width: 50px; font-weight: bold; }
|
||||
.col-knr { width: 45px; font-family: 'Courier New', Courier, monospace; }
|
||||
.col-rider { width: 35%; }
|
||||
.col-horse { width: 35%; }
|
||||
.col-nat { width: 35px; text-align: center; }
|
||||
|
||||
.main-info { display: block; font-weight: bold; font-size: 9.5pt; }
|
||||
.sub-info { display: block; font-size: var(--font-size-sub); color: var(--secondary); margin-top: 2px; }
|
||||
|
||||
.officials-box {
|
||||
margin-top: 8px;
|
||||
font-size: 8pt;
|
||||
font-style: italic;
|
||||
color: var(--secondary);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header class="header-container">
|
||||
<div class="top-row">
|
||||
<h1>Startliste</h1>
|
||||
<div style="text-align: right;">
|
||||
<b>Turnier Nr.:</b> 25320<br>
|
||||
<b>Datum:</b> 30.03.2026
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="meta-grid">
|
||||
<div class="meta-item">
|
||||
<b>Bewerb / Abteilung</b>
|
||||
Bewerb Nr. 08 | Abteilung 1
|
||||
</div>
|
||||
<div class="meta-item">
|
||||
<b>Prüfung / Klasse</b>
|
||||
Dressurreiterprüfung | Klasse A
|
||||
</div>
|
||||
<div class="meta-item">
|
||||
<b>Ort / Land</b>
|
||||
Neumarkt/M. OÖ | AUT
|
||||
</div>
|
||||
<div class="meta-item">
|
||||
<b>Aufgabe / Viereck</b>
|
||||
Aufgabe A3 | 20 x 40 m
|
||||
</div>
|
||||
<div class="meta-item">
|
||||
<b>Richtverfahren</b>
|
||||
A (ÖTO §204.2)
|
||||
</div>
|
||||
<div class="meta-item">
|
||||
<b>Startzeit</b>
|
||||
12:30 Uhr
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="officials-box">
|
||||
Richter: C: Oberhumer Julia; M: Dr. Max Mustermann; Parcours: Ing. Franz Beispieler
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="col-time">Start</th>
|
||||
<th class="col-knr">KNR</th>
|
||||
<th class="col-rider">Reiter <span style="font-weight: normal; font-size: 7pt;">/ Verein</span></th>
|
||||
<th class="col-nat">Land</th>
|
||||
<th class="col-horse">Pferd <span style="font-weight: normal; font-size: 7pt;">/ Abstammung</span></th>
|
||||
<th style="text-align: right;">Info</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="col-time">12:30</td>
|
||||
<td class="col-knr">5617</td>
|
||||
<td>
|
||||
<span class="main-info">PELZEDER Sandra</span>
|
||||
<span class="sub-info">Sportunion Pferdefreunde Altenberg</span>
|
||||
</td>
|
||||
<td class="col-nat">AUT</td> <td>
|
||||
<span class="main-info">Amigo 222</span>
|
||||
<span class="sub-info">Andalusier-PRE / 2013 / W / Brauner / Decisivo A</span>
|
||||
</td>
|
||||
<td style="text-align: right; font-size: 7pt;"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-time">12:38</td>
|
||||
<td class="col-knr">4G13</td>
|
||||
<td>
|
||||
<span class="main-info">RESCH Lisa</span>
|
||||
<span class="sub-info">Reitclub Scherhaufgut</span>
|
||||
</td>
|
||||
<td class="col-nat">AUT</td>
|
||||
<td>
|
||||
<span class="main-info">Kokusz</span>
|
||||
<span class="sub-info">Ung. HB / 2011 / S / Fuchs / 3108 Dárda</span>
|
||||
</td>
|
||||
<td style="text-align: right; font-size: 7pt;"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-time">12:46</td>
|
||||
<td class="col-knr">4Y59</td>
|
||||
<td>
|
||||
<span class="main-info">RINTELEN-BERNEGGER Flora</span>
|
||||
<span class="sub-info">Reitverein Exaequo</span>
|
||||
</td>
|
||||
<td class="col-nat">AUT</td>
|
||||
<td>
|
||||
<span class="main-info">Legolas 196</span>
|
||||
<span class="sub-info">Oldenburger / 2011 / W / Brauner / Levisonn</span>
|
||||
</td>
|
||||
<td style="text-align: right; font-size: 7pt;">a.K.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<footer style="position: fixed; bottom: 0; width: 100%; font-size: 7pt; color: var(--secondary); border-top: 1px solid var(--border); padding-top: 4px;">
|
||||
<span>Gedruckt: 30.03.2026 21:30:22</span>
|
||||
<span style="float: right;">Bewerb 08 | Abteilung 1</span>
|
||||
</footer>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,217 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<style>
|
||||
:root {
|
||||
--primary: #000;
|
||||
--secondary: #4a5568;
|
||||
--highlight: #2d3748;
|
||||
--bg-light: #f8f9fa;
|
||||
--border: #cbd5e0;
|
||||
--font-main: 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
||||
}
|
||||
|
||||
@page {
|
||||
size: A4;
|
||||
margin: 10mm 12mm 15mm 12mm;
|
||||
@bottom-left { content: "Turniersystem PRO v1.07"; font-size: 7pt; color: #718096; }
|
||||
@bottom-right { content: "Seite " counter(page) " von " counter(pages); font-size: 7pt; }
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: var(--font-main);
|
||||
color: var(--primary);
|
||||
font-size: 9pt;
|
||||
line-height: 1.3;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* --- HEADER BEREICH --- */
|
||||
header {
|
||||
border-bottom: 2px solid var(--primary);
|
||||
margin-bottom: 15px;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
.title-row {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.title-group h1 {
|
||||
font-size: 22pt;
|
||||
margin: 0;
|
||||
font-weight: 900;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: -0.5px;
|
||||
}
|
||||
|
||||
/* Gewünschte Änderung: Bewerb prominent links */
|
||||
.bewerb-subtitle {
|
||||
font-size: 14pt;
|
||||
font-weight: 600;
|
||||
color: var(--highlight);
|
||||
margin-top: -2px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.tournament-info {
|
||||
text-align: right;
|
||||
font-size: 8.5pt;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
/* --- DETAIL GRID --- */
|
||||
.meta-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1.5fr 1fr 1fr;
|
||||
gap: 12px;
|
||||
margin-top: 12px;
|
||||
padding: 10px;
|
||||
background-color: var(--bg-light);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.meta-item b {
|
||||
display: block;
|
||||
font-size: 6.5pt;
|
||||
text-transform: uppercase;
|
||||
color: var(--secondary);
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
.meta-item span {
|
||||
font-size: 9pt;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
/* --- TABELLE --- */
|
||||
table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
thead th {
|
||||
text-align: left;
|
||||
border-top: 1px solid var(--primary);
|
||||
border-bottom: 1px solid var(--primary);
|
||||
padding: 8px 4px;
|
||||
font-size: 8pt;
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
tbody tr {
|
||||
border-bottom: 1px solid var(--border);
|
||||
}
|
||||
|
||||
tbody td {
|
||||
padding: 10px 4px;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.col-time { width: 55px; font-weight: bold; }
|
||||
.col-knr { width: 50px; font-family: 'Courier New', monospace; font-weight: bold; }
|
||||
|
||||
.main-info { display: block; font-weight: bold; font-size: 10pt; }
|
||||
.sub-info { display: block; font-size: 7.5pt; color: var(--secondary); margin-top: 3px; }
|
||||
|
||||
.officials-text {
|
||||
margin-top: 10px;
|
||||
font-size: 8pt;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header>
|
||||
<div class="title-row">
|
||||
<div class="title-group">
|
||||
<h1>Startliste</h1>
|
||||
<div class="bewerb-subtitle">Bewerb Nr. 008 | Abteilung 1</div>
|
||||
</div>
|
||||
<div class="tournament-info">
|
||||
<b>Turnier-Nr.:</b> 25320<br>
|
||||
<b>Datum:</b> 30.03.2026<br>
|
||||
<b>Ort:</b> Neumarkt/M. OÖ
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="meta-grid">
|
||||
<div class="meta-item">
|
||||
<b>Prüfung / Klasse</b>
|
||||
<span>Dressurreiterprüfung | Klasse A</span>
|
||||
</div>
|
||||
<div class="meta-item">
|
||||
<b>Aufgabe / Viereck</b>
|
||||
<span>Aufgabe A3 | 20 x 40 m</span>
|
||||
</div>
|
||||
<div class="meta-item">
|
||||
<b>Richtverfahren</b>
|
||||
<span>A (ÖTO §204.2)</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="officials-text">
|
||||
<b>Richter:</b> C: Oberhumer Julia; M: Dr. Max Mustermann | <b>Parcours:</b> Ing. Franz Beispieler
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="col-time">Start</th>
|
||||
<th class="col-knr">KNR</th>
|
||||
<th style="width: 35%;">Reiter / Verein</th>
|
||||
<th style="width: 35%;">Pferd / Abstammung</th>
|
||||
<th style="text-align: center; width: 40px;">Land</th>
|
||||
<th style="text-align: right;">Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="col-time">12:30</td>
|
||||
<td class="col-knr">5617</td>
|
||||
<td>
|
||||
<span class="main-info">PELZEDER Sandra</span>
|
||||
<span class="sub-info">Sportunion Pferdefreunde Altenberg</span>
|
||||
</td>
|
||||
<td>
|
||||
<span class="main-info">Amigo 222</span>
|
||||
<span class="sub-info">Andalusier-PRE / 2013 / W / Brauner / Decisivo A</span>
|
||||
</td>
|
||||
<td style="text-align: center; font-weight: bold;">AUT</td>
|
||||
<td style="text-align: right; font-size: 8pt;">OK</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-time">12:38</td>
|
||||
<td class="col-knr">4G13</td>
|
||||
<td>
|
||||
<span class="main-info">RESCH Lisa</span>
|
||||
<span class="sub-info">Reitclub Scherhaufgut</span>
|
||||
</td>
|
||||
<td>
|
||||
<span class="main-info">Kokusz</span>
|
||||
<span class="sub-info">Ung. HB / 2011 / S / Fuchs / 3108 Dárda</span>
|
||||
</td>
|
||||
<td style="text-align: center; font-weight: bold;">AUT</td>
|
||||
<td style="text-align: right; font-size: 8pt;">OK</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<footer style="position: fixed; bottom: 0; width: 100%; font-size: 7pt; color: var(--secondary); border-top: 1px solid var(--border); padding-top: 5px;">
|
||||
<div style="display: flex; justify-content: space-between;">
|
||||
<span>Gedruckt am 30.03.2026 um 21:35 Uhr</span>
|
||||
<span>Bewerb 008 | Abteilung 1</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,278 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<style>
|
||||
:root {
|
||||
--primary: #000;
|
||||
--secondary: #4a5568;
|
||||
--highlight: #1a202c;
|
||||
--bg-light: #f8f9fa;
|
||||
--border: #cbd5e0;
|
||||
--font-main: 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
||||
}
|
||||
|
||||
@page {
|
||||
size: A4;
|
||||
margin: 10mm 12mm 15mm 12mm;
|
||||
@bottom-left {
|
||||
content: "Turniersystem PRO v1.07";
|
||||
font-size: 7pt;
|
||||
color: #718096;
|
||||
}
|
||||
@bottom-right {
|
||||
content: "Seite " counter(page) " von " counter(pages);
|
||||
font-size: 7pt;
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: var(--font-main),serif;
|
||||
color: var(--primary);
|
||||
font-size: 9pt;
|
||||
line-height: 1.3;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* --- HEADER BEREICH --- */
|
||||
header {
|
||||
border-bottom: 2px solid var(--primary);
|
||||
margin-bottom: 12px;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
|
||||
.title-row {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.title-group h1 {
|
||||
font-size: 20pt;
|
||||
margin: 0;
|
||||
font-weight: 900;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.bewerb-subtitle {
|
||||
font-size: 15pt;
|
||||
font-weight: 700;
|
||||
color: var(--highlight);
|
||||
margin-top: -2px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.tournament-info {
|
||||
text-align: right;
|
||||
font-size: 8.5pt;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
/* --- DETAIL GRID (Pflichtangaben) --- */
|
||||
.meta-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1.2fr 1fr 1fr;
|
||||
gap: 12px;
|
||||
margin-top: 10px;
|
||||
padding: 10px;
|
||||
background-color: var(--bg-light);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.meta-item b {
|
||||
display: block;
|
||||
font-size: 6.5pt;
|
||||
text-transform: uppercase;
|
||||
color: var(--secondary);
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
.meta-item span {
|
||||
font-size: 9pt;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
/* --- TABELLE --- */
|
||||
table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
thead th {
|
||||
text-align: left;
|
||||
border-top: 1px solid var(--primary);
|
||||
border-bottom: 1px solid var(--primary);
|
||||
padding: 8px 4px;
|
||||
font-size: 8pt;
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
tbody tr {
|
||||
border-bottom: 1px solid var(--border);
|
||||
}
|
||||
|
||||
tbody td {
|
||||
padding: 10px 4px;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
/* Spalten-Definitionen */
|
||||
.col-start {
|
||||
width: 55px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.col-rider {
|
||||
width: 32%;
|
||||
}
|
||||
|
||||
.col-knr {
|
||||
width: 50px;
|
||||
font-family: 'Courier New', monospace;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.col-horse {
|
||||
width: 35%;
|
||||
}
|
||||
|
||||
.col-land {
|
||||
width: 45px;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.col-status {
|
||||
width: 50px;
|
||||
text-align: right;
|
||||
font-size: 8pt;
|
||||
color: var(--secondary);
|
||||
}
|
||||
|
||||
.main-info {
|
||||
display: block;
|
||||
font-weight: bold;
|
||||
font-size: 10pt;
|
||||
}
|
||||
|
||||
.sub-info {
|
||||
display: block;
|
||||
font-size: 7.5pt;
|
||||
color: var(--secondary);
|
||||
margin-top: 3px;
|
||||
}
|
||||
|
||||
.officials-text {
|
||||
margin-top: 8px;
|
||||
font-size: 8pt;
|
||||
font-style: italic;
|
||||
}
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header>
|
||||
<div class="title-row">
|
||||
<div class="title-group">
|
||||
<h1>Startliste</h1>
|
||||
<div class="bewerb-subtitle">Bewerb 008 | Abt. 1</div>
|
||||
</div>
|
||||
<div class="tournament-info">
|
||||
<b>Turnier-Nr.:</b> 25320<br>
|
||||
<b>Datum:</b> 30.03.2026<br>
|
||||
<b>Ort:</b> Neumarkt/M. OÖ
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="meta-grid">
|
||||
<div class="meta-item">
|
||||
<b>Prüfung / Klasse</b>
|
||||
<span>Dressurreiterprüfung | Klasse A</span>
|
||||
</div>
|
||||
<div class="meta-item">
|
||||
<b>Aufgabe / Viereck</b>
|
||||
<span>Aufgabe A3 | 20 x 40 m</span>
|
||||
</div>
|
||||
<div class="meta-item">
|
||||
<b>Richtverfahren</b>
|
||||
<span>A (ÖTO §204.2)</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="officials-text">
|
||||
<b>Richter:</b> C: Oberhumer Julia; M: Dr. Max Mustermann | <b>Parcours:</b> Ing. Franz Beispieler
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="col-start">Start</th>
|
||||
<th class="col-rider">Reiter / Verein</th>
|
||||
<th class="col-knr">KNR</th>
|
||||
<th class="col-horse">Pferd / Abstammung</th>
|
||||
<th class="col-land">Land</th>
|
||||
<th class="col-status">Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="col-start">12:30</td>
|
||||
<td class="col-rider">
|
||||
<span class="main-info">PELZEDER Sandra</span>
|
||||
<span class="sub-info">Sportunion Pferdefreunde Altenberg</span>
|
||||
</td>
|
||||
<td class="col-knr">5617</td>
|
||||
<td class="col-horse">
|
||||
<span class="main-info">Amigo 222</span>
|
||||
<span class="sub-info">Andalusier-PRE / 2013 / W / Brauner / Decisivo A</span>
|
||||
</td>
|
||||
<td class="col-land">AUT</td>
|
||||
<td class="col-status">OK</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-start">12:38</td>
|
||||
<td class="col-rider">
|
||||
<span class="main-info">RESCH Lisa</span>
|
||||
<span class="sub-info">Reitclub Scherhaufgut</span>
|
||||
</td>
|
||||
<td class="col-knr">4G13</td>
|
||||
<td class="col-horse">
|
||||
<span class="main-info">Kokusz</span>
|
||||
<span class="sub-info">Ung. HB / 2011 / S / Fuchs / 3108 Dárda</span>
|
||||
</td>
|
||||
<td class="col-land">AUT</td>
|
||||
<td class="col-status">OK</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-start">12:46</td>
|
||||
<td class="col-rider">
|
||||
<span class="main-info">RINTELEN-BERNEGGER Flora</span>
|
||||
<span class="sub-info">Reitverein Exaequo</span>
|
||||
</td>
|
||||
<td class="col-knr">4Y59</td>
|
||||
<td class="col-horse">
|
||||
<span class="main-info">Legolas 196</span>
|
||||
<span class="sub-info">Oldenburger / 2011 / W / Brauner / Levisonn</span>
|
||||
</td>
|
||||
<td class="col-land">AUT</td>
|
||||
<td class="col-status">a.K.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<footer
|
||||
style="position: fixed; bottom: 0; width: 100%; font-size: 7pt; color: var(--secondary); border-top: 1px solid var(--border); padding-top: 5px;">
|
||||
<div style="display: flex; justify-content: space-between;">
|
||||
<span>Gedruckt am 30.03.2026 um 21:50 Uhr</span>
|
||||
<span>Bewerb 008 | Abteilung 1</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,233 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<style>
|
||||
:root {
|
||||
--primary: #000;
|
||||
--secondary: #4a5568;
|
||||
--highlight-bg: #edf2f7;
|
||||
--border-bold: #1a202c;
|
||||
--border-light: #cbd5e0;
|
||||
--font-main: 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
||||
}
|
||||
|
||||
@page {
|
||||
size: A4;
|
||||
margin: 10mm 12mm 15mm 12mm;
|
||||
@bottom-left { content: "Turniersystem PRO v1.07"; font-size: 7pt; color: var(--secondary); }
|
||||
@bottom-right { content: "Seite " counter(page) " von " counter(pages); font-size: 7pt; }
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: var(--font-main),serif;
|
||||
color: var(--primary);
|
||||
font-size: 9pt;
|
||||
line-height: 1.3;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
header {
|
||||
border-bottom: 3px solid var(--primary);
|
||||
margin-bottom: 12px;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
.title-row {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.title-group h1 {
|
||||
font-size: 20pt;
|
||||
margin: 0;
|
||||
font-weight: 900;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.bewerb-subtitle {
|
||||
font-size: 15pt;
|
||||
font-weight: 700;
|
||||
color: var(--primary);
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.start-time-badge {
|
||||
background-color: var(--primary);
|
||||
color: white;
|
||||
padding: 5px 12px;
|
||||
border-radius: 4px;
|
||||
font-size: 12pt;
|
||||
font-weight: bold;
|
||||
margin-top: 5px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.tournament-info {
|
||||
text-align: right;
|
||||
font-size: 8.5pt;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
/* --- DETAIL GRID (Pflicht- & Sollangaben) --- */
|
||||
.meta-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1.5fr 1fr 1fr 0.8fr;
|
||||
gap: 10px;
|
||||
margin-top: 12px;
|
||||
padding: 10px;
|
||||
background-color: var(--highlight-bg);
|
||||
border: 1px solid var(--border-light);
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.meta-item b {
|
||||
display: block;
|
||||
font-size: 6.5pt;
|
||||
text-transform: uppercase;
|
||||
color: var(--secondary);
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
.meta-item span {
|
||||
font-size: 9pt;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
/* --- TABELLE --- */
|
||||
table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
thead th {
|
||||
text-align: left;
|
||||
border-top: 1px solid var(--primary);
|
||||
border-bottom: 1px solid var(--primary);
|
||||
padding: 8px 4px;
|
||||
font-size: 8pt;
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
tbody tr {
|
||||
border-bottom: 1px solid var(--border-light);
|
||||
}
|
||||
|
||||
tbody td {
|
||||
padding: 10px 4px;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
/* Spalten-Reihenfolge: Start - Reiter/Verein - KNR - Pferd/Abstammung - Land - Status */
|
||||
.col-start { width: 50px; font-weight: bold; }
|
||||
.col-rider { width: 30%; }
|
||||
.col-knr { width: 55px; font-family: 'Courier New', monospace; font-weight: bold; text-align: center; }
|
||||
.col-horse { width: 35%; }
|
||||
.col-land { width: 40px; text-align: center; font-weight: bold; }
|
||||
.col-status { width: 50px; text-align: right; font-size: 8pt; color: var(--secondary); }
|
||||
|
||||
.main-info { display: block; font-weight: bold; font-size: 9.5pt; }
|
||||
.sub-info { display: block; font-size: 7.5pt; color: var(--secondary); margin-top: 3px; }
|
||||
|
||||
.officials-text {
|
||||
margin-top: 8px;
|
||||
font-size: 8pt;
|
||||
font-style: italic;
|
||||
}
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header>
|
||||
<div class="title-row">
|
||||
<div class="title-group">
|
||||
<h1>Startliste</h1>
|
||||
<div class="bewerb-subtitle">BW 008 | Abt. 1</div>
|
||||
<div class="bewerb-subtitle">Start: 12:30 Uhr</div>
|
||||
</div>
|
||||
<div class="tournament-info">
|
||||
<b>Turnier-Nr.:</b> 25320<br>
|
||||
<b>Turnier:</b> CDN-C Neumarkt/M. OÖ<br>
|
||||
<b>Datum:</b> 08.06.2025
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="meta-grid">
|
||||
<div class="meta-item">
|
||||
<b>Prüfung / Klasse</b>
|
||||
<span>Dressurreiterprüfung | Klasse A</span>
|
||||
</div>
|
||||
<div class="meta-item">
|
||||
<b>Aufgabe / Viereck</b>
|
||||
<span>Aufgabe A3 | 20 x 40 m</span>
|
||||
</div>
|
||||
<div class="meta-item">
|
||||
<b>Richtverfahren</b>
|
||||
<span>A (ÖTO §204.2)</span>
|
||||
</div>
|
||||
<div class="meta-item">
|
||||
<b>Starter / Platziert</b>
|
||||
<span>8 / 5</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="officials-text">
|
||||
<b>Richter:</b> C: Oberhumer Julia; M: Dr. Max Mustermann | <b>Parcours:</b> Ing. Franz Beispieler
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="col-start">Start</th>
|
||||
<th class="col-rider">Reiter / Verein</th>
|
||||
<th class="col-knr">KNR</th>
|
||||
<th class="col-horse">Pferd / Abstammung</th>
|
||||
<th class="col-land">Land</th>
|
||||
<th class="col-status">Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="col-start">12:30</td>
|
||||
<td class="col-rider">
|
||||
<span class="main-info">PELZEDER Sandra</span>
|
||||
<span class="sub-info">Sportunion Pferdefreunde Altenberg</span>
|
||||
</td>
|
||||
<td class="col-knr">5617</td>
|
||||
<td class="col-horse">
|
||||
<span class="main-info">Amigo 222</span>
|
||||
<span class="sub-info">Andalusier-PRE / 2013 / W / Brauner</span>
|
||||
</td>
|
||||
<td class="col-land">AUT</td> <td class="col-status">OK</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="col-start">12:38</td>
|
||||
<td class="col-rider">
|
||||
<span class="main-info">RESCH Lisa</span>
|
||||
<span class="sub-info">Reitclub Scherhaufgut</span>
|
||||
</td>
|
||||
<td class="col-knr">4G13</td>
|
||||
<td class="col-horse">
|
||||
<span class="main-info">Kokusz</span>
|
||||
<span class="sub-info">Ung. HB / 2011 / S / Fuchs</span>
|
||||
</td>
|
||||
<td class="col-land">AUT</td>
|
||||
<td class="col-status">OK</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<footer style="position: fixed; bottom: 0; width: 100%; font-size: 7pt; color: var(--secondary); border-top: 1px solid var(--border-light); padding-top: 5px;">
|
||||
<div style="display: flex; justify-content: space-between;">
|
||||
<span>Gedruckt am 30.03.2026 um 22:05 Uhr</span>
|
||||
<span>Bewerb 008 | Abteilung 1</span>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 173 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 122 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 74 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 144 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 62 KiB |
@@ -0,0 +1,50 @@
|
||||
---
|
||||
type: Reference
|
||||
status: ACTIVE
|
||||
owner: Frontend Expert
|
||||
updated: 2026-03-30
|
||||
---
|
||||
|
||||
# Start- und Ergebnislisten – Templates v07 (HTML + Mustache)
|
||||
|
||||
Ziel: Drucktaugliche, hochdichte Start-/Ergebnislisten auf Basis von HTML/CSS (Print‑CSS) und logikarmen Mustache‑Templates. PDF‑Erzeugung via Headless Chromium empfohlen.
|
||||
|
||||
## Bestand (aktueller Stand)
|
||||
- templates/
|
||||
- `Ergebnisliste_v07.html` – v07‑Grundtemplate (derzeit mit „Startliste“-Inhalt befüllt)
|
||||
- `print.css` – gemeinsames Druck‑Stylesheet (A4, thead/tfoot‑Wiederholung, Umbruchschutz)
|
||||
- partials/
|
||||
- `header.html`, `footer.html`
|
||||
- `table_head_common.html`
|
||||
- `dressur_row.html` (Basis für Dressur‑Zeilen)
|
||||
|
||||
## Geplante Ergänzungen (Next)
|
||||
- `Startliste_v07.html` – separates Startlisten‑Template.
|
||||
- Partials für Springen‑Varianten: Table A (238.2.1/2.2), Table C (239), Two‑Phases (274), Accumulator (269).
|
||||
- `ergebnisliste_*_data.json` Beispiel‑Daten (Dressur, Springen Table A).
|
||||
|
||||
## Compliance/Regelwerk
|
||||
- „Nation“ gemäß ÖTO‑Update 2011 (docs/03_Domain/02_Reference/OETO_Regelwerk/OETO-2026_Meldestelle_Update-Ergebnisfile.md):
|
||||
- Start für AUT‑Klub → `NATION = AUT`, sonst `NATION = NATIONALITÄT` laut `lizenz01.dat`.
|
||||
- Numerik als Text mit Dezimal‑Komma, keine Tausenderpunkte (Legacy 2014‑Spezifikation).
|
||||
|
||||
## Render‑Pfad (lokal)
|
||||
1) Mustache rendern (CLI):
|
||||
```
|
||||
mustache docs/06_Frontend/StartErgListen/examples/startliste_data.json \
|
||||
docs/06_Frontend/StartErgListen/templates/Ergebnisliste_v07.html \
|
||||
/tmp/Startliste_v07.html
|
||||
```
|
||||
2) PDF erzeugen (Chromium):
|
||||
```
|
||||
chromium --headless --disable-gpu \
|
||||
--print-to-pdf=/tmp/Startliste_v07.pdf \
|
||||
/tmp/Startliste_v07.html
|
||||
```
|
||||
|
||||
## Bekannte Abweichungen (werden gefixt)
|
||||
- Spaltenüberschrift „Land“ wird auf „Nation“ vereinheitlicht.
|
||||
- Doppelte Fußzeilen vermeiden: Entweder CSS‑Footer ODER Renderer‑Footer verwenden.
|
||||
|
||||
## Bezug/Checkliste
|
||||
- Siehe Referenz‑Checkliste: `docs/03_Domain/02_Reference/OETO_Regelwerk/Checkliste_Start-Ergebnislisten_Dressur-Springen.md`
|
||||
@@ -0,0 +1,45 @@
|
||||
type: How-to
|
||||
status: ACTIVE
|
||||
owner: Frontend Expert
|
||||
updated: 2026-03-30
|
||||
---
|
||||
|
||||
# Beispiele: Start-/Ergebnislisten rendern (Mustache + HTML/CSS)
|
||||
|
||||
Dieser Ordner enthält Beispiel-Daten (JSON) für die Mustache-Templates unter `../templates/`.
|
||||
|
||||
Struktur (aktueller Stand):
|
||||
- `../templates/print.css` – gemeinsames Druck-CSS (A4, Wiederhol-Header, Umbruchschutz)
|
||||
- `../templates/Ergebnisliste_v07.html` – v07-Template (aktuell als Startliste befüllt; Spalten und Kopf sind bereits drucktauglich)
|
||||
- `../templates/partials/` – Header, Footer, Tabellenkopf, Dressur-Zeile (Grundlage für Varianten)
|
||||
|
||||
Beispiel-Daten (verfügbar):
|
||||
- `startliste_data.json` – Startliste Dressur
|
||||
|
||||
Geplante Beispiel-Daten (TODO):
|
||||
- `ergebnisliste_springen_tableA_data.json` – Ergebnisliste Springen (Table A 238.2.1)
|
||||
- `ergebnisliste_dressur_data.json` – Ergebnisliste Dressur (Endprozent)
|
||||
|
||||
Hinweise (Compliance):
|
||||
- Dezimaltrennzeichen „,“ bitte bereits im Backend/Formatter vorbereiten (Legacy‑Vorgabe: numerisch als Text; kein Tausenderpunkt).
|
||||
- Spalte „Nation“ gemäß ÖTO‑Update 2011 bilden: Start für AUT‑Klub → `AUT`, sonst Staatsbürgerschaft lt. `lizenz01.dat`.
|
||||
- In den v07‑Entwürfen ist die Spaltenüberschrift teils noch „Land“; fachlich korrekt ist „Nation“ (siehe Checkliste). Dies wird in den finalen Templates vereinheitlicht.
|
||||
|
||||
Quick Render (Beispiel, ohne Gewähr):
|
||||
1) Mustache rendern (CLI-Beispiel):
|
||||
```
|
||||
mustache startliste_data.json ../templates/Ergebnisliste_v07.html > /tmp/Startliste_v07.html
|
||||
```
|
||||
2) PDF erzeugen (Headless Chromium):
|
||||
```
|
||||
chromium --headless --disable-gpu --print-to-pdf=/tmp/Startliste_v07.pdf /tmp/Startliste_v07.html
|
||||
```
|
||||
|
||||
Alternativ: wkhtmltopdf (Achtung Rendering‑Unterschiede)
|
||||
```
|
||||
wkhtmltopdf /tmp/Startliste_v07.html /tmp/Startliste_v07.pdf
|
||||
```
|
||||
|
||||
Status & Nächste Schritte:
|
||||
- Ergänzung der fehlenden Beispiel‑Daten für Ergebnislisten (Dressur, Springen Table A) – siehe TODO oben.
|
||||
- Aufteilung in separate Templates `Startliste_v07.html` und `Ergebnisliste_v07.html`, sobald beide Varianten produktiv befüllt sind.
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"docTitle": "Ergebnisliste",
|
||||
"bewerbLabel": "BW 008 | Abt. 1",
|
||||
"turnierNummer": "25320",
|
||||
"turnierName": "CDN-C Neumarkt/M. OÖ",
|
||||
"datum": "08.06.2025",
|
||||
"printedAt": "30.03.2026 22:40",
|
||||
"bewerbShort": "BW 008 | Abt. 1",
|
||||
"isErgebnisliste": true,
|
||||
"meta": [
|
||||
{"label": "Sparte", "value": "Dressur"},
|
||||
{"label": "Aufgabe / Viereck", "value": "Aufgabe A3 | 20 x 40 m"},
|
||||
{"label": "Richtverfahren", "value": "A (ÖTO §204.2)"},
|
||||
{"label": "Starter / Platziert", "value": "8 / 5"}
|
||||
],
|
||||
"officials": ["Richter: C: Oberhumer Julia; M: Dr. Max Mustermann"],
|
||||
"starts": [
|
||||
{
|
||||
"isDressur": true,
|
||||
"rang": 1,
|
||||
"reiter": {"name": "PELZEDER Sandra", "verein": "Sportunion Pferdefreunde Altenberg", "knr": "5617"},
|
||||
"pferd": {"name": "Amigo 222", "details": "Andalusier-PRE / 2013 / W / Brauner"},
|
||||
"nation": "AUT",
|
||||
"endProzent": "69,58",
|
||||
"status": "CR"
|
||||
},
|
||||
{
|
||||
"isDressur": true,
|
||||
"rang": 2,
|
||||
"reiter": {"name": "RESCH Lisa", "verein": "Reitclub Scherhaufgut", "knr": "4G13"},
|
||||
"pferd": {"name": "Kokusz", "details": "Ung. HB / 2011 / S / Fuchs"},
|
||||
"nation": "AUT",
|
||||
"endProzent": "68,22",
|
||||
"status": "CR"
|
||||
},
|
||||
{
|
||||
"isDressur": true,
|
||||
"rang": "EL",
|
||||
"reiter": {"name": "MUSTERMANN Paul", "verein": "RV Exemplar", "knr": "9Z99"},
|
||||
"pferd": {"name": "Dorian", "details": "Old. / 2012 / W / Rappe"},
|
||||
"nation": "AUT",
|
||||
"endProzent": "",
|
||||
"status": "EL"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"docTitle": "Ergebnisliste",
|
||||
"bewerbLabel": "BW 012 | Abt. 1",
|
||||
"turnierNummer": "25320",
|
||||
"turnierName": "CSN-B Neumarkt/M. OÖ",
|
||||
"datum": "08.06.2025",
|
||||
"printedAt": "30.03.2026 22:35",
|
||||
"bewerbShort": "BW 012 | Abt. 1",
|
||||
"isErgebnisliste": true,
|
||||
"meta": [
|
||||
{"label": "Sparte", "value": "Springen"},
|
||||
{"label": "Richtverfahren", "value": "Table A gegen die Zeit (FEI Art. 238.2.1)"},
|
||||
{"label": "Höhe", "value": "1.10 m"},
|
||||
{"label": "Starter / Platziert", "value": "32 / 8"}
|
||||
],
|
||||
"officials": ["Parcours: Ing. Franz Beispieler"],
|
||||
"starts": [
|
||||
{
|
||||
"isSpringenTableA": true,
|
||||
"rang": 1,
|
||||
"reiter": {"name": "MUSTER Anna", "verein": "RV Linz", "knr": "A123"},
|
||||
"pferd": {"name": "Quickstar", "abstammung": "Holst. / 2014 / W / Dunkelbraun"},
|
||||
"nation": "AUT",
|
||||
"ergebnisA": {"fehler": 0, "zeit": "59,38"},
|
||||
"status": "CR"
|
||||
},
|
||||
{
|
||||
"isSpringenTableA": true,
|
||||
"rang": 2,
|
||||
"reiter": {"name": "HUBER Leo", "verein": "RC Traun", "knr": "B987"},
|
||||
"pferd": {"name": "Blue Moon", "abstammung": "Zang. / 2012 / S / Schimmel"},
|
||||
"nation": "AUT",
|
||||
"ergebnisA": {"fehler": 0, "zeit": "60,12"},
|
||||
"status": "CR"
|
||||
},
|
||||
{
|
||||
"isSpringenTableA": true,
|
||||
"rang": 18,
|
||||
"reiter": {"name": "GAST Max", "verein": "Gast", "knr": "G001"},
|
||||
"pferd": {"name": "Visitor", "abstammung": "KWPN / 2011 / W / Braun"},
|
||||
"nation": "GER",
|
||||
"ergebnisA": {"fehler": 8, "zeit": "75,44"},
|
||||
"status": "CR"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"docTitle": "Startliste",
|
||||
"bewerbLabel": "BW 008 | Abt. 1",
|
||||
"startTime": "12:30 Uhr",
|
||||
"turnierNummer": "25320",
|
||||
"turnierName": "CDN-C Neumarkt/M. OÖ",
|
||||
"datum": "08.06.2025",
|
||||
"printedAt": "30.03.2026 22:30",
|
||||
"bewerbShort": "BW 008 | Abt. 1",
|
||||
"isStartliste": true,
|
||||
"meta": [
|
||||
{"label": "Prüfung / Klasse", "value": "Dressurreiterprüfung | Klasse A"},
|
||||
{"label": "Aufgabe / Viereck", "value": "Aufgabe A3 | 20 x 40 m"},
|
||||
{"label": "Richtverfahren", "value": "A (ÖTO §204.2)"},
|
||||
{"label": "Starter / Platziert", "value": "8 / 5"}
|
||||
],
|
||||
"officials": ["Richter: C: Oberhumer Julia; M: Dr. Max Mustermann"],
|
||||
"starts": [
|
||||
{
|
||||
"isDressur": true,
|
||||
"startSlot": "12:30",
|
||||
"reiter": {"name": "PELZEDER Sandra", "verein": "Sportunion Pferdefreunde Altenberg", "knr": "5617"},
|
||||
"pferd": {"name": "Amigo 222", "details": "Andalusier-PRE / 2013 / W / Brauner"},
|
||||
"nation": "AUT",
|
||||
"status": "OK"
|
||||
},
|
||||
{
|
||||
"isDressur": true,
|
||||
"startSlot": "12:38",
|
||||
"reiter": {"name": "RESCH Lisa", "verein": "Reitclub Scherhaufgut", "knr": "4G13"},
|
||||
"pferd": {"name": "Kokusz", "details": "Ung. HB / 2011 / S / Fuchs"},
|
||||
"nation": "AUT",
|
||||
"status": "OK"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>{{docTitle}}</title>
|
||||
<link rel="stylesheet" href="../templates/print.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
{{! Ergebnisliste: setzt isErgebnisliste=true }}
|
||||
{{> header }}
|
||||
|
||||
<table>
|
||||
{{> table_head_common }}
|
||||
<tbody>
|
||||
{{#starts}}
|
||||
{{#isDressur}}
|
||||
{{> dressur_row }}
|
||||
{{/isDressur}}
|
||||
{{#isSpringenTableA}}
|
||||
{{> springen_tableA_row }}
|
||||
{{/isSpringenTableA}}
|
||||
{{#isOther}}
|
||||
{{> dressur_row }}
|
||||
{{/isOther}}
|
||||
{{/starts}}
|
||||
</tbody>
|
||||
<tfoot></tfoot>
|
||||
</table>
|
||||
|
||||
{{> footer }}
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,33 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>{{docTitle}}</title>
|
||||
<link rel="stylesheet" href="../templates/print.css">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
{{> header }}
|
||||
|
||||
<table>
|
||||
{{> table_head_common }}
|
||||
<tbody>
|
||||
{{#starts}}
|
||||
{{#isDressur}}
|
||||
{{> dressur_row }}
|
||||
{{/isDressur}}
|
||||
{{#isSpringenTableA}}
|
||||
{{> springen_tableA_row }}
|
||||
{{/isSpringenTableA}}
|
||||
{{#isOther}}
|
||||
{{> dressur_row }}
|
||||
{{/isOther}}
|
||||
{{/starts}}
|
||||
</tbody>
|
||||
<tfoot></tfoot>
|
||||
</table>
|
||||
|
||||
{{> footer }}
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,22 @@
|
||||
<tr>
|
||||
{{#isStartliste}}
|
||||
<td class="col-start">{{startSlot}}</td>
|
||||
{{/isStartliste}}
|
||||
{{#isErgebnisliste}}
|
||||
<td class="col-start">{{rang}}</td>
|
||||
{{/isErgebnisliste}}
|
||||
<td class="col-rider">
|
||||
<span class="main-info">{{reiter.name}}</span>
|
||||
<span class="sub-info">{{reiter.verein}}</span>
|
||||
</td>
|
||||
<td class="col-knr">{{reiter.knr}}</td>
|
||||
<td class="col-horse">
|
||||
<span class="main-info">{{pferd.name}}</span>
|
||||
<span class="sub-info">{{pferd.details}}</span>
|
||||
</td>
|
||||
<td class="col-nation">{{nation}}</td>
|
||||
{{#isErgebnisliste}}
|
||||
<td class="num">{{endProzent}}</td>
|
||||
{{/isErgebnisliste}}
|
||||
<td class="col-status">{{status}}</td>
|
||||
</tr>
|
||||
@@ -0,0 +1,6 @@
|
||||
<footer class="footer-fixed">
|
||||
<div style="display: flex; justify-content: space-between;">
|
||||
<span>Gedruckt am {{printedAt}}</span>
|
||||
<span>{{bewerbShort}}</span>
|
||||
</div>
|
||||
</footer>
|
||||
@@ -0,0 +1,31 @@
|
||||
<header>
|
||||
<div class="title-row">
|
||||
<div class="title-group">
|
||||
<h1>{{docTitle}}</h1>
|
||||
<div class="bewerb-subtitle">{{bewerbLabel}}</div>
|
||||
{{#startTime}}
|
||||
<div class="bewerb-subtitle">Start: {{startTime}}</div>
|
||||
{{/startTime}}
|
||||
</div>
|
||||
<div class="tournament-info">
|
||||
<b>Turnier-Nr.:</b> {{turnierNummer}}<br>
|
||||
<b>Turnier:</b> {{turnierName}}<br>
|
||||
<b>Datum:</b> {{datum}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="meta-grid">
|
||||
{{#meta}}
|
||||
<div class="meta-item">
|
||||
<b>{{label}}</b>
|
||||
<span>{{value}}</span>
|
||||
</div>
|
||||
{{/meta}}
|
||||
</div>
|
||||
|
||||
{{#officials}}
|
||||
<div class="officials-text">
|
||||
{{.}}
|
||||
</div>
|
||||
{{/officials}}
|
||||
</header>
|
||||
@@ -0,0 +1,23 @@
|
||||
<tr>
|
||||
{{#isStartliste}}
|
||||
<td class="col-start">{{startSlot}}</td>
|
||||
{{/isStartliste}}
|
||||
{{#isErgebnisliste}}
|
||||
<td class="col-start">{{rang}}</td>
|
||||
{{/isErgebnisliste}}
|
||||
<td class="col-rider">
|
||||
<span class="main-info">{{reiter.name}}</span>
|
||||
<span class="sub-info">{{reiter.verein}}</span>
|
||||
</td>
|
||||
<td class="col-knr">{{reiter.knr}}</td>
|
||||
<td class="col-horse">
|
||||
<span class="main-info">{{pferd.name}}</span>
|
||||
<span class="sub-info">{{pferd.abstammung}}</span>
|
||||
</td>
|
||||
<td class="col-nation">{{nation}}</td>
|
||||
{{#isErgebnisliste}}
|
||||
<td class="num">{{ergebnisA.fehler}}</td>
|
||||
<td class="time">{{ergebnisA.zeit}}</td>
|
||||
{{/isErgebnisliste}}
|
||||
<td class="col-status">{{status}}</td>
|
||||
</tr>
|
||||
@@ -0,0 +1,24 @@
|
||||
<thead>
|
||||
<tr>
|
||||
{{#isStartliste}}
|
||||
<th class="col-start">Start</th>
|
||||
{{/isStartliste}}
|
||||
{{#isErgebnisliste}}
|
||||
<th class="col-start">Rang</th>
|
||||
{{/isErgebnisliste}}
|
||||
<th class="col-rider">Reiter / Verein</th>
|
||||
<th class="col-knr">KNR</th>
|
||||
<th class="col-horse">Pferd / Abstammung</th>
|
||||
<th class="col-nation">Nation</th>
|
||||
{{#isErgebnisliste}}
|
||||
{{#isDressur}}
|
||||
<th class="num">% Endergebnis</th>
|
||||
{{/isDressur}}
|
||||
{{#isSpringenTableA}}
|
||||
<th class="num">Fehler</th>
|
||||
<th class="time">Zeit</th>
|
||||
{{/isSpringenTableA}}
|
||||
{{/isErgebnisliste}}
|
||||
<th class="col-status">Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -0,0 +1,69 @@
|
||||
:root {
|
||||
--primary: #000;
|
||||
--secondary: #4a5568;
|
||||
--highlight-bg: #edf2f7;
|
||||
--border-bold: #1a202c;
|
||||
--border-light: #cbd5e0;
|
||||
--font-main: 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
||||
}
|
||||
|
||||
@page {
|
||||
size: A4;
|
||||
margin: 12mm 12mm 18mm 12mm;
|
||||
}
|
||||
|
||||
/* Headless Chromium/WKHTMLTOPDF friendly repeating headers/footers */
|
||||
thead { display: table-header-group; }
|
||||
tfoot { display: table-footer-group; }
|
||||
tr, .row { page-break-inside: avoid; }
|
||||
|
||||
html, body { margin: 0; padding: 0; }
|
||||
body {
|
||||
font-family: var(--font-main), serif;
|
||||
color: var(--primary);
|
||||
font-size: 9pt;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
header {
|
||||
border-bottom: 3px solid var(--primary);
|
||||
margin-bottom: 12px;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
.title-row { display: flex; justify-content: space-between; align-items: flex-start; }
|
||||
.title-group h1 { font-size: 20pt; margin: 0; font-weight: 900; text-transform: uppercase; }
|
||||
.bewerb-subtitle { font-size: 14pt; font-weight: 700; margin-top: 2px; }
|
||||
.tournament-info { text-align: right; font-size: 8.5pt; line-height: 1.4; }
|
||||
|
||||
.meta-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1.5fr 1fr 1fr 0.8fr;
|
||||
gap: 10px;
|
||||
margin-top: 12px;
|
||||
padding: 10px;
|
||||
background-color: var(--highlight-bg);
|
||||
border: 1px solid var(--border-light);
|
||||
border-radius: 4px;
|
||||
}
|
||||
.meta-item b { display: block; font-size: 6.5pt; text-transform: uppercase; color: var(--secondary); margin-bottom: 2px; }
|
||||
.meta-item span { font-size: 9pt; font-weight: 600; }
|
||||
|
||||
table { width: 100%; border-collapse: collapse; margin-top: 12px; }
|
||||
thead th { text-align: left; border-top: 1px solid var(--primary); border-bottom: 1px solid var(--primary); padding: 8px 4px; font-size: 8pt; font-weight: bold; text-transform: uppercase; }
|
||||
tbody tr { border-bottom: 1px solid var(--border-light); }
|
||||
tbody td { padding: 8px 4px; vertical-align: top; }
|
||||
|
||||
.col-start { width: 42px; font-weight: bold; }
|
||||
.col-rider { width: 30%; }
|
||||
.col-knr { width: 52px; font-family: 'Courier New', monospace; font-weight: bold; text-align: center; }
|
||||
.col-horse { width: 35%; }
|
||||
.col-nation { width: 40px; text-align: center; font-weight: bold; }
|
||||
.col-status { width: 54px; text-align: right; font-size: 8pt; color: var(--secondary); }
|
||||
|
||||
.main-info { display: block; font-weight: bold; font-size: 9.5pt; }
|
||||
.sub-info { display: block; font-size: 7.5pt; color: var(--secondary); margin-top: 3px; overflow-wrap: anywhere; }
|
||||
|
||||
.num, .time { text-align: right; font-variant-numeric: tabular-nums; }
|
||||
|
||||
.footer-fixed { position: fixed; bottom: 0; width: 100%; font-size: 7pt; color: var(--secondary); border-top: 1px solid var(--border-light); padding-top: 5px; }
|
||||
Reference in New Issue
Block a user