121 lines
7.0 KiB
PHP
121 lines
7.0 KiB
PHP
<div>
|
|
<h2>Servers</h2>
|
|
<div class="">Server related configurations.</div>
|
|
<div class="grid grid-cols-1 gap-4 py-4">
|
|
<div class="flex flex-col gap-2">
|
|
<h3>Primary Server</h3>
|
|
<div
|
|
class="relative flex flex-col bg-white border cursor-default dark:text-white box-without-bg dark:bg-coolgray-100 dark:border-black">
|
|
@if (str($resource->realStatus())->startsWith('running'))
|
|
<div title="{{ $resource->realStatus() }}" class="absolute bg-success -top-1 -left-1 badge ">
|
|
</div>
|
|
@elseif (str($resource->realStatus())->startsWith('exited'))
|
|
<div title="{{ $resource->realStatus() }}" class="absolute bg-error -top-1 -left-1 badge ">
|
|
</div>
|
|
@endif
|
|
<div class="box-title">
|
|
Server: {{ data_get($resource, 'destination.server.name') }}
|
|
</div>
|
|
<div class="box-description">
|
|
Network: {{ data_get($resource, 'destination.network') }}
|
|
</div>
|
|
</div>
|
|
@if ($resource?->additional_networks?->count() > 0)
|
|
<div class="flex gap-2">
|
|
<x-forms.button
|
|
wire:click="redeploy('{{ data_get($resource, 'destination.id') }}','{{ data_get($resource, 'destination.server.id') }}')">Deploy</x-forms.button>
|
|
@if (str($resource->realStatus())->startsWith('running'))
|
|
<x-forms.button isError
|
|
wire:click="stop('{{ data_get($resource, 'destination.server.id') }}')">Stop</x-forms.button>
|
|
@endif
|
|
</div>
|
|
@endif
|
|
</div>
|
|
@if ($resource?->additional_networks?->count() > 0 && data_get($resource, 'build_pack') !== 'dockercompose')
|
|
<h3>Additional Server(s)</h3>
|
|
@foreach ($resource->additional_networks as $destination)
|
|
<div class="flex flex-col gap-2" wire:key="destination-{{ $destination->id }}">
|
|
<div
|
|
class="relative flex flex-col bg-white border cursor-default dark:text-white box-without-bg dark:bg-coolgray-100 dark:border-black">
|
|
@if (str(data_get($destination, 'pivot.status'))->startsWith('running'))
|
|
<div title="{{ data_get($destination, 'pivot.status') }}"
|
|
class="absolute bg-success -top-1 -left-1 badge "></div>
|
|
@elseif (str(data_get($destination, 'pivot.status'))->startsWith('exited'))
|
|
<div title="{{ data_get($destination, 'pivot.status') }}"
|
|
class="absolute bg-error -top-1 -left-1 badge "></div>
|
|
@endif
|
|
<div>
|
|
<div class="box-title">
|
|
Server: {{ data_get($destination, 'server.name') }}
|
|
</div>
|
|
<div class="box-description">
|
|
Network: {{ data_get($destination, 'network') }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="flex gap-2">
|
|
<x-forms.button
|
|
wire:click="redeploy('{{ data_get($destination, 'id') }}','{{ data_get($destination, 'server.id') }}')">Deploy</x-forms.button>
|
|
<x-forms.button
|
|
wire:click="promote('{{ data_get($destination, 'id') }}','{{ data_get($destination, 'server.id') }}')">Promote
|
|
to Primary </x-forms.button>
|
|
@if (data_get_str($destination, 'pivot.status')->startsWith('running'))
|
|
<x-forms.button isError
|
|
wire:click="stop('{{ data_get($destination, 'server.id') }}')">Stop</x-forms.button>
|
|
@endif
|
|
<x-modal-confirmation title="Confirm removing application from server?" isErrorButton
|
|
buttonTitle="Remove from server"
|
|
submitAction="removeServer({{ data_get($destination, 'id') }},{{ data_get($destination, 'server.id') }})"
|
|
:actions="[
|
|
'This will stop the all running applications on this server and remove it as a deployment destination.',
|
|
]" confirmationText="{{ data_get($destination, 'server.name') }}"
|
|
confirmationLabel="Please confirm the execution of the actions by entering the Server Name below"
|
|
shortConfirmationLabel="Server Name" />
|
|
</div>
|
|
</div>
|
|
@endforeach
|
|
@endif
|
|
</div>
|
|
@if ($resource->getMorphClass() === 'App\Models\Application' && data_get($resource, 'build_pack') !== 'dockercompose')
|
|
<div class="flex flex-col gap-2">
|
|
@if ($resource->persistentStorages()->count() > 0)
|
|
<h3>Add another server</h3>
|
|
<div
|
|
class="p-4 bg-yellow-50 border border-yellow-200 rounded-lg dark:bg-yellow-900/20 dark:border-yellow-800">
|
|
<div class="flex items-center">
|
|
|
|
<div>
|
|
<h4 class="text-sm font-medium text-yellow-800 dark:text-yellow-200">Cannot add additional
|
|
servers</h4>
|
|
<p class="text-sm text-yellow-700 dark:text-yellow-300 mt-1">
|
|
This application has persistent storage volumes configured. Applications with persistent
|
|
storage cannot be deployed to multiple servers as the storage would not be accessible
|
|
across different servers.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@elseif (count($networks) > 0)
|
|
<h3>Add another server</h3>
|
|
<div class="grid grid-cols-1 gap-4">
|
|
@foreach ($networks as $network)
|
|
<div wire:click="addServer('{{ $network->id }}','{{ data_get($network, 'server.id') }}')"
|
|
class="relative flex flex-col dark:text-white box group">
|
|
<div>
|
|
<div class="box-title">
|
|
Server: {{ data_get($network, 'server.name') }}
|
|
</div>
|
|
<div class="box-description">
|
|
Network: {{ data_get($network, 'name') }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@endforeach
|
|
</div>
|
|
@else
|
|
<div>No additional servers available to attach.</div>
|
|
@endif
|
|
</div>
|
|
@endif
|
|
</div>
|