From 2edf71a0dddd736406f5b7ac6989b822961e3bde Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Mon, 22 Jan 2024 15:12:38 +0100 Subject: [PATCH] feat: move resources between projects / environments --- app/Livewire/Project/Application/Heading.php | 1 - app/Livewire/Project/Shared/MoveResource.php | 58 ++++ .../application/configuration.blade.php | 7 +- .../project/database/configuration.blade.php | 7 +- .../livewire/project/resource/index.blade.php | 252 +++++++++--------- .../project/service/configuration.blade.php | 6 + .../project/shared/move-resource.blade.php | 25 ++ 7 files changed, 228 insertions(+), 128 deletions(-) create mode 100644 app/Livewire/Project/Shared/MoveResource.php create mode 100644 resources/views/livewire/project/shared/move-resource.blade.php diff --git a/app/Livewire/Project/Application/Heading.php b/app/Livewire/Project/Application/Heading.php index 95dcbdf73..d91f44b80 100644 --- a/app/Livewire/Project/Application/Heading.php +++ b/app/Livewire/Project/Application/Heading.php @@ -3,7 +3,6 @@ namespace App\Livewire\Project\Application; use App\Actions\Application\StopApplication; -use App\Events\ApplicationStatusChanged; use App\Jobs\ContainerStatusJob; use App\Jobs\ServerStatusJob; use App\Models\Application; diff --git a/app/Livewire/Project/Shared/MoveResource.php b/app/Livewire/Project/Shared/MoveResource.php new file mode 100644 index 000000000..f4d69dd1d --- /dev/null +++ b/app/Livewire/Project/Shared/MoveResource.php @@ -0,0 +1,58 @@ +projectUuid = $parameters['project_uuid']; + $this->environmentName = $parameters['environment_name']; + $this->projects = Project::ownedByCurrentTeam()->get(); + } + public function moveTo($environment_id) + { + try { + $new_environment = Environment::findOrFail($environment_id); + $this->resource->update([ + 'environment_id' => $environment_id + ]); + if ($this->resource->type() === 'application') { + return redirect()->route('project.application.configuration', [ + 'project_uuid' => $new_environment->project->uuid, + 'environment_name' => $new_environment->name, + 'application_uuid' => $this->resource->uuid, + ]); + } else if (str($this->resource->type())->startsWith('standalone-')) { + return redirect()->route('project.database.configuration', [ + 'project_uuid' => $new_environment->project->uuid, + 'environment_name' => $new_environment->name, + 'database_uuid' => $this->resource->uuid, + ]); + } else if ($this->resource->type() === 'service') { + return redirect()->route('project.service.configuration', [ + 'project_uuid' => $new_environment->project->uuid, + 'environment_name' => $new_environment->name, + 'service_uuid' => $this->resource->uuid, + ]); + } + } catch (\Throwable $e) { + return handleError($e, $this); + } + } + public function render() + { + return view('livewire.project.shared.move-resource'); + } +} diff --git a/resources/views/livewire/project/application/configuration.blade.php b/resources/views/livewire/project/application/configuration.blade.php index 3a43a7769..60a207acb 100644 --- a/resources/views/livewire/project/application/configuration.blade.php +++ b/resources/views/livewire/project/application/configuration.blade.php @@ -59,7 +59,9 @@ href="#">Resource Limits @endif - + Move Resource + Danger Zone @@ -106,6 +108,9 @@
+
+ +
diff --git a/resources/views/livewire/project/database/configuration.blade.php b/resources/views/livewire/project/database/configuration.blade.php index 4ed308b40..6e3f9a613 100644 --- a/resources/views/livewire/project/database/configuration.blade.php +++ b/resources/views/livewire/project/database/configuration.blade.php @@ -44,7 +44,9 @@ window.location.hash = 'resource-limits'" href="#">Resource Limits - + Move Resource + +
+ +
diff --git a/resources/views/livewire/project/resource/index.blade.php b/resources/views/livewire/project/resource/index.blade.php index 921e9c360..26965aeef 100644 --- a/resources/views/livewire/project/resource/index.blade.php +++ b/resources/views/livewire/project/resource/index.blade.php @@ -43,132 +43,134 @@ @if ($environment->isEmpty())
+ Add New Resource - @endif -
- -
- - - - - - - + @else +
+ +
+ + + + + + + +
-
+ @endif +