Implement tag filtering

This commit is contained in:
Tim
2025-05-10 20:44:13 +02:00
parent e2bd1a7c3b
commit b8ae8bb8a7
9 changed files with 90 additions and 34 deletions

View File

@ -0,0 +1,17 @@
{% extends 'base/container.html.twig' %}
{% block container %}
<div class="row">
<div class="col-sm mx-auto">
{% if title is defined %}<h3>{{ title }}</h3>{% endif %}
</div>
</div>
<div class="row">
<div class="col-8">
{% block column1 %}{% endblock %}
</div>
<div class="col-4">
{% block column2 %}{% endblock %}
</div>
</div>
{% endblock %}

View File

@ -1,4 +1,4 @@
{% extends 'base/two.column.html.twig' %}
{% extends 'base/two.column.8-4.html.twig' %}
{% set title = 'My Snips' %}
@ -15,6 +15,9 @@
<span>
{{ include('snip/badge.html.twig', {snip: snip}) }}
{{ snip }}
{% for tag in snip.tags %}
<span class="badge bg-secondary">{{ tag }}</span>
{% endfor %}
</span>
</a>
{% endfor %}
@ -24,12 +27,12 @@
{% block column2 %}
<h3>Filters</h3>
<h5>Ordering</h5>
<h5>Sort by</h5>
<div class="list-group">
{% for sortOption in ['name', 'date'] %}
{% for sortOption in snipSortOptions() %}
<a href="{{ path('snip_index', {sort: sortOption}) }}"
class="list-group-item list-group-item-action {% if sortOption is same as(request.sort) %}list-group-item-primary{% endif %}">
Sort by {{ sortOption|capitalize }}
{{ sortOption|capitalize }}
</a>
{% endfor %}
</div>
@ -37,11 +40,22 @@
<br>
<h5>Visibility</h5>
<div class="list-group">
{% for visibilityOption in ['all', 'visible', 'hidden', 'archived'] %}
{% for visibilityOption in snipFilterOptions() %}
<a href="{{ path('snip_index', {visibility: visibilityOption}) }}"
class="list-group-item list-group-item-action {% if request.visibility is same as(visibilityOption) %}list-group-item-primary{% endif %}">
Show {{ visibilityOption|capitalize }}
</a>
{% endfor %}
</div>
<br>
<h5>Tags</h5>
<div class="list-group">
{% for key,tagOption in snipTagOptions() %}
<a href="{{ path('snip_index', {tag: key}) }}"
class="list-group-item list-group-item-action {% if request.tag is same as(key) %}list-group-item-primary{% endif %}">
{{ tagOption|capitalize }}
</a>
{% endfor %}
</div>
{% endblock %}

View File

@ -37,10 +37,7 @@
<div class="card" style="width: 100%;">
<h4 class="card-header">
{{ include('snip/badge.html.twig', {snip: snip}) }}
{{ snip }} <small class="text-muted">#{{ snip.id }}</small><br>
{% for tag in snip.tags %}
<span class="badge bg-secondary">{{ tag }}</span>
{% endfor %}
{{ snip }} <small class="text-muted">#{{ snip.id }}</small>
</h4>
<div class="card-body">
{{ content|raw }}
@ -53,6 +50,9 @@
Created at {{ snip.activeVersion.id.dateTime|date('Y-m-d H:i:s') }}
{{ include('user/badge.html.twig', {user: snip.createdBy}) }}
{% for tag in snip.tags %}
<span class="badge bg-secondary">{{ tag }}</span>
{% endfor %}
</p>
</div>
</div>

View File

@ -1,4 +1,4 @@
{% extends 'base/two.column.html.twig' %}
{% extends 'base/two.column.6-6.html.twig' %}
{% set title = app.user.name %}