async function renderBackups() {
const content = document.getElementById('pageContent');
content.innerHTML = `
`;
try {
const backups = await api.getBackups();
const container = document.getElementById('backupList');
if (backups.length === 0) {
container.innerHTML = '💾
No backups yet
Create your first backup to protect your system
';
return;
}
container.innerHTML = `
| Name | Size | Created | |
${backups.map(b => `
| ${b.name} |
${formatBytes(b.size)} |
${formatDate(b.created)} |
|
`).join('')}
${backups.length} backups
`;
} catch (err) {
document.getElementById('backupList').innerHTML = `âš
${escapeHtml(err.message)}
`;
}
}
async function createBackup() {
try {
const r = await api.createBackup();
showToast(`Backup created: ${r.file}`, 'success');
renderBackups();
} catch (err) {
showToast(`Error: ${err.message}`, 'error');
}
}
async function restoreBackup(name) {
if (!confirm(`Restore backup: ${name}? This will overwrite current data.`)) return;
try {
const r = await api.restoreBackup(name);
showToast('Backup restored successfully', 'success');
} catch (err) {
showToast(`Error: ${err.message}`, 'error');
}
}