52 lines
2.3 KiB
Twig
52 lines
2.3 KiB
Twig
{#
|
|
Mahlzeiten-Partial (eine Zeile). Wird in Planungsliste/Tagesansicht/Archiv
|
|
eingebunden und als htmx-Fragment von den CheckOff/Uncheck-Endpunkten
|
|
zurückgeliefert (htmx ersetzt per hx-swap="outerHTML" genau diese <li>).
|
|
|
|
@param MahlzeitResponse m
|
|
@param bool sortierbar optional: zeigt Drag-Handle + data-id (Planungsliste)
|
|
#}
|
|
<li class="item" id="mahlzeit-{{ m.id }}"
|
|
{% if sortierbar is defined and sortierbar %}data-id="{{ m.id }}"{% endif %}>
|
|
<div>
|
|
{% if sortierbar is defined and sortierbar %}
|
|
<span class="drag-handle" title="Ziehen zum Sortieren">⋮</span>
|
|
{% endif %}
|
|
<strong>{{ m.name }}</strong>
|
|
{% if m.notiz != '' %}
|
|
<div class="muted">{{ m.notiz }}</div>
|
|
{% endif %}
|
|
{% if m.wochentage|length > 0 %}
|
|
<div class="tags">
|
|
{% for tag in m.wochentage %}
|
|
<span class="tag">{{ tag.name }}</span>
|
|
{% endfor %}
|
|
</div>
|
|
{% endif %}
|
|
<span class="status {{ m.status.value == 'gegessen' ? 'status-gegessen' : '' }}">
|
|
{{ m.status.value == 'gegessen' ? 'gegessen' : 'geplant' }}
|
|
{% if m.status.value == 'gegessen' and m.gegessenAm %}
|
|
· {{ m.gegessenAm|date('d.m.Y H:i') }}
|
|
{% endif %}
|
|
</span>
|
|
</div>
|
|
<div class="actions">
|
|
{% if m.status.value == 'geplant' %}
|
|
<button type="button" class="btn"
|
|
hx-post="{{ path('mahlzeiten_checkoff', { id: m.id }) }}"
|
|
hx-target="#mahlzeit-{{ m.id }}"
|
|
hx-swap="outerHTML">Abhaken</button>
|
|
{% else %}
|
|
<button type="button" class="btn btn-link"
|
|
hx-post="{{ path('mahlzeiten_uncheck', { id: m.id }) }}"
|
|
hx-target="#mahlzeit-{{ m.id }}"
|
|
hx-swap="outerHTML">Aufheben</button>
|
|
{% endif %}
|
|
<a class="btn btn-link" href="{{ path('mahlzeiten_bearbeiten', { id: m.id }) }}">Bearbeiten</a>
|
|
<form method="post" action="{{ path('mahlzeiten_loeschen', { id: m.id }) }}"
|
|
onsubmit="return confirm('Mahlzeit „{{ m.name }}“ wirklich löschen?');">
|
|
<button type="submit" class="btn btn-danger">Löschen</button>
|
|
</form>
|
|
</div>
|
|
</li>
|