diff --git a/archivebox/core/admin_tags.py b/archivebox/core/admin_tags.py
index f8f53815..377049d6 100644
--- a/archivebox/core/admin_tags.py
+++ b/archivebox/core/admin_tags.py
@@ -117,7 +117,7 @@ class TagAdmin(BaseModelAdmin):
sort = normalize_tag_sort((request.GET.get("sort") or "created_desc").strip())
created_by = normalize_created_by_filter((request.GET.get("created_by") or "").strip())
year = normalize_created_year_filter((request.GET.get("year") or "").strip())
- has_snapshots = normalize_has_snapshots_filter((request.GET.get("has_snapshots") or "all").strip())
+ has_snapshots = normalize_has_snapshots_filter((request.GET.get("has_snapshots") or "yes").strip())
context = {
**self.admin_site.each_context(request),
**(extra_context or {}),
diff --git a/archivebox/templates/admin/core/tag/change_list.html b/archivebox/templates/admin/core/tag/change_list.html
index ad43f8a9..2d4a0fb2 100644
--- a/archivebox/templates/admin/core/tag/change_list.html
+++ b/archivebox/templates/admin/core/tag/change_list.html
@@ -353,6 +353,13 @@
font-size: 13px;
}
+ .tag-card__empty[href] {
+ display: block;
+ color: #075985;
+ font-weight: 600;
+ text-decoration: none;
+ }
+
.tag-toast {
position: sticky;
top: 12px;
@@ -609,6 +616,7 @@ document.addEventListener('DOMContentLoaded', function () {
}
grid.innerHTML = cards.map(function (card) {
+ const snapshotCount = Number(card.num_snapshots || 0);
const snapshotHtml = (card.snapshots || []).length
? card.snapshots.map(function (snapshot) {
return '' +
@@ -617,7 +625,9 @@ document.addEventListener('DOMContentLoaded', function () {
'' + escapeHtml(snapshot.title) + '' +
'';
}).join('')
- : '
No snapshots attached yet.
';
+ : snapshotCount > 0
+ ? '' + escapeHtml(snapshotCount) + ' snapshot' + (snapshotCount === 1 ? '' : 's') + ' attached'
+ : 'No snapshots attached yet.
';
return '' +
'' +
diff --git a/etc/package.json b/etc/package.json
index 4a2674b7..5f7a411e 100644
--- a/etc/package.json
+++ b/etc/package.json
@@ -1,6 +1,6 @@
{
"name": "archivebox",
- "version": "0.9.31rc43",
+ "version": "0.9.31rc44",
"repository": "github:ArchiveBox/ArchiveBox",
"license": "MIT",
"dependencies": {
diff --git a/pyproject.toml b/pyproject.toml
index 5a83ef11..2e489601 100755
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[project]
name = "archivebox"
-version = "0.9.31rc43"
+version = "0.9.31rc44"
requires-python = ">=3.13"
description = "Self-hosted internet archiving solution."
authors = [{name = "Nick Sweeting", email = "pyproject.toml@archivebox.io"}]
@@ -79,9 +79,9 @@ dependencies = [
### Extractor dependencies (optional binaries detected at runtime via shutil.which)
### Binary/Package Management
"abxbus>=2.5.4", # EventBus API
- "abxpkg>=1.10.34", # for: detecting, versioning, and installing binaries via apt/brew/pip/npm
- "abx-plugins>=1.10.99", # shared ArchiveBox plugin package with Chrome/Puppeteer dependency wiring
- "abx-dl>=1.10.99", # shared ArchiveBox downloader package with blocking install preflight
+ "abxpkg>=1.10.35", # for: detecting, versioning, and installing binaries via apt/brew/pip/npm
+ "abx-plugins>=1.10.100", # shared ArchiveBox plugin package with Chrome/Puppeteer dependency wiring
+ "abx-dl>=1.10.100", # shared ArchiveBox downloader package with blocking install preflight
### UUID7 backport for Python <3.14
"uuid7>=0.1.0; python_version < '3.14'", # provides the uuid_extensions module on Python 3.13
]