diff --git a/server/api/spielplan/pdf.get.js b/server/api/spielplan/pdf.get.js index e8ae77a..6083a21 100755 --- a/server/api/spielplan/pdf.get.js +++ b/server/api/spielplan/pdf.get.js @@ -3,6 +3,12 @@ import path from 'path' import { readSpielplanData, validateSeasonSlug } from '../../utils/spielplan-data.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) => { try { const query = getQuery(event) @@ -121,19 +127,19 @@ export default defineEventHandler(async (event) => { } // 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') { filteredData = filteredData.filter(row => { 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') { - return runde === 'vr' || - runde.includes('vorrunde') || - runde === 'rr' || - runde.includes('rückrunde') || - runde.includes('verbandsrunde') + return !isPokal } else if (wettbewerb === 'pokal') { - return runde === 'pokal' || runde.includes('pokal') + return isPokal } return true @@ -182,6 +188,15 @@ export default defineEventHandler(async (event) => { // Generiere LaTeX-Code für PDF const teamName = team.replace(/_/g, ' ').replace(/\b\w/g, l => l.toUpperCase()) 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 = ` \\documentclass[9pt,a4paper]{article} @@ -197,13 +212,13 @@ export default defineEventHandler(async (event) => { \\title{Spielplan ${teamName}} \\author{Harheimer TC} -\\date{Saison 2025/26 - Stand: ${currentDate}} +\\date{Saison ${seasonLabel} - Stand: ${currentDate}} % PDF-Metadaten für Sicherheit \\usepackage[pdftex]{hyperref} \\hypersetup{ pdfauthor={Harheimer TC}, - pdftitle={Spielplan ${teamName} - Saison 2025/26}, + pdftitle={Spielplan ${teamName} - Saison ${seasonLabel}}, pdfsubject={Vereinsspielplan}, pdfkeywords={Tischtennis, Spielplan, Harheimer TC, ${teamName}}, pdfcreator={Harheimer TC CMS},