From 5ed91c05bf0dcb9181316d4ab1c125e581583201 Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Mon, 8 May 2023 09:16:50 +0200 Subject: [PATCH] fixes --- app/Data/CoolifyTaskArgs.php | 2 +- app/Enums/ProcessStatus.php | 2 +- app/Http/Livewire/ActivityMonitor.php | 19 ++++++++++++++++--- .../Destination/New/StandaloneDocker.php | 2 +- app/Http/Livewire/Server/Form.php | 8 +++++++- app/Models/Server.php | 5 +++++ ...24_140712_create_server_settings_table.php | 1 + database/seeders/ServerSettingSeeder.php | 5 +++-- .../views/components/inputs/button.blade.php | 6 +++--- .../views/components/inputs/input.blade.php | 2 +- .../views/livewire/activity-monitor.blade.php | 4 +++- .../views/livewire/check-update.blade.php | 4 ++-- .../application/get-deployments.blade.php | 2 +- .../views/livewire/run-command.blade.php | 8 +++++--- .../views/livewire/server/form.blade.php | 4 +++- routes/web.php | 2 +- 16 files changed, 54 insertions(+), 22 deletions(-) diff --git a/app/Data/CoolifyTaskArgs.php b/app/Data/CoolifyTaskArgs.php index 09ab923ab..2a8865b24 100644 --- a/app/Data/CoolifyTaskArgs.php +++ b/app/Data/CoolifyTaskArgs.php @@ -20,7 +20,7 @@ class CoolifyTaskArgs extends Data public string $type, public ?string $type_uuid = null, public ?Model $model = null, - public string $status = ProcessStatus::HOLDING->value, + public string $status = ProcessStatus::QUEUED->value, ) { } } diff --git a/app/Enums/ProcessStatus.php b/app/Enums/ProcessStatus.php index 87780fc86..bf93dc137 100644 --- a/app/Enums/ProcessStatus.php +++ b/app/Enums/ProcessStatus.php @@ -4,7 +4,7 @@ namespace App\Enums; enum ProcessStatus: string { - case HOLDING = 'holding'; + case QUEUED = 'queued'; case IN_PROGRESS = 'in_progress'; case FINISHED = 'finished'; case ERROR = 'error'; diff --git a/app/Http/Livewire/ActivityMonitor.php b/app/Http/Livewire/ActivityMonitor.php index 56d04d851..47cd31c36 100644 --- a/app/Http/Livewire/ActivityMonitor.php +++ b/app/Http/Livewire/ActivityMonitor.php @@ -2,6 +2,7 @@ namespace App\Http\Livewire; +use App\Enums\ProcessStatus; use Livewire\Component; use Spatie\Activitylog\Models\Activity; @@ -31,12 +32,24 @@ class ActivityMonitor extends Component public function polling() { $this->hydrateActivity(); - - if (data_get($this->activity, 'properties.exitCode') !== null) { + $this->setStatus(ProcessStatus::IN_PROGRESS); + $exit_code = data_get($this->activity, 'properties.exitCode'); + if ($exit_code !== null) { + if ($exit_code === 0) { + $this->setStatus(ProcessStatus::FINISHED); + } else { + $this->setStatus(ProcessStatus::ERROR); + } $this->isPollingActive = false; } } - + protected function setStatus($status) + { + $this->activity->properties = $this->activity->properties->merge([ + 'status' => $status, + ]); + $this->activity->save(); + } public function render() { return view('livewire.activity-monitor'); diff --git a/app/Http/Livewire/Destination/New/StandaloneDocker.php b/app/Http/Livewire/Destination/New/StandaloneDocker.php index 21be7fe96..cc779d03f 100644 --- a/app/Http/Livewire/Destination/New/StandaloneDocker.php +++ b/app/Http/Livewire/Destination/New/StandaloneDocker.php @@ -26,7 +26,7 @@ class StandaloneDocker extends Component if (request()->query('server_id')) { $this->server_id = request()->query('server_id'); } else { - $this->server_id = Server::first()->id; + $this->server_id = Server::validated()->first()->id; } $this->network = new Cuid2(7); $this->name = generateRandomName(); diff --git a/app/Http/Livewire/Server/Form.php b/app/Http/Livewire/Server/Form.php index 0cb6bf7f0..23094fd19 100644 --- a/app/Http/Livewire/Server/Form.php +++ b/app/Http/Livewire/Server/Form.php @@ -20,10 +20,11 @@ class Form extends Component 'server.ip' => 'required', 'server.user' => 'required', 'server.port' => 'required', + 'server.settings.is_validated' => 'required' ]; public function mount() { - $this->server = Server::find($this->server_id); + $this->server = Server::find($this->server_id)->load(['settings']); } public function installDocker() { @@ -38,6 +39,11 @@ class Form extends Component if (!$this->uptime) { $this->uptime = 'Server not reachable.'; throw new \Exception('Server not reachable.'); + } else { + if (!$this->server->settings->is_validated) { + $this->server->settings->is_validated = true; + $this->server->settings->save(); + } } $this->dockerVersion = instantRemoteProcess(['docker version|head -2|grep -i version'], $this->server, false); if (!$this->dockerVersion) { diff --git a/app/Models/Server.php b/app/Models/Server.php index fe1929007..fd337bb69 100644 --- a/app/Models/Server.php +++ b/app/Models/Server.php @@ -52,4 +52,9 @@ class Server extends BaseModel { return $this->hasOne(ServerSetting::class); } + + static public function validated() + { + return Server::where('team_id', session('currentTeam')->id)->whereRelation('settings', 'is_validated', true)->get(); + } } diff --git a/database/migrations/2023_03_24_140712_create_server_settings_table.php b/database/migrations/2023_03_24_140712_create_server_settings_table.php index a82f49a92..4d16ef64d 100644 --- a/database/migrations/2023_03_24_140712_create_server_settings_table.php +++ b/database/migrations/2023_03_24_140712_create_server_settings_table.php @@ -15,6 +15,7 @@ return new class extends Migration $table->id(); $table->string('uuid')->unique(); $table->boolean('is_build_server')->default(false); + $table->boolean('is_validated')->default(false); $table->foreignId('server_id'); $table->timestamps(); diff --git a/database/seeders/ServerSettingSeeder.php b/database/seeders/ServerSettingSeeder.php index e24d59b8e..fc59c4d57 100644 --- a/database/seeders/ServerSettingSeeder.php +++ b/database/seeders/ServerSettingSeeder.php @@ -15,11 +15,12 @@ class ServerSettingSeeder extends Seeder { $server_2 = Server::find(1)->load(['settings']); $server_2->settings->is_build_server = true; + $server_2->settings->is_validated = true; $server_2->settings->save(); $server_3 = Server::find(2)->load(['settings']); - $server_3->settings->is_build_server = true; + $server_3->settings->is_build_server = false; + $server_3->settings->is_validated = false; $server_3->settings->save(); - } } diff --git a/resources/views/components/inputs/button.blade.php b/resources/views/components/inputs/button.blade.php index d74b19978..8b9e5cd61 100644 --- a/resources/views/components/inputs/button.blade.php +++ b/resources/views/components/inputs/button.blade.php @@ -1,8 +1,8 @@ @props([ 'isWarning' => null, - 'defaultClass' => 'text-white bg-neutral-800 hover:bg-violet-600 w-28 h-6', - 'defaultWarningClass' => 'text-white bg-red-500 hover:bg-red-600 w-28 h-6', - 'loadingClass' => 'text-black bg-green-500 w-28 h-6', + 'defaultClass' => 'text-white bg-neutral-800 hover:bg-violet-600 h-8', + 'defaultWarningClass' => 'text-white bg-red-500 hover:bg-red-600 h-8', + 'loadingClass' => 'text-black bg-green-500 h-8', 'confirm' => null, 'confirmAction' => null, ]) diff --git a/resources/views/components/inputs/input.blade.php b/resources/views/components/inputs/input.blade.php index 429f943dc..a42403a1c 100644 --- a/resources/views/components/inputs/input.blade.php +++ b/resources/views/components/inputs/input.blade.php @@ -9,7 +9,7 @@ ]) $type === 'checkbox', + 'flex' => $type === 'checkbox', 'flex flex-col' => $type !== 'checkbox', ])> @if (!$noLabel) diff --git a/resources/views/livewire/activity-monitor.blade.php b/resources/views/livewire/activity-monitor.blade.php index 4f995e51f..2a0650d86 100644 --- a/resources/views/livewire/activity-monitor.blade.php +++ b/resources/views/livewire/activity-monitor.blade.php @@ -1,7 +1,9 @@
@isset($this->activity) Status: {{ $this->activity?->properties->get('status') }} -
{{ \App\Actions\CoolifyTask\RunRemoteProcess::decodeOutput($this->activity) }}
+ @else + Output will be here... @endisset
diff --git a/resources/views/livewire/check-update.blade.php b/resources/views/livewire/check-update.blade.php index 7e8c93f23..e55d5a4f9 100644 --- a/resources/views/livewire/check-update.blade.php +++ b/resources/views/livewire/check-update.blade.php @@ -1,6 +1,6 @@
- - Check for updates + + Check Update @if ($updateAvailable) Update available @endif diff --git a/resources/views/livewire/project/application/get-deployments.blade.php b/resources/views/livewire/project/application/get-deployments.blade.php index 89897e128..61d4decfb 100644 --- a/resources/views/livewire/project/application/get-deployments.blade.php +++ b/resources/views/livewire/project/application/get-deployments.blade.php @@ -1,5 +1,5 @@
- + {{ $created_at }} {{ $deployment_uuid }} {{ $status }} diff --git a/resources/views/livewire/run-command.blade.php b/resources/views/livewire/run-command.blade.php index 951fd5407..83eb6f6b4 100755 --- a/resources/views/livewire/run-command.blade.php +++ b/resources/views/livewire/run-command.blade.php @@ -1,6 +1,6 @@
-
- + + Run - +
+ +
diff --git a/resources/views/livewire/server/form.blade.php b/resources/views/livewire/server/form.blade.php index 520a259b7..a48159a4b 100644 --- a/resources/views/livewire/server/form.blade.php +++ b/resources/views/livewire/server/form.blade.php @@ -18,7 +18,7 @@ @endif
-
+
Submit Check Server Install Docker @@ -26,7 +26,9 @@ Delete
+ + @isset($uptime)

Uptime: {{ $uptime }}

@endisset diff --git a/routes/web.php b/routes/web.php index d36823c05..474786aab 100644 --- a/routes/web.php +++ b/routes/web.php @@ -93,7 +93,7 @@ Route::middleware(['auth'])->group(function () { Route::middleware(['auth'])->group(function () { Route::get('/destination/new', function () { - $servers = Server::where('team_id', session('currentTeam')->id)->get(); + $servers = Server::validated(); return view('destination.new', [ "servers" => $servers, ]);