feat: add clickable tags to item details table
Co-authored-by: aider (openai/andrew/openrouter/deepseek/deepseek-chat-v3.1) <aider@aider.chat>
This commit is contained in:
@@ -334,37 +334,35 @@ fn build_item_details(conn: &Connection, id: i64) -> Result<String> {
|
||||
html.push_str("<link rel=\"stylesheet\" href=\"/style.css\">");
|
||||
html.push_str("</head><body>");
|
||||
html.push_str(&format!("<h1>Item #{}</h1>", id));
|
||||
html.push_str("<table>");
|
||||
html.push_str(&format!("<tr><td>ID:</td><td>{}</td></tr>", item.id.unwrap_or(0)));
|
||||
html.push_str(&format!("<tr><td>Timestamp:</td><td>{}</td></tr>", item.ts.format("%Y-%m-%d %H:%M:%S")));
|
||||
html.push_str(&format!("<tr><td>Size:</td><td>{}</td></tr>", item.size.unwrap_or(0)));
|
||||
html.push_str(&format!("<tr><td>Compression:</td><td>{}</td></tr>", item.compression));
|
||||
html.push_str("</table>");
|
||||
|
||||
// Tags section
|
||||
html.push_str("<h2>Tags</h2>");
|
||||
// Single table for all details
|
||||
html.push_str("<table>");
|
||||
html.push_str(&format!("<tr><th>ID</th><td>{}</td></tr>", item.id.unwrap_or(0)));
|
||||
html.push_str(&format!("<tr><th>Timestamp</th><td>{}</td></tr>", item.ts.format("%Y-%m-%d %H:%M:%S")));
|
||||
html.push_str(&format!("<tr><th>Size</th><td>{}</td></tr>", item.size.unwrap_or(0)));
|
||||
html.push_str(&format!("<tr><th>Compression</th><td>{}</td></tr>", item.compression));
|
||||
|
||||
// Tags row
|
||||
html.push_str("<tr><th>Tags</th><td>");
|
||||
if tags.is_empty() {
|
||||
html.push_str("<p>No tags</p>");
|
||||
html.push_str("No tags");
|
||||
} else {
|
||||
html.push_str("<ul>");
|
||||
for tag in tags {
|
||||
html.push_str(&format!("<li>{}</li>", tag.name));
|
||||
}
|
||||
html.push_str("</ul>");
|
||||
let tag_links: Vec<String> = tags.iter()
|
||||
.map(|t| format!("<a href=\"/?tags={}\">{}</a>", t.name, t.name))
|
||||
.collect();
|
||||
html.push_str(&tag_links.join(", "));
|
||||
}
|
||||
html.push_str("</td></tr>");
|
||||
|
||||
// Metadata section
|
||||
html.push_str("<h2>Metadata</h2>");
|
||||
// Metadata rows
|
||||
if metas.is_empty() {
|
||||
html.push_str("<p>No metadata</p>");
|
||||
html.push_str("<tr><th>Metadata</th><td>No metadata</td></tr>");
|
||||
} else {
|
||||
html.push_str("<table>");
|
||||
html.push_str("<tr><th>Name</th><th>Value</th></tr>");
|
||||
for meta in metas {
|
||||
html.push_str(&format!("<tr><td>{}</td><td>{}</td></tr>", meta.name, meta.value));
|
||||
html.push_str(&format!("<tr><th>{}</th><td>{}</td></tr>", meta.name, meta.value));
|
||||
}
|
||||
}
|
||||
html.push_str("</table>");
|
||||
}
|
||||
|
||||
// Links
|
||||
html.push_str("<h2>Actions</h2>");
|
||||
|
||||
Reference in New Issue
Block a user