mirror of
https://github.com/getnora-io/nora.git
synced 2026-04-12 10:20:32 +00:00
style: fix formatting and ignore txt files
This commit is contained in:
@@ -181,9 +181,19 @@ async fn build_docker_index(storage: &Storage) -> Vec<RepoInfo> {
|
||||
|
||||
if let Ok(data) = storage.get(key).await {
|
||||
if let Ok(m) = serde_json::from_slice::<serde_json::Value>(&data) {
|
||||
let cfg = m.get("config").and_then(|c| c.get("size")).and_then(|s| s.as_u64()).unwrap_or(0);
|
||||
let layers: u64 = m.get("layers").and_then(|l| l.as_array())
|
||||
.map(|arr| arr.iter().filter_map(|l| l.get("size").and_then(|s| s.as_u64())).sum())
|
||||
let cfg = m
|
||||
.get("config")
|
||||
.and_then(|c| c.get("size"))
|
||||
.and_then(|s| s.as_u64())
|
||||
.unwrap_or(0);
|
||||
let layers: u64 = m
|
||||
.get("layers")
|
||||
.and_then(|l| l.as_array())
|
||||
.map(|arr| {
|
||||
arr.iter()
|
||||
.filter_map(|l| l.get("size").and_then(|s| s.as_u64()))
|
||||
.sum()
|
||||
})
|
||||
.unwrap_or(0);
|
||||
entry.1 += cfg + layers;
|
||||
}
|
||||
|
||||
@@ -116,7 +116,13 @@ pub async fn api_stats(State(state): State<Arc<AppState>>) -> Json<RegistryStats
|
||||
let _ = state.repo_index.get("pypi", &state.storage).await;
|
||||
|
||||
let (docker, maven, npm, cargo, pypi) = state.repo_index.counts();
|
||||
Json(RegistryStats { docker, maven, npm, cargo, pypi })
|
||||
Json(RegistryStats {
|
||||
docker,
|
||||
maven,
|
||||
npm,
|
||||
cargo,
|
||||
pypi,
|
||||
})
|
||||
}
|
||||
|
||||
pub async fn api_dashboard(State(state): State<Arc<AppState>>) -> Json<DashboardResponse> {
|
||||
@@ -135,8 +141,11 @@ pub async fn api_dashboard(State(state): State<Arc<AppState>>) -> Json<Dashboard
|
||||
let pypi_size: u64 = pypi_repos.iter().map(|r| r.size).sum();
|
||||
let total_storage = docker_size + maven_size + npm_size + cargo_size + pypi_size;
|
||||
|
||||
let total_artifacts = docker_repos.len() + maven_repos.len() + npm_repos.len()
|
||||
+ cargo_repos.len() + pypi_repos.len();
|
||||
let total_artifacts = docker_repos.len()
|
||||
+ maven_repos.len()
|
||||
+ npm_repos.len()
|
||||
+ cargo_repos.len()
|
||||
+ pypi_repos.len();
|
||||
|
||||
let global_stats = GlobalStats {
|
||||
downloads: state.metrics.downloads.load(Ordering::Relaxed),
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
use super::api::{DashboardResponse, DockerDetail, MavenDetail, PackageDetail};
|
||||
use crate::repo_index::RepoInfo;
|
||||
use super::components::*;
|
||||
use super::i18n::{get_translations, Lang};
|
||||
use crate::repo_index::RepoInfo;
|
||||
|
||||
/// Renders the main dashboard page with dark theme
|
||||
pub fn render_dashboard(data: &DashboardResponse, lang: Lang) -> String {
|
||||
@@ -304,7 +304,8 @@ pub fn render_registry_list_paginated(
|
||||
r##"<tr><td colspan="4" class="px-6 py-12 text-center text-slate-500">
|
||||
<div class="text-4xl mb-2">📭</div>
|
||||
<div>No more items on this page</div>
|
||||
</td></tr>"##.to_string()
|
||||
</td></tr>"##
|
||||
.to_string()
|
||||
} else {
|
||||
repos
|
||||
.iter()
|
||||
@@ -341,7 +342,11 @@ pub fn render_registry_list_paginated(
|
||||
|
||||
// Pagination
|
||||
let total_pages = (total + limit - 1) / limit;
|
||||
let start_item = if total == 0 { 0 } else { (page - 1) * limit + 1 };
|
||||
let start_item = if total == 0 {
|
||||
0
|
||||
} else {
|
||||
(page - 1) * limit + 1
|
||||
};
|
||||
let end_item = (start_item + repos.len()).saturating_sub(1);
|
||||
|
||||
let pagination = if total_pages > 1 {
|
||||
|
||||
Reference in New Issue
Block a user