label(fn () => $server->databases()->count() >= $server->database_limit ? 'Database limit reached' : 'Create Database') ->disabled(fn () => $server->databases()->count() >= $server->database_limit) ->color(fn () => $server->databases()->count() >= $server->database_limit ? 'danger' : 'primary') ->createAnother(false) ->form([ Grid::make() ->columns(2) ->schema([ Select::make('database_host_id') ->label('Database Host') ->columnSpan(2) ->required() ->placeholder('Select Database Host') ->options(fn () => $server->node->databaseHosts->mapWithKeys(fn (DatabaseHost $databaseHost) => [$databaseHost->id => $databaseHost->name])), TextInput::make('database') ->columnSpan(1) ->label('Database Name') ->prefix('s'. $server->id . '_') ->hintIcon('tabler-question-mark') ->hintIconTooltip('Leaving this blank will auto generate a random name'), TextInput::make('remote') ->columnSpan(1) ->label('Connections From') ->default('%'), ]), ]) ->action(function ($data, DatabaseManagementService $service) use ($server) { if (empty($data['database'])) { $data['database'] = str_random(12); } $data['database'] = 's'. $server->id . '_' . $data['database']; $service->create($server, $data); }), ]; } public function getBreadcrumbs(): array { return []; } }