feat: tree view for cached objects, top-files stats on dashboard (#48)

- Objects page renders paths as a collapsible tree instead of flat list
  with expand/collapse all, aggregated size/hits per directory
- Dashboard gains top-files-by-hits and top-files-by-bandwidth tables
- Backend: new /api/v2/stats/top-files-by-hits and
  /api/v2/stats/top-files-by-bandwidth endpoints
- Raised per_page max to 5000 for objects listing

---------

Co-authored-by: Ben Vincent <ben@unkin.net>
Reviewed-on: #48
This commit was merged in pull request #48.
This commit is contained in:
2026-06-22 22:49:56 +10:00
parent b46c116f6b
commit a481a5c3b7
9 changed files with 508 additions and 101 deletions
+35
View File
@@ -45,3 +45,38 @@
font-size: 0.9em;
padding: 32px 0;
}
.top-files-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 24px;
margin-top: 8px;
}
@media (max-width: 1100px) {
.top-files-grid {
grid-template-columns: 1fr;
}
}
.file-link {
display: flex;
flex-direction: column;
gap: 2px;
text-decoration: none;
color: inherit;
}
.file-link:hover .file-path {
text-decoration: underline;
}
.file-remote {
font-size: 0.75em;
color: var(--text-muted);
}
.file-path {
font-size: 0.82em;
word-break: break-all;
}