diff --git a/resources/views/livewire/server/show.blade.php b/resources/views/livewire/server/show.blade.php index b2650fa9d5..f7844b3286 100644 --- a/resources/views/livewire/server/show.blade.php +++ b/resources/views/livewire/server/show.blade.php @@ -63,143 +63,6 @@ - - - @if ($provider) - - @if ($provider === 'Hetzner') - - - - @elseif ($provider === 'DigitalOcean') - - - - @elseif ($provider === 'Vultr') - - - - @endif - @if ($server->cloudProviderToken) - @if ($provider === 'Hetzner' && !$server->isFunctional() && $hetznerServerStatus === 'off') - - Power On - - @elseif ($provider === 'DigitalOcean' && $digitalOceanDropletStatus === 'off') - - Power On - - @elseif ($provider === 'Vultr' && $vultrInstanceStatus === 'stopped') - - Power On - - @endif - @endif - @endif - @if ($server->server_metadata) - - - - @endif - @if ($server->isTransferredAway()) - - @else - - @endif - - -
-
- -
-
-

- {{ $server->name }} -

-

- @if ($server->isTransferredAway()) - This server was migrated away from this Coolify instance and cannot be managed here. - @elseif ($server->isFunctional()) - The server is reachable, validated, and ready to host resources. - @else - Validate the SSH connection before using this server. - @endif -

-
-
- - @if ($server->server_metadata) - @include('livewire.server.partials.server-details', ['server' => $server]) - @else -
- - - Fetch server details - -
- @endif -
- - @if (isDev()) - -
-
-
- Manage this server from this instance -
-

- @if ($server->isTransferredAway()) - Automations are disabled here. Existing workloads continue to run on the server. - @else - This instance runs deployments, webhooks, scheduled tasks, backups, proxy updates, - and monitoring for this server. - @endif -

-
- - -
- - @if ($server->isTransferredAway()) - - Before you enable management, disable this server on every other Coolify instance. Two - active instances can cause conflicting deployments, proxy changes, backups, and restarts. - - @endif -
- @endif - @@ -260,6 +123,25 @@ {{ $server->isFunctional() ? 'Revalidate connection' : 'Validate connection' }} + @if (isDev()) + + + {{ $server->isTransferredAway() ? 'Enable management' : 'Disable management' }} + + @endif + @if ($server->isTransferredAway()) + + @else + + @endif @if ($server->isTransferredAway()) @@ -335,6 +217,91 @@ @endif + + + @if ($provider) + + @if ($provider === 'Hetzner') + + + + @elseif ($provider === 'DigitalOcean') + + + + @elseif ($provider === 'Vultr') + + + + @endif + @if ($server->cloudProviderToken) + @if ($provider === 'Hetzner' && !$server->isFunctional() && $hetznerServerStatus === 'off') + + Power On + + @elseif ($provider === 'DigitalOcean' && $digitalOceanDropletStatus === 'off') + + Power On + + @elseif ($provider === 'Vultr' && $vultrInstanceStatus === 'stopped') + + Power On + + @endif + @endif + @endif + @if ($server->server_metadata) + + + + @endif + + +
+
+ +
+
+

+ {{ $server->name }} +

+

+ @if ($server->isTransferredAway()) + This server was migrated away from this Coolify instance and cannot be managed here. + @elseif ($server->isFunctional()) + The server is reachable, validated, and ready to host resources. + @else + Validate the SSH connection before using this server. + @endif +

+
+
+ + @if ($server->server_metadata) + @include('livewire.server.partials.server-details', ['server' => $server]) + @else +
+ + + Fetch server details + +
+ @endif +
+ @if ($server->validation_logs) diff --git a/tests/Feature/ServerManagementOwnershipTest.php b/tests/Feature/ServerManagementOwnershipTest.php index 5d8e9a30d0..45227cd9d9 100644 --- a/tests/Feature/ServerManagementOwnershipTest.php +++ b/tests/Feature/ServerManagementOwnershipTest.php @@ -144,18 +144,20 @@ test('team members cannot change server management ownership', function () { expect($this->server->fresh()->isTransferredAway())->toBeFalse(); }); -test('server overview explains the management ownership switch', function () { +test('server overview shows a management button that matches the ownership state', function () { Livewire::test(Show::class, ['server_uuid' => $this->server->uuid]) - ->assertSee('Manage this server from this instance') - ->assertSee('This instance runs deployments, webhooks, scheduled tasks, backups, proxy updates,') - ->assertSee('and monitoring for this server.'); + ->assertSee('Disable management') + ->assertDontSee('Enable management') + ->call('toggleManagement') + ->assertSee('Enable management') + ->assertDontSee('Disable management'); }); test('management ownership is not available outside development', function () { config(['app.env' => 'production']); Livewire::test(Show::class, ['server_uuid' => $this->server->uuid]) - ->assertDontSee('Manage this server from this instance') + ->assertDontSee('Disable management') ->call('toggleManagement') ->assertNotFound();