From 9d9f98dc54a01e9b2842ec9587811327de2a0199 Mon Sep 17 00:00:00 2001 From: Andrew Phillips Date: Fri, 29 Aug 2025 13:16:20 -0300 Subject: [PATCH] feat: add clickable tags to item details table Co-authored-by: aider (openai/andrew/openrouter/deepseek/deepseek-chat-v3.1) --- src/modes/server/pages.rs | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/src/modes/server/pages.rs b/src/modes/server/pages.rs index bdc669f..e188553 100644 --- a/src/modes/server/pages.rs +++ b/src/modes/server/pages.rs @@ -334,37 +334,35 @@ fn build_item_details(conn: &Connection, id: i64) -> Result { html.push_str(""); html.push_str(""); html.push_str(&format!("

Item #{}

", id)); + + // Single table for all details html.push_str(""); - html.push_str(&format!("", item.id.unwrap_or(0))); - html.push_str(&format!("", item.ts.format("%Y-%m-%d %H:%M:%S"))); - html.push_str(&format!("", item.size.unwrap_or(0))); - html.push_str(&format!("", item.compression)); - html.push_str("
ID:{}
Timestamp:{}
Size:{}
Compression:{}
"); + html.push_str(&format!("ID{}", item.id.unwrap_or(0))); + html.push_str(&format!("Timestamp{}", item.ts.format("%Y-%m-%d %H:%M:%S"))); + html.push_str(&format!("Size{}", item.size.unwrap_or(0))); + html.push_str(&format!("Compression{}", item.compression)); - // Tags section - html.push_str("

Tags

"); + // Tags row + html.push_str("Tags"); if tags.is_empty() { - html.push_str("

No tags

"); + html.push_str("No tags"); } else { - html.push_str("
    "); - for tag in tags { - html.push_str(&format!("
  • {}
  • ", tag.name)); - } - html.push_str("
"); + let tag_links: Vec = tags.iter() + .map(|t| format!("{}", t.name, t.name)) + .collect(); + html.push_str(&tag_links.join(", ")); } + html.push_str(""); - // Metadata section - html.push_str("

Metadata

"); + // Metadata rows if metas.is_empty() { - html.push_str("

No metadata

"); + html.push_str("MetadataNo metadata"); } else { - html.push_str(""); - html.push_str(""); for meta in metas { - html.push_str(&format!("", meta.name, meta.value)); + html.push_str(&format!("", meta.name, meta.value)); } - html.push_str("
NameValue
{}{}
{}{}
"); } + html.push_str(""); // Links html.push_str("

Actions

");