{% extends 'base.html.twig' %} {% block title %}Karty przygód — Admin | Tropo{% endblock %} {% block body %}
← Dashboard

Karty przygód

Gra planszowa — {{ cards|length }} kart{% if typFilter %} ({{ typFilter }}){% endif %}

Plansza Plansza PDF Karty PDF Zasady PDF Eksportuj JSON
+ Nowa karta
{% for flash in app.flashes('success') %}
{{ flash }}
{% endfor %} {% for flash in app.flashes('error') %}
{{ flash }}
{% endfor %} {% set typeStyles = { 'TROP': {'bg': 'rgba(53,120,229,0.1)', 'text': '#3578E5'}, 'RAZEM': {'bg': 'rgba(22,163,74,0.1)', 'text': '#16A34A'}, 'MYŚL': {'bg': 'rgba(124,58,237,0.1)', 'text': '#7C3AED'}, 'DZIAŁAJ': {'bg': 'rgba(232,97,42,0.1)', 'text': '#E8612A'}, 'PRZESZKODA': {'bg': 'rgba(239,68,68,0.1)', 'text': '#EF4444'} } %} {% set totalCards = cards|length %} {# Typ filters #}
Typ: Wszystkie {% for type in types %} {{ type }} ({{ typCounts[type] ?? 0 }}) {% endfor %}
{# Talia filters #}
Talia: {% for deck in decks %} {{ deck }} ({{ taliaCounts[deck] ?? 0 }}) {% endfor %}
{# Status filters #}
Status: Zaakceptowane ({{ acceptedCount }}) Oczekujące ({{ pendingCount }})
{% for card in cards %} {% else %} {% endfor %}
Status Talia Typ Nazwa Opis Akcje
{{ card.talia ?? '—' }} {% set style = typeStyles[card.typ] ?? {'bg': 'rgba(107,114,128,0.1)', 'text': '#6B7280'} %} {{ card.typ }} {{ card.nazwa }} {{ card.opis }}
Brak kart przygód. Dodaj pierwszą lub zaimportuj z JSON!
{% endblock %}