diff --git a/public/js/main.js b/public/js/main.js index 2a01c9b..1cc7c08 100644 --- a/public/js/main.js +++ b/public/js/main.js @@ -223,10 +223,21 @@ function generatePDF(event) { fetch(url).then(res => res.json()) ]) .then(([_loaded, settings, applications]) => { + // /api/export returns an array of applications; on a server error it + // returns { error: '...' } instead. Guard so we surface a real message + // rather than crashing inside generatePdfDocument with "applications.map + // is not a function". + if (!Array.isArray(applications)) { + alert('Export fehlgeschlagen: ' + ((applications && applications.error) || 'Unbekannter Serverfehler')); + return; + } generatePdfDocument(settings, applications, month, year); hideModal(pdfExportModal); }) - .catch(error => console.error('Error generating PDF:', error)); + .catch(error => { + console.error('Error generating PDF:', error); + alert('Export fehlgeschlagen. Bitte erneut versuchen.'); + }); } // PDF Generation with jsPDF diff --git a/server.js b/server.js index de675b3..3b48acd 100644 --- a/server.js +++ b/server.js @@ -2048,15 +2048,15 @@ initializeDatabase().then(async () => { const params = [U, U]; if (month && year) { - query = `SELECT * FROM (${base}) AND strftime("%m", eff_datum) = ? AND strftime("%Y", eff_datum) = ? ORDER BY eff_datum DESC`; + query = `SELECT * FROM (${base}) WHERE strftime("%m", eff_datum) = ? AND strftime("%Y", eff_datum) = ? ORDER BY eff_datum DESC`; params.push(month.padStart(2, '0'), year); } else if (month) { // A month without a year must still restrict the export to that month — // never fall through to exporting every application. - query = `SELECT * FROM (${base}) AND strftime("%m", eff_datum) = ? ORDER BY eff_datum DESC`; + query = `SELECT * FROM (${base}) WHERE strftime("%m", eff_datum) = ? ORDER BY eff_datum DESC`; params.push(month.padStart(2, '0')); } else if (year) { - query = `SELECT * FROM (${base}) AND strftime("%Y", eff_datum) = ? ORDER BY eff_datum DESC`; + query = `SELECT * FROM (${base}) WHERE strftime("%Y", eff_datum) = ? ORDER BY eff_datum DESC`; params.push(year); }