From 42b9a10437c25ff4f451200bf0c0ce4a6bed4d8b Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Sat, 20 Dec 2025 10:19:29 +0100 Subject: [PATCH] Refactor error handling in various components to ignore modal display failures and improve code clarity --- pages/cms/einstellungen.vue | 8 ++++++-- pages/cms/geschichte.vue | 8 ++++++-- pages/cms/spielplaene.vue | 3 ++- pages/cms/tt-regeln.vue | 8 ++++++-- pages/cms/ueber-uns.vue | 8 ++++++-- server/api/cms/satzung-upload.post.js | 4 ++-- server/api/galerie/upload.post.js | 4 +++- server/api/membership/generate-pdf.post.js | 16 ++++++++++++---- server/api/personen/upload.post.js | 4 +++- 9 files changed, 46 insertions(+), 17 deletions(-) diff --git a/pages/cms/einstellungen.vue b/pages/cms/einstellungen.vue index 83795dd..794f0ef 100644 --- a/pages/cms/einstellungen.vue +++ b/pages/cms/einstellungen.vue @@ -615,13 +615,17 @@ const saveConfig = async () => { }) successMessage.value = 'Konfiguration erfolgreich gespeichert!' - try { window.showSuccessModal && window.showSuccessModal('Erfolg', 'Konfiguration erfolgreich gespeichert!') } catch (e) {} + try { window.showSuccessModal && window.showSuccessModal('Erfolg', 'Konfiguration erfolgreich gespeichert!') } catch (_e) { + // Modal nicht verfügbar, ignorieren + } setTimeout(() => { successMessage.value = '' }, 3000) } catch (error) { errorMessage.value = error.data?.message || 'Fehler beim Speichern der Konfiguration.' - try { window.showErrorModal && window.showErrorModal('Fehler', errorMessage.value) } catch (e) {} + try { window.showErrorModal && window.showErrorModal('Fehler', errorMessage.value) } catch (_e) { + // Modal nicht verfügbar, ignorieren + } } finally { isSaving.value = false } diff --git a/pages/cms/geschichte.vue b/pages/cms/geschichte.vue index d7c3c56..ca1eb64 100644 --- a/pages/cms/geschichte.vue +++ b/pages/cms/geschichte.vue @@ -168,9 +168,13 @@ async function save() { const updated = { ...current, seiten: { ...(current.seiten || {}), geschichte: html } } try { await $fetch('/api/config', { method: 'PUT', body: updated }) - try { window.showSuccessModal && window.showSuccessModal('Erfolg', 'Inhalt erfolgreich gespeichert!') } catch (e) {} + try { window.showSuccessModal && window.showSuccessModal('Erfolg', 'Inhalt erfolgreich gespeichert!') } catch (_e) { + // Modal nicht verfügbar, ignorieren + } } catch (error) { - try { window.showErrorModal && window.showErrorModal('Fehler', error?.data?.message || 'Speichern fehlgeschlagen') } catch (e) {} + try { window.showErrorModal && window.showErrorModal('Fehler', error?.data?.message || 'Speichern fehlgeschlagen') } catch (_e) { + // Modal nicht verfügbar, ignorieren + } } } diff --git a/pages/cms/spielplaene.vue b/pages/cms/spielplaene.vue index db544d2..0bd8de0 100644 --- a/pages/cms/spielplaene.vue +++ b/pages/cms/spielplaene.vue @@ -675,7 +675,8 @@ const loadExistingData = async () => { } } } - } catch (error) { + } catch (_error) { + // Fehler beim Laden der Datei, ignorieren } } diff --git a/pages/cms/tt-regeln.vue b/pages/cms/tt-regeln.vue index 9ad613c..1282075 100644 --- a/pages/cms/tt-regeln.vue +++ b/pages/cms/tt-regeln.vue @@ -193,9 +193,13 @@ async function save() { const updated = { ...current, seiten: { ...(current.seiten || {}), ttRegeln: html } } try { await $fetch('/api/config', { method: 'PUT', body: updated }) - try { window.showSuccessModal && window.showSuccessModal('Erfolg', 'Regeln erfolgreich gespeichert!') } catch (e) {} + try { window.showSuccessModal && window.showSuccessModal('Erfolg', 'Regeln erfolgreich gespeichert!') } catch (_e) { + // Modal nicht verfügbar, ignorieren + } } catch (error) { - try { window.showErrorModal && window.showErrorModal('Fehler', error?.data?.message || 'Speichern fehlgeschlagen') } catch (e) {} + try { window.showErrorModal && window.showErrorModal('Fehler', error?.data?.message || 'Speichern fehlgeschlagen') } catch (_e) { + // Modal nicht verfügbar, ignorieren + } } } diff --git a/pages/cms/ueber-uns.vue b/pages/cms/ueber-uns.vue index 8ee15ee..051f544 100644 --- a/pages/cms/ueber-uns.vue +++ b/pages/cms/ueber-uns.vue @@ -120,9 +120,13 @@ async function save() { const updated = { ...current, seiten: { ...(current.seiten || {}), ueberUns: html } } try { await $fetch('/api/config', { method: 'PUT', body: updated }) - try { window.showSuccessModal && window.showSuccessModal('Erfolg', 'Inhalt erfolgreich gespeichert!') } catch (e) {} + try { window.showSuccessModal && window.showSuccessModal('Erfolg', 'Inhalt erfolgreich gespeichert!') } catch (_e) { + // Modal nicht verfügbar, ignorieren + } } catch (error) { - try { window.showErrorModal && window.showErrorModal('Fehler', error?.data?.message || 'Speichern fehlgeschlagen') } catch (e) {} + try { window.showErrorModal && window.showErrorModal('Fehler', error?.data?.message || 'Speichern fehlgeschlagen') } catch (_e) { + // Modal nicht verfügbar, ignorieren + } } } diff --git a/server/api/cms/satzung-upload.post.js b/server/api/cms/satzung-upload.post.js index fbb0dc3..e2b5b6d 100644 --- a/server/api/cms/satzung-upload.post.js +++ b/server/api/cms/satzung-upload.post.js @@ -238,8 +238,8 @@ function convertTextToHtml(text) { if (paragraph.includes('•') || paragraph.includes('-') || paragraph.match(/^\d+\./)) { const listItems = paragraph.split(/\n/).map(item => { item = item.trim() - if (item.match(/^[•\-]\s/) || item.match(/^\d+\.\s/)) { - return `
  • ${item.replace(/^[•\-]\s/, '').replace(/^\d+\.\s/, '')}
  • ` + if (item.match(/^[•-]\s/) || item.match(/^\d+\.\s/)) { + return `
  • ${item.replace(/^[•-]\s/, '').replace(/^\d+\.\s/, '')}
  • ` } return `
  • ${item}
  • ` }).join('') diff --git a/server/api/galerie/upload.post.js b/server/api/galerie/upload.post.js index afb9794..ca30059 100644 --- a/server/api/galerie/upload.post.js +++ b/server/api/galerie/upload.post.js @@ -119,7 +119,9 @@ export default defineEventHandler(async (event) => { // Titel ist Pflichtfeld if (!body.title || !body.title.trim()) { // Lösche die hochgeladene Datei - await fs.unlink(file.path).catch(() => {}) + await fs.unlink(file.path).catch(() => { + // Datei bereits gelöscht oder nicht vorhanden, ignorieren + }) throw createError({ statusCode: 400, statusMessage: 'Titel ist ein Pflichtfeld' diff --git a/server/api/membership/generate-pdf.post.js b/server/api/membership/generate-pdf.post.js index f245a4f..6090293 100644 --- a/server/api/membership/generate-pdf.post.js +++ b/server/api/membership/generate-pdf.post.js @@ -39,7 +39,9 @@ function setTextFieldIfEmpty(field, val) { const cur = field.getText() if (cur && String(cur).trim() !== '') return } - } catch (e) {} + } catch (_e) { + // Feld nicht lesbar, ignorieren + } if (val != null && String(val).trim() !== '') field.setText(val) } @@ -58,9 +60,13 @@ function setCheckboxIfNeeded(field, name, data) { if (mapped === 'true' || mapped === 'ja' || mapped === 'checked') { try { if (!(typeof field.isChecked === 'function' && field.isChecked())) field.check && field.check() - } catch (e) { field.check && field.check() } + } catch (_e) { + field.check && field.check() + } } - } catch (e) {} + } catch (_e) { + // Feld nicht verarbeitbar, ignorieren + } } async function fillFormFields(pdfDoc, form, data) { @@ -81,7 +87,9 @@ async function fillFormFields(pdfDoc, form, data) { try { const helv2 = await pdfDoc.embedFont(StandardFonts.Helvetica) form.updateFieldAppearances(helv2) - } catch (e) {} + } catch (_e) { + // Schriftart nicht einbettbar, ignorieren + } } function generateLaTeXContent(data) { diff --git a/server/api/personen/upload.post.js b/server/api/personen/upload.post.js index e369694..d7d223d 100644 --- a/server/api/personen/upload.post.js +++ b/server/api/personen/upload.post.js @@ -104,7 +104,9 @@ export default defineEventHandler(async (event) => { .toFile(newPath) // Temporäre Datei löschen - await fs.unlink(originalPath).catch(() => {}) + await fs.unlink(originalPath).catch(() => { + // Datei bereits gelöscht oder nicht vorhanden, ignorieren + }) return { success: true,