65 lines
3.1 KiB
Twig
65 lines
3.1 KiB
Twig
{# One checklist row. The toggles swap the whole checklist rather than this row: the status box
|
|
below the table is derived from every row at once, so a row-only swap would leave it a stage
|
|
behind. #}
|
|
<tr class="border-b border-gray-200">
|
|
<td class="py-2 pr-4 align-top">
|
|
<div class="font-bold">{{ row.definition.label }}</div>
|
|
{% if row.definition.provides == constant('App\\Config\\SeasonTaskProvision::STANDARD') %}
|
|
{% if row.document is not null %}
|
|
<a href="{{ path('app_common_download', { 'uuid': row.document.uuid }) }}"
|
|
class="text-sm underline">
|
|
{{ row.document.displayName ?? row.document.originalFilename }}
|
|
</a>
|
|
{% else %}
|
|
<div class="text-sm text-gray-500">kein Dokument hinterlegt</div>
|
|
{% endif %}
|
|
{% elseif row.definition.provides == constant('App\\Config\\SeasonTaskProvision::INDIVIDUAL') %}
|
|
<div class="text-sm text-gray-500">individuelles Dokument</div>
|
|
{% endif %}
|
|
</td>
|
|
<td class="py-2 pr-4 align-top whitespace-nowrap">
|
|
{{ row.deadline1 is not null ? row.deadline1 | date('d.m.Y') : '-' }}
|
|
{% if row.task.deadlineOverride1 is not null %}
|
|
<span class="text-xs text-gray-500">(angepasst)</span>
|
|
{% endif %}
|
|
</td>
|
|
<td class="py-2 pr-4 align-top whitespace-nowrap">
|
|
{{ row.deadline2 is not null ? row.deadline2 | date('d.m.Y') : '-' }}
|
|
{% if row.task.deadlineOverride2 is not null %}
|
|
<span class="text-xs text-gray-500">(angepasst)</span>
|
|
{% endif %}
|
|
</td>
|
|
<td class="py-2 pr-4 align-top text-center">
|
|
<input type="checkbox"
|
|
class="text-primary"
|
|
{{ row.task.officeDone ? 'checked' : '' }}
|
|
aria-label="Büro erledigt"
|
|
hx-post="{{ path('app_administrative_season_assignment_task_toggle', { 'uuid': row.task.uuid, 'field': 'office_done' }) }}"
|
|
hx-target="#season-checklist"
|
|
hx-swap="outerHTML">
|
|
</td>
|
|
<td class="py-2 pr-4 align-top text-center">
|
|
<input type="checkbox"
|
|
class="text-primary"
|
|
{{ row.task.done ? 'checked' : '' }}
|
|
aria-label="Erledigt"
|
|
hx-post="{{ path('app_administrative_season_assignment_task_toggle', { 'uuid': row.task.uuid, 'field': 'done' }) }}"
|
|
hx-target="#season-checklist"
|
|
hx-swap="outerHTML">
|
|
{% if row.task.done and row.task.doneAt is not null %}
|
|
<div class="text-xs text-gray-500 whitespace-nowrap">
|
|
{{ row.task.doneAt | date('d.m.Y') }}{% if row.task.doneBy is not null %}, {{ row.task.doneBy }}{% endif %}
|
|
</div>
|
|
{% endif %}
|
|
</td>
|
|
<td class="py-2 align-top text-right">
|
|
<button type="button"
|
|
class="text-sm underline"
|
|
hx-get="{{ path('app_administrative_season_assignment_task_deadline', { 'uuid': row.task.uuid, 'r': return_url() }) }}"
|
|
hx-target="body"
|
|
hx-swap="beforeend">
|
|
Fristen
|
|
</button>
|
|
</td>
|
|
</tr>
|