diff --git a/resources/js/Pages/Services/Index.vue b/resources/js/Pages/Services/Index.vue index a87aa80..87b6f03 100644 --- a/resources/js/Pages/Services/Index.vue +++ b/resources/js/Pages/Services/Index.vue @@ -19,6 +19,9 @@ const toastType = ref('info') const confirmDialog = ref(false) const confirmWarnings = ref([]) const confirmServiceId = ref(null) +const deleteDialog = ref(false) +const deleteServiceId = ref(null) +const deleteServiceTitle = ref('') const finalizing = ref(false) const showArchived = computed(() => props.archived) @@ -128,6 +131,30 @@ function reopenService(serviceId) { }) } +function promptDeleteService(service) { + deleteServiceId.value = service.id + deleteServiceTitle.value = service.title + deleteDialog.value = true +} + +function cancelDeleteService() { + deleteDialog.value = false + deleteServiceId.value = null + deleteServiceTitle.value = '' +} + +function confirmDeleteService() { + router.delete(route('services.destroy', deleteServiceId.value), { + preserveScroll: true, + onSuccess: () => { + deleteDialog.value = false + deleteServiceId.value = null + deleteServiceTitle.value = '' + showToast('Service wurde gelöscht.', 'success') + }, + }) +} + async function downloadService(serviceId) { try { const response = await fetch(route('services.download', serviceId), { @@ -340,6 +367,14 @@ function stateIconClass(isDone) { > Herunterladen + + Löschen + @@ -360,6 +395,14 @@ function stateIconClass(isDone) { > Abschließen + + Löschen + @@ -425,5 +468,45 @@ function stateIconClass(isDone) { + + + + + + Service löschen? + + „{{ deleteServiceTitle }}" wird gelöscht und beim nächsten Sync aus ChurchTools neu erstellt. + + + + Abbrechen + + + Löschen + + + + + +
+ „{{ deleteServiceTitle }}" wird gelöscht und beim nächsten Sync aus ChurchTools neu erstellt. +