modalId = new Cuid2; $this->projectUuid = data_get($parameters, 'project_uuid'); $this->environmentUuid = data_get($parameters, 'environment_uuid'); if ($this->resource === null) { if (isset($parameters['service_uuid'])) { $this->resource = Service::where('uuid', $parameters['service_uuid'])->first(); } elseif (isset($parameters['stack_service_uuid'])) { $this->resource = ServiceApplication::where('uuid', $parameters['stack_service_uuid'])->first() ?? ServiceDatabase::where('uuid', $parameters['stack_service_uuid'])->first(); } } if ($this->resource === null) { $this->resourceName = 'Unknown Resource'; return; } if (! method_exists($this->resource, 'type')) { $this->resourceName = 'Unknown Resource'; return; } $this->resourceName = match ($this->resource->type()) { 'application' => $this->resource->name ?? 'Application', 'standalone-postgresql', 'standalone-redis', 'standalone-mongodb', 'standalone-mysql', 'standalone-mariadb', 'standalone-keydb', 'standalone-dragonfly', 'standalone-clickhouse' => $this->resource->name ?? 'Database', 'service' => $this->resource->name ?? 'Service', 'service-application' => $this->resource->name ?? 'Service Application', 'service-database' => $this->resource->name ?? 'Service Database', default => 'Unknown Resource', }; } public function delete($password) { if (! data_get(InstanceSettings::get(), 'disable_two_step_confirmation')) { if (! Hash::check($password, Auth::user()->password)) { $this->addError('password', 'The provided password is incorrect.'); return; } } if (! $this->resource) { $this->addError('resource', 'Resource not found.'); return; } try { $this->resource->delete(); DeleteResourceJob::dispatch( $this->resource, $this->delete_configurations, $this->delete_volumes, $this->docker_cleanup, $this->delete_connected_networks ); return redirect()->route('project.resource.index', [ 'project_uuid' => $this->projectUuid, 'environment_uuid' => $this->environmentUuid, ]); } catch (\Throwable $e) { return handleError($e, $this); } } public function render() { return view('livewire.project.shared.danger', [ 'checkboxes' => [ ['id' => 'delete_volumes', 'label' => __('resource.delete_volumes')], ['id' => 'delete_connected_networks', 'label' => __('resource.delete_connected_networks')], ['id' => 'delete_configurations', 'label' => __('resource.delete_configurations')], ['id' => 'docker_cleanup', 'label' => __('resource.docker_cleanup')], // ['id' => 'delete_associated_backups_locally', 'label' => 'All backups associated with this Ressource will be permanently deleted from local storage.'], // ['id' => 'delete_associated_backups_s3', 'label' => 'All backups associated with this Ressource will be permanently deleted from the selected S3 Storage.'], // ['id' => 'delete_associated_backups_sftp', 'label' => 'All backups associated with this Ressource will be permanently deleted from the selected SFTP Storage.'] ], ]); } }