From 774055c6fcbadc3304b02b1246424ac5fb8f3ba6 Mon Sep 17 00:00:00 2001 From: Torsten Schulz Date: Thu, 24 Oct 2024 12:08:02 +0200 Subject: [PATCH] added generation of pdf phonelist --- frontend/src/components/PDFGenerator.js | 34 +++++++++++++++++++++++++ frontend/src/views/DiaryView.vue | 2 +- frontend/src/views/MembersView.vue | 10 ++++++++ 3 files changed, 45 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/PDFGenerator.js b/frontend/src/components/PDFGenerator.js index f2b8a2a..dd0ec41 100644 --- a/frontend/src/components/PDFGenerator.js +++ b/frontend/src/components/PDFGenerator.js @@ -141,6 +141,40 @@ class PDFGenerator { save(filename) { this.pdf.save(filename); } + + addPhoneList(members) { + this.pdf.setFontSize(14); + this.pdf.setFont('helvetica', 'bold'); + this.pdf.text('Telefonliste - Aktive Mitglieder', this.margin, this.yPos); + this.yPos += 10; + this.addPhoneListHeaders(); + + this.pdf.setFont('helvetica', 'normal'); + for (const member of members) { + this.addPhoneListRow(member); + this.checkPageOverflow(); + } + } + + addPhoneListHeaders() { + this.pdf.setFont('helvetica', 'bold'); + this.pdf.text('Name, Vorname', this.margin, this.yPos); + this.pdf.text('Geburtsdatum', this.margin + 60, this.yPos); + this.pdf.text('Telefon-Nr.', this.margin + 120, this.yPos); + this.yPos += this.LINE_HEIGHT; + this.pdf.setFont('helvetica', 'normal'); + } + + addPhoneListRow(member) { + const fullName = `${member.lastName}, ${member.firstName}`; + const birthDate = member.birthDate ? new Date(member.birthDate).toLocaleDateString('de-DE') : ''; + const phoneNumber = member.phone || ''; + + this.pdf.text(fullName, this.margin, this.yPos); + this.pdf.text(birthDate, this.margin + 60, this.yPos); + this.pdf.text(phoneNumber, this.margin + 120, this.yPos); + this.yPos += this.LINE_HEIGHT; + } } export default PDFGenerator; diff --git a/frontend/src/views/DiaryView.vue b/frontend/src/views/DiaryView.vue index 08b7489..3880284 100644 --- a/frontend/src/views/DiaryView.vue +++ b/frontend/src/views/DiaryView.vue @@ -851,7 +851,7 @@ h3 { .column:first-child { flex: 1; overflow: hidden; - height: 100%; + height: 100%;justify-self: start; display: flex; flex-direction: column; } diff --git a/frontend/src/views/MembersView.vue b/frontend/src/views/MembersView.vue index f48b1a9..e52eac4 100644 --- a/frontend/src/views/MembersView.vue +++ b/frontend/src/views/MembersView.vue @@ -1,6 +1,9 @@