Stuff i guess ?

This commit is contained in:
Lars Behrends
2025-10-31 00:24:17 +01:00
parent db0fd4e728
commit 04140786a7
40 changed files with 5411 additions and 525 deletions

View File

@@ -88,6 +88,7 @@
<form method="GET" class="d-flex gap-2">
<input type="hidden" name="view" value="{{ view_mode }}">
<input type="hidden" name="per_page" value="{{ pagination.per_page }}">
<input type="hidden" name="sort" value="{{ sort }}">
{% for genre in filters.genres %}
<input type="hidden" name="genres[]" value="{{ genre }}">
{% endfor %}
@@ -111,11 +112,47 @@
</button>
</form>
<!-- Sort dropdown -->
<div class="dropdown">
<button class="btn btn-outline-secondary dropdown-toggle d-flex align-items-center" type="button" id="sortDropdown" data-bs-toggle="dropdown" aria-expanded="false">
<i class="bi bi-sort-down me-1"></i>
<span class="d-none d-sm-inline">Sort</span>
</button>
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="sortDropdown">
{% for key, label in sort_options %}
<li>
{% set queryParams = {
'sort': key,
'view': view_mode,
'per_page': pagination.per_page != 24 ? pagination.per_page : null,
'search': search,
'genres': filters.genres,
'directors': filters.directors
} %}
<a class="dropdown-item d-flex justify-content-between align-items-center {{ sort == key ? 'active' : '' }}"
href="?{{ queryParams|filter((v, k) => v != '' and v is not empty)|url_encode }}">
{{ label }}
{% if sort == key %}
<i class="bi bi-check2 ms-2"></i>
{% endif %}
</a>
</li>
{% endfor %}
</ul>
</div>
<!-- View mode switcher -->
<div class="btn-group" role="group">
{% for mode in view_modes %}
<a
href="?view={{ mode }}{% if search %}&search={{ search }}{% endif %}{% if pagination.per_page != 24 %}&per_page={{ pagination.per_page }}{% endif %}{% for genre in filters.genres %}&genres[]={{ genre }}{% endfor %}{% for director in filters.directors %}&directors[]={{ director }}{% endfor %}"
href="?{{ {
'view': mode,
'sort': sort,
'per_page': pagination.per_page != 24 ? pagination.per_page : null,
'search': search,
'genres': filters.genres,
'directors': filters.directors
}|filter((v, k) => v != '' and v is not empty)|url_encode }}"
class="btn btn-outline-secondary {{ view_mode == mode ? 'active' : '' }}"
>
{% if mode == 'grid' %}
@@ -141,6 +178,10 @@
</div>
{% endif %}
<div class="text-muted small">
Sorted by: {{ sort_options[sort] }}
</div>
{% if movies is empty %}
<div class="text-center py-5">
<svg class="mx-auto text-muted mb-3" width="48" height="48" fill="none" viewBox="0 0 24 24" stroke="currentColor">

View File

@@ -192,7 +192,7 @@
<a href="{{ path_for('actors.show', {'id': actor.id}) }}" class="text-decoration-none">
<div class="d-flex flex-column align-items-center" style="width: 80px;">
{% if actor.thumbnail_path %}
<img src="/images/{{ actor.thumbnail_path }}" alt="{{ actor.name }}" class="rounded-circle mb-2" style="width: 50px; height: 50px; object-fit: cover;">
<img src="{{ actor.thumbnail_path }}" alt="{{ actor.name }}" class="rounded-circle mb-2" style="width: 50px; height: 50px; object-fit: cover;">
{% else %}
<div class="rounded-circle bg-light d-flex align-items-center justify-content-center mb-2" style="width: 50px; height: 50px;">
<svg class="text-muted" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke="currentColor">