From cc3e39db1f3f9ce93ad1ec73c8348c97d3b0fb2e Mon Sep 17 00:00:00 2001 From: ShadowArcanist <162910371+ShadowArcanist@users.noreply.github.com> Date: Sun, 4 Jan 2026 17:19:01 +0100 Subject: [PATCH] feat(ui): show server name on resource card (#7417) --- .../livewire/project/resource/index.blade.php | 358 +++++++++++++----- 1 file changed, 253 insertions(+), 105 deletions(-) diff --git a/resources/views/livewire/project/resource/index.blade.php b/resources/views/livewire/project/resource/index.blade.php index 2b2b0acc6..6df6db214 100644 --- a/resources/views/livewire/project/resource/index.blade.php +++ b/resources/views/livewire/project/resource/index.blade.php @@ -14,8 +14,8 @@ @endcan @else @can('createAnyResource') - + + + New @endcan @can('createAnyResource') @@ -40,16 +40,18 @@ class="button">+ href="{{ route('project.show', ['project_uuid' => data_get($parameters, 'project_uuid')]) }}"> {{ $project->name }} -
@foreach ($projects as $proj) +
  • @@ -73,40 +93,61 @@ class="block px-4 py-2 text-sm truncate hover:bg-neutral-100 dark:hover:bg-coolg -
    + x-transition:leave="transition ease-in duration-75" + x-transition:leave-start="opacity-100 scale-100" x-transition:leave-end="opacity-0 scale-95" + class="absolute z-20 top-full mt-1 left-0 sm:left-auto max-w-[calc(100vw-1rem)]" + x-init="$nextTick(() => { const rect = $el.getBoundingClientRect(); if (rect.right > window.innerWidth) { $el.style.left = 'auto'; + $el.style.right = '0'; } })"> -
    +
    @foreach ($allEnvironments as $env) @php $envResources = collect() - ->merge($env->applications->map(fn($app) => ['type' => 'application', 'resource' => $app])) - ->merge($env->databases()->map(fn($db) => ['type' => 'database', 'resource' => $db])) - ->merge($env->services->map(fn($svc) => ['type' => 'service', 'resource' => $svc])); + ->merge( + $env->applications->map( + fn($app) => ['type' => 'application', 'resource' => $app], + ), + ) + ->merge( + $env + ->databases() + ->map(fn($db) => ['type' => 'database', 'resource' => $db]), + ) + ->merge( + $env->services->map( + fn($svc) => ['type' => 'service', 'resource' => $svc], + ), + ); @endphp -
    + @endforeach
    - uuid }}'" x-cloak - x-transition:enter="transition ease-out duration-150" x-transition:enter-start="opacity-0" - x-transition:enter-end="opacity-100" + x-transition:enter="transition ease-out duration-150" + x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" @mouseenter="openEnv('{{ $env->uuid }}')" @mouseleave="closeEnv()" - :style="'position: absolute; left: 100%; top: ' + (envPositions['{{ $env->uuid }}'] || 0) + 'px; z-index: 30;'" + :style="'position: absolute; left: 100%; top: ' + (envPositions[ + '{{ $env->uuid }}'] || 0) + 'px; z-index: 30;'" class="flex flex-col sm:flex-row items-start pl-1"> -
    +
    @foreach ($envResources as $envResource) @php $resType = $envResource['type']; $res = $envResource['resource']; - $resRoute = match($resType) { + $resRoute = match ($resType) { 'application' => route('project.application.configuration', [ 'project_uuid' => $project->uuid, 'environment_uuid' => $env->uuid, @@ -155,16 +208,28 @@ class="flex flex-col sm:flex-row items-start pl-1"> 'database_uuid' => $res->uuid, ]), }; - $resHasMultipleServers = $resType === 'application' && method_exists($res, 'additional_servers') && $res->additional_servers()->count() > 0; - $resServerName = $resHasMultipleServers ? null : data_get($res, 'destination.server.name'); + $resHasMultipleServers = + $resType === 'application' && + method_exists($res, 'additional_servers') && + $res->additional_servers()->count() > 0; + $resServerName = $resHasMultipleServers + ? null + : data_get($res, 'destination.server.name'); @endphp -
    + @@ -190,112 +255,189 @@ class="flex items-center justify-between gap-2 px-4 py-2 text-sm hover:bg-neutra $resKey = $env->uuid . '-' . $res->uuid; @endphp
    -
    +
    @if ($resType === 'application') -
    + - Deployments - Logs + Deployments + Logs @can('canAccessTerminal') - Terminal + Terminal @endcan @elseif ($resType === 'service') -
    + - Logs + Logs @can('canAccessTerminal') - Terminal + Terminal @endcan @else -
    + - Logs + Logs @can('canAccessTerminal') - Terminal + Terminal @endcan @if ( $res->getMorphClass() === 'App\Models\StandalonePostgresql' || - $res->getMorphClass() === 'App\Models\StandaloneMongodb' || - $res->getMorphClass() === 'App\Models\StandaloneMysql' || - $res->getMorphClass() === 'App\Models\StandaloneMariadb') - Backups + $res->getMorphClass() === 'App\Models\StandaloneMongodb' || + $res->getMorphClass() === 'App\Models\StandaloneMysql' || + $res->getMorphClass() === 'App\Models\StandaloneMariadb') + Backups @endif @endif
    @@ -311,8 +453,8 @@ class="pl-1">
    @if ($environment->isEmpty()) @can('createAnyResource') - + Add Resource + + Add Resource @else
    @@ -375,6 +517,8 @@ class="grid grid-cols-1 gap-4 pt-4 lg:grid-cols-2 xl:grid-cols-3">
    +
    Server: