feat(custom-field): tambahkan kolom label dan urutan prioritas

- Menambahkan kolom 'label' pada tabel custom_fields.
- Menambahkan kolom 'urutan_prioritas' pada tabel custom_fields.
- Memperbarui model CustomField untuk menyertakan kolom baru.
- Memperbarui form input untuk label dan urutan prioritas di tampilan create dan index.
- Menambahkan validasi untuk label dan urutan prioritas di CustomFieldRequest.
This commit is contained in:
Daeng Deni Mardaeni
2025-01-30 16:14:48 +07:00
parent b8a84bb7e1
commit 18cbb0bbc5
7 changed files with 251 additions and 136 deletions

View File

@@ -3,6 +3,8 @@
namespace Modules\Lpj\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
use Modules\Lpj\Models\customField;
use Illuminate\Validation\Rule;
class CustomFieldRequest extends FormRequest
{
@@ -14,6 +16,12 @@ class CustomFieldRequest extends FormRequest
return [
'name' => 'required|max:255',
'type' => 'required|in:text,select,radio,checkbox',
'label' => 'nullable|max:255',
'urutan_prioritas' => [
'nullable',
'integer',
Rule::unique('custom_fields')->ignore($this->route('custom_field')),
],
];
}
@@ -29,5 +37,22 @@ class CustomFieldRequest extends FormRequest
if(!$this->type){
$this->merge(['type' => 'text']);
}
if (!$this->urutan_prioritas) {
$maxPrioritas = CustomField::max('urutan_prioritas') ?? 0;
$this->merge(['urutan_prioritas' => $maxPrioritas + 1]);
}
}
/**
* Get custom messages for validator errors.
*
* @return array
*/
public function messages()
{
return [
'urutan_prioritas.unique' => 'Urutan prioritas sudah digunakan. Silakan pilih nomor lain.',
];
}
}