Refactor: Alamat feature
This commit is contained in:
parent
6097b439fc
commit
b0798cc569
|
|
@ -38,13 +38,6 @@ public function loginProcess(Request $request)
|
|||
$petani = Petani::where('username', $request->username)->first();
|
||||
|
||||
if ($petani && Hash::check($request->password, $petani->password)) {
|
||||
// Validasi Status Akun Petani
|
||||
if ($petani->status_akun == 'menunggu') {
|
||||
return back()->withErrors(['login_error' => 'Akun Anda masih dalam proses verifikasi Admin.']);
|
||||
}
|
||||
if ($petani->status_akun == 'ditolak') {
|
||||
return back()->withErrors(['login_error' => 'Pendaftaran Anda ditolak. Silakan hubungi Admin.']);
|
||||
}
|
||||
|
||||
Auth::guard('petani')->login($petani);
|
||||
$request->session()->regenerate();
|
||||
|
|
@ -100,10 +93,10 @@ public function registerProcess(Request $request)
|
|||
'no_hp' => $request->no_hp,
|
||||
'alamat' => $request->alamat,
|
||||
'nama_usaha' => $request->nama_usaha ?? 'Toko Tani ' . $request->nama_lengkap,
|
||||
'status_akun' => 'menunggu'
|
||||
'status_akun' => 'aktif'
|
||||
]);
|
||||
|
||||
return redirect('/login')->with('success', 'Registrasi Petani Berhasil! Mohon tunggu verifikasi Admin.');
|
||||
return redirect('/login')->with('success', 'Registrasi Petani Berhasil! Silakan langsung Login.');
|
||||
|
||||
} else {
|
||||
Pembeli::create([
|
||||
|
|
@ -121,13 +114,9 @@ public function registerProcess(Request $request)
|
|||
|
||||
public function logout(Request $request)
|
||||
{
|
||||
// Logout semua guard untuk keamanan
|
||||
if (Auth::guard('admin')->check())
|
||||
Auth::guard('admin')->logout();
|
||||
if (Auth::guard('petani')->check())
|
||||
Auth::guard('petani')->logout();
|
||||
if (Auth::guard('pembeli')->check())
|
||||
Auth::guard('pembeli')->logout();
|
||||
if (Auth::guard('admin')->check()) Auth::guard('admin')->logout();
|
||||
if (Auth::guard('petani')->check()) Auth::guard('petani')->logout();
|
||||
if (Auth::guard('pembeli')->check()) Auth::guard('pembeli')->logout();
|
||||
|
||||
$request->session()->invalidate();
|
||||
$request->session()->regenerateToken();
|
||||
|
|
|
|||
|
|
@ -42,10 +42,6 @@ public function store(Request $request)
|
|||
'harga' => 'required|numeric|min:0',
|
||||
'stok' => 'required|integer|min:0',
|
||||
'deskripsi' => 'required|string',
|
||||
'provinsi_code' => 'required',
|
||||
'kota_code' => 'required',
|
||||
'kecamatan_code' => 'required',
|
||||
'desa_code' => 'required',
|
||||
'foto_produk' => 'required|image|mimes:jpeg,png,jpg|max:2048',
|
||||
'foto_tambahan.*' => 'nullable|image|mimes:jpeg,png,jpg|max:2048'
|
||||
]);
|
||||
|
|
@ -62,10 +58,6 @@ public function store(Request $request)
|
|||
'kategori_id' => $request->kategori_id,
|
||||
'nama_produk' => $request->nama_produk,
|
||||
'harga' => $request->harga,
|
||||
'provinsi_code' => $request->provinsi_code,
|
||||
'kota_code' => $request->kota_code,
|
||||
'kecamatan_code' => $request->kecamatan_code,
|
||||
'desa_code' => $request->desa_code,
|
||||
'stok' => $request->stok,
|
||||
'deskripsi' => $request->deskripsi,
|
||||
'foto_produk' => $fotoPath,
|
||||
|
|
@ -110,10 +102,6 @@ public function update(Request $request, $id)
|
|||
'nama_produk' => 'required|string|max:255',
|
||||
'kategori_id' => 'required|exists:kategoris,id',
|
||||
'harga' => 'required|numeric|min:0',
|
||||
'provinsi_code' => 'required',
|
||||
'kota_code' => 'required',
|
||||
'kecamatan_code' => 'required',
|
||||
'desa_code' => 'required',
|
||||
'stok' => 'required|integer|min:0',
|
||||
'deskripsi' => 'required|string',
|
||||
'foto_produk' => 'nullable|image|mimes:jpeg,png,jpg|max:2048',
|
||||
|
|
@ -136,10 +124,6 @@ public function update(Request $request, $id)
|
|||
'nama_produk' => $request->nama_produk,
|
||||
'kategori_id' => $request->kategori_id,
|
||||
'harga' => $request->harga,
|
||||
'provinsi_code' => $request->provinsi_code,
|
||||
'kota_code' => $request->kota_code,
|
||||
'kecamatan_code' => $request->kecamatan_code,
|
||||
'desa_code' => $request->desa_code,
|
||||
'stok' => $request->stok,
|
||||
'deskripsi' => $request->deskripsi,
|
||||
'foto_produk' => $produk->foto_produk
|
||||
|
|
|
|||
|
|
@ -6,6 +6,10 @@
|
|||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Laravolt\Indonesia\Models\Province;
|
||||
use Laravolt\Indonesia\Models\City;
|
||||
use Laravolt\Indonesia\Models\District;
|
||||
use Laravolt\Indonesia\Models\Village;
|
||||
|
||||
class ProfileController extends Controller
|
||||
{
|
||||
|
|
@ -13,7 +17,13 @@ class ProfileController extends Controller
|
|||
public function editPetani()
|
||||
{
|
||||
$user = Auth::guard('petani')->user();
|
||||
return view('petani.profile', compact('user'));
|
||||
|
||||
$provinsis = Province::all();
|
||||
$kotas = $user->provinsi_code ? City::where('province_code', $user->provinsi_code)->get() : [];
|
||||
$kecamatans = $user->kota_code ? District::where('city_code', $user->kota_code)->get() : [];
|
||||
$desas = $user->kecamatan_code ? Village::where('district_code', $user->kecamatan_code)->get() : [];
|
||||
|
||||
return view('petani.profile', compact('user', 'provinsis', 'kotas', 'kecamatans', 'desas'));
|
||||
}
|
||||
|
||||
public function updatePetani(Request $request)
|
||||
|
|
@ -24,11 +34,23 @@ public function updatePetani(Request $request)
|
|||
'nama_lengkap' => 'required|string|max:255',
|
||||
'email' => 'required|email|unique:petanis,email,' . $user->id,
|
||||
'password' => 'nullable|min:6|confirmed',
|
||||
'foto' => 'nullable|image|max:2048'
|
||||
'foto' => 'nullable|image|max:2048',
|
||||
'provinsi_code' => 'required',
|
||||
'alamat' => 'required|string',
|
||||
'kota_code' => 'required',
|
||||
'kecamatan_code' => 'required',
|
||||
'desa_code' => 'required',
|
||||
'link_maps' => 'nullable|url',
|
||||
]);
|
||||
|
||||
$user->nama_lengkap = $request->nama_lengkap;
|
||||
$user->email = $request->email;
|
||||
$user->provinsi_code = $request->provinsi_code;
|
||||
$user->alamat = $request->alamat;
|
||||
$user->kota_code = $request->kota_code;
|
||||
$user->kecamatan_code = $request->kecamatan_code;
|
||||
$user->desa_code = $request->desa_code;
|
||||
$user->link_maps = $request->link_maps;
|
||||
|
||||
if ($request->filled('password')) {
|
||||
$user->password = Hash::make($request->password);
|
||||
|
|
@ -38,12 +60,11 @@ public function updatePetani(Request $request)
|
|||
if ($user->foto && Storage::exists('public/' . $user->foto)) {
|
||||
Storage::delete('public/' . $user->foto);
|
||||
}
|
||||
$path = $request->file('foto')->store('avatars', 'public');
|
||||
$user->foto = $path;
|
||||
$user->foto = $request->file('foto')->store('avatars', 'public');
|
||||
}
|
||||
|
||||
$user->save();
|
||||
return back()->with('success', 'Profil berhasil diperbarui!');
|
||||
return back()->with('success', 'Profil dan Lokasi berhasil diperbarui!');
|
||||
}
|
||||
|
||||
// --- FITUR PEMBELI ---
|
||||
|
|
|
|||
|
|
@ -21,6 +21,11 @@ class Petani extends Authenticatable implements CanResetPassword
|
|||
'password',
|
||||
'no_hp',
|
||||
'alamat',
|
||||
'provinsi_code',
|
||||
'kota_code',
|
||||
'link_maps',
|
||||
'kecamatan_code',
|
||||
'desa_code',
|
||||
'nama_usaha',
|
||||
'status_akun'
|
||||
];
|
||||
|
|
@ -43,4 +48,14 @@ public function pesanTerkirim()
|
|||
{
|
||||
return $this->morphMany(Pesan::class, 'pengirim');
|
||||
}
|
||||
|
||||
public function kota()
|
||||
{
|
||||
return $this->belongsTo(\Laravolt\Indonesia\Models\City::class, 'kota_code', 'code');
|
||||
}
|
||||
|
||||
public function provinsi()
|
||||
{
|
||||
return $this->belongsTo(\Laravolt\Indonesia\Models\Province::class, 'provinsi_code', 'code');
|
||||
}
|
||||
}
|
||||
|
|
@ -18,10 +18,6 @@ class Produk extends Model
|
|||
'stok',
|
||||
'deskripsi',
|
||||
'foto_produk',
|
||||
'provinsi_code',
|
||||
'kota_code',
|
||||
'kecamatan_code',
|
||||
'desa_code',
|
||||
];
|
||||
|
||||
public function petani()
|
||||
|
|
|
|||
|
|
@ -7,23 +7,19 @@
|
|||
return new class extends Migration {
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('produks', function (Blueprint $table) {
|
||||
if (Schema::hasColumn('produks', 'lokasi')) {
|
||||
$table->dropColumn('lokasi');
|
||||
}
|
||||
|
||||
$table->char('provinsi_code', 2)->nullable()->after('deskripsi');
|
||||
Schema::table('petanis', function (Blueprint $table) {
|
||||
$table->char('provinsi_code', 2)->nullable()->after('alamat');
|
||||
$table->char('kota_code', 4)->nullable()->after('provinsi_code');
|
||||
$table->char('kecamatan_code', 7)->nullable()->after('kota_code');
|
||||
$table->char('desa_code', 10)->nullable()->after('kecamatan_code');
|
||||
$table->text('link_maps')->nullable()->after('desa_code');
|
||||
});
|
||||
}
|
||||
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('produks', function (Blueprint $table) {
|
||||
$table->dropColumn(['provinsi_code', 'kota_code', 'kecamatan_code', 'desa_code']);
|
||||
$table->string('lokasi')->nullable();
|
||||
Schema::table('petanis', function (Blueprint $table) {
|
||||
$table->dropColumn(['provinsi_code', 'kota_code', 'kecamatan_code', 'desa_code', 'link_maps']);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
|
@ -8,13 +8,10 @@
|
|||
|
||||
class PetaniSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
// Petani SUDAH AKTIF
|
||||
DB::table('petanis')->insert([
|
||||
[
|
||||
'nik' => '3518012345678901',
|
||||
'nama_lengkap' => 'Siti Aminah',
|
||||
'username' => 'siti_sayur',
|
||||
|
|
@ -22,14 +19,17 @@ public function run(): void
|
|||
'password' => Hash::make('password123'),
|
||||
'no_hp' => '085678901234',
|
||||
'alamat' => 'Dusun Krajan RT 02 RW 01',
|
||||
'provinsi_code' => '35',
|
||||
'kota_code' => '3518',
|
||||
'kecamatan_code' => '3518100',
|
||||
'desa_code' => '3518100001',
|
||||
'link_maps' => 'https://maps.app.goo.gl/XXdummy123',
|
||||
'nama_usaha' => 'Sayur Segar Bu Siti',
|
||||
'status_akun' => 'aktif',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
]);
|
||||
|
||||
// Petani BARU DAFTAR menunggu verifikasi
|
||||
DB::table('petanis')->insert([
|
||||
],
|
||||
[
|
||||
'nik' => '3518012345678902',
|
||||
'nama_lengkap' => 'Budi Santoso',
|
||||
'username' => 'budi_tani',
|
||||
|
|
@ -37,25 +37,34 @@ public function run(): void
|
|||
'password' => Hash::make('password123'),
|
||||
'no_hp' => '081234567890',
|
||||
'alamat' => 'Jl. Raya Desa Sukamaju No. 12',
|
||||
'provinsi_code' => '35',
|
||||
'kota_code' => '3518',
|
||||
'kecamatan_code' => '3518100',
|
||||
'desa_code' => '3518100001',
|
||||
'link_maps' => 'https://maps.app.goo.gl/XXdummy123',
|
||||
'nama_usaha' => 'Budi Farm Organik',
|
||||
'status_akun' => 'menunggu',
|
||||
'status_akun' => 'aktif',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
]);
|
||||
|
||||
// Petani DITOLAK
|
||||
DB::table('petanis')->insert([
|
||||
],
|
||||
[
|
||||
'nik' => '3518012345678903',
|
||||
'nama_lengkap' => 'Joko Widodo',
|
||||
'username' => 'joko_tani',
|
||||
'email' => 'wiwokdetok@gmail.com',
|
||||
'email' => 'joko@gmail.com',
|
||||
'password' => Hash::make('password123'),
|
||||
'no_hp' => '089876543210',
|
||||
'alamat' => 'Jl. Buntu No. 99',
|
||||
'provinsi_code' => '35',
|
||||
'kota_code' => '3518',
|
||||
'kecamatan_code' => '3518100',
|
||||
'desa_code' => '3518100001',
|
||||
'link_maps' => 'https://maps.app.goo.gl/XXdummy123',
|
||||
'nama_usaha' => 'Joko Tani Jaya',
|
||||
'status_akun' => 'ditolak',
|
||||
'status_akun' => 'aktif',
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
]
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
@ -7,23 +7,18 @@
|
|||
use App\Models\ProdukImage;
|
||||
use App\Models\Kategori;
|
||||
use App\Models\Petani;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class ProdukSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
$petani = Petani::inRandomOrder()->first();
|
||||
$petani = Petani::first();
|
||||
|
||||
if (!$petani) {
|
||||
$this->command->error('Tabel petani kosong. Jalankan PetaniSeeder terlebih dahulu!');
|
||||
return;
|
||||
}
|
||||
|
||||
// KATEGORI
|
||||
$kategoriGabah = [
|
||||
['nama' => 'Gabah Kering Panen (GKP)', 'slug' => 'gkp', 'ikon' => 'fas fa-seedling'],
|
||||
['nama' => 'Gabah Kering Giling (GKG)', 'slug' => 'gkg', 'ikon' => 'fas fa-sun'],
|
||||
|
|
@ -42,7 +37,6 @@ public function run(): void
|
|||
);
|
||||
}
|
||||
|
||||
// DAFTAR PRODUK
|
||||
$daftarProduk = [
|
||||
[
|
||||
'nama' => 'Gabah Ciherang (GKP) Baru Panen',
|
||||
|
|
@ -68,37 +62,11 @@ public function run(): void
|
|||
'kategori_slug' => 'benih-padi',
|
||||
'gallery' => 1
|
||||
],
|
||||
[
|
||||
'nama' => 'Gabah Padi Ketan Putih Super',
|
||||
'harga' => 8000,
|
||||
'stok' => 300,
|
||||
'deskripsi' => 'Padi ketan putih murni, tidak tercampur padi biasa. Cocok untuk industri tape atau olahan ketan. Kualitas super.',
|
||||
'kategori_slug' => 'padi-ketan',
|
||||
'gallery' => 2
|
||||
],
|
||||
[
|
||||
'nama' => 'Gabah Mentik Wangi Organik',
|
||||
'harga' => 9000,
|
||||
'stok' => 100,
|
||||
'deskripsi' => 'Gabah Mentik Wangi (Pandan Wangi Jawa) ditanam full organik tanpa pestisida kimia. Aroma sangat wangi, beras pulen.',
|
||||
'kategori_slug' => 'padi-organik',
|
||||
'gallery' => 2
|
||||
],
|
||||
[
|
||||
'nama' => 'Gabah Kering Giling (GKG) Situbagendit',
|
||||
'harga' => 7200,
|
||||
'stok' => 1500,
|
||||
'deskripsi' => 'Gabah Situbagendit kering jemur 3 hari. Cocok untuk stok gudang penggilingan. Lokasi Nganjuk.',
|
||||
'kategori_slug' => 'gkg',
|
||||
'gallery' => 1
|
||||
],
|
||||
];
|
||||
|
||||
// INSERT DATA
|
||||
foreach ($daftarProduk as $item) {
|
||||
$kategori = Kategori::where('slug', $item['kategori_slug'])->first();
|
||||
|
||||
// Create Produk
|
||||
$produk = Produk::create([
|
||||
'petani_id' => $petani->id,
|
||||
'kategori_id' => $kategori->id,
|
||||
|
|
|
|||
|
|
@ -98,9 +98,11 @@ class="badge bg-primary bg-opacity-10 px-3 py-2 rounded-pill fw-bold border bord
|
|||
<i class="fas fa-store fs-5"></i>
|
||||
</div>
|
||||
<div class="flex-grow-1">
|
||||
<p class="text-muted small mb-0 fw-bold text-uppercase" style="font-size: 0.7rem;">Dijual Oleh
|
||||
</p>
|
||||
<h6 class="fw-bold text-dark mb-0">{{ $produk->petani->nama_lengkap ?? 'Petani Mitra' }}</h6>
|
||||
<small class="text-muted d-block" style="font-size: 0.8rem;">
|
||||
<i class="fas fa-map-marker-alt text-danger me-1"></i>
|
||||
{{ Str::limit($produk->petani->alamat ?? 'Alamat tidak tersedia', 35) }}
|
||||
</small>
|
||||
</div>
|
||||
<button type="button" class="btn btn-outline-success btn-sm rounded-pill px-3 fw-bold"
|
||||
data-bs-toggle="modal" data-bs-target="#chatModal">
|
||||
|
|
@ -108,6 +110,17 @@ class="badge bg-primary bg-opacity-10 px-3 py-2 rounded-pill fw-bold border bord
|
|||
</button>
|
||||
</div>
|
||||
|
||||
{{-- Link Maps --}}
|
||||
@if(isset($produk->petani->link_maps) && $produk->petani->link_maps != '')
|
||||
<a href="{{ $produk->petani->link_maps }}" target="_blank"
|
||||
class="btn btn-light border-danger text-danger border fw-bold mb-4 w-100 text-start shadow-sm"
|
||||
style="border-radius: 10px;">
|
||||
<i class="fas fa-map-marker-alt me-2 fs-5 align-middle"></i>
|
||||
Lihat Lokasi Lahan di Google Maps
|
||||
<i class="fas fa-external-link-alt float-end mt-1 text-muted opacity-50"></i>
|
||||
</a>
|
||||
@endif
|
||||
|
||||
{{-- FORM PEMBELIAN --}}
|
||||
<form action="{{ route('cart.add') }}" method="POST">
|
||||
@csrf
|
||||
|
|
|
|||
|
|
@ -188,7 +188,7 @@ class="btn {{ request('kategori') == '' || request('kategori') == 'Semua' ? 'btn
|
|||
Semua
|
||||
</a>
|
||||
|
||||
{{-- 2. Looping Kategori dari Database --}}
|
||||
{{-- Looping Kategori dari Database --}}
|
||||
@foreach($kategoriList as $kat)
|
||||
<a href="#" data-kategori="{{ $kat->slug }}"
|
||||
class="btn {{ request('kategori') == $kat->slug ? 'btn-primary' : 'btn-outline-primary' }} rounded-pill px-4 py-2 m-1 btn-category">
|
||||
|
|
|
|||
|
|
@ -18,7 +18,12 @@ class="card-img-top w-100 h-100 object-fit-cover" alt="{{ $produk->nama_produk }
|
|||
{{ $produk->kategori->nama_kategori ?? 'Umum' }}
|
||||
</span>
|
||||
|
||||
<h5 class="fw-bold mb-2 text-dark">{{ $produk->nama_produk }}</h5>
|
||||
<h6 class="fw-bold mb-1 text-dark text-truncate" style="max-width: 100%;">{{ $produk->nama_produk }}</h6>
|
||||
|
||||
<small class="text-muted d-block mb-2" style="font-size: 0.8rem;">
|
||||
<i class="fas fa-map-marker-alt text-danger me-1"></i>
|
||||
{{ Str::limit($produk->petani->alamat ?? 'Alamat tidak tersedia', 35) }}
|
||||
</small>
|
||||
|
||||
<p class="text-muted small mb-3" style="line-height: 1.5;">
|
||||
{{ Str::limit($produk->deskripsi, 60) }}
|
||||
|
|
@ -32,6 +37,7 @@ class="card-img-top w-100 h-100 object-fit-cover" alt="{{ $produk->nama_produk }
|
|||
Rp {{ number_format($produk->harga, 0, ',', '.') }}
|
||||
</h6>
|
||||
</div>
|
||||
|
||||
<a href="{{ route('produk.detail', $produk->id) }}"
|
||||
class="btn btn-primary btn-sm rounded-pill px-3 stretched-link">
|
||||
Lihat <i class="fa fa-arrow-right ms-1"></i>
|
||||
|
|
|
|||
|
|
@ -175,7 +175,12 @@ class="card-img-top w-100 h-100" alt="{{ $produk->nama_produk }}"
|
|||
<div>
|
||||
<span class="badge bg-primary mb-2">{{ $produk->kategori->nama_kategori ?? 'Umum'
|
||||
}}</span>
|
||||
<h6 class="fw-bold mb-2 text-dark">{{ $produk->nama_produk }}</h6>
|
||||
<h6 class="fw-bold mb-2 text-dark text-truncate" style="max-width: 100%;">{{
|
||||
$produk->nama_produk }}</h6>
|
||||
<small class="text-muted d-block mb-2" style="font-size: 0.8rem;">
|
||||
<i class="fas fa-map-marker-alt text-danger me-1"></i>
|
||||
{{ Str::limit($produk->petani->alamat ?? 'Alamat tidak tersedia', 35) }}
|
||||
</small>
|
||||
<p class="text-muted small mb-3">{{ Str::limit($produk->deskripsi, 60) }}</p>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -52,36 +52,6 @@
|
|||
<textarea name="deskripsi" class="form-control" rows="4"
|
||||
placeholder="Jelaskan kualitas produk Anda..." required></textarea>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6 mb-3">
|
||||
<label class="form-label">Provinsi</label>
|
||||
<select name="provinsi_code" id="provinsi" class="form-select" required>
|
||||
<option value="">Pilih Provinsi</option>
|
||||
@foreach ($provinsis as $prov)
|
||||
<option value="{{ $prov->code }}">{{ $prov->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-6 mb-3">
|
||||
<label class="form-label">Kota / Kabupaten</label>
|
||||
<select name="kota_code" id="kota" class="form-select" required disabled>
|
||||
<option value="">Pilih Kota/Kabupaten</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-6 mb-3">
|
||||
<label class="form-label">Kecamatan</label>
|
||||
<select name="kecamatan_code" id="kecamatan" class="form-select" required disabled>
|
||||
<option value="">Pilih Kecamatan</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-6 mb-3">
|
||||
<label class="form-label">Desa / Kelurahan</label>
|
||||
<select name="desa_code" id="desa" class="form-select" required disabled>
|
||||
<option value="">Pilih Desa</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- UPLOAD GAMBAR --}}
|
||||
|
|
|
|||
|
|
@ -51,49 +51,6 @@
|
|||
<label class="fw-bold">Deskripsi</label>
|
||||
<textarea name="deskripsi" class="form-control" rows="4" required>{{ $produk->deskripsi }}</textarea>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6 mb-3">
|
||||
<label class="form-label">Provinsi</label>
|
||||
<select name="provinsi_code" id="provinsi" class="form-select" required>
|
||||
<option value="">Pilih Provinsi</option>
|
||||
@foreach ($provinsis as $prov)
|
||||
<option value="{{ $prov->code }}" {{ $produk->provinsi_code == $prov->code ?
|
||||
'selected' : '' }}>{{ $prov->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-6 mb-3">
|
||||
<label class="form-label">Kota / Kabupaten</label>
|
||||
<select name="kota_code" id="kota" class="form-select" required>
|
||||
<option value="">Pilih Kota/Kabupaten</option>
|
||||
@foreach ($kotas as $kota)
|
||||
<option value="{{ $kota->code }}" {{ $produk->kota_code == $kota->code ?
|
||||
'selected' : '' }}>{{ $kota->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-6 mb-3">
|
||||
<label class="form-label">Kecamatan</label>
|
||||
<select name="kecamatan_code" id="kecamatan" class="form-select" required>
|
||||
<option value="">Pilih Kecamatan</option>
|
||||
@foreach ($kecamatans as $kec)
|
||||
<option value="{{ $kec->code }}" {{ $produk->kecamatan_code == $kec->code ?
|
||||
'selected' : '' }}>{{ $kec->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-6 mb-3">
|
||||
<label class="form-label">Desa / Kelurahan</label>
|
||||
<select name="desa_code" id="desa" class="form-select" required>
|
||||
<option value="">Pilih Desa</option>
|
||||
@foreach ($desas as $desa)
|
||||
<option value="{{ $desa->code }}" {{ $produk->desa_code == $desa->code ?
|
||||
'selected' : '' }}>{{ $desa->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- KELOLA GAMBAR --}}
|
||||
|
|
|
|||
|
|
@ -54,6 +54,60 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label">Alamat Lengkap (Jalan/Dusun/RT/RW)</label>
|
||||
<textarea name="alamat" class="form-control" rows="3" required>{{ $user->alamat }}</textarea>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6 mb-3">
|
||||
<label class="form-label">Provinsi</label>
|
||||
<select name="provinsi_code" id="provinsi" class="form-select" required>
|
||||
<option value="">Pilih Provinsi</option>
|
||||
@foreach($provinsis as $prov)
|
||||
<option value="{{ $prov->code }}" {{ $user->provinsi_code == $prov->code ? 'selected' :
|
||||
'' }}>{{ $prov->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-6 mb-3">
|
||||
<label class="form-label">Kota/Kabupaten</label>
|
||||
<select name="kota_code" id="kota" class="form-select" required>
|
||||
<option value="">Pilih Kota</option>
|
||||
@foreach($kotas as $kota)
|
||||
<option value="{{ $kota->code }}" {{ $user->kota_code == $kota->code ? 'selected' : ''
|
||||
}}>{{ $kota->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-6 mb-3">
|
||||
<label class="form-label">Kecamatan</label>
|
||||
<select name="kecamatan_code" id="kecamatan" class="form-select" required>
|
||||
<option value="">Pilih Kecamatan</option>
|
||||
@foreach($kecamatans as $kecamatan)
|
||||
<option value="{{ $kecamatan->code }}" {{ $user->kecamatan_code == $kecamatan->code ?
|
||||
'selected' : '' }}>{{ $kecamatan->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-6 mb-3">
|
||||
<label class="form-label">Desa/Kelurahan</label>
|
||||
<select name="desa_code" id="desa" class="form-select" required>
|
||||
<option value="">Pilih Desa</option>
|
||||
@foreach($desas as $desa)
|
||||
<option value="{{ $desa->code }}" {{ $user->desa_code == $desa->code ? 'selected' : ''
|
||||
}}>{{ $desa->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-3">
|
||||
<label class="form-label fw-bold">Link Google Maps Lahan/Toko (Opsional)</label>
|
||||
<input type="url" name="link_maps" class="form-control"
|
||||
placeholder="Contoh: http://maps.google.com/..." value="{{ $user->link_maps }}">
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn btn-primary">Simpan Perubahan</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -61,3 +115,43 @@
|
|||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('js')
|
||||
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#provinsi').on('change', function() {
|
||||
let code = $(this).val();
|
||||
$('#kota').html('<option value="">Memuat...</option>');
|
||||
if(code) {
|
||||
$.post("{{ url('get-kota') }}", {code: code, _token: '{{ csrf_token() }}'}, function(data) {
|
||||
$('#kota').html('<option value="">Pilih Kota</option>');
|
||||
$.each(data, function(key, val) { $('#kota').append(`<option value="${val.code}">${val.name}</option>`); });
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
$('#kota').on('change', function() {
|
||||
let code = $(this).val();
|
||||
$('#kecamatan').html('<option value="">Memuat...</option>');
|
||||
if(code) {
|
||||
$.post("{{ url('get-kecamatan') }}", {code: code, _token: '{{ csrf_token() }}'}, function(data) {
|
||||
$('#kecamatan').html('<option value="">Pilih Kecamatan</option>');
|
||||
$.each(data, function(key, val) { $('#kecamatan').append(`<option value="${val.code}">${val.name}</option>`); });
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
$('#kecamatan').on('change', function() {
|
||||
let code = $(this).val();
|
||||
$('#desa').html('<option value="">Memuat...</option>');
|
||||
if(code) {
|
||||
$.post("{{ url('get-desa') }}", {code: code, _token: '{{ csrf_token() }}'}, function(data) {
|
||||
$('#desa').html('<option value="">Pilih Desa</option>');
|
||||
$.each(data, function(key, val) { $('#desa').append(`<option value="${val.code}">${val.name}</option>`); });
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
Loading…
Reference in New Issue