NIM_E31222518/resources/views/barang/create.blade.php

138 lines
6.2 KiB
PHP

@extends('layouts.dashboard')
@section('content')
<div class="container mx-auto px-4 py-8">
<div class="max-w-2xl mx-auto">
<div class="bg-white rounded-lg shadow-md p-6">
<h1 class="text-2xl font-bold text-gray-800 mb-6">Tambah Barang Baru</h1>
@if($errors->any())
<div class="bg-red-100 border border-red-400 text-red-700 px-4 py-3 rounded relative mb-4">
<ul class="list-disc list-inside">
@foreach($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<form action="{{ route('barang.store') }}" method="POST" enctype="multipart/form-data">
@csrf
<div class="mb-4">
<label for="nama" class="block text-gray-700 font-medium mb-2">Nama Barang</label>
<input type="text" name="nama" id="nama" value="{{ old('nama') }}"
class="w-full border-gray-300 rounded-lg shadow-sm focus:border-blue-500 focus:ring-1 focus:ring-blue-500"
required>
</div>
<div class="mb-4">
<label for="deskripsi" class="block text-gray-700 font-medium mb-2">Deskripsi</label>
<textarea name="deskripsi" id="deskripsi" rows="4"
class="w-full border-gray-300 rounded-lg shadow-sm focus:border-blue-500 focus:ring-1 focus:ring-blue-500">{{ old('deskripsi') }}</textarea>
</div>
<div class="mb-4">
<label for="kategori" class="block text-gray-700 font-medium mb-2">Kategori</label>
<select name="kategori" id="kategori" class="w-full border-gray-300 rounded-lg shadow-sm focus:border-blue-500 focus:ring-1 focus:ring-blue-500" required>
<option value="">Pilih Kategori</option>
<option value="Lampu" {{ old('kategori') == 'Lampu' ? 'selected' : '' }}>Lampu</option>
<option value="Kipas" {{ old('kategori') == 'Kipas' ? 'selected' : '' }}>Kipas</option>
<option value="Kulkas" {{ old('kategori') == 'Kulkas' ? 'selected' : '' }}>Kulkas</option>
<option value="TV" {{ old('kategori') == 'TV' ? 'selected' : '' }}>TV</option>
<option value="Magic Com" {{ old('kategori') == 'Magic Com' ? 'selected' : '' }}>Magic Com</option>
<option value="Mesin Cuci" {{ old('kategori') == 'Mesin Cuci' ? 'selected' : '' }}>Mesin Cuci</option>
<option value="Kompor" {{ old('kategori') == 'Kompor' ? 'selected' : '' }}>Kompor</option>
</select>
</div>
<div class="grid grid-cols-1 md:grid-cols-2 gap-4 mb-4">
<div>
<label for="harga" class="block text-gray-700 font-medium mb-2">Harga</label>
<div class="relative"> <br>
<span class="absolute left-3 top-2 text-gray-700">Rp</span>
<input type="text" name="harga" id="harga_display" value="{{ old('harga') ? number_format(old('harga'), 0, ',', '.') : '' }}"
class="w-full pl-10 border-gray-300 rounded-lg shadow-sm focus:border-blue-500 focus:ring-1 focus:ring-blue-500"
required>
</div>
</div>
<div>
<label for="stok" class="block text-gray-700 font-medium mb-2">Stok</label>
<input type="number" name="stok" id="stok" value="{{ old('stok') }}"
class="w-full border-gray-300 rounded-lg shadow-sm focus:border-blue-500 focus:ring-1 focus:ring-blue-500"
min="0" required>
</div>
</div>
<div class="mb-6">
<label for="gambar" class="block text-gray-700 font-medium mb-2">Gambar Produk</label>
<input type="file" name="gambar" id="gambar" accept="image/*"
class="w-full border border-gray-300 rounded-lg p-2">
<p class="text-sm text-gray-500 mt-1">Format: JPG, JPEG, PNG (Max. 2MB)</p>
</div>
<div class="flex justify-end gap-4">
<a href="{{ route('barang.index') }}"
class="bg-gray-500 hover:bg-gray-600 text-white px-6 py-2 rounded-lg">
Batal
</a>
<button type="submit" class="bg-blue-500 hover:bg-blue-600 text-white px-6 py-2 rounded-lg">
Simpan
</button>
</div>
</form>
</div>
</div>
</div>
@endsection
@push('scripts')
<script>
document.addEventListener('DOMContentLoaded', function() {
const hargaDisplay = document.getElementById('harga_display');
const form = document.querySelector('form');
// Fungsi untuk memformat angka
function formatNumber(number) {
return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".");
}
// Fungsi untuk membersihkan format
function cleanNumber(number) {
return number.replace(/\D/g, '');
}
// Format nilai awal saat halaman dimuat
if (hargaDisplay.value) {
let value = cleanNumber(hargaDisplay.value);
if (value !== '') {
hargaDisplay.value = formatNumber(value);
}
}
hargaDisplay.addEventListener('input', function(e) {
let value = cleanNumber(e.target.value);
if (value !== '') {
e.target.value = formatNumber(value);
}
});
// Sebelum form disubmit
form.addEventListener('submit', function(e) {
e.preventDefault(); // Prevent form submission temporarily
let value = cleanNumber(hargaDisplay.value);
if (value === '') {
alert('Harga harus diisi');
return false;
}
// Set nilai tanpa format ke input
hargaDisplay.value = value;
// Submit form
this.submit();
});
});
</script>
@endpush