Files
myep-team/templates/administrative/assignment/timeline.html.twig
T

96 lines
4.0 KiB
Twig

{% extends 'administrative/layout.html.twig' %}
{% block title %}Timeline{% endblock %}
{% macro cell(row, day) %}
{% if colspan is defined and colspan > 1 %}
{% set colspan = colspan - 1 %}
{% elseif row[day|date('Ymd')] is defined %}
{% set item = row[day|date('Ymd')] %}
{% set colspan = item.numberOfDays %}
<td class="{{ html_classes('border border-gray-700', {
'bg-orange-300': item.type == 'assignment',
'bg-yellow-300': item.type == 'disposition' and item.status != 'confirmed',
'bg-green-300': item.type == 'disposition' and item.status == 'confirmed',
}) }}" colspan="{{ colspan }}">
{% if item.type == 'disposition' %}
<button type="button"
class="flex items-center space-x-2"
title="Teamer:inneninfo {{ item.teamerName }}"
hx-get="{{ path('app_administrative_teamer_info', { 'uuid': item.teamerUuid }) }}"
hx-target="body"
hx-swap="beforeend">
<span class="text-xs font-semibold">{{ item.jobProfile }}</span>
<span class="text-xs">{{ item.teamerName | raw }}</span>
{{ icon('info', 'w-4 h-4') }}
</button>
{% else %}
<span class="text-xs font-semibold">{{ item.jobProfile }}</span>
{% endif %}
</td>
{% else %}
<td class="border border-gray-700"></td>
{% endif %}
{% endmacro %}
{% block content %}
<div class="flex items-start justify-between pb-4">
<h1 class="text-2xl font-bold">
Timeline
</h1>
<div class="flex flex-col items-end space-y-2 md:flex-row md:items-center md:space-x-2 md:space-y-0">
<button type="button"
class="{{ html_classes('btn btn--small', { 'btn--secondary': filterDto.active }) }}"
title="Filter"
hx-get="{{ path('app_common_timeline_filter', { 'r': return_url() }) }}"
hx-target="body"
hx-swap="beforeend">
{{ icon('filter', 'w-4 h-4 shrink-0') }}
{% if filterDto.active %}
<span class="whitespace-nowrap">{{ filterDto.activeFiltersCount }} Filter aktiv</span>
{% else %}
<span>Filter</span>
{% endif %}
</button>
{% if filterDto.active %}
<a href="{{ path('app_common_timeline_filter_reset', { 'r': return_url() }) }}" class="btn btn--small btn--secondary">
Reset
</a>
{% endif %}
</div>
</div>
<div class="scroll-container border border-gray-300 mb-16">
<table>
<tr class="[&_th]:sticky [&_th]:top-0 [&_th]:z-10">
<th></th>
{% for day in filterDto.period %}
<th>
{{ day | date('d.m.Y') }}
</th>
{% endfor %}
</tr>
{% for hotelCode, rows in data %}
<tr class="border-t-2 border-gray-700">
<td class="border border-gray-700 bg-gray-200 align-middle font-bold sticky left-0 z-10" rowspan="{{ rows | length }}">
{{ hotelCode }}
</td>
{% for day in filterDto.period %}
{{ _self.cell(rows[0], day) }}
{% endfor %}
</tr>
{% for row in rows[1:] %}
<tr>
{% for day in filterDto.period %}
{{ _self.cell(row, day) }}
{% endfor %}
</tr>
{% endfor %}
{% else %}
<td colspan="{{ filterDto.period | length }}">
Keine Ergebnisse
</td>
{% endfor %}
</table>
</div>
{% endblock %}