From b939e09f12c717f665e5a933289931aee6c1ca72 Mon Sep 17 00:00:00 2001
From: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com>
Date: Tue, 7 Jul 2026 14:36:11 +0200
Subject: [PATCH] refactor(hetzner): move advanced options into dropdown
---
app/Livewire/Server/New/ByHetzner.php | 27 ---
resources/views/components/dropdown.blade.php | 33 ++-
.../livewire/server/new/by-hetzner.blade.php | 193 ++++++++++--------
.../Server/HetznerServerCreationTest.php | 17 +-
4 files changed, 140 insertions(+), 130 deletions(-)
diff --git a/app/Livewire/Server/New/ByHetzner.php b/app/Livewire/Server/New/ByHetzner.php
index 0da4ef344..f991bc3e8 100644
--- a/app/Livewire/Server/New/ByHetzner.php
+++ b/app/Livewire/Server/New/ByHetzner.php
@@ -74,8 +74,6 @@ class ByHetzner extends Component
public bool $enable_backups = false;
- public bool $show_advanced_hetzner_options = false;
-
public bool $show_cloud_init_script = false;
public ?string $cloud_init_script = null;
@@ -131,7 +129,6 @@ public function resetSelection()
$this->save_cloud_init_script = false;
$this->cloud_init_script_name = null;
$this->selected_cloud_init_script_id = null;
- $this->show_advanced_hetzner_options = false;
$this->show_cloud_init_script = false;
$this->selectedHetznerSshKeyIds = [];
$this->selectedHetznerFirewallIds = [];
@@ -191,7 +188,6 @@ protected function rules(): array
'enable_ipv4' => 'required|boolean',
'enable_ipv6' => 'required|boolean',
'enable_backups' => 'required|boolean',
- 'show_advanced_hetzner_options' => 'boolean',
'show_cloud_init_script' => 'boolean',
'cloud_init_script' => ['nullable', 'string', new ValidCloudInitYaml],
'save_cloud_init_script' => 'boolean',
@@ -452,22 +448,6 @@ public function getSelectedServerBackupSurchargeProperty(): ?string
return '€'.number_format($price * 0.2, 2);
}
- public function getShouldShowAdvancedHetznerOptionsProperty(): bool
- {
- return $this->show_advanced_hetzner_options
- || $this->selectedHetznerSshKeyIds !== []
- || $this->selectedHetznerFirewallIds !== []
- || $this->selectedHetznerNetworkIds !== []
- || $this->enable_backups
- || ! $this->enable_ipv4
- || ! $this->enable_ipv6
- || $this->show_cloud_init_script
- || filled($this->cloud_init_script)
- || $this->save_cloud_init_script
- || filled($this->cloud_init_script_name)
- || filled($this->selected_cloud_init_script_id);
- }
-
public function getAdvancedHetznerOptionsSummaryProperty(): array
{
$summary = [];
@@ -502,15 +482,9 @@ public function getAdvancedHetznerOptionsSummaryProperty(): array
return $summary;
}
- public function toggleAdvancedHetznerOptions(): void
- {
- $this->show_advanced_hetzner_options = ! $this->show_advanced_hetzner_options;
- }
-
public function showCloudInitScript(): void
{
$this->show_cloud_init_script = true;
- $this->show_advanced_hetzner_options = true;
}
public function updatedSelectedLocation($value)
@@ -545,7 +519,6 @@ public function updatedSelectedCloudInitScriptId($value)
$this->cloud_init_script = $script->script;
$this->cloud_init_script_name = $script->name;
$this->show_cloud_init_script = true;
- $this->show_advanced_hetzner_options = true;
}
}
diff --git a/resources/views/components/dropdown.blade.php b/resources/views/components/dropdown.blade.php
index 2bb917f79..b48b04143 100644
--- a/resources/views/components/dropdown.blade.php
+++ b/resources/views/components/dropdown.blade.php
@@ -1,3 +1,9 @@
+@props([
+ 'inline' => false,
+ 'triggerClass' => '',
+ 'panelClass' => '',
+])
+
-