33namespace Boy132 \UserCreatableServers ;
44
55use App \Contracts \Plugins \HasPluginSettings ;
6+ use App \Enums \PluginStatus ;
67use App \Models \Egg ;
8+ use App \Models \Plugin as PluginModel ;
79use App \Traits \EnvironmentWriterTrait ;
810use Filament \Contracts \Plugin ;
911use Filament \Forms \Components \Select ;
@@ -49,7 +51,7 @@ public function getSettingsForm(): array
4951 {
5052 return [
5153 Section::make ('Limits ' )
52- ->columns (3 )
54+ ->columns (fn () => $ this -> hasSubdomainsPlugin () ? 4 : 3 )
5355 ->schema ([
5456 TextInput::make ('database_limit ' )
5557 ->label ('Default database limit ' )
@@ -69,6 +71,13 @@ public function getSettingsForm(): array
6971 ->numeric ()
7072 ->minValue (0 )
7173 ->default (fn () => config ('user-creatable-servers.backup_limit ' )),
74+ TextInput::make ('subdomain_limit ' )
75+ ->label ('Default subdomain limit ' )
76+ ->visible (fn () => $ this ->hasSubdomainsPlugin ())
77+ ->required ()
78+ ->numeric ()
79+ ->minValue (0 )
80+ ->default (fn () => config ('user-creatable-servers.subdomain_limit ' )),
7281 ]),
7382 Section::make ('User Settings ' )
7483 ->columns ()
@@ -119,6 +128,7 @@ public function saveSettings(array $data): void
119128 'UCS_DEFAULT_DATABASE_LIMIT ' => $ data ['database_limit ' ],
120129 'UCS_DEFAULT_ALLOCATION_LIMIT ' => $ data ['allocation_limit ' ],
121130 'UCS_DEFAULT_BACKUP_LIMIT ' => $ data ['backup_limit ' ],
131+ 'UCS_DEFAULT_SUBDOMAIN_LIMIT ' => $ data ['subdomain_limit ' ],
122132 'UCS_CAN_USERS_UPDATE_SERVERS ' => $ data ['can_users_update_servers ' ] ? 'true ' : 'false ' ,
123133 'UCS_CAN_USERS_DELETE_SERVERS ' => $ data ['can_users_delete_servers ' ] ? 'true ' : 'false ' ,
124134 'UCS_DEPLOYMENT_TAGS ' => implode (', ' , $ data ['deployment_tags ' ]),
@@ -131,4 +141,12 @@ public function saveSettings(array $data): void
131141 ->success ()
132142 ->send ();
133143 }
144+
145+ public function hasSubdomainsPlugin (): bool
146+ {
147+ /** @var ?PluginModel $subdomains */
148+ $ subdomains = PluginModel::find ('subdomains ' );
149+
150+ return $ subdomains && $ subdomains ->status === PluginStatus::Enabled;
151+ }
134152}
0 commit comments