working now

This commit is contained in:
HotSwapp
2025-08-10 19:06:21 -05:00
parent c2f3c4411d
commit 350af60db3
10 changed files with 248 additions and 11 deletions

View File

@@ -1643,8 +1643,48 @@ async function createBackup() {
}
}
function downloadBackup(filename) {
window.open('/api/admin/backup/download', '_blank');
async function downloadBackup(filename) {
try {
const response = await fetch('/api/admin/backup/download', {
method: 'GET',
headers: getAuthHeaders()
});
if (!response.ok) {
let errorMsg = 'Failed to download backup';
try {
const err = await response.json();
errorMsg = err.detail || errorMsg;
} catch (_) {}
showAlert(errorMsg, 'error');
return;
}
const blob = await response.blob();
// Try to extract filename from headers if provided
let suggestedName = filename || 'database_backup.db';
const disp = response.headers.get('Content-Disposition') || response.headers.get('content-disposition');
if (disp) {
const match = /filename\*=UTF-8''([^;]+)|filename="?([^";]+)"?/i.exec(disp);
const extracted = match && (match[1] || match[2]);
if (extracted) {
try { suggestedName = decodeURIComponent(extracted); } catch (_) { suggestedName = extracted; }
}
}
const url = window.URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = suggestedName;
document.body.appendChild(a);
a.click();
a.remove();
window.URL.revokeObjectURL(url);
} catch (error) {
console.error('Backup download failed:', error);
showAlert('Failed to download backup', 'error');
}
}
// Utility Functions