load(['projects'])->projects->where('uuid', request()->route('project_uuid'))->first(); if (!$project) { return redirect()->route('dashboard'); } $environment = $project->load(['environments'])->environments->where('name', request()->route('environment_name'))->first()->load(['applications']); if (!$environment) { return redirect()->route('dashboard'); } $application = $environment->applications->where('uuid', request()->route('application_uuid'))->first(); if (!$application) { return redirect()->route('dashboard'); } ['deployments' => $deployments, 'count' => $count] = $application->deployments(0, 40); $this->application = $application; $this->deployments = $deployments; $this->deployments_count = $count; $this->current_url = url()->current(); $this->show_pull_request_only(); $this->show_more(); } private function show_pull_request_only() { if ($this->pull_request_id) { $this->deployments = $this->deployments->where('pull_request_id', $this->pull_request_id); } } private function show_more() { if (count($this->deployments) !== 0) { $this->show_next = true; if (count($this->deployments) < $this->default_take) { $this->show_next = false; } return; } } public function reload_deployments() { $this->load_deployments(); } public function previous_page(?int $take = null) { if ($take) { $this->skip = $this->skip - $take; } $this->skip = $this->skip - $this->default_take; if ($this->skip < 0) { $this->show_prev = false; $this->skip = 0; } $this->load_deployments(); } public function next_page(?int $take = null) { if ($take) { $this->skip = $this->skip + $take; } $this->show_prev = true; $this->load_deployments(); } public function load_deployments() { ['deployments' => $deployments, 'count' => $count] = $this->application->deployments($this->skip, $this->default_take); $this->deployments = $deployments; $this->deployments_count = $count; $this->show_pull_request_only(); $this->show_more(); } public function render() { return view('livewire.project.application.deployment.index'); } }