Disable field if server variable is not user_editable (#2074)

This commit is contained in:
Boy132
2026-01-06 08:45:40 +01:00
committed by GitHub
parent fcfafadec7
commit 333eeda065
4 changed files with 14 additions and 6 deletions

View File

@@ -480,6 +480,7 @@ class CreateServer extends CreateRecord
->schema([
StartupVariable::make('variable_value')
->fromForm()
->disabled(false)
->afterStateUpdated(function (Set $set, Get $get, $state) {
$environment = $get($envPath = '../../environment');
$environment[$get('env_variable')] = $state;

View File

@@ -822,7 +822,8 @@ class EditServer extends EditRecord
->reorderable(false)->addable(false)->deletable(false)
->schema([
StartupVariable::make('variable_value')
->fromRecord(),
->fromRecord()
->disabled(false),
])
->columnSpan(6),
]),

View File

@@ -83,6 +83,8 @@ class StartupVariable extends Field
$this->variableDefault(fn (Get $get) => $get('default_value'));
$this->variableRules(fn (Get $get) => $get('rules'));
$this->disabled(fn (Get $get) => !$get('user_editable'));
return $this;
}
@@ -94,6 +96,8 @@ class StartupVariable extends Field
$this->variableDefault(fn (?ServerVariable $record) => $record?->variable->default_value);
$this->variableRules(fn (?ServerVariable $record) => $record?->variable->rules);
$this->disabled(fn (?ServerVariable $record) => !$record?->variable->user_editable);
return $this;
}

View File

@@ -147,12 +147,15 @@ class Startup extends ServerFormPage
return parent::canAccess() && user()?->can(SubuserPermission::StartupRead, Filament::getTenant());
}
public function update(?string $state, ServerVariable $serverVariable): null
public function update(?string $state, ServerVariable $serverVariable): void
{
if (!$serverVariable->variable->user_editable) {
return;
}
$original = $serverVariable->variable_value;
try {
$validator = Validator::make(
['variable_value' => $state],
['variable_value' => $serverVariable->variable->rules]
@@ -165,7 +168,7 @@ class Startup extends ServerFormPage
->danger()
->send();
return null;
return;
}
ServerVariable::query()->updateOrCreate([
@@ -184,6 +187,7 @@ class Startup extends ServerFormPage
])
->log();
}
Notification::make()
->title(trans('server/startup.update', ['variable' => $serverVariable->variable->name]))
->body(fn () => $original . ' -> ' . $state)
@@ -196,8 +200,6 @@ class Startup extends ServerFormPage
->danger()
->send();
}
return null;
}
public function getTitle(): string