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

View File

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