fix enums

This commit is contained in:
Saeed Vaziry 2024-11-01 22:08:02 +01:00
parent 37a4b6af51
commit f743611b22
6 changed files with 67 additions and 55 deletions

View File

@ -2,6 +2,7 @@
namespace App\Actions\PHP; namespace App\Actions\PHP;
use App\Enums\PHP;
use App\Enums\ServiceStatus; use App\Enums\ServiceStatus;
use App\Models\Server; use App\Models\Server;
use App\Models\Service; use App\Models\Service;
@ -40,7 +41,7 @@ public static function rules(Server $server): array
'version' => [ 'version' => [
'required', 'required',
Rule::in(config('core.php_versions')), Rule::in(config('core.php_versions')),
Rule::notIn($server->installedPHPVersions()), Rule::notIn(array_merge($server->installedPHPVersions(), [PHP::NONE])),
], ],
]; ];
} }

View File

@ -18,6 +18,12 @@ final class Database
const MARIADB104 = 'mariadb104'; const MARIADB104 = 'mariadb104';
const MARIADB106 = 'mariadb1006';
const MARIADB1011 = 'mariadb1011';
const MARIADB114 = 'mariadb114';
const POSTGRESQL12 = 'postgresql12'; const POSTGRESQL12 = 'postgresql12';
const POSTGRESQL13 = 'postgresql13'; const POSTGRESQL13 = 'postgresql13';

View File

@ -19,6 +19,7 @@ public function creationRules(array $input): array
'version' => [ 'version' => [
'required', 'required',
Rule::in(config('core.php_versions')), Rule::in(config('core.php_versions')),
Rule::notIn([\App\Enums\PHP::NONE]),
Rule::unique('services', 'version') Rule::unique('services', 'version')
->where('type', 'php') ->where('type', 'php')
->where('server_id', $this->service->server_id), ->where('server_id', $this->service->server_id),

View File

@ -2,6 +2,8 @@
namespace App\ServerTypes; namespace App\ServerTypes;
use Illuminate\Validation\Rule;
class Regular extends AbstractType class Regular extends AbstractType
{ {
public function createRules(array $input): array public function createRules(array $input): array
@ -13,7 +15,7 @@ public function createRules(array $input): array
], ],
'php' => [ 'php' => [
'required', 'required',
'in:none,'.implode(',', config('core.php_versions')), Rule::in(config('core.php_versions')),
], ],
'database' => [ 'database' => [
'required', 'required',

View File

@ -3,6 +3,7 @@
namespace App\Web\Pages\Servers\PHP; namespace App\Web\Pages\Servers\PHP;
use App\Actions\PHP\InstallNewPHP; use App\Actions\PHP\InstallNewPHP;
use App\Enums\PHP;
use App\Models\Service; use App\Models\Service;
use App\Web\Pages\Servers\Page; use App\Web\Pages\Servers\Page;
use App\Web\Pages\Servers\PHP\Widgets\PHPList; use App\Web\Pages\Servers\PHP\Widgets\PHPList;
@ -43,7 +44,7 @@ protected function getHeaderActions(): array
Select::make('version') Select::make('version')
->options( ->options(
collect(config('core.php_versions')) collect(config('core.php_versions'))
->filter(fn ($version) => ! in_array($version, $installedPHPs)) ->filter(fn ($version) => ! in_array($version, array_merge($installedPHPs, [PHP::NONE])))
->mapWithKeys(fn ($version) => [$version => $version]) ->mapWithKeys(fn ($version) => [$version => $version])
->toArray() ->toArray()
) )

View File

@ -18,65 +18,66 @@
\App\Enums\OperatingSystem::UBUNTU22, \App\Enums\OperatingSystem::UBUNTU22,
\App\Enums\OperatingSystem::UBUNTU24, \App\Enums\OperatingSystem::UBUNTU24,
], ],
'webservers' => ['none', 'nginx'], 'webservers' => [
\App\Enums\Webserver::NONE,
\App\Enums\Webserver::NGINX,
],
'php_versions' => [ 'php_versions' => [
// 'none', \App\Enums\PHP::NONE,
// '5.6', \App\Enums\PHP::V70,
'7.0', \App\Enums\PHP::V71,
'7.1', \App\Enums\PHP::V72,
'7.2', \App\Enums\PHP::V73,
'7.3', \App\Enums\PHP::V74,
'7.4', \App\Enums\PHP::V80,
'8.0', \App\Enums\PHP::V81,
'8.1', \App\Enums\PHP::V82,
'8.2', \App\Enums\PHP::V83,
'8.3',
], ],
'databases' => [ 'databases' => [
'none', \App\Enums\Database::NONE,
'mysql57', \App\Enums\Database::MYSQL57,
'mysql80', \App\Enums\Database::MYSQL80,
'mariadb103', \App\Enums\Database::MARIADB103,
'mariadb104', \App\Enums\Database::MARIADB104,
'mariadb106', \App\Enums\Database::MARIADB106,
'mariadb1011', \App\Enums\Database::MARIADB1011,
'mariadb114', \App\Enums\Database::MARIADB114,
'postgresql12', \App\Enums\Database::POSTGRESQL12,
'postgresql13', \App\Enums\Database::POSTGRESQL13,
'postgresql14', \App\Enums\Database::POSTGRESQL14,
'postgresql15', \App\Enums\Database::POSTGRESQL15,
'postgresql16', \App\Enums\Database::POSTGRESQL16,
], ],
'databases_name' => [ 'databases_name' => [
'none' => 'none', \App\Enums\Database::NONE => 'none',
'mysql57' => 'mysql', \App\Enums\Database::MYSQL57 => 'mysql',
'mysql80' => 'mysql', \App\Enums\Database::MYSQL80 => 'mysql',
'mariadb103' => 'mariadb', \App\Enums\Database::MARIADB103 => 'mariadb',
'mariadb104' => 'mariadb', \App\Enums\Database::MARIADB104 => 'mariadb',
'mariadb106' => 'mariadb', \App\Enums\Database::MARIADB106 => 'mariadb',
'mariadb1011' => 'mariadb', \App\Enums\Database::MARIADB1011 => 'mariadb',
'mariadb114' => 'mariadb', \App\Enums\Database::MARIADB114 => 'mariadb',
'postgresql12' => 'postgresql', \App\Enums\Database::POSTGRESQL12 => 'postgresql',
'postgresql13' => 'postgresql', \App\Enums\Database::POSTGRESQL13 => 'postgresql',
'postgresql14' => 'postgresql', \App\Enums\Database::POSTGRESQL14 => 'postgresql',
'postgresql15' => 'postgresql', \App\Enums\Database::POSTGRESQL15 => 'postgresql',
'postgresql16' => 'postgresql', \App\Enums\Database::POSTGRESQL16 => 'postgresql',
], ],
'databases_version' => [ 'databases_version' => [
'none' => '', \App\Enums\Database::NONE => '',
'mysql57' => '5.7', \App\Enums\Database::MYSQL57 => '5.7',
'mysql80' => '8.0', \App\Enums\Database::MYSQL80 => '8.0',
'mariadb' => '10.3', \App\Enums\Database::MARIADB103 => '10.3',
'mariadb103' => '10.3', \App\Enums\Database::MARIADB104 => '10.4',
'mariadb104' => '10.4', \App\Enums\Database::MARIADB106 => '10.6',
'mariadb106' => '10.6', \App\Enums\Database::MARIADB1011 => '10.11',
'mariadb1011' => '10.11', \App\Enums\Database::MARIADB114 => '11.4',
'mariadb114' => '11.4', \App\Enums\Database::POSTGRESQL12 => '12',
'postgresql12' => '12', \App\Enums\Database::POSTGRESQL13 => '13',
'postgresql13' => '13', \App\Enums\Database::POSTGRESQL14 => '14',
'postgresql14' => '14', \App\Enums\Database::POSTGRESQL15 => '15',
'postgresql15' => '15', \App\Enums\Database::POSTGRESQL16 => '16',
'postgresql16' => '16',
], ],
'database_features' => [ 'database_features' => [
'remote' => [ 'remote' => [