Refactor deployments_per_server variable and update dashboard view

This commit refactors the `deployments_per_server` variable in the `Dashboard` class to remove the type hint and updates the corresponding view file to handle the changes. The `deployments_per_server` variable is now grouped by `server_name` and converted to an array. This improves the organization and readability of the code.
This commit is contained in:
Andras Bacsai
2024-01-29 13:26:50 +01:00
parent de3a7b6eca
commit f7853ee174
2 changed files with 29 additions and 23 deletions

View File

@@ -12,7 +12,7 @@ class Dashboard extends Component
{ {
public $projects = []; public $projects = [];
public Collection $servers; public Collection $servers;
public Collection $deployments_per_server; public $deployments_per_server;
public function mount() public function mount()
{ {
$this->servers = Server::ownedByCurrentTeam()->get(); $this->servers = Server::ownedByCurrentTeam()->get();
@@ -30,7 +30,7 @@ class Dashboard extends Component
"server_name", "server_name",
"server_id", "server_id",
"status" "status"
])->sortBy('id'); ])->sortBy('id')->groupBy('server_name')->toArray();
} }
// public function getIptables() // public function getIptables()
// { // {

View File

@@ -103,32 +103,38 @@
<div class="flex items-center gap-2"> <div class="flex items-center gap-2">
<h3 class="py-4">Deployments </h3> <h3 class="py-4">Deployments </h3>
@if ($deployments_per_server->count() > 0) @if (count($deployments_per_server) > 0)
<x-loading /> <x-loading />
@endif @endif
</div> </div>
<div wire:poll.1000ms="get_deployments" class="grid grid-cols-1 gap-2 lg:grid-cols-3"> {{-- <div wire:poll.4000ms="get_deployments" class="grid grid-cols-1 gap-2 lg:grid-cols-3"> --}}
@forelse ($deployments_per_server as $deployment) <div class="grid grid-cols-1">
<a href="{{ url($deployment->deployment_url) }}" @class([ @forelse ($deployments_per_server as $server_name => $deployments)
'gap-2 cursor-pointer box group border-l-2 border-dotted', <h4 class="py-4">{{ $server_name }}</h4>
'border-white' => $deployment->status === 'queued', <div class="grid grid-cols-1 gap-2 lg:grid-cols-3">
'border-yellow-500' => $deployment->status === 'in_progress', @foreach ($deployments as $deployment)
])> <a href="{{ data_get($deployment, 'deployment_url') }}" @class([
<div class="flex flex-col mx-6"> 'gap-2 cursor-pointer box group border-l-2 border-dotted',
<div class="font-bold text-white"> 'border-white' => data_get($deployment, 'status') === 'queued',
{{ $deployment->application_name }} 'border-yellow-500' => data_get($deployment, 'status') === 'in_progress',
</div> ])>
@if ($deployment->pull_request_id !== 0) <div class="flex flex-col mx-6">
<div class="description"> <div class="font-bold text-white">
PR #{{ $deployment->pull_request_id }} {{ data_get($deployment, 'application_name') }}
</div>
@if (data_get($deployment, 'pull_request_id') !== 0)
<div class="description">
PR #{{ data_get($deployment, 'pull_request_id') }}
</div>
@endif
<div class="description">
{{ str(data_get($deployment, 'status'))->headline() }}
</div> </div>
@endif
<div class="description">
{{ $deployment->status }} on server {{ $deployment->server_name }}.
</div> </div>
</div> <div class="flex-1"></div>
<div class="flex-1"></div> </a>
</a> @endforeach
</div>
@empty @empty
<div>No queued / in progress deployments</div> <div>No queued / in progress deployments</div>
@endforelse @endforelse