From 433dff2684856bfda2087e974bb42aeba7ecad21 Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Thu, 16 Jan 2025 11:04:50 +0100 Subject: [PATCH] improve navigation --- app/Livewire/Dashboard.php | 12 +--------- app/Livewire/Project/Index.php | 12 ++-------- app/Models/Project.php | 12 ++++++++++ resources/views/livewire/dashboard.blade.php | 23 +++++++++++--------- resources/views/source/all.blade.php | 10 ++++----- 5 files changed, 32 insertions(+), 37 deletions(-) diff --git a/app/Livewire/Dashboard.php b/app/Livewire/Dashboard.php index c3cb797bf..d89f2b970 100644 --- a/app/Livewire/Dashboard.php +++ b/app/Livewire/Dashboard.php @@ -8,7 +8,6 @@ use App\Models\Project; use App\Models\Server; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Artisan; -use Illuminate\Support\Facades\Redirect; use Livewire\Component; class Dashboard extends Component @@ -52,16 +51,7 @@ class Dashboard extends Component public function navigateToProject($projectUuid) { - $project = Project::where('uuid', $projectUuid)->first(); - - if ($project && $project->environments->count() === 1) { - return Redirect::route('project.resource.index', [ - 'project_uuid' => $projectUuid, - 'environment_uuid' => $project->environments->first()->uuid, - ]); - } - - return Redirect::route('project.show', ['project_uuid' => $projectUuid]); + return $this->redirect(collect($this->projects)->firstWhere('uuid', $projectUuid)->navigateTo(), true); } public function render() diff --git a/app/Livewire/Project/Index.php b/app/Livewire/Project/Index.php index 06bf88219..8bf511a66 100644 --- a/app/Livewire/Project/Index.php +++ b/app/Livewire/Project/Index.php @@ -5,7 +5,6 @@ namespace App\Livewire\Project; use App\Models\PrivateKey; use App\Models\Project; use App\Models\Server; -use Illuminate\Support\Facades\Redirect; use Livewire\Component; class Index extends Component @@ -34,15 +33,8 @@ class Index extends Component public function navigateToProject($projectUuid) { - $project = Project::where('uuid', $projectUuid)->first(); + $project = collect($this->projects)->firstWhere('uuid', $projectUuid); - if ($project && $project->environments->count() === 1) { - return Redirect::route('project.resource.index', [ - 'project_uuid' => $projectUuid, - 'environment_uuid' => $project->environments->first()->uuid, - ]); - } - - return Redirect::route('project.show', ['project_uuid' => $projectUuid]); + return $this->redirect($project->navigateTo(), true); } } diff --git a/app/Models/Project.php b/app/Models/Project.php index 3b50b9b33..2e4d45859 100644 --- a/app/Models/Project.php +++ b/app/Models/Project.php @@ -140,4 +140,16 @@ class Project extends BaseModel { return $this->postgresqls()->get()->merge($this->redis()->get())->merge($this->mongodbs()->get())->merge($this->mysqls()->get())->merge($this->mariadbs()->get())->merge($this->keydbs()->get())->merge($this->dragonflies()->get())->merge($this->clickhouses()->get()); } + + public function navigateTo() + { + if ($this->environments->count() === 1) { + return route('project.resource.index', [ + 'project_uuid' => $this->uuid, + 'environment_uuid' => $this->environments->first()->uuid, + ]); + } + + return route('project.show', ['project_uuid' => $this->uuid]); + } } diff --git a/resources/views/livewire/dashboard.blade.php b/resources/views/livewire/dashboard.blade.php index b7955489a..806704d5d 100644 --- a/resources/views/livewire/dashboard.blade.php +++ b/resources/views/livewire/dashboard.blade.php @@ -59,7 +59,8 @@ your first project or - go to the onboarding page. + go to the onboarding page. @endif @@ -70,8 +71,7 @@ @if ($servers->count() > 0)
@foreach ($servers as $server) - $server->settings->is_reachable, @@ -108,7 +108,8 @@ a private key or - go to the onboarding + go to the onboarding page.
@@ -120,7 +121,8 @@ your first server or - go to the onboarding + go to the onboarding page. @@ -145,11 +147,12 @@

{{ $serverName }}