diff --git a/app/pages/storage.vue b/app/pages/storage.vue index df35171..c5dc202 100644 --- a/app/pages/storage.vue +++ b/app/pages/storage.vue @@ -310,6 +310,30 @@ watch(isAuthenticated, async (authed) => { await loadStorage() } }) + +const exportingCsv = ref(false) + +async function exportDatabaseCsv() { + if (exportingCsv.value) return + exportingCsv.value = true + try { + const blob = await $fetch('/api/admin/export/csv', { + credentials: 'include', + responseType: 'blob' + }) + const url = URL.createObjectURL(blob) + const link = document.createElement('a') + link.href = url + link.download = `pichost-db-${new Date().toISOString().slice(0, 10)}.tar.gz` + link.click() + URL.revokeObjectURL(url) + toast.add({ title: t('storage.exportCsvStarted'), color: 'success' }) + } catch { + toast.add({ title: t('storage.exportCsvFailed'), color: 'error' }) + } finally { + exportingCsv.value = false + } +}