- {{ deleteError }}
+
+ {{ deleteError || archiveError }}
-
- {{ deleteSuccess }}
+
+ {{ deleteSuccess || archiveSuccess }}
@@ -245,14 +253,17 @@ definePageMeta({
middleware: 'auth'
})
-// Fetch all sermons for management
-const { data: allSermons, refresh: refreshSermons } = await useFetch('/api/sermons')
+// Fetch all sermons for management (including archived)
+const { data: allSermons, refresh: refreshSermons } = await useFetch('/api/sermons?includeArchived=true')
// Sermon management state
const selectedSermonId = ref('')
const deleteError = ref('')
const deleteSuccess = ref('')
const deleting = ref(false)
+const archiving = ref(false)
+const archiveError = ref('')
+const archiveSuccess = ref('')
// Create sermon form state
const editingSermonId = ref
(null)
@@ -386,9 +397,40 @@ function handleEdit() {
}
}
+async function handleArchive() {
+ if (!selectedSermonId.value) return
+
+ if (!confirm('Are you sure you want to archive this sermon? It will be moved to the previous sermons list.')) {
+ return
+ }
+
+ archiveError.value = ''
+ archiveSuccess.value = ''
+ archiving.value = true
+
+ try {
+ await $fetch(`/api/sermons/archive/${selectedSermonId.value}`, {
+ method: 'POST'
+ })
+
+ archiveSuccess.value = 'Sermon archived successfully!'
+ selectedSermonId.value = ''
+
+ await refreshSermons()
+ } catch (e: any) {
+ archiveError.value = e.data?.message || 'Failed to archive sermon'
+ } finally {
+ archiving.value = false
+ }
+}
+
async function handleDelete() {
if (!selectedSermonId.value) return
+ if (!confirm('Are you sure you want to permanently delete this sermon?')) {
+ return
+ }
+
deleteError.value = ''
deleteSuccess.value = ''
deleting.value = true