diff --git a/frontend/src/components/tournament/TournamentPlacementsTab.vue b/frontend/src/components/tournament/TournamentPlacementsTab.vue
index 7dbbef12..11092811 100644
--- a/frontend/src/components/tournament/TournamentPlacementsTab.vue
+++ b/frontend/src/components/tournament/TournamentPlacementsTab.vue
@@ -92,7 +92,7 @@
@@ -586,6 +586,13 @@ export default {
email = member.email;
}
+ let phone = '';
+ if (member.contacts && Array.isArray(member.contacts)) {
+ phone = member.contacts.filter(c => c.type === 'phone').map(c => c.value).join(', ');
+ } else if (member.phone) {
+ phone = member.phone;
+ }
+
const name = `${member.firstName || ''} ${member.lastName || ''}`.trim();
const gender = member.gender && member.gender !== 'unknown' ? member.gender : null;
@@ -594,7 +601,8 @@ export default {
birthDate: member.birthDate || null,
gender,
address: address || null,
- email: email || null
+ email: email || null,
+ phone: phone || null
});
}
@@ -610,12 +618,13 @@ export default {
birthDate: src.birthDate || null,
gender,
address: src.address || null,
- email: src.email || null
+ email: src.email || null,
+ phone: src.phone || null
});
}
// 2. Nur Teilnehmer mit fehlenden Daten filtern
- const fields = ['birthDate', 'gender', 'address', 'email'];
+ const fields = ['birthDate', 'gender', 'address', 'email', 'phone'];
const playersWithMissing = allPlayerData.filter(p =>
fields.some(f => !p[f])
);
@@ -629,7 +638,7 @@ export default {
playersWithMissing.sort((a, b) => a.name.localeCompare(b.name));
// 3. PDF erzeugen
- const pdf = new jsPDF('p', 'mm', 'a4');
+ const pdf = new jsPDF('l', 'mm', 'a4');
const margin = 15;
const t = this.$t;
@@ -666,6 +675,7 @@ export default {
t('members.birthdate'),
t('members.gender'),
t('tournaments.address'),
+ t('tournaments.phone'),
t('members.emailAddress')
]];
@@ -674,6 +684,7 @@ export default {
p.birthDate ? formatDate(p.birthDate) : linePlaceholder,
p.gender ? formatGender(p.gender) : linePlaceholder,
p.address || linePlaceholder,
+ p.phone || linePlaceholder,
p.email || linePlaceholder
]);
@@ -696,11 +707,12 @@ export default {
fontSize: 9
},
columnStyles: {
- 0: { cellWidth: 35 },
+ 0: { cellWidth: 40 },
1: { cellWidth: 28 },
2: { cellWidth: 25 },
- 3: { cellWidth: 45 },
- 4: { cellWidth: 45 }
+ 3: { cellWidth: 50 },
+ 4: { cellWidth: 40 },
+ 5: { cellWidth: 50 }
},
didParseCell: (data) => {
// Platzhalter-Zeilen grau und kursiv markieren
@@ -718,9 +730,9 @@ export default {
pdf.setFontSize(8);
pdf.setTextColor(150);
pdf.text(
- `${t('tournaments.missingDataPDFTitle')} – ${new Date().toLocaleDateString('de-DE')} – Seite ${i}/${pageCount}`,
+ `${t('tournaments.missingDataPDFTitle')} – ${new Date().toLocaleDateString('de-DE')} – ${t('tournaments.page')} ${i}/${pageCount}`,
margin,
- 290
+ 200
);
}
diff --git a/frontend/src/i18n/locales/de-CH.json b/frontend/src/i18n/locales/de-CH.json
index 41338628..5c4fdfad 100644
--- a/frontend/src/i18n/locales/de-CH.json
+++ b/frontend/src/i18n/locales/de-CH.json
@@ -112,6 +112,9 @@
"missingDataPDFSubtitle": "Bitte d'fehlende Date (markiert mit ____) bi de Teilnehmer nochfroge und do notiere.",
"allDataComplete": "Alli Teilnehmerdaten sind vollständig.",
"address": "Adrässe",
+ "phone": "Telefon",
+ "generatingPDF": "PDF wird erstellt...",
+ "page": "Siite",
"dataNotRecorded": "No nid erfasst"
}
}
diff --git a/frontend/src/i18n/locales/de-extended.json b/frontend/src/i18n/locales/de-extended.json
index 7cb1169e..86f262a1 100644
--- a/frontend/src/i18n/locales/de-extended.json
+++ b/frontend/src/i18n/locales/de-extended.json
@@ -280,6 +280,9 @@
"missingDataPDFSubtitle": "Bitte die fehlenden Daten (markiert mit ____) bei den Teilnehmern erfragen und hier notieren.",
"allDataComplete": "Alle Teilnehmerdaten sind vollständig.",
"address": "Adresse",
+ "phone": "Telefon",
+ "generatingPDF": "PDF wird erstellt...",
+ "page": "Seite",
"dataNotRecorded": "Noch nicht erfasst"
},
"permissions": {
diff --git a/frontend/src/i18n/locales/de.json b/frontend/src/i18n/locales/de.json
index ac1e6b7e..fd3b1c2c 100644
--- a/frontend/src/i18n/locales/de.json
+++ b/frontend/src/i18n/locales/de.json
@@ -586,6 +586,9 @@
"missingDataPDFSubtitle": "Bitte die fehlenden Daten (markiert mit ____) bei den Teilnehmern erfragen und hier notieren.",
"allDataComplete": "Alle Teilnehmerdaten sind vollständig.",
"address": "Adresse",
+ "phone": "Telefon",
+ "generatingPDF": "PDF wird erstellt...",
+ "page": "Seite",
"create": "Erstellen",
"exportPDF": "PDF exportieren",
"playInGroups": "Spielen in Gruppen",
diff --git a/frontend/src/i18n/locales/en-AU.json b/frontend/src/i18n/locales/en-AU.json
index c786c2b5..d77a1370 100644
--- a/frontend/src/i18n/locales/en-AU.json
+++ b/frontend/src/i18n/locales/en-AU.json
@@ -112,6 +112,9 @@
"missingDataPDFSubtitle": "Please collect the missing data (marked with ____) from participants and note them here.",
"allDataComplete": "All participant data is complete.",
"address": "Address",
+ "phone": "Phone",
+ "generatingPDF": "Generating PDF...",
+ "page": "Page",
"dataNotRecorded": "Not yet recorded"
}
}
diff --git a/frontend/src/i18n/locales/en-GB.json b/frontend/src/i18n/locales/en-GB.json
index 0b0c6ebf..743d2638 100644
--- a/frontend/src/i18n/locales/en-GB.json
+++ b/frontend/src/i18n/locales/en-GB.json
@@ -112,6 +112,9 @@
"missingDataPDFSubtitle": "Please collect the missing data (marked with ____) from participants and note them here.",
"allDataComplete": "All participant data is complete.",
"address": "Address",
+ "phone": "Phone",
+ "generatingPDF": "Generating PDF...",
+ "page": "Page",
"dataNotRecorded": "Not yet recorded"
}
}
diff --git a/frontend/src/i18n/locales/en-US.json b/frontend/src/i18n/locales/en-US.json
index 6137ae66..3204b207 100644
--- a/frontend/src/i18n/locales/en-US.json
+++ b/frontend/src/i18n/locales/en-US.json
@@ -112,6 +112,9 @@
"missingDataPDFSubtitle": "Please collect the missing data (marked with ____) from participants and note them here.",
"allDataComplete": "All participant data is complete.",
"address": "Address",
+ "phone": "Phone",
+ "generatingPDF": "Generating PDF...",
+ "page": "Page",
"dataNotRecorded": "Not yet recorded"
}
}
diff --git a/frontend/src/i18n/locales/es.json b/frontend/src/i18n/locales/es.json
index 05fd03c9..cec089a0 100644
--- a/frontend/src/i18n/locales/es.json
+++ b/frontend/src/i18n/locales/es.json
@@ -112,6 +112,9 @@
"missingDataPDFSubtitle": "Por favor, recopile los datos faltantes (marcados con ____) de los participantes y anótelos aquí.",
"allDataComplete": "Todos los datos de los participantes están completos.",
"address": "Dirección",
+ "phone": "Teléfono",
+ "generatingPDF": "Generando PDF...",
+ "page": "Página",
"dataNotRecorded": "Aún no registrado"
}
}
diff --git a/frontend/src/i18n/locales/fil.json b/frontend/src/i18n/locales/fil.json
index d0722cb0..f8866a70 100644
--- a/frontend/src/i18n/locales/fil.json
+++ b/frontend/src/i18n/locales/fil.json
@@ -112,6 +112,9 @@
"missingDataPDFSubtitle": "Pakikolekta ang nawawalang datos (may markang ____) mula sa mga kalahok at itala dito.",
"allDataComplete": "Kumpleto na ang lahat ng datos ng mga kalahok.",
"address": "Address",
+ "phone": "Telepono",
+ "generatingPDF": "Gumagawa ng PDF...",
+ "page": "Pahina",
"dataNotRecorded": "Hindi pa naitala"
}
}
diff --git a/frontend/src/i18n/locales/fr.json b/frontend/src/i18n/locales/fr.json
index 1fa5bf84..fff582f8 100644
--- a/frontend/src/i18n/locales/fr.json
+++ b/frontend/src/i18n/locales/fr.json
@@ -112,6 +112,9 @@
"missingDataPDFSubtitle": "Veuillez collecter les données manquantes (marquées ____) auprès des participants et les noter ici.",
"allDataComplete": "Toutes les données des participants sont complètes.",
"address": "Adresse",
+ "phone": "Téléphone",
+ "generatingPDF": "Génération du PDF...",
+ "page": "Page",
"dataNotRecorded": "Pas encore enregistré"
}
}
diff --git a/frontend/src/i18n/locales/it.json b/frontend/src/i18n/locales/it.json
index 68ffab3b..c25603f0 100644
--- a/frontend/src/i18n/locales/it.json
+++ b/frontend/src/i18n/locales/it.json
@@ -112,6 +112,9 @@
"missingDataPDFSubtitle": "Si prega di raccogliere i dati mancanti (contrassegnati con ____) dai partecipanti e annotarli qui.",
"allDataComplete": "Tutti i dati dei partecipanti sono completi.",
"address": "Indirizzo",
+ "phone": "Telefono",
+ "generatingPDF": "Generazione PDF...",
+ "page": "Pagina",
"dataNotRecorded": "Non ancora registrato"
}
}
diff --git a/frontend/src/i18n/locales/ja.json b/frontend/src/i18n/locales/ja.json
index e513b368..6564c63a 100644
--- a/frontend/src/i18n/locales/ja.json
+++ b/frontend/src/i18n/locales/ja.json
@@ -112,6 +112,9 @@
"missingDataPDFSubtitle": "不足しているデータ(____で表示)を参加者から収集し、ここに記入してください。",
"allDataComplete": "すべての参加者データが揃っています。",
"address": "住所",
+ "phone": "電話",
+ "generatingPDF": "PDF作成中...",
+ "page": "ページ",
"dataNotRecorded": "未登録"
}
}
diff --git a/frontend/src/i18n/locales/pl.json b/frontend/src/i18n/locales/pl.json
index e20ec641..e6c29fe9 100644
--- a/frontend/src/i18n/locales/pl.json
+++ b/frontend/src/i18n/locales/pl.json
@@ -112,6 +112,9 @@
"missingDataPDFSubtitle": "Proszę zebrać brakujące dane (oznaczone ____) od uczestników i zanotować je tutaj.",
"allDataComplete": "Wszystkie dane uczestników są kompletne.",
"address": "Adres",
+ "phone": "Telefon",
+ "generatingPDF": "Generowanie PDF...",
+ "page": "Strona",
"dataNotRecorded": "Jeszcze nie wprowadzono"
}
}
diff --git a/frontend/src/i18n/locales/th.json b/frontend/src/i18n/locales/th.json
index 71bbaa72..548001d9 100644
--- a/frontend/src/i18n/locales/th.json
+++ b/frontend/src/i18n/locales/th.json
@@ -112,6 +112,9 @@
"missingDataPDFSubtitle": "กรุณาเก็บข้อมูลที่ขาดหาย (ทำเครื่องหมาย ____) จากผู้เข้าร่วมและจดบันทึกที่นี่",
"allDataComplete": "ข้อมูลผู้เข้าร่วมทั้งหมดครบถ้วน",
"address": "ที่อยู่",
+ "phone": "โทรศัพท์",
+ "generatingPDF": "กำลังสร้าง PDF...",
+ "page": "หน้า",
"dataNotRecorded": "ยังไม่ได้บันทึก"
}
}
diff --git a/frontend/src/i18n/locales/tl.json b/frontend/src/i18n/locales/tl.json
index d0722cb0..f8866a70 100644
--- a/frontend/src/i18n/locales/tl.json
+++ b/frontend/src/i18n/locales/tl.json
@@ -112,6 +112,9 @@
"missingDataPDFSubtitle": "Pakikolekta ang nawawalang datos (may markang ____) mula sa mga kalahok at itala dito.",
"allDataComplete": "Kumpleto na ang lahat ng datos ng mga kalahok.",
"address": "Address",
+ "phone": "Telepono",
+ "generatingPDF": "Gumagawa ng PDF...",
+ "page": "Pahina",
"dataNotRecorded": "Hindi pa naitala"
}
}
diff --git a/frontend/src/i18n/locales/zh.json b/frontend/src/i18n/locales/zh.json
index 60fd22b9..60803724 100644
--- a/frontend/src/i18n/locales/zh.json
+++ b/frontend/src/i18n/locales/zh.json
@@ -112,6 +112,9 @@
"missingDataPDFSubtitle": "请向参赛者收集缺失数据(标记为____)并在此记录。",
"allDataComplete": "所有参赛者数据已完整。",
"address": "地址",
+ "phone": "电话",
+ "generatingPDF": "正在生成PDF...",
+ "page": "页",
"dataNotRecorded": "尚未录入"
}
}