feat(ui): admin Hash Conflicts page and nav entry
New /admin/hash-conflicts page (admin-only) listing pending content-duplicate groups. Each group card shows the library, a shortened SHA-256, and one row per copy with title, author, path, size, and per-copy reading-data counts (progress, highlights, bookmarks, notes, collections) - copies that own user data are highlighted so the keep choice is informed. Per copy: 'Keep this copy' merges the other copies' child rows into it and deletes them. Per group: 'Keep both' for intentional duplicates. Both confirm first, resolve via htmx POST, and swap the card for a resolved confirmation inline. The confirmation fragment is built inline in the handler rather than the templates package (templates imports handlers; a back-import would be a cycle). Empty state shown when no conflicts are pending. Adds a 'Hash Conflicts' entry to the admin sidebar section between Libraries and Users.
This commit is contained in:
@@ -159,6 +159,10 @@ templ Header(user User, currentPath string) {
|
||||
@Icon("library", "h-5 w-5 shrink-0")
|
||||
<span>Libraries</span>
|
||||
</a>
|
||||
<a href="/admin/hash-conflicts" class={ activeClass(currentPath, "/admin/hash-conflicts") }>
|
||||
@Icon("copy", "h-5 w-5 shrink-0")
|
||||
<span>Hash Conflicts</span>
|
||||
</a>
|
||||
<a href="/admin/users" class={ activeClass(currentPath, "/admin/users") }>
|
||||
@Icon("users", "h-5 w-5 shrink-0")
|
||||
<span>Users</span>
|
||||
|
||||
Reference in New Issue
Block a user