From 4eb1c0412b5a4fb6d345e775f2134f4df4a8450d Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Wed, 3 May 2023 11:16:08 +0200 Subject: [PATCH] flow to add new destinations --- .../Project/New/PublicGitRepository.php | 14 +++---- resources/views/destination/new.blade.php | 2 +- .../new/public-git-repository.blade.php | 37 +++++++++++++------ resources/views/server/show.blade.php | 2 +- routes/web.php | 11 +++++- 5 files changed, 42 insertions(+), 24 deletions(-) diff --git a/app/Http/Livewire/Project/New/PublicGitRepository.php b/app/Http/Livewire/Project/New/PublicGitRepository.php index 0f00ccf38..bd7f18a41 100644 --- a/app/Http/Livewire/Project/New/PublicGitRepository.php +++ b/app/Http/Livewire/Project/New/PublicGitRepository.php @@ -43,17 +43,13 @@ class PublicGitRepository extends Component $this->port = 3000; } $this->parameters = Route::current()->parameters(); - $this->servers = session('currentTeam')->load(['servers'])->servers->reject(function ($server) { - if ($server->standaloneDockers->count() === 0 && $server->swarmDockers->count() === 0) { - return true; - } - }); + $this->servers = session('currentTeam')->load(['servers'])->servers; } - public function chooseServer($server_id) + public function chooseServer($server) { - $this->chosenServer = $server_id; - $this->standalone_docker = StandaloneDocker::where('server_id', $server_id)->get(); - $this->swarm_docker = SwarmDocker::where('server_id', $server_id)->get(); + $this->chosenServer = $server; + $this->standalone_docker = StandaloneDocker::where('server_id', $server['id'])->get(); + $this->swarm_docker = SwarmDocker::where('server_id', $server['id'])->get(); } public function setDestination($destination_uuid, $destination_type) { diff --git a/resources/views/destination/new.blade.php b/resources/views/destination/new.blade.php index a3be8a53b..55bb270e2 100644 --- a/resources/views/destination/new.blade.php +++ b/resources/views/destination/new.blade.php @@ -1,4 +1,4 @@

New Destination

- +
diff --git a/resources/views/livewire/project/new/public-git-repository.blade.php b/resources/views/livewire/project/new/public-git-repository.blade.php index b1da74fe8..c340e0a82 100644 --- a/resources/views/livewire/project/new/public-git-repository.blade.php +++ b/resources/views/livewire/project/new/public-git-repository.blade.php @@ -4,24 +4,37 @@ @endif @forelse ($servers as $server) + wire:click="chooseServer({{ $server }})">{{ $server->name }} @empty No servers found.

Did you forget to add a destination on the server?

@endforelse @isset($chosenServer) -

Choose a destination

-
- @foreach ($standalone_docker as $standalone) - - @endforeach - @foreach ($swarm_docker as $standalone) - - @endforeach -
+ @if ($standalone_docker->count() > 0 || $swarm_docker->count() > 0) +

Choose a destination

+
+ @foreach ($standalone_docker as $standalone) + + @endforeach + @foreach ($swarm_docker as $standalone) + + @endforeach +
+
+ Add + a new + destination +
+ @else +

No destinations found on this server.

+ Add + a + destination + @endif + @endisset @isset($chosenDestination) diff --git a/resources/views/server/show.blade.php b/resources/views/server/show.blade.php index 1fb710c42..3cf9c8cf3 100644 --- a/resources/views/server/show.blade.php +++ b/resources/views/server/show.blade.php @@ -1,7 +1,7 @@

Server

-

Destinations

+

Destinations

@if ($server->standaloneDockers) @foreach ($server->standaloneDockers as $docker)

Network: {{ data_get($docker, 'network') }}

diff --git a/routes/web.php b/routes/web.php index deb7be6f0..d50f74e04 100644 --- a/routes/web.php +++ b/routes/web.php @@ -74,7 +74,16 @@ Route::middleware(['auth'])->group(function () { }); Route::middleware(['auth'])->group(function () { - Route::get('/destination/new', fn () => view('destination.new'))->name('destination.new'); + Route::get('/destination/new', function () { + $query_params = request()->query(); + $server_id = null; + if (isset($query_params['server_id'])) { + $server_id = $query_params['server_id']; + } + return view('destination.new', [ + 'server_id' => $server_id, + ]); + })->name('destination.new'); Route::get('/destination/{destination_uuid}', function () { $standalone_dockers = StandaloneDocker::where('uuid', request()->destination_uuid)->first(); $swarm_dockers = SwarmDocker::where('uuid', request()->destination_uuid)->first();