Skip to content

Commit b936f2f

Browse files
authored
Fix server resources tab 500 error with mixed model types (#7674)
2 parents 1b3be5b + 4b65b02 commit b936f2f

File tree

4 files changed

+61
-26
lines changed

4 files changed

+61
-26
lines changed

app/Livewire/Server/Resources.php

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
use App\Models\Server;
66
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
7-
use Illuminate\Support\Collection;
87
use Livewire\Component;
98

109
class Resources extends Component
@@ -15,7 +14,7 @@ class Resources extends Component
1514

1615
public $parameters = [];
1716

18-
public Collection $containers;
17+
public array $unmanagedContainers = [];
1918

2019
public $activeTab = 'managed';
2120

@@ -64,7 +63,7 @@ public function loadManagedContainers()
6463
{
6564
try {
6665
$this->activeTab = 'managed';
67-
$this->containers = $this->server->refresh()->definedResources();
66+
$this->server->refresh();
6867
} catch (\Throwable $e) {
6968
return handleError($e, $this);
7069
}
@@ -74,22 +73,20 @@ public function loadUnmanagedContainers()
7473
{
7574
$this->activeTab = 'unmanaged';
7675
try {
77-
$this->containers = $this->server->loadUnmanagedContainers();
76+
$this->unmanagedContainers = $this->server->loadUnmanagedContainers()->toArray();
7877
} catch (\Throwable $e) {
7978
return handleError($e, $this);
8079
}
8180
}
8281

8382
public function mount()
8483
{
85-
$this->containers = collect();
8684
$this->parameters = get_route_parameters();
8785
try {
8886
$this->server = Server::ownedByCurrentTeam()->whereUuid(request()->server_uuid)->first();
8987
if (is_null($this->server)) {
9088
return redirect()->route('server.index');
9189
}
92-
$this->loadManagedContainers();
9390
} catch (\Throwable $e) {
9491
return handleError($e, $this);
9592
}

resources/views/livewire/server/resources.blade.php

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,11 @@
3232
</div>
3333
</div>
3434
</div>
35-
@if ($containers->count() > 0)
36-
@if ($activeTab === 'managed')
35+
@if ($activeTab === 'managed')
36+
@php
37+
$managedResources = $server->definedResources()->sortBy('name', SORT_NATURAL);
38+
@endphp
39+
@if ($managedResources->count() > 0)
3740
<div class="flex flex-col">
3841
<div class="flex flex-col">
3942
<div class="overflow-x-auto">
@@ -59,7 +62,7 @@
5962
</tr>
6063
</thead>
6164
<tbody>
62-
@forelse ($server->definedResources()->sortBy('name',SORT_NATURAL) as $resource)
65+
@foreach ($managedResources as $resource)
6366
<tr>
6467
<td class="px-5 py-4 text-sm whitespace-nowrap">
6568
{{ data_get($resource->project(), 'name') }}
@@ -83,16 +86,19 @@
8386
@endif
8487
</td>
8588
</tr>
86-
@empty
87-
@endforelse
89+
@endforeach
8890
</tbody>
8991
</table>
9092
</div>
9193
</div>
9294
</div>
9395
</div>
9496
</div>
95-
@elseif ($activeTab === 'unmanaged')
97+
@else
98+
<div>No managed resources found.</div>
99+
@endif
100+
@elseif ($activeTab === 'unmanaged')
101+
@if (count($unmanagedContainers) > 0)
96102
<div class="flex flex-col">
97103
<div class="flex flex-col">
98104
<div class="overflow-x-auto">
@@ -116,7 +122,7 @@
116122
</tr>
117123
</thead>
118124
<tbody>
119-
@forelse ($containers->sortBy('name',SORT_NATURAL) as $resource)
125+
@foreach (collect($unmanagedContainers)->sortBy('name', SORT_NATURAL) as $resource)
120126
<tr>
121127
<td class="px-5 py-4 text-sm whitespace-nowrap">
122128
{{ data_get($resource, 'Names') }}
@@ -146,19 +152,15 @@
146152
@endif
147153
</td>
148154
</tr>
149-
@empty
150-
@endforelse
155+
@endforeach
151156
</tbody>
152157
</table>
153158
</div>
154159
</div>
155160
</div>
156161
</div>
157-
@endif
158-
@else
159-
@if ($activeTab === 'managed')
160-
<div>No managed resources found.</div>
161-
@elseif ($activeTab === 'unmanaged')
162+
</div>
163+
@else
162164
<div>No unmanaged resources found.</div>
163165
@endif
164166
@endif

0 commit comments

Comments
 (0)