diff --git a/src/ui/dashboard.rs b/src/ui/dashboard.rs
index c14e9c8..010199e 100644
--- a/src/ui/dashboard.rs
+++ b/src/ui/dashboard.rs
@@ -24,11 +24,11 @@ async fn render(state: &AppState) -> anyhow::Result> {
let stats_html = format!(
r#"
"#,
stats.torrent_count,
stats.publisher_count,
@@ -47,15 +47,13 @@ async fn render(state: &AppState) -> anyhow::Result> {
relays
.iter()
.map(|r| {
- let (dot, ts_str) = match r.last_event {
- Some(ts) => ("dot-ok", format!("last event {}", fmt_ts_ago(ts))),
- // "no events yet" is normal on a fresh start — the relay is connected
- // but kindexr hasn't received any NIP-35 events from it this session.
- None => ("dot-dim", "connected — no events received yet".into()),
+ let ts_str = match r.last_event {
+ Some(ts) => format!("last event {}", fmt_ts_ago(ts)),
+ None => "no events yet".into(),
};
format!(
r#"
- {url}
+ {url}
{ts_str}
"#,
url = esc(&r.url),
@@ -64,12 +62,18 @@ async fn render(state: &AppState) -> anyhow::Result> {
.collect()
};
+ let all = relays.len();
+ let conn_label = if relay_count as usize == all {
+ format!("{relay_count} relays connected")
+ } else {
+ format!("{relay_count} of {all} relays connected")
+ };
+
let relays_html = format!(
r#"
-
Relays — {relay_count} connected / {} configured
+
{conn_label}
{relay_rows}
"#,
- relays.len(),
);
// Recent ingest table
@@ -101,7 +105,7 @@ async fn render(state: &AppState) -> anyhow::Result> {
let recent_html = format!(
r#"
-
Recent ingest
+
Recently indexed
| Title | Category | Publisher | When |
@@ -124,25 +128,25 @@ fn build_network_html(state: &AppState) -> String {
"tor" => (
"badge-warn",
"Tor",
- "SOCKS5 → 127.0.0.1:9050 — all outbound traffic routed through Tor".to_string(),
+ "All connections go through Tor (127.0.0.1:9050)".to_string(),
),
"i2p" => (
"badge-accent",
"I2P",
- "SOCKS5 → 127.0.0.1:4446 — all outbound traffic routed through I2P".to_string(),
+ "All connections go through I2P (127.0.0.1:4446)".to_string(),
),
"socks5" => {
let addr = proxy.url.trim_start_matches("socks5://").trim_start_matches("socks5h://");
(
"badge-accent",
"SOCKS5",
- format!("SOCKS5 → {addr} — all outbound traffic proxied"),
+ format!("All connections go through {addr}"),
)
}
_ => (
"badge-dim",
"Direct",
- format!("No proxy — outbound connections use your host's network stack directly"),
+ "No proxy, using your server's network directly".to_string(),
),
};
@@ -161,7 +165,7 @@ fn build_network_html(state: &AppState) -> String {
-
Proxy / anonymity
+
Network
{proxy_label}
{proxy_detail}
diff --git a/src/ui/indexed.rs b/src/ui/indexed.rs
index 877f621..c03020f 100644
--- a/src/ui/indexed.rs
+++ b/src/ui/indexed.rs
@@ -83,7 +83,7 @@ async fn render(state: &AppState, params: &Params) -> anyhow::ResultIndexed
({total} total)
+ r#"
Content ({total} total)
{search}
diff --git a/src/ui/mod.rs b/src/ui/mod.rs
index f6cd71b..a85793a 100644
--- a/src/ui/mod.rs
+++ b/src/ui/mod.rs
@@ -66,7 +66,7 @@ async fn torrent_blob_handler(
pub fn page(active: &str, title: &str, body: &str) -> axum::response::Html {
let nav = [
("dashboard", "/ui", "Dashboard"),
- ("indexed", "/ui/indexed", "Indexed"),
+ ("indexed", "/ui/indexed", "Content"),
("publishers", "/ui/publishers", "Publishers"),
("published", "/ui/published", "Published"),
("settings", "/ui/settings", "Settings"),
diff --git a/src/ui/published.rs b/src/ui/published.rs
index 88d78a6..dc6c96e 100644
--- a/src/ui/published.rs
+++ b/src/ui/published.rs
@@ -39,7 +39,7 @@ async fn render(state: &AppState, params: &Params) -> anyhow::Result
Published
- Pending queue
+ Pending
"#,
c_done = if tab == "done" { "cur" } else { "" },
c_pend = if tab == "pending" { "cur" } else { "" },
@@ -64,7 +64,7 @@ async fn render(state: &AppState, params: &Params) -> anyhow::Result format!(r#"[error]"#, esc(e)),
None => {
let sched = fmt_ts_ago(r.scheduled_at);
- format!(r#"in {sched}"#)
+ format!(r#"scheduled {sched}"#)
}
},
};
diff --git a/src/ui/publishers.rs b/src/ui/publishers.rs
index 3e3d09f..7dd8293 100644
--- a/src/ui/publishers.rs
+++ b/src/ui/publishers.rs
@@ -47,24 +47,23 @@ async fn render(state: &AppState, params: &ListParams) -> anyhow::Result
- Override publisher trust
+ Set trust level
"#;
@@ -173,8 +172,8 @@ function fillVouch(el) {{
- | Identity | Trust | Follow depth |
- Events | Reports | Last seen | Actions |
+ Publisher | Trust | Follows |
+ Posts | Reports | Last seen | |
{table_rows}