@extends($layout) @section('content') @php $tickets = $tickets ?? []; $sprints = $sprints; $searchCriteria = $searchCriteria; $currentSprint = $currentSprint; $todoTypeIcons = $ticketTypeIcons; $efforts = $efforts; $priorities = $priorities; $allTicketGroups = $allTickets; $reopenState = session()->get('quickadd_reopen', null); $currentGroupBy = $searchCriteria['groupBy'] ?? 'all'; @endphp {!! $tpl->displayNotification() !!} @include('tickets::submodules.ticketHeader')
@include('tickets::submodules.ticketBoardTabs')
@dispatchEvent('filters.afterLefthandSectionOpen') @include('tickets::submodules.ticketNewBtn') @include('tickets::submodules.ticketFilter') @dispatchEvent('filters.beforeLefthandSectionClose')
@if (isset($allTicketGroups['all'])) @php $allTickets = $allTicketGroups['all']['items']; @endphp @endif @php $isGroupByActive = ! empty($searchCriteria['groupBy']) && $searchCriteria['groupBy'] !== 'all'; $columnHeaderClass = $isGroupByActive ? 'groupby-active' : ''; @endphp
@foreach ($allKanbanColumns as $key => $statusRow)

@if ($login::userIsAtLeast($roles::$manager)) @endif 0 {{ $statusRow['name'] }}

@endforeach
@foreach ($allTicketGroups as $group) @php $allTickets = $group['items']; @endphp @if ($group['label'] != 'all') @php $swimlaneExpanded = ! in_array($group['id'], session('collapsedSwimlanes', [])); $groupBy = $searchCriteria['groupBy'] ?? 'status'; $statusBreakdown = $statusBreakdown; $groupIdKey = (string) $group['id']; $swimlaneBreakdown = $statusBreakdown[$groupIdKey] ?? $statusBreakdown[$group['id']] ?? []; $statusCounts = $swimlaneBreakdown['statusCounts'] ?? []; $timeAlert = $swimlaneBreakdown['timeAlert'] ?? null; @endphp
{!! app('blade.compiler')::render( '', [ 'groupBy' => $groupBy, 'groupId' => $group['id'], 'label' => $group['label'], 'totalCount' => $swimlaneBreakdown['totalCount'] ?? count($group['items']), 'statusCounts' => $statusCounts, 'statusColumns' => $allKanbanColumns, 'expanded' => $swimlaneExpanded, 'moreInfo' => $group['more-info'] ?? null, 'timeAlert' => $group['timeAlert'] ?? null, ] ) !!}
@endif
@php $emptyColumns = []; foreach ($allKanbanColumns as $key => $statusRow) { $hasTickets = false; if (isset($allTickets)) { foreach ($allTickets as $ticket) { if (isset($ticket['status']) && $ticket['status'] == $key) { $hasTickets = true; break; } } } if (! $hasTickets) { $emptyColumns[$key] = true; } } @endphp @foreach ($allKanbanColumns as $key => $statusRow)
@include('tickets::partials.quickadd-form', [ 'statusId' => $key, 'swimlaneKey' => $group['value'] ?? $group['id'] ?? null, 'isEmpty' => isset($emptyColumns[$key]), 'currentGroupBy' => $searchCriteria['groupBy'] ?? null, ]) @foreach ($allTickets as $row) @if ($row['status'] == $key)
@include('tickets::partials.ticketsubmenu', ['ticket' => $row, 'onTheClock' => $onTheClock]) @if ($row['dependingTicketId'] > 0) {{ $row['parentHeadline'] }} // @endif {!! __('label.'.strtolower($row['type'])) !!} #{{ $row['id'] }}

{{ $row['headline'] }}

{!! $tpl->escapeMinimal($row['description']) !!}
@if ($row['dateToFinish'] != '0000-00-00 00:00:00' && $row['dateToFinish'] != '1969-12-31 00:00:00')
{!! __('label.due_icon') !!}
@dispatchEvent('afterDates', ['ticket' => $row])
@endif
@if ($row['storypoints'] != '' && $row['storypoints'] > 0) @endif
@if ($row['commentCount'] > 0 || $row['subtaskCount'] > 0 || $row['tags'] != '')
@if ($row['commentCount'] > 0) {{ $row['commentCount'] }}  @endif @if ($row['subtaskCount'] > 0) {{ $row['subtaskCount'] }}  @endif @if ($row['tags'] != '') @php $tagsArray = explode(',', $row['tags']); @endphp {{ count($tagsArray) }} @endif
@endif
@endif @endforeach
@endforeach
@if ($group['label'] != 'all')
{{-- .kanban-swimlane-content --}}
{{-- .kanban-swimlane-row --}} @endif @endforeach
@once @push('scripts') @endpush @endonce @endsection