mirror of
https://github.com/pelican-dev/panel.git
synced 2026-05-04 18:00:48 +03:00
Disable field if server variable is not user_editable (#2074)
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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),
|
||||
]),
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user