{# kanban.twig - Универсальный компонент Канбан-доски Параметры: - columns: Массив колонок с данными Пример: columns: [ { id: 1, name: 'Колонка 1', color: '#3B82F6', items: [...], total: 1000, itemLabel: 'сделка' (опционально, для грамматики) } ] - cardComponent: Имя Twig компонента для рендеринга карточек (опционально) - moveUrl: URL для API перемещения элементов (опционально) - onMove: JavaScript функция callback при перемещении (опционально) - emptyMessage: Сообщение при отсутствии элементов (опционально) - addUrl: URL для добавления нового элемента (опционально) - addLabel: Текст кнопки добавления (опционально) #}
{% for column in columns %}
{# Заголовок колонки #}
{{ column.name }}
{{ column.items|length }}
{% if column.total is defined %} ₽{{ column.total|number_format(0, ',', ' ') }} {% endif %}
{# Карточки #}
{% if column.items is defined and column.items|length > 0 %} {% for item in column.items %} {% if cardComponent is defined %} {{ include(cardComponent, {item: item, column: column}) }} {% else %} {{ include('@components/kanban/default_card.twig', {item: item, column: column}) }} {% endif %} {% endfor %} {% endif %}
{# Кнопка добавления #} {% if addUrl is defined or column.addUrl is defined %} {{ addLabel|default('Добавить') }} {% endif %}
{% endfor %}