Talent Roadmap

Kelola milestone dan objectives per talent

{{-- Header actions --}}
Kembali
@php $groups = $this->getComputedData(); @endphp @if(empty($groups))

Belum ada milestone. Tambah milestone pertama!

@else
@foreach($groups as $group) @php $groupUser = $group['user']; @endphp
{{-- User header --}}
{{ $groupUser->name }}

{{ $groupUser->name }}

@foreach($group['milestones'] as $milestone) @php $objectives = $milestone->objectives; $totalObj = $objectives->count(); $completedObj = $objectives->where('status', 'done')->count(); $pct = $totalObj > 0 ? round(($completedObj / $totalObj) * 100) : 0; $isOverdue = $milestone->target_date && $milestone->target_date->isPast() && $milestone->status !== 'completed'; @endphp
{{-- Milestone header --}}

{{ $milestone->title }}

{{ match($milestone->status) { 'planned' => 'Direncanakan', 'in_progress' => 'Berjalan', 'completed' => 'Selesai', 'cancelled' => 'Dibatalkan', default => $milestone->status, } }} @if($isOverdue) Terlambat @endif
@if($milestone->description)

{{ $milestone->description }}

@endif

Target: {{ $milestone->target_date?->format('d M Y') ?? '—' }}

{{-- Progress bar --}} @if($totalObj > 0)
{{ $completedObj }}/{{ $totalObj }}
@endif {{-- Objectives --}}
@forelse($objectives as $obj)

{{ $obj->title }}

@if($obj->description)

{{ $obj->description }}

@endif @if($obj->due_date)

Due: {{ $obj->due_date->format('d M Y') }}

@endif
{{ match($obj->status) { 'todo' => 'Todo', 'in_progress' => 'Progres', 'done' => 'Selesai', 'cancelled' => 'Batal', default => $obj->status, } }}
@empty

Belum ada objective.

@endforelse
@endforeach
@endforeach
@endif {{-- ── Milestone Modal ──────────────────────────────────────────────── --}} @if($showMilestoneModal)

{{ $editingMilestoneId ? 'Edit Milestone' : 'Tambah Milestone' }}

@error('milestoneForm.user_id')

{{ $message }}

@enderror
@error('milestoneForm.title')

{{ $message }}

@enderror
@error('milestoneForm.target_date')

{{ $message }}

@enderror
@endif {{-- ── Objective Modal ──────────────────────────────────────────────── --}} @if($showObjectiveModal)

{{ $editingObjectiveId ? 'Edit Objective' : 'Tambah Objective' }}

@error('objectiveForm.title')

{{ $message }}

@enderror
@endif