From 8bfc1a7c06d6b9d848805905ef22ffe653ad08b6 Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Tue, 24 Oct 2023 10:11:21 +0200 Subject: [PATCH] fix: do not allow to delete env if a resource is defined --- app/Http/Livewire/Project/DeleteEnvironment.php | 8 ++++---- app/Models/Environment.php | 2 +- app/Models/Project.php | 2 +- resources/views/project/resources.blade.php | 12 ++++++------ 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/app/Http/Livewire/Project/DeleteEnvironment.php b/app/Http/Livewire/Project/DeleteEnvironment.php index f341d7cb5..0b6254b3b 100644 --- a/app/Http/Livewire/Project/DeleteEnvironment.php +++ b/app/Http/Livewire/Project/DeleteEnvironment.php @@ -21,10 +21,10 @@ class DeleteEnvironment extends Component 'environment_id' => 'required|int', ]); $environment = Environment::findOrFail($this->environment_id); - if ($environment->applications->count() > 0) { - return $this->emit('error', 'Environment has resources defined, please delete them first.'); + if ($environment->isEmpty()) { + $environment->delete(); + return redirect()->route('project.show', ['project_uuid' => $this->parameters['project_uuid']]); } - $environment->delete(); - return redirect()->route('project.show', ['project_uuid' => $this->parameters['project_uuid']]); + return $this->emit('error', 'Environment has defined resources, please delete them first.'); } } diff --git a/app/Models/Environment.php b/app/Models/Environment.php index 8f67ed004..941586edd 100644 --- a/app/Models/Environment.php +++ b/app/Models/Environment.php @@ -12,7 +12,7 @@ class Environment extends Model 'project_id', ]; - public function can_delete_environment() + public function isEmpty() { return $this->applications()->count() == 0 && $this->redis()->count() == 0 && diff --git a/app/Models/Project.php b/app/Models/Project.php index f8f9622b8..a910348b4 100644 --- a/app/Models/Project.php +++ b/app/Models/Project.php @@ -18,7 +18,7 @@ class Project extends BaseModel 'project_id' => $project->id, ]); Environment::create([ - 'name' => 'Production', + 'name' => 'production', 'project_id' => $project->id, ]); }); diff --git a/resources/views/project/resources.blade.php b/resources/views/project/resources.blade.php index da726e658..ef2780719 100644 --- a/resources/views/project/resources.blade.php +++ b/resources/views/project/resources.blade.php @@ -2,17 +2,17 @@

Resources

- @if ($environment->can_delete_environment()) + + Clone + + @if ($environment->isEmpty()) @else + New @endif - - Clone -
- @if ($environment->can_delete_environment()) + @if ($environment->isEmpty()) + Add New Resource @endif