mirror of
https://github.com/ceratic/MediaCollectorLibary.git
synced 2026-05-13 23:56:46 +02:00
Stuff i guess ?
This commit is contained in:
@@ -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">
|
||||
|
||||
@@ -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">
|
||||
|
||||
Reference in New Issue
Block a user