Compare commits
2 Commits
380d0a8332
...
d563d81584
| Author | SHA1 | Date | |
|---|---|---|---|
| d563d81584 | |||
|
|
d9c5d242ec |
@@ -3,6 +3,12 @@ import path from 'path'
|
|||||||
import { readSpielplanData, validateSeasonSlug } from '../../utils/spielplan-data.js'
|
import { readSpielplanData, validateSeasonSlug } from '../../utils/spielplan-data.js'
|
||||||
import { info as loggerInfo, error as loggerError } from '../../utils/logger.js'
|
import { info as loggerInfo, error as loggerError } from '../../utils/logger.js'
|
||||||
|
|
||||||
|
function seasonSlugToLabel(slug) {
|
||||||
|
const match = String(slug || '').match(/^(\d{2})--(\d{2})$/)
|
||||||
|
if (!match) return ''
|
||||||
|
return `20${match[1]}/${match[2]}`
|
||||||
|
}
|
||||||
|
|
||||||
export default defineEventHandler(async (event) => {
|
export default defineEventHandler(async (event) => {
|
||||||
try {
|
try {
|
||||||
const query = getQuery(event)
|
const query = getQuery(event)
|
||||||
@@ -121,19 +127,19 @@ export default defineEventHandler(async (event) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Filtere nach Wettbewerb (Standard: Punktrunde)
|
// Filtere nach Wettbewerb (Standard: Punktrunde)
|
||||||
const wettbewerb = query.wettbewerb || 'punktrunde'
|
// Muss zur Frontend-Logik passen: Punktrunde = alles, was kein Pokal ist.
|
||||||
|
const wettbewerb = String(query.wettbewerb || 'punktrunde').toLowerCase().trim()
|
||||||
if (wettbewerb !== 'alle') {
|
if (wettbewerb !== 'alle') {
|
||||||
filteredData = filteredData.filter(row => {
|
filteredData = filteredData.filter(row => {
|
||||||
const runde = (row.Runde || '').toLowerCase()
|
const runde = (row.Runde || '').toLowerCase()
|
||||||
|
const staffel = (row.Staffel || '').toLowerCase()
|
||||||
|
const liga = (row.Liga || '').toLowerCase()
|
||||||
|
const isPokal = runde.includes('pokal') || staffel.includes('pokal') || liga.includes('pokal')
|
||||||
|
|
||||||
if (wettbewerb === 'punktrunde') {
|
if (wettbewerb === 'punktrunde') {
|
||||||
return runde === 'vr' ||
|
return !isPokal
|
||||||
runde.includes('vorrunde') ||
|
|
||||||
runde === 'rr' ||
|
|
||||||
runde.includes('rückrunde') ||
|
|
||||||
runde.includes('verbandsrunde')
|
|
||||||
} else if (wettbewerb === 'pokal') {
|
} else if (wettbewerb === 'pokal') {
|
||||||
return runde === 'pokal' || runde.includes('pokal')
|
return isPokal
|
||||||
}
|
}
|
||||||
|
|
||||||
return true
|
return true
|
||||||
@@ -182,6 +188,15 @@ export default defineEventHandler(async (event) => {
|
|||||||
// Generiere LaTeX-Code für PDF
|
// Generiere LaTeX-Code für PDF
|
||||||
const teamName = team.replace(/_/g, ' ').replace(/\b\w/g, l => l.toUpperCase())
|
const teamName = team.replace(/_/g, ' ').replace(/\b\w/g, l => l.toUpperCase())
|
||||||
const currentDate = new Date().toLocaleDateString('de-DE')
|
const currentDate = new Date().toLocaleDateString('de-DE')
|
||||||
|
const seasonLabel = seasonSlugToLabel(spielplan.season) || 'Unbekannt'
|
||||||
|
|
||||||
|
loggerInfo('Spielplan-PDF Filterergebnis', {
|
||||||
|
team,
|
||||||
|
wettbewerb,
|
||||||
|
season: spielplan.season,
|
||||||
|
totalRows: dataRows.length,
|
||||||
|
filteredRows: filteredData.length
|
||||||
|
})
|
||||||
|
|
||||||
let latexContent = `
|
let latexContent = `
|
||||||
\\documentclass[9pt,a4paper]{article}
|
\\documentclass[9pt,a4paper]{article}
|
||||||
@@ -197,13 +212,13 @@ export default defineEventHandler(async (event) => {
|
|||||||
|
|
||||||
\\title{Spielplan ${teamName}}
|
\\title{Spielplan ${teamName}}
|
||||||
\\author{Harheimer TC}
|
\\author{Harheimer TC}
|
||||||
\\date{Saison 2025/26 - Stand: ${currentDate}}
|
\\date{Saison ${seasonLabel} - Stand: ${currentDate}}
|
||||||
|
|
||||||
% PDF-Metadaten für Sicherheit
|
% PDF-Metadaten für Sicherheit
|
||||||
\\usepackage[pdftex]{hyperref}
|
\\usepackage[pdftex]{hyperref}
|
||||||
\\hypersetup{
|
\\hypersetup{
|
||||||
pdfauthor={Harheimer TC},
|
pdfauthor={Harheimer TC},
|
||||||
pdftitle={Spielplan ${teamName} - Saison 2025/26},
|
pdftitle={Spielplan ${teamName} - Saison ${seasonLabel}},
|
||||||
pdfsubject={Vereinsspielplan},
|
pdfsubject={Vereinsspielplan},
|
||||||
pdfkeywords={Tischtennis, Spielplan, Harheimer TC, ${teamName}},
|
pdfkeywords={Tischtennis, Spielplan, Harheimer TC, ${teamName}},
|
||||||
pdfcreator={Harheimer TC CMS},
|
pdfcreator={Harheimer TC CMS},
|
||||||
|
|||||||
Reference in New Issue
Block a user