diff --git a/frontend-modern/src/components/Backups/UnifiedBackups.tsx b/frontend-modern/src/components/Backups/UnifiedBackups.tsx
index 0f203422a..a363f6a04 100644
--- a/frontend-modern/src/components/Backups/UnifiedBackups.tsx
+++ b/frontend-modern/src/components/Backups/UnifiedBackups.tsx
@@ -26,6 +26,8 @@ interface UnifiedBackup {
namespace: string | null;
verified: boolean | null;
protected: boolean;
+ encrypted?: boolean;
+ owner?: string;
}
// Types for PBS backups - temporarily disabled to avoid unused warnings
@@ -186,6 +188,13 @@ const UnifiedBackups: Component = () => {
console.log(`PBS backup: vmid=${backup.vmid}, time=${backupTimeSeconds}, key=${backupKey}, verified=${backup.verified}`);
}
+ // Check if any files have encryption
+ const isEncrypted = backup.files && Array.isArray(backup.files) &&
+ backup.files.some((file: any) => {
+ if (typeof file === 'string') return false;
+ return file.crypt || file.encrypted || (file.filename && file.filename.includes('.enc'));
+ });
+
unified.push({
backupType: 'remote',
vmid: parseInt(backup.vmid) || 0,
@@ -201,7 +210,9 @@ const UnifiedBackups: Component = () => {
datastore: backup.datastore || null,
namespace: backup.namespace || 'root',
verified: backup.verified || false,
- protected: backup.protected || false
+ protected: backup.protected || false,
+ encrypted: isEncrypted,
+ owner: backup.owner
});
});
@@ -254,7 +265,8 @@ const UnifiedBackups: Component = () => {
datastore: backup.isPBS ? backup.storage : null,
namespace: backup.isPBS ? 'root' : null,
verified: backup.verified || false,
- protected: backup.protected || false
+ protected: backup.protected || false,
+ encrypted: backup.encryption ? true : false // Check encryption field from Proxmox API
});
});
@@ -667,10 +679,12 @@ const UnifiedBackups: Component = () => {
// Calculate average deduplication factor across all datastores
const avgFactor = dedupFactors.reduce((sum, f) => sum + f, 0) / dedupFactors.length;
- // Format as ratio
- return avgFactor.toFixed(1) + ':1';
+ // Format as multiplication factor
+ return avgFactor.toFixed(1) + 'x';
});
+
+
// Calculate backup frequency data for chart
const chartData = createMemo(() => {
const days = chartTimeRange();
@@ -1580,6 +1594,15 @@ const UnifiedBackups: Component = () => {
>
Node {sortKey() === 'node' && (sortDirection() === 'asc' ? '▲' : '▼')}
+ handleSort('owner')}
+ style="width: 80px;"
+ >
+ Owner {sortKey() === 'owner' && (sortDirection() === 'asc' ? '▲' : '▼')}
+
+