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:
@@ -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,48 +556,77 @@ const saveBemerkung = async () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
closeBemerkungModal()
|
closeBemerkungModal()
|
||||||
}
|
|
||||||
|
|
||||||
const deleteResult = (jahr, kategorie, index) => {
|
// Automatisch speichern
|
||||||
if (confirm('Möchten Sie dieses Ergebnis wirklich löschen?')) {
|
try {
|
||||||
const resultToDelete = groupedResults.value[jahr].kategorien[kategorie][index]
|
await save()
|
||||||
const resultIndex = results.value.findIndex(r =>
|
window.showSuccessModal('Erfolg', 'Bemerkung wurde erfolgreich gespeichert')
|
||||||
r.jahr === resultToDelete.jahr &&
|
} catch (error) {
|
||||||
r.kategorie === resultToDelete.kategorie &&
|
window.showErrorModal('Fehler', 'Fehler beim Speichern der Bemerkung: ' + error.message)
|
||||||
r.platz === resultToDelete.platz &&
|
|
||||||
r.spieler1 === resultToDelete.spieler1 &&
|
|
||||||
r.spieler2 === resultToDelete.spieler2
|
|
||||||
)
|
|
||||||
|
|
||||||
if (resultIndex !== -1) {
|
|
||||||
results.value.splice(resultIndex, 1)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const deleteKategorie = (jahr, kategorie) => {
|
const deleteResult = async (jahr, kategorie, index) => {
|
||||||
if (confirm(`Möchten Sie die Kategorie "${kategorie}" für ${jahr} wirklich löschen?`)) {
|
window.showConfirmModal('Ergebnis löschen', 'Möchten Sie dieses Ergebnis wirklich löschen?', async () => {
|
||||||
const kategorieResults = groupedResults.value[jahr].kategorien[kategorie]
|
try {
|
||||||
kategorieResults.forEach(result => {
|
const resultToDelete = groupedResults.value[jahr].kategorien[kategorie][index]
|
||||||
const resultIndex = results.value.findIndex(r =>
|
const resultIndex = results.value.findIndex(r =>
|
||||||
r.jahr === result.jahr &&
|
r.jahr === resultToDelete.jahr &&
|
||||||
r.kategorie === result.kategorie &&
|
r.kategorie === resultToDelete.kategorie &&
|
||||||
r.platz === result.platz &&
|
r.platz === resultToDelete.platz &&
|
||||||
r.spieler1 === result.spieler1 &&
|
r.spieler1 === resultToDelete.spieler1 &&
|
||||||
r.spieler2 === result.spieler2
|
r.spieler2 === resultToDelete.spieler2
|
||||||
)
|
)
|
||||||
|
|
||||||
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 deleteYear = (jahr) => {
|
const deleteKategorie = async (jahr, kategorie) => {
|
||||||
if (confirm(`Möchten Sie alle Ergebnisse für ${jahr} wirklich löschen?`)) {
|
window.showConfirmModal('Kategorie löschen', `Möchten Sie die Kategorie "${kategorie}" für ${jahr} wirklich löschen?`, async () => {
|
||||||
results.value = results.value.filter(r => r.jahr !== jahr)
|
try {
|
||||||
}
|
const kategorieResults = groupedResults.value[jahr].kategorien[kategorie]
|
||||||
|
kategorieResults.forEach(result => {
|
||||||
|
const resultIndex = results.value.findIndex(r =>
|
||||||
|
r.jahr === result.jahr &&
|
||||||
|
r.kategorie === result.kategorie &&
|
||||||
|
r.platz === result.platz &&
|
||||||
|
r.spieler1 === result.spieler1 &&
|
||||||
|
r.spieler2 === result.spieler2
|
||||||
|
)
|
||||||
|
|
||||||
|
if (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 = async (jahr) => {
|
||||||
|
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)
|
||||||
|
// 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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user