fix: complex container status

feat: able to change primary server
feat: links inside the logs
This commit is contained in:
Andras Bacsai
2024-02-22 10:57:05 +01:00
parent 6a00d8c88c
commit 5179129a6b
15 changed files with 115 additions and 49 deletions

View File

@@ -41,7 +41,7 @@
@if ($resource->getMorphClass() == 'App\Models\Service')
<x-status.services :service="$resource" />
@else
<x-status.index :status="$resource->status" />
<x-status.index :resource="$resource" />
@endif
</ol>
</nav>

View File

@@ -1,4 +1,3 @@
@props(['status', 'showRefreshButton' => true])
@if (str($status)->startsWith('running'))
<x-status.running :status="$status" />
@elseif(str($status)->startsWith('restarting') ||
@@ -6,7 +5,7 @@
str($status)->startsWith('degraded'))
<x-status.restarting :status="$status" />
@else
<x-status.stopped :status="$status"/>
<x-status.stopped :status="$status" />
@endif
@if (!str($status)->contains('exited') && $showRefreshButton)

View File

@@ -12,5 +12,4 @@
data_get($application_deployment_queue, 'status') === 'queued')
<x-forms.button isError wire:click.prevent="cancel">Cancel</x-forms.button>
@endif
</div>

View File

@@ -51,12 +51,17 @@
@if (decode_remote_command_output($application_deployment_queue)->count() > 0)
@foreach (decode_remote_command_output($application_deployment_queue) as $line)
<div @class([
'font-mono whitespace-pre-line',
'font-mono',
'text-warning' => $line['hidden'],
'text-red-500' => $line['type'] == 'stderr',
])>[{{ $line['timestamp'] }}] @if ($line['hidden'])
<br>COMMAND: <br>{{ $line['command'] }} <br><br>OUTPUT:
@endif{{ $line['output'] }}@if ($line['hidden'])
@endif @if (str($line['output'])->contains('http://') || str($line['output'])->contains('https://'))
@php
$line['output'] = preg_replace('/(https?:\/\/[^\s]+)/', '<a href="$1" target="_blank" class="underline text-neutral-400">$1</a>', $line['output']);
@endphp {!! $line['output'] !!}
@else
{{ $line['output'] }}
@endif
</div>
@endforeach

View File

@@ -1,4 +1,4 @@
<nav wire:poll.30000ms="check_status">
<nav wire:poll.5000ms="check_status">
<x-resources.breadcrumbs :resource="$application" :parameters="$parameters" />
<div class="navbar-main">
<a class="{{ request()->routeIs('project.application.configuration') ? 'text-white' : '' }}"

View File

@@ -4,7 +4,7 @@
<div class="grid grid-cols-1 gap-4 py-4">
<div class="flex gap-2">
<div class="relative flex flex-col text-white cursor-default box-without-bg bg-coolgray-100 w-96">
<div class="font-bold">Main Server</div>
<div class="text-xl font-bold">Primary Server</div>
@if (str($resource->realStatus())->startsWith('running'))
<div title="{{ $resource->realStatus() }}" class="absolute bg-success -top-1 -left-1 badge badge-xs">
</div>
@@ -21,7 +21,11 @@
</div>
@if ($resource?->additional_networks?->count() > 0)
<x-forms.button
wire:click="redeploy('{{ data_get($resource, 'destination.id') }}','{{ data_get($resource, 'destination.server.id') }}')">Redeploy</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
@endif
</div>
@if ($resource?->additional_networks?->count() > 0)
@@ -41,16 +45,23 @@
<div>
Network: {{ data_get($destination, 'network') }}
</div>
</div>
<x-forms.button
wire:click="redeploy('{{ data_get($destination, 'id') }}','{{ data_get($destination, 'server.id') }}')">Redeploy</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-new-modal
action="removeServer({{ data_get($destination, 'id') }},{{ data_get($destination, 'server.id') }})"
isErrorButton buttonTitle="Remove Server">
This will stop the running application in this server and remove it as a deployment
destination.<br><br>Please think again.
</x-new-modal>
</div>
@endforeach
@endif