Add special-gallery back thumbnail and hide sort button for specials

This commit is contained in:
2026-03-27 21:10:38 -04:00
parent 21a3ab40c5
commit 7cc9d1ed17
3 changed files with 40 additions and 24 deletions

View File

@@ -141,10 +141,20 @@ def render_image(request, path_text, full_path, special=None):
except Exception:
dir_text = ""
# For special galleries hide the Back control but still present Home
# Back (directory) and Home (root) links and thumbnails
# For special galleries we still want to show a Back link that points
# to the special gallery root — populate `back_thumb` with the
# thumbnail of the first image in that special gallery so the UI can
# display a representative image. For non-special views keep the
# existing behavior (thumbnail for parent directory).
if special is not None:
back_url = None
back_thumb = None
# images_sorted is already the special list in the requested order
try:
first_image = images_sorted[0] if len(images_sorted) > 0 else None
back_thumb = thumb_for(first_image)
except Exception:
back_thumb = None
else:
back_url = gallery_url(
Path(dir_text) if dir_text != "" else None, True, query_state

View File

@@ -206,6 +206,7 @@
{% endfor %}
</div>
{% if not is_special %}
<div class="dropdown ms-auto">
<button class="btn btn-sm btn-plain" type="button" data-bs-toggle="dropdown" aria-expanded="false" title="{{ sort_label }}" aria-label="Sort options">
<i class="fa-solid fa-arrow-down-short-wide"></i>
@@ -218,8 +219,10 @@
{% endfor %}
</ul>
</div>
{% endif %}
</div>
{% if not is_special %}
<noscript>
<div class="pt-2">
{% for option in sort_options %}
@@ -227,6 +230,7 @@
{% endfor %}
</div>
</noscript>
{% endif %}
<section class="gallery-scroll flex-grow-1">
<div class="gallery-grid">

View File

@@ -205,33 +205,35 @@
</div>
</div>
<div class="offcanvas-body pt-0 d-flex flex-column">
<a href="#" class="sidebar-link">Favorites</a>
<a href="#" class="sidebar-link">Most visited</a>
<a href="#" class="sidebar-link">Recently visited</a>
<a href="/gallery/favorites/" class="sidebar-link {% if is_special and breadcrumbs.0.label == 'Favorites' %}active-sort{% endif %}">Favorites</a>
<a href="/gallery/most-visited/" class="sidebar-link {% if is_special and breadcrumbs.0.label == 'Most Visited' %}active-sort{% endif %}">Most visited</a>
<a href="/gallery/recent/" class="sidebar-link {% if is_special and breadcrumbs.0.label == 'Recent' %}active-sort{% endif %}">Recently visited</a>
<hr>
<div class="sidebar-scroll flex-grow-1">
{% if prev_url %}
<a href="{{ prev_url }}" class="subdir-item">
{% if prev_thumb %}
<img src="{{ prev_thumb }}" class="subdir-thumb" alt="prev thumb">
{% else %}
<span class="subdir-fallback"><i class="fa-solid fa-image"></i></span>
{% endif %}
<span>Previous</span>
</a>
{% endif %}
{% if not is_special or is_special and 'favorites' in breadcrumbs.0.path %}
{% if prev_url %}
<a href="{{ prev_url }}" class="subdir-item">
{% if prev_thumb %}
<img src="{{ prev_thumb }}" class="subdir-thumb" alt="prev thumb">
{% else %}
<span class="subdir-fallback"><i class="fa-solid fa-image"></i></span>
{% endif %}
<span>Previous</span>
</a>
{% endif %}
{% if next_url %}
<a href="{{ next_url }}" class="subdir-item">
{% if next_thumb %}
<img src="{{ next_thumb }}" class="subdir-thumb" alt="next thumb">
{% else %}
<span class="subdir-fallback"><i class="fa-solid fa-image"></i></span>
{% endif %}
<span>Next</span>
</a>
{% if next_url %}
<a href="{{ next_url }}" class="subdir-item">
{% if next_thumb %}
<img src="{{ next_thumb }}" class="subdir-thumb" alt="next thumb">
{% else %}
<span class="subdir-fallback"><i class="fa-solid fa-image"></i></span>
{% endif %}
<span>Next</span>
</a>
{% endif %}
{% endif %}
{% if is_special %}