From 08eea07cfe05ac64e9d6d4a7f8314f269d834e9c Mon Sep 17 00:00:00 2001 From: DevITWay Date: Mon, 26 Jan 2026 16:39:48 +0000 Subject: [PATCH] Fix formatting --- nora-registry/src/activity_log.rs | 7 +- nora-registry/src/registry/maven.rs | 20 +++++- nora-registry/src/ui/api.rs | 7 +- nora-registry/src/ui/components.rs | 40 ++++++++++-- nora-registry/src/ui/templates.rs | 99 ++++++++++++++++------------- 5 files changed, 114 insertions(+), 59 deletions(-) diff --git a/nora-registry/src/activity_log.rs b/nora-registry/src/activity_log.rs index e288054..936239f 100644 --- a/nora-registry/src/activity_log.rs +++ b/nora-registry/src/activity_log.rs @@ -71,12 +71,7 @@ impl ActivityLog { /// Get the most recent N entries (newest first) pub fn recent(&self, count: usize) -> Vec { let entries = self.entries.read(); - entries - .iter() - .rev() - .take(count) - .cloned() - .collect() + entries.iter().rev().take(count).cloned().collect() } /// Get all entries (newest first) diff --git a/nora-registry/src/registry/maven.rs b/nora-registry/src/registry/maven.rs index 02d2487..7dc3903 100644 --- a/nora-registry/src/registry/maven.rs +++ b/nora-registry/src/registry/maven.rs @@ -21,7 +21,15 @@ async fn download(State(state): State>, Path(path): Path) let key = format!("maven/{}", path); // Extract artifact name for logging (last 2-3 path components) - let artifact_name = path.split('/').rev().take(3).collect::>().into_iter().rev().collect::>().join("/"); + let artifact_name = path + .split('/') + .rev() + .take(3) + .collect::>() + .into_iter() + .rev() + .collect::>() + .join("/"); // Try local storage first if let Ok(data) = state.storage.get(&key).await { @@ -76,7 +84,15 @@ async fn upload( let key = format!("maven/{}", path); // Extract artifact name for logging - let artifact_name = path.split('/').rev().take(3).collect::>().into_iter().rev().collect::>().join("/"); + let artifact_name = path + .split('/') + .rev() + .take(3) + .collect::>() + .into_iter() + .rev() + .collect::>() + .join("/"); match state.storage.put(&key, &body).await { Ok(()) => { diff --git a/nora-registry/src/ui/api.rs b/nora-registry/src/ui/api.rs index 04db16a..187f300 100644 --- a/nora-registry/src/ui/api.rs +++ b/nora-registry/src/ui/api.rs @@ -139,8 +139,11 @@ pub async fn api_dashboard(State(state): State>) -> Json) -> String { } /// Dark theme layout wrapper for dashboard -pub fn layout_dark(title: &str, content: &str, active_page: Option<&str>, extra_scripts: &str) -> String { +pub fn layout_dark( + title: &str, + content: &str, + active_page: Option<&str>, + extra_scripts: &str, +) -> String { format!( r##" @@ -238,7 +243,13 @@ fn header_dark() -> String { } /// Render global stats row (5-column grid) -pub fn render_global_stats(downloads: u64, uploads: u64, artifacts: u64, cache_hit_percent: f64, storage_bytes: u64) -> String { +pub fn render_global_stats( + downloads: u64, + uploads: u64, + artifacts: u64, + cache_hit_percent: f64, + storage_bytes: u64, +) -> String { format!( r##"
@@ -273,7 +284,15 @@ pub fn render_global_stats(downloads: u64, uploads: u64, artifacts: u64, cache_h } /// Render registry card with extended metrics -pub fn render_registry_card(name: &str, icon_path: &str, artifact_count: usize, downloads: u64, uploads: u64, size_bytes: u64, href: &str) -> String { +pub fn render_registry_card( + name: &str, + icon_path: &str, + artifact_count: usize, + downloads: u64, + uploads: u64, + size_bytes: u64, + href: &str, +) -> String { format!( r##" @@ -359,7 +378,13 @@ pub fn render_mount_points_table(mount_points: &[(String, String, Option } /// Render a single activity log row -pub fn render_activity_row(timestamp: &str, action: &str, artifact: &str, registry: &str, source: &str) -> String { +pub fn render_activity_row( + timestamp: &str, + action: &str, + artifact: &str, + registry: &str, + source: &str, +) -> String { let action_color = match action { "PULL" => "text-blue-400", "PUSH" => "text-green-400", @@ -378,7 +403,12 @@ pub fn render_activity_row(timestamp: &str, action: &str, artifact: &str, regist {} "##, - timestamp, action_color, action, html_escape(artifact), registry, source + timestamp, + action_color, + action, + html_escape(artifact), + registry, + source ) } diff --git a/nora-registry/src/ui/templates.rs b/nora-registry/src/ui/templates.rs index b3ec1e0..a1a9635 100644 --- a/nora-registry/src/ui/templates.rs +++ b/nora-registry/src/ui/templates.rs @@ -13,37 +13,49 @@ pub fn render_dashboard(data: &DashboardResponse) -> String { ); // Render registry cards - let registry_cards: String = data.registry_stats.iter().map(|r| { - let icon = match r.name.as_str() { - "docker" => icons::DOCKER, - "maven" => icons::MAVEN, - "npm" => icons::NPM, - "cargo" => icons::CARGO, - "pypi" => icons::PYPI, - _ => icons::DOCKER, - }; - let display_name = match r.name.as_str() { - "docker" => "Docker", - "maven" => "Maven", - "npm" => "npm", - "cargo" => "Cargo", - "pypi" => "PyPI", - _ => &r.name, - }; - render_registry_card( - display_name, - icon, - r.artifact_count, - r.downloads, - r.uploads, - r.size_bytes, - &format!("/ui/{}", r.name), - ) - }).collect(); + let registry_cards: String = data + .registry_stats + .iter() + .map(|r| { + let icon = match r.name.as_str() { + "docker" => icons::DOCKER, + "maven" => icons::MAVEN, + "npm" => icons::NPM, + "cargo" => icons::CARGO, + "pypi" => icons::PYPI, + _ => icons::DOCKER, + }; + let display_name = match r.name.as_str() { + "docker" => "Docker", + "maven" => "Maven", + "npm" => "npm", + "cargo" => "Cargo", + "pypi" => "PyPI", + _ => &r.name, + }; + render_registry_card( + display_name, + icon, + r.artifact_count, + r.downloads, + r.uploads, + r.size_bytes, + &format!("/ui/{}", r.name), + ) + }) + .collect(); // Render mount points - let mount_data: Vec<(String, String, Option)> = data.mount_points.iter() - .map(|m| (m.registry.clone(), m.mount_path.clone(), m.proxy_upstream.clone())) + let mount_data: Vec<(String, String, Option)> = data + .mount_points + .iter() + .map(|m| { + ( + m.registry.clone(), + m.mount_path.clone(), + m.proxy_upstream.clone(), + ) + }) .collect(); let mount_points = render_mount_points_table(&mount_data); @@ -51,16 +63,19 @@ pub fn render_dashboard(data: &DashboardResponse) -> String { let activity_rows: String = if data.activity.is_empty() { r##"No recent activity"##.to_string() } else { - data.activity.iter().map(|entry| { - let time_ago = format_relative_time(&entry.timestamp); - render_activity_row( - &time_ago, - &entry.action.to_string(), - &entry.artifact, - &entry.registry, - &entry.source, - ) - }).collect() + data.activity + .iter() + .map(|entry| { + let time_ago = format_relative_time(&entry.timestamp); + render_activity_row( + &time_ago, + &entry.action.to_string(), + &entry.artifact, + &entry.registry, + &entry.source, + ) + }) + .collect() }; let activity_log = render_activity_log(&activity_rows); @@ -95,11 +110,7 @@ pub fn render_dashboard(data: &DashboardResponse) -> String { {}
"##, - uptime_str, - global_stats, - registry_cards, - mount_points, - activity_log, + uptime_str, global_stats, registry_cards, mount_points, activity_log, ); let polling_script = render_polling_script();