@extends('layouts.app') @section('title', '藍圖 — ' . $project->name) @push('styles') @endpush @section('content') @include('projects._nav', ['project' => $project])
@if (session('success'))
{{ session('success') }}
@endif
藍圖(Roadmap)
@can('manageRoadmap', $project) 新增版本 @endcan
{{-- 版本列表 --}} @forelse ($versions as $v) @php $total = $v->issues_count; $open = $v->open_count; $done = $total - $open; $pct = $total > 0 ? round($done / $total * 100) : 0; $issues = $v->issues()->with('assignee')->orderBy('updated_at', 'desc')->get(); @endphp
{{ $v->name }} {{ $v->statusLabel() }} @if ($v->due_date) {{ $v->due_date->format('Y-m-d') }} @endif @if ($v->members->isNotEmpty()) {{ $v->members->count() }} 位成員 @endif
@can('manageRoadmap', $project) 編輯
@csrf @method('DELETE')
@endcan
@if ($v->description)

{{ $v->description }}

@endif {{-- 進度條 --}}
{{ $pct }}%({{ $done }}/{{ $total }}) {{ $open }} 待完成
{{-- 議題清單 --}} @if ($issues->isEmpty())

此版本尚無議題。

@else @php $allStatusOpts = \App\Models\IssueStatus::asOptions(); $allTrackerOpts = \App\Models\IssueTracker::asOptions(); $allPriorityOpts = \App\Models\IssuePriority::asOptions(); @endphp
@foreach ($issues as $issue) @php $sData = $allStatusOpts[$issue->status] ?? null; $tData = $allTrackerOpts[$issue->tracker] ?? null; $pData = $allPriorityOpts[$issue->priority] ?? null; @endphp @endforeach
# 類型 狀態 標題 優先度 指派給 截止日 完成度
#{{ $issue->redmine_id }} {{ $tData['label'] ?? $issue->tracker }} {{ $sData['label'] ?? $issue->status }} {{ $issue->title }} {{ $pData['label'] ?? $issue->priority }} {{ $issue->assignee?->name ?? '—' }} {{ $issue->due_date?->format('Y-m-d') ?? '—' }} @if(($issue->done_ratio ?? 0) > 0)
{{ $issue->done_ratio }}% @else @endif
@endif
@empty
尚未建立任何版本。 @can('manageRoadmap', $project) 建立第一個版本 @endcan
@endforelse {{-- 未指派版本的議題 --}} @if ($unversioned->isNotEmpty())
未指派版本的開放議題 {{ $unversioned->count() }}
@endif
@endsection