Fix serverVariables not saving due to join (#1235)

* Fix `serverVariables` not saving due to `join`

* Remove deprecated `viewableServerVariables`
This commit is contained in:
MartinOscar 2025-04-12 16:44:24 +02:00 committed by GitHub
parent 7409f020ba
commit 02d7ad04ad
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 5 additions and 15 deletions

View File

@ -426,7 +426,7 @@ class CreateServer extends CreateRecord
Repeater::make('server_variables')
->label('')
->relationship('serverVariables')
->relationship('serverVariables', fn (Builder $query) => $query->orderByPowerJoins('variable.sort'))
->saveRelationshipsBeforeChildrenUsing(null)
->saveRelationshipsUsing(null)
->grid(2)

View File

@ -595,9 +595,7 @@ class EditServer extends EditRecord
]);
}
return $query
->join('egg_variables', 'server_variables.variable_id', '=', 'egg_variables.id')
->orderBy('egg_variables.sort');
return $query->orderByPowerJoins('variable.sort');
})
->grid()
->mutateRelationshipDataBeforeSaveUsing(function (array &$data): array {

View File

@ -18,6 +18,7 @@ use Filament\Forms\Components\Textarea;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Form;
use Filament\Notifications\Notification;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Facades\Validator;
class Startup extends ServerFormPage
@ -100,7 +101,7 @@ class Startup extends ServerFormPage
->schema([
Repeater::make('server_variables')
->label('')
->relationship('viewableServerVariables')
->relationship('serverVariables', fn (Builder $query) => $query->where('egg_variables.user_viewable', true)->orderByPowerJoins('variable.sort'))
->grid()
->disabled(fn () => !auth()->user()->can(Permission::ACTION_STARTUP_UPDATE, $server))
->reorderable(false)->addable(false)->deletable(false)

View File

@ -37,7 +37,7 @@ class StartupController extends ClientApiController
$startup = $this->startupCommandService->handle($server);
return $this->fractal->collection(
$server->variables()->orderBy('sort')->where('user_viewable', true)->get()
$server->variables()->where('user_viewable', true)->orderBy('sort')->get()
)
->transformWith($this->getTransformer(EggVariableTransformer::class))
->addMeta([

View File

@ -310,15 +310,6 @@ class Server extends Model implements Validatable
return $this->hasMany(ServerVariable::class);
}
/** @deprecated use serverVariables */
public function viewableServerVariables(): HasMany
{
return $this->serverVariables()
->join('egg_variables', 'egg_variables.id', '=', 'server_variables.variable_id')
->orderBy('egg_variables.sort')
->where('egg_variables.user_viewable', true);
}
/**
* Gets information for the node associated with this server.
*/