Implement automatic saving and error handling for results, remarks, categories, and years in 'vereinsmeisterschaften.vue'; enhance user feedback with success and error modals for improved user experience.

This commit is contained in:
Torsten Schulz (local)
2025-10-24 15:50:45 +02:00
parent c891030444
commit 21044c6c34

View File

@@ -521,6 +521,14 @@ const saveResult = async () => {
} }
closeModal() closeModal()
// Automatisch speichern
try {
await save()
window.showSuccessModal('Erfolg', 'Ergebnis wurde erfolgreich gespeichert')
} catch (error) {
window.showErrorModal('Fehler', 'Fehler beim Speichern des Ergebnisses: ' + error.message)
}
} }
const saveBemerkung = async () => { const saveBemerkung = async () => {
@@ -548,10 +556,19 @@ const saveBemerkung = async () => {
} }
closeBemerkungModal() closeBemerkungModal()
// Automatisch speichern
try {
await save()
window.showSuccessModal('Erfolg', 'Bemerkung wurde erfolgreich gespeichert')
} catch (error) {
window.showErrorModal('Fehler', 'Fehler beim Speichern der Bemerkung: ' + error.message)
}
} }
const deleteResult = (jahr, kategorie, index) => { const deleteResult = async (jahr, kategorie, index) => {
if (confirm('Möchten Sie dieses Ergebnis wirklich löschen?')) { window.showConfirmModal('Ergebnis löschen', 'Möchten Sie dieses Ergebnis wirklich löschen?', async () => {
try {
const resultToDelete = groupedResults.value[jahr].kategorien[kategorie][index] const resultToDelete = groupedResults.value[jahr].kategorien[kategorie][index]
const resultIndex = results.value.findIndex(r => const resultIndex = results.value.findIndex(r =>
r.jahr === resultToDelete.jahr && r.jahr === resultToDelete.jahr &&
@@ -563,12 +580,19 @@ const deleteResult = (jahr, kategorie, index) => {
if (resultIndex !== -1) { if (resultIndex !== -1) {
results.value.splice(resultIndex, 1) results.value.splice(resultIndex, 1)
// Automatisch speichern nach dem Löschen
await save()
window.showSuccessModal('Erfolg', 'Ergebnis wurde erfolgreich gelöscht')
} }
} catch (error) {
window.showErrorModal('Fehler', 'Fehler beim Löschen des Ergebnisses: ' + error.message)
} }
})
} }
const deleteKategorie = (jahr, kategorie) => { const deleteKategorie = async (jahr, kategorie) => {
if (confirm(`Möchten Sie die Kategorie "${kategorie}" für ${jahr} wirklich löschen?`)) { window.showConfirmModal('Kategorie löschen', `Möchten Sie die Kategorie "${kategorie}" für ${jahr} wirklich löschen?`, async () => {
try {
const kategorieResults = groupedResults.value[jahr].kategorien[kategorie] const kategorieResults = groupedResults.value[jahr].kategorien[kategorie]
kategorieResults.forEach(result => { kategorieResults.forEach(result => {
const resultIndex = results.value.findIndex(r => const resultIndex = results.value.findIndex(r =>
@@ -583,13 +607,26 @@ const deleteKategorie = (jahr, kategorie) => {
results.value.splice(resultIndex, 1) results.value.splice(resultIndex, 1)
} }
}) })
// Automatisch speichern nach dem Löschen
await save()
window.showSuccessModal('Erfolg', 'Kategorie wurde erfolgreich gelöscht')
} catch (error) {
window.showErrorModal('Fehler', 'Fehler beim Löschen der Kategorie: ' + error.message)
} }
})
} }
const deleteYear = (jahr) => { const deleteYear = async (jahr) => {
if (confirm(`Möchten Sie alle Ergebnisse für ${jahr} wirklich löschen?`)) { window.showConfirmModal('Jahr löschen', `Möchten Sie alle Ergebnisse für ${jahr} wirklich löschen?`, async () => {
try {
results.value = results.value.filter(r => r.jahr !== jahr) results.value = results.value.filter(r => r.jahr !== jahr)
// Automatisch speichern nach dem Löschen
await save()
window.showSuccessModal('Erfolg', 'Jahr wurde erfolgreich gelöscht')
} catch (error) {
window.showErrorModal('Fehler', 'Fehler beim Löschen des Jahres: ' + error.message)
} }
})
} }
const closeModal = () => { const closeModal = () => {
@@ -636,13 +673,14 @@ const save = async () => {
}) })
if (response.ok) { if (response.ok) {
alert('Vereinsmeisterschaften erfolgreich gespeichert!') // Erfolgreich gespeichert - keine weitere Nachricht bei automatischem Speichern
return true
} else { } else {
alert('Fehler beim Speichern der Vereinsmeisterschaften!') throw new Error('Fehler beim Speichern')
} }
} catch (error) { } catch (error) {
console.error('Fehler beim Speichern:', error) console.error('Fehler beim Speichern:', error)
alert('Fehler beim Speichern der Vereinsmeisterschaften!') throw error
} }
} }