diff --git a/app/Http/Controllers/TimeController.php b/app/Http/Controllers/TimeController.php index 72333c5..ee1bd6d 100644 --- a/app/Http/Controllers/TimeController.php +++ b/app/Http/Controllers/TimeController.php @@ -6,6 +6,7 @@ use App\Http\Requests\TimeListRequest; use App\Model\Repository\ContributorRepositoryEloquent; use App\Model\Repository\LabelRepositoryEloquent; +use App\Model\Repository\MilestoneRepositoryEloquent; use App\Model\Repository\ProjectRepositoryEloquent; use App\Model\Service\Eloquent\EloquentSpentService; use App\Providers\AppServiceProvider; @@ -35,6 +36,9 @@ protected function prepareDataForIndex(FormRequest $request, array $data) /** @var LabelRepositoryEloquent $labelRepository */ $labelRepository = app(AppServiceProvider::LABEL_REPOSITORY); + /** @var MilestoneRepositoryEloquent $milestoneRepository */ + $milestoneRepository = app(AppServiceProvider::MILESTONE_REPOSITORY); + $totalTime = $this->getService()->getTotalTime($request->all()); return array_merge( @@ -43,6 +47,7 @@ protected function prepareDataForIndex(FormRequest $request, array $data) 'authorsList' => $contributorRepository->getItemsForSelect(), 'projectsList' => $projectRepository->getItemsForSelect(), 'labelList' => $labelRepository->getItemsForSelect(null, null, 'name'), + 'milestonelList' => $milestoneRepository->getItemsForSelect(null, null, 'id', 'title'), 'total' => [ 'time' => $totalTime, ], diff --git a/app/Model/Repository/SpentRepositoryEloquent.php b/app/Model/Repository/SpentRepositoryEloquent.php index f3b02b8..43dd2c9 100644 --- a/app/Model/Repository/SpentRepositoryEloquent.php +++ b/app/Model/Repository/SpentRepositoryEloquent.php @@ -80,6 +80,11 @@ public function getListQuery(array $parameters): Builder $query->whereRaw("issue.labels @> array[$labelsString]"); } + if ($milestoneIds = Arr::get($parameters, 'milestones')) + { + $query->whereIn('issue.milestone_id', $milestoneIds); + } + return $query; } diff --git a/resources/views/gitpab/time/index_filter_form.blade.php b/resources/views/gitpab/time/index_filter_form.blade.php index 1ec5308..2739960 100644 --- a/resources/views/gitpab/time/index_filter_form.blade.php +++ b/resources/views/gitpab/time/index_filter_form.blade.php @@ -68,6 +68,17 @@ ]) +
+
+ @include('partial.form.element.select', [ + 'name' => 'milestones[]', + 'list' => $milestonelList, + 'selected' => $request->input('milestones'), + 'options' => ['multiple' => 'multiple'], + 'label' => __('messages.Milestones'), + ]) +
+
diff --git a/resources/views/gitpab/time/index_table.blade.php b/resources/views/gitpab/time/index_table.blade.php index 85d1a7d..af10d53 100644 --- a/resources/views/gitpab/time/index_table.blade.php +++ b/resources/views/gitpab/time/index_table.blade.php @@ -104,6 +104,6 @@ {{ $total['time'] }} - + @endsection