diff --git a/resources/views/livewire/monitors/monitor-dashboard.blade.php b/resources/views/livewire/monitors/monitor-dashboard.blade.php index fcfaedf..f8ce812 100644 --- a/resources/views/livewire/monitors/monitor-dashboard.blade.php +++ b/resources/views/livewire/monitors/monitor-dashboard.blade.php @@ -15,8 +15,39 @@ public function mount(Monitor $monitor) { $this->monitor = $monitor; + $this->calculate_statistics(); } + protected function calculate_statistics(): void + { + $this->total_repos = $this->monitor->repositories()->count(); + + $this->total_issues_open = $this->monitor->repositories->flatMap(function ($repo) { + return $repo->milestones->flatMap(function ($milestone) { + return $milestone->tasks->whereNotNull('closed_at'); + }); + })->count(); + + $this->total_issues_closed = $this->monitor->repositories->flatMap(function ($repo) { + return $repo->milestones->flatMap(function ($milestone) { + return $milestone->tasks->whereNull('closed_at'); + }); + })->count(); + + $this->top_milestones = $this->monitor->repositories->flatMap(function ($repo) { + return $repo->milestones; + })->sortByDesc('progress')->take(5); + + $totalProgress = $this->monitor->repositories->flatMap(function ($repo) { + return $repo->milestones->pluck('progress'); + })->sum() / 100; + + $totalMilestones = $this->monitor->repositories->flatMap(function ($repo) { + return $repo->milestones; + })->count(); + + $this->total_percentage = $totalMilestones > 0 ? ($totalProgress / $totalMilestones) : 0; + } }; ?> @@ -25,6 +56,12 @@ public function mount(Monitor $monitor)

Overview

{{$total_issues_closed}} + {{$total_issues_open}} + + @foreach($top_milestones as $iterator) + {{$iterator->title}} + @endforeach +