Refactor settings form handling: Removed redundant data mutation methods in CreateSetting and EditSetting pages. Updated SettingForm to use distinct fields for text and boolean values, enhancing clarity and functionality. Added new attributes in the Setting model to manage value assignments from different fields.
This commit is contained in:
@@ -23,24 +23,4 @@ class CreateSetting extends CreateRecord
|
||||
{
|
||||
return __('settings.created_successfully');
|
||||
}
|
||||
|
||||
protected function mutateFormDataBeforeSave(array $data): array
|
||||
{
|
||||
// Boolean değerleri string'e çevir
|
||||
if (isset($data['type']) && $data['type'] === 'boolean') {
|
||||
$data['value'] = $data['value'] ? '1' : '0';
|
||||
}
|
||||
|
||||
// Integer değerleri string'e çevir
|
||||
if (isset($data['type']) && $data['type'] === 'integer') {
|
||||
$data['value'] = (string) $data['value'];
|
||||
}
|
||||
|
||||
// Float değerleri string'e çevir
|
||||
if (isset($data['type']) && $data['type'] === 'float') {
|
||||
$data['value'] = (string) $data['value'];
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,44 +38,4 @@ class EditSetting extends EditRecord
|
||||
{
|
||||
return __('settings.updated_successfully');
|
||||
}
|
||||
|
||||
protected function mutateFormDataBeforeFill(array $data): array
|
||||
{
|
||||
// Boolean tipindeki değerleri cast et
|
||||
if (isset($data['type']) && $data['type'] === 'boolean') {
|
||||
$data['value'] = filter_var($data['value'], FILTER_VALIDATE_BOOLEAN);
|
||||
}
|
||||
|
||||
// Integer tipindeki değerleri cast et
|
||||
if (isset($data['type']) && $data['type'] === 'integer') {
|
||||
$data['value'] = (int) $data['value'];
|
||||
}
|
||||
|
||||
// Float tipindeki değerleri cast et
|
||||
if (isset($data['type']) && $data['type'] === 'float') {
|
||||
$data['value'] = (float) $data['value'];
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
protected function mutateFormDataBeforeSave(array $data): array
|
||||
{
|
||||
// Boolean değerleri string'e çevir
|
||||
if (isset($data['type']) && $data['type'] === 'boolean') {
|
||||
$data['value'] = $data['value'] ? '1' : '0';
|
||||
}
|
||||
|
||||
// Integer değerleri string'e çevir
|
||||
if (isset($data['type']) && $data['type'] === 'integer') {
|
||||
$data['value'] = (string) $data['value'];
|
||||
}
|
||||
|
||||
// Float değerleri string'e çevir
|
||||
if (isset($data['type']) && $data['type'] === 'float') {
|
||||
$data['value'] = (string) $data['value'];
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -74,19 +74,31 @@ class SettingForm
|
||||
])
|
||||
->default('general'),
|
||||
|
||||
Textarea::make('value')
|
||||
Textarea::make('value_text')
|
||||
->label(__('settings.value'))
|
||||
->helperText(__('settings.value_helper'))
|
||||
->required()
|
||||
->visible(fn (Get $get) => !in_array($get('type'), ['boolean']))
|
||||
->rows(fn (Get $get) => $get('type') === 'text' ? 5 : 3)
|
||||
->formatStateUsing(function ($state, $record) {
|
||||
if ($record && $record->type !== 'boolean') {
|
||||
return $record->value;
|
||||
}
|
||||
return $state;
|
||||
})
|
||||
->columnSpanFull(),
|
||||
|
||||
Toggle::make('value')
|
||||
Toggle::make('value_boolean')
|
||||
->label(__('settings.value'))
|
||||
->helperText(__('settings.value_helper'))
|
||||
->required()
|
||||
->visible(fn (Get $get) => $get('type') === 'boolean')
|
||||
->formatStateUsing(function ($state, $record) {
|
||||
if ($record && $record->type === 'boolean') {
|
||||
return filter_var($record->value, FILTER_VALIDATE_BOOLEAN);
|
||||
}
|
||||
return false;
|
||||
})
|
||||
->columnSpanFull(),
|
||||
|
||||
Toggle::make('is_active')
|
||||
|
||||
Reference in New Issue
Block a user