Compare commits

...

5 Commits

Author SHA1 Message Date
a0d571a40e Bump version to v0.1.216
All checks were successful
Build and Release / build-and-release (push) Successful in 1m19s
2025-11-29 17:44:12 +01:00
977200fff3 Move archive count to Usage line in backup display 2025-11-29 17:44:05 +01:00
d692de5f83 Bump version to v0.1.215
All checks were successful
Build and Release / build-and-release (push) Successful in 1m11s
2025-11-29 17:41:49 +01:00
f5913dbd43 Add archive count to backup disk display 2025-11-29 17:41:11 +01:00
faa30a7839 Sort backup repositories and disks for stable display
All checks were successful
Build and Release / build-and-release (push) Successful in 1m21s
- Sort repositories alphabetically before rendering
- Sort backup disks by serial number
- Prevents display jumping between different orderings on updates
- Consistent display order across refreshes

Bump version to v0.1.214

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 17:15:17 +01:00
7 changed files with 26 additions and 14 deletions

6
Cargo.lock generated
View File

@@ -279,7 +279,7 @@ checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d"
[[package]]
name = "cm-dashboard"
version = "0.1.212"
version = "0.1.215"
dependencies = [
"anyhow",
"chrono",
@@ -301,7 +301,7 @@ dependencies = [
[[package]]
name = "cm-dashboard-agent"
version = "0.1.212"
version = "0.1.215"
dependencies = [
"anyhow",
"async-trait",
@@ -324,7 +324,7 @@ dependencies = [
[[package]]
name = "cm-dashboard-shared"
version = "0.1.212"
version = "0.1.215"
dependencies = [
"chrono",
"serde",

View File

@@ -1,6 +1,6 @@
[package]
name = "cm-dashboard-agent"
version = "0.1.213"
version = "0.1.216"
edition = "2021"
[dependencies]

View File

@@ -142,6 +142,11 @@ impl BackupCollector {
// Build service list for this disk
let services: Vec<String> = backup_status.services.keys().cloned().collect();
// Calculate total archives across all services on this disk
let total_archives: i64 = backup_status.services.values()
.map(|service| service.archive_count)
.sum();
// Create disk data
let disk_data = BackupDiskData {
serial: backup_status.disk_serial_number.unwrap_or_else(|| "Unknown".to_string()),
@@ -155,6 +160,7 @@ impl BackupCollector {
disk_total_gb: total_gb,
usage_status,
services,
total_archives,
};
disks.push(disk_data);

View File

@@ -1,6 +1,6 @@
[package]
name = "cm-dashboard"
version = "0.1.213"
version = "0.1.216"
edition = "2021"
[dependencies]

View File

@@ -517,19 +517,23 @@ impl SystemWidget {
let repo_spans = StatusIcons::create_status_spans(self.backup_repository_status, &repo_text);
lines.push(Line::from(repo_spans));
// List all repositories
let repo_count = self.backup_repositories.len();
for (idx, repo) in self.backup_repositories.iter().enumerate() {
// List all repositories (sorted for consistent display)
let mut sorted_repos = self.backup_repositories.clone();
sorted_repos.sort();
let repo_count = sorted_repos.len();
for (idx, repo) in sorted_repos.iter().enumerate() {
let tree_char = if idx == repo_count - 1 { "└─" } else { "├─" };
lines.push(Line::from(vec![
Span::styled(format!(" {} ", tree_char), Typography::tree()),
Span::styled(repo, Typography::secondary()),
Span::styled(repo.clone(), Typography::secondary()),
]));
}
}
// Second section: Per-disk backup information
for disk in &self.backup_disks {
// Second section: Per-disk backup information (sorted by serial for consistent display)
let mut sorted_disks = self.backup_disks.clone();
sorted_disks.sort_by(|a, b| a.serial.cmp(&b.serial));
for disk in &sorted_disks {
let truncated_serial = truncate_serial(&disk.serial);
let mut details = Vec::new();
@@ -561,9 +565,10 @@ impl SystemWidget {
lines.push(Line::from(time_spans));
}
// Show usage with status
// Show usage with status and archive count
let usage_text = format!(
"Usage: {:.0}% {:.0}GB/{:.0}GB",
"Usage: ({}) {:.0}% {:.0}GB/{:.0}GB",
disk.total_archives,
disk.disk_usage_percent,
disk.disk_used_gb,
disk.disk_total_gb

View File

@@ -1,6 +1,6 @@
[package]
name = "cm-dashboard-shared"
version = "0.1.213"
version = "0.1.216"
edition = "2021"
[dependencies]

View File

@@ -195,6 +195,7 @@ pub struct BackupDiskData {
pub disk_total_gb: f32,
pub usage_status: Status,
pub services: Vec<String>,
pub total_archives: i64,
}
impl AgentData {