@extends($layout) @section('content') @php $allTicketGroups = $allTickets; $todoTypeIcons = $ticketTypeIcons; $statusLabels = $allTicketStates; $newField = $newField ?? []; $numberofColumns = count($allTicketStates) - 1; $size = floor(100 / $numberofColumns); @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')
@dispatchEvent('filters.afterRighthandSectionOpen')
@dispatchEvent('filters.beforeRighthandSectionClose')
@if (isset($availableProjects)) {{-- Program (cross-project) board: consistent inline quick-add with a required project picker, matching the kanban/list add affordance. --}}
@endif @if (isset($allTicketGroups['all'])) @php $allTickets = $allTicketGroups['all']['items']; @endphp @endif @foreach ($allTicketGroups as $group) @if ($group['label'] != 'all')
@endif @php $allTickets = $group['items']; @endphp @dispatchEvent('allTicketsTable.before', ['tickets' => $allTicketGroups]) @dispatchEvent('allTicketsTable.beforeHead', ['tickets' => $allTickets]) @dispatchEvent('allTicketsTable.beforeHeadRow', ['tickets' => $allTickets]) @dispatchEvent('allTicketsTable.afterHeadRow', ['tickets' => $allTickets]) @dispatchEvent('allTicketsTable.afterHead', ['tickets' => $allTickets]) @dispatchEvent('allTicketsTable.beforeFirstRow', ['tickets' => $allTickets]) @foreach ($allTickets as $rowNum => $row) @dispatchEvent('allTicketsTable.afterRowStart', ['rowNum' => $rowNum, 'tickets' => $allTickets]) @php // On a program (cross-project) board each row must render and edit // with statuses from ITS OWN project, never a shared set, so a status // change always writes a key valid in that project. $rowStatusLabels = (isset($statusLabelsByProject) && isset($statusLabelsByProject[$row['projectId']])) ? $statusLabelsByProject[$row['projectId']] : $statusLabels; if (isset($rowStatusLabels[$row['status']])) { $class = $rowStatusLabels[$row['status']]['class']; $name = $rowStatusLabels[$row['status']]['name']; $sortKey = $rowStatusLabels[$row['status']]['sortKey']; } else { $class = 'label-important'; $name = 'new'; $sortKey = 0; } @endphp @php if ($row['milestoneid'] != '' && $row['milestoneid'] != 0) { $milestoneHeadline = $tpl->escape($row['milestoneHeadline']); } else { $milestoneHeadline = __('label.no_milestone'); } @endphp @php if ($row['sprint'] != '' && $row['sprint'] != 0 && $row['sprint'] != -1) { $sprintHeadline = $tpl->escape($row['sprintName']); } else { $sprintHeadline = __('label.not_assigned_to_sprint'); } @endphp @php if ($row['dateToFinish'] == '0000-00-00 00:00:00' || $row['dateToFinish'] == '1969-12-31 00:00:00') { $date = __('text.anytime'); } else { $date = new DateTime($row['dateToFinish']); $date = $date->format(__('language.dateformat')); } @endphp @dispatchEvent('allTicketsTable.beforeRowEnd', ['tickets' => $allTickets, 'rowNum' => $rowNum]) @endforeach @dispatchEvent('allTicketsTable.afterLastRow', ['tickets' => $allTickets]) @dispatchEvent('allTicketsTable.afterBody', ['tickets' => $allTickets])
{!! __('label.id') !!} {!! __('label.title') !!} {!! __('label.todo_status') !!} {!! __('label.milestone') !!} {!! __('label.effort') !!} {!! __('label.priority') !!} {!! __('label.editor') !!}. {!! __('label.sprint') !!} {!! __('label.tags') !!} {!! __('label.due_date') !!} {!! __('label.planned_hours') !!} {!! __('label.estimated_hours_remaining') !!} {!! __('label.booked_hours') !!}
#{{ $row['id'] }} @if ($row['dependingTicketId'] > 0) {{ $row['parentHeadline'] }} //
@endif {{ $row['headline'] }}
@if ($row['tags'] != '') @php $tagsArray = explode(',', $row['tags']); @endphp
@foreach ($tagsArray as $tag) {{ $tag }} @endforeach
@endif
{{ ($row['bookedHours'] === null || $row['bookedHours'] == '') ? '0' : $row['bookedHours'] }} @include('tickets::partials.ticketsubmenu', ['ticket' => $row, 'onTheClock' => $onTheClock])
@dispatchEvent('allTicketsTable.afterClose', ['tickets' => $allTickets]) @if ($group['label'] != 'all')
@endif @endforeach
@once @push('scripts') @endpush @endonce @endsection