@extends('layouts.app') @section('title', $task->title) @section('breadcrumb') Projects / {{ $task->project->name }} @if($task->parent) / {{ Str::limit($task->parent->title, 25) }} / Subtask @else / @endif {{ Str::limit($task->title, 30) }} @endsection @section('content')
{{-- ===== MAIN TASK CONTENT ===== --}}
{{-- Task Header Card --}}
{{-- Status accent stripe --}}
{{-- Completion toggle --}}

{{ $task->title }}

{{ ucfirst(str_replace('_', ' ', $task->status)) }} {{ ucfirst($task->priority) }}
@if($task->subtask_progress && $task->subtask_progress['total'] > 0)
{{ $task->subtask_progress['completed'] }}/{{ $task->subtask_progress['total'] }} subtasks
@endif
{{-- Description --}}

Description

@if($task->description)

{{ $task->description }}

@else

No description added. Click to add one...

@endif
{{-- ===== SUBTASKS ===== --}}

Subtasks

{{-- Subtask List --}}
@foreach($task->subtasksRecursive as $sub) @include('tasks.partials.subtask-item', ['sub' => $sub, 'users' => $users, 'level' => 0]) @endforeach
{{-- Add Subtask Form --}}
{{-- Empty state --}}

No subtasks yet. Break this task down!

{{-- ===== COMMENTS (Chat-bubble style) ===== --}}

Comments

{{ $task->comments->count() }}
@foreach($task->comments as $comment)
{{ $comment->user->initials }}
{{ $comment->user->name }} {{ $comment->created_at->diffForHumans() }}
@csrf @method('DELETE')
{{ $comment->body }}
@endforeach
{{-- New Comment --}}
@csrf
{{ auth()->user()->initials }}
{{-- ===== ATTACHMENTS ===== --}}

Attachments

{{ $task->attachments->count() }}
@if($task->attachments->count())
@foreach($task->attachments as $att) @php $ext = pathinfo($att->original_filename, PATHINFO_EXTENSION); $isImage = in_array(strtolower($ext), ['jpg','jpeg','png','gif','webp','svg']); $iconColors = ['pdf' => '#ef4444', 'doc' => '#3b82f6', 'docx' => '#3b82f6', 'xls' => '#22c55e', 'xlsx' => '#22c55e', 'zip' => '#f59e0b', 'rar' => '#f59e0b', 'txt' => '#6b7280', 'csv' => '#22c55e']; $fileColor = $iconColors[strtolower($ext)] ?? '#8b5cf6'; @endphp
@if($isImage) {{ $att->original_filename }} @else
.{{ strtoupper($ext) }}
@endif
{{ Str::limit($att->original_filename, 20) }} {{ $att->human_size }} ยท {{ $att->created_at->diffForHumans() }}
@csrf @method('DELETE')
@endforeach
@endif
@csrf
{{-- ===== DEPENDENCIES ===== --}}

Dependencies

@if($task->is_blocked) ๐Ÿšซ Blocked @endif
@if($task->dependencies->count())
@foreach($task->dependencies as $dep)
{{ ucfirst(str_replace('_', ' ', $dep->status)) }}
@endforeach
@endif
@if(isset($projectTasks)) @foreach($projectTasks as $pt) @if(!$task->dependencies->contains($pt->id)) @endif @endforeach @endif
@if($task->dependents->count())

Blocks {{ $task->dependents->count() }} task(s):

@foreach($task->dependents as $dependent)
โ†’ {{ Str::limit($dependent->title, 30) }}
@endforeach
@endif
{{-- ===== ACTIVITY ===== --}}

Activity

@if(isset($taskActivities) && $taskActivities->count())
@foreach($taskActivities as $activity)
{!! $activity->svg_icon !!}
@if(!$loop->last)
@endif
{{ $activity->causer->name ?? 'System' }} {{ $activity->description }}
{{ $activity->created_at->diffForHumans() }}
@endforeach
@else

No activity recorded yet.

@endif
{{-- ===== RIGHT SIDEBAR โ€” DETAILS PANEL ===== --}}
Details
@csrf @method('PUT') {{-- Status --}}
Status
{{-- Assignee --}}
Assignee
@if($task->assignee)
{{ $task->assignee->initials }}
@endif
{{-- Priority --}}
Priority
{{-- Due Date --}}
Due Date
{{-- Meta --}}
Created by {{ $task->creator->name }}
Created {{ $task->created_at->format('M j, Y') }}
@if($task->completed_at)
Completed {{ $task->completed_at->format('M j, Y') }}
@endif
{{-- Tags --}}
Tags
@foreach($task->tags as $tag) {{ $tag->name }} ร— @endforeach
@foreach($allTags as $at) @endforeach @if($allTags->isEmpty())
No tags available
@endif
{{-- Delete (subtle) --}}
@csrf @method('DELETE')
@endsection @push('scripts') @endpush @push('scripts') @endpush