[Update] Validasi update/create nampan

This commit is contained in:
Baghaztra 2025-10-14 11:35:36 +07:00
parent 94d146557f
commit a1cb3e3f21
4 changed files with 15 additions and 10 deletions

View File

@ -27,14 +27,13 @@ class NampanController extends Controller
'nama' => 'required|string|max:10|unique:nampans,nama', 'nama' => 'required|string|max:10|unique:nampans,nama',
], ],
[ [
'nama.required' => 'Nama nampan harus diisi.', 'nama.max' => 'Nama nampan maksimal 10 karakter.',
'nama.unique' => 'Nampan dengan nama yang sama sudah ada.', 'nama.unique' => 'Nampan dengan nama yang sama sudah ada.',
'nama.max' => 'Nama nampan maksimal 10 karakter.' 'nama.required' => 'Nama nampan harus diisi.'
]); ]);
Nampan::create($validated); Nampan::create($validated);
return response()->json([ return response()->json([
'message' => 'Nampan berhasil dibuat' 'message' => 'Nampan berhasil dibuat'
],201); ],201);
@ -59,7 +58,9 @@ class NampanController extends Controller
'nama' => 'required|string|max:10|unique:nampans,nama,'.$id, 'nama' => 'required|string|max:10|unique:nampans,nama,'.$id,
], ],
[ [
'nama' => 'Nama nampan harus diisi.' 'nama.max' => 'Nama nampan maksimal 10 karakter.',
'nama.unique' => 'Nampan dengan nama yang sama sudah ada.',
'nama.required' => 'Nama nampan harus diisi.'
]); ]);
$nampan = Nampan::findOrFail($id); $nampan = Nampan::findOrFail($id);

View File

@ -13,7 +13,7 @@ return new class extends Migration
{ {
Schema::create('nampans', function (Blueprint $table) { Schema::create('nampans', function (Blueprint $table) {
$table->id(); $table->id();
$table->string('nama', 100)->unique(); $table->string('nama', 10)->unique();
$table->timestamps(); $table->timestamps();
}); });
} }

View File

@ -307,7 +307,6 @@ function handleItemAdded() {
if (detail.value) { if (detail.value) {
detail.value.items_count++; detail.value.items_count++;
} }
creatingItem.value = false;
} }
// Hapus produk // Hapus produk

View File

@ -99,7 +99,10 @@ const saveTray = async () => {
} }
try { try {
const token = localStorage.getItem("token"); const token = localStorage.getItem("token");
const headers = { Authorization: `Bearer ${token}` }; const headers = {
Accept: 'application/json',
Authorization: `Bearer ${token}`
};
if (editingTrayId.value) { if (editingTrayId.value) {
await axios.put(`/api/nampan/${editingTrayId.value}`, { nama: trayName.value }, { headers }); await axios.put(`/api/nampan/${editingTrayId.value}`, { nama: trayName.value }, { headers });
alert.value = { success: "Nampan berhasil diperbarui" }; alert.value = { success: "Nampan berhasil diperbarui" };
@ -110,11 +113,13 @@ const saveTray = async () => {
timer.value = setTimeout(() => { alert.value = null; }, 5000); timer.value = setTimeout(() => { alert.value = null; }, 5000);
closeModal(); closeModal();
if (trayList.value) { if (trayList.value) {
await trayList.value.refreshData(); // Call refreshData on TrayList await trayList.value.refreshData();
} }
} catch (error) { } catch (error) {
console.error(error); const errors = error.response?.data?.errors?.nama || [];
errorCreate.value = error.response?.data?.message || "Gagal menyimpan nampan."; console.log(errors);
errorCreate.value = errors[0] || 'Gagal menyimpan nampan.';
clearTimeout(timer.value); clearTimeout(timer.value);
timer.value = setTimeout(() => { errorCreate.value = ""; }, 3000); timer.value = setTimeout(() => { errorCreate.value = ""; }, 3000);
} }