fix(master-land): fix function update

This commit is contained in:
arieeefajar 2025-03-10 21:36:20 +07:00
parent c849014664
commit 1d2231f822
5 changed files with 15 additions and 305 deletions

View File

@ -9,7 +9,6 @@
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use Psy\CodeCleaner\ReturnTypePass;
class LandController extends Controller class LandController extends Controller
{ {
@ -164,6 +163,10 @@ public function update(Request $request, $id)
$polygon = json_decode($request->polygon, true); $polygon = json_decode($request->polygon, true);
if (isset($polygon[0])) {
$polygon = $polygon[0]; // Ambil array pertama jika ada
}
if ($validator->fails()) { if ($validator->fails()) {
toast($validator->messages()->all()[0], 'error')->position('top')->autoclose(3000); toast($validator->messages()->all()[0], 'error')->position('top')->autoclose(3000);
return redirect()->back()->withInput(); return redirect()->back()->withInput();
@ -195,6 +198,7 @@ public function update(Request $request, $id)
return redirect()->back(); return redirect()->back();
} catch (\Throwable $th) { } catch (\Throwable $th) {
DB::rollBack(); DB::rollBack();
dd($th->getMessage());
toast('Terjadi kesalahan', 'error')->position('top')->autoclose(3000); toast('Terjadi kesalahan', 'error')->position('top')->autoclose(3000);
return redirect()->back(); return redirect()->back();
} }

View File

@ -85,6 +85,7 @@ function initMapEdit() {
mapEdit.on("draw:created", handleDrawCreated); mapEdit.on("draw:created", handleDrawCreated);
mapEdit.on("draw:edited", handleDrawEdited); mapEdit.on("draw:edited", handleDrawEdited);
mapEdit.on("draw:deleted", handleDrawDeleted);
mapEdit.invalidateSize(); mapEdit.invalidateSize();
} }
@ -328,124 +329,6 @@ function setMapEdit() {
.openPopup(); .openPopup();
} }
// async function updateData(data) {
// const land = data.land;
// const userRole = data.role;
// var ownerEditField = formEdit.querySelector("#owner-edit-field");
// var provinceEditField = formEdit.querySelector("#province-edit-field");
// var provinceEditVal = new Choices(provinceEditField);
// ownerEditField.value = land.owner;
// provinceEditField.value = land.province_code;
// try {
// const province = await getProvinces(land.province_code);
// provinceEditVal.setChoices([
// {
// value: province.id,
// label: province.name,
// selected: true,
// disabled: true,
// },
// ]);
// $.ajax({
// type: "GET",
// url: "/location/get-regency/" + land.province_code,
// success: function (response) {
// if (response.success) {
// const dataRegencies = response.data;
// const regencies = response.data.find(
// (regency) => regency.id === parseInt(land.regency_code)
// );
// regencyEditVal.setChoices([
// {
// value: regencies.id,
// label: regencies.name,
// selected: true,
// disabled: true,
// },
// ]);
// if (Array.isArray(dataRegencies)) {
// regencyEditVal.setChoices(
// dataRegencies.map((regency) => ({
// value: regency.id,
// label: regency.name,
// selected: false,
// disabled: false,
// }))
// );
// } else {
// mapEditConatiner.style.display = "block";
// mapEditConatiner.innerHTML =
// "<p class='text-center text-muted'>Terjadi kesalaahan saat mengambil data, silahkan coba beberapa saat lagi</p>";
// }
// }
// },
// });
// $.ajax({
// type: "GET",
// url: "/location/get-district/" + land.regency_code,
// success: function (response) {
// if (response.success) {
// const dataDistricts = response.data;
// const districts = response.data.find(
// (district) =>
// district.id === parseInt(land.district_code)
// );
// districtEditVal.setChoices([
// {
// value: districts.id,
// label: districts.name,
// selected: true,
// disabled: true,
// },
// ]);
// if (Array.isArray(dataDistricts)) {
// districtEditVal.setChoices(
// dataDistricts.map((district) => ({
// value: district.id,
// label: district.name,
// selected: false,
// disabled: false,
// }))
// );
// } else {
// mapEditConatiner.style.display = "block";
// mapEditConatiner.innerHTML =
// "<p class='text-center text-muted'>Terjadi kesalaahan saat mengambil data, silahkan coba beberapa saat lagi</p>";
// }
// }
// },
// });
// addressEditContainer.style.display = "block";
// addressEditField.value = land.address;
// mapEdit.setView([land.latitude, land.longitude], 16);
// currentMarkerEdit
// .setLatLng([land.latitude, land.longitude])
// .openPopup();
// latEditField.value = land.latitude;
// lngEditField.value = land.longitude;
// polygonField.value = land.polygon;
// if (userRole === "admin") {
// formEdit.action = "/data-lahan/" + land.id;
// } else {
// formEdit.action = "/data-lahan-petugas/" + land.id;
// }
// } catch (error) {
// console.log(error);
// }
// }
function handleDrawCreated(e) { function handleDrawCreated(e) {
var layer = e.layer; var layer = e.layer;
drawnItems.addLayer(layer); drawnItems.addLayer(layer);
@ -468,6 +351,10 @@ function handleDrawEdited(e) {
}); });
} }
function handleDrawDeleted(e) {
polygonField.value = "";
}
function onPointerDragend() { function onPointerDragend() {
if (!currentMarkerEdit) return; if (!currentMarkerEdit) return;
var coordinates = currentMarkerEdit.getLatLng(); var coordinates = currentMarkerEdit.getLatLng();

View File

@ -136,9 +136,9 @@ class="needs-validation" novalidate>
<div class="mt-3"> <div class="mt-3">
<input type="hidden" name="lat" id="lat-edit" class="form-control" <input type="hidden" name="lat" id="lat-edit" class="form-control"
readonly> value="{{ $land->latitude }}" readonly>
<input type="hidden" name="lng" id="lng-edit" class="form-control" <input type="hidden" name="lng" id="lng-edit" class="form-control"
readonly> value="{{ $land->longitude }}" readonly>
<input type="hidden" name="polygon" id="polygon-edit" class="form-control" <input type="hidden" name="polygon" id="polygon-edit" class="form-control"
readonly> readonly>

View File

@ -1,24 +1,6 @@
@extends('layouts.app') @extends('layouts.app')
@push('title', 'Data Lahan') @push('title', 'Data Lahan')
@section('content') @section('content')
@push('other-css')
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css"
integrity="sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY=" crossorigin="" />
<style>
#map {
height: 200px;
width: 100%;
z-index: 0;
}
#map-edit {
height: 200px;
width: 100%;
z-index: 0;
}
</style>
@endpush
<div class="page-content"> <div class="page-content">
<div class="container-fluid"> <div class="container-fluid">
@ -52,7 +34,7 @@
<div class="row g-4 mb-3"> <div class="row g-4 mb-3">
<div class="col-sm-auto"> <div class="col-sm-auto">
<div> <div>
<a href="{{ route('master_data.lahan.create') }}" <a href="{{ Auth::user()->role == 'admin' ? route('master_data.lahan.create') : route('lahan.create') }}"
class="btn btn-success add-btn" id="create-btn"><i class="btn btn-success add-btn" id="create-btn"><i
class="ri-add-line align-bottom me-1"></i> class="ri-add-line align-bottom me-1"></i>
Tambah</a> Tambah</a>
@ -97,9 +79,6 @@ class="fw-medium link-primary">#VZ2101</a></td>
<div class="edit"> <div class="edit">
<a href="{{ route('master_data.lahan.edit', $land->id) }}" <a href="{{ route('master_data.lahan.edit', $land->id) }}"
class="btn btn-sm btn-warning edit-item-btn">Edit</a> class="btn btn-sm btn-warning edit-item-btn">Edit</a>
{{-- <button class="btn btn-sm btn-warning edit-item-btn"
data-bs-toggle="modal" data-bs-target="#editModal"
onclick="updateData({{ json_encode(['land' => $land, 'role' => Auth::user()->role]) }})">Edit</button> --}}
</div> </div>
<div class="remove"> <div class="remove">
<button class="btn btn-sm btn-danger remove-item-btn" <button class="btn btn-sm btn-danger remove-item-btn"
@ -144,166 +123,6 @@ class="btn btn-sm btn-warning edit-item-btn">Edit</a>
</div> </div>
<!-- end row --> <!-- end row -->
{{-- edit modal --}}
{{-- <div class="modal fade" id="editModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header bg-light p-3">
<h5 class="modal-title" id="exampleModalLabel">Edit Data Lahan</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"
id="close-modal"></button>
</div>
<form id="edit-form" action="" method="POST" class="needs-validation" novalidate>
@csrf
@method('PUT')
<div class="modal-body">
<div class="mb-3" id="modal-id" style="display: none;">
<label for="id-field" class="form-label">ID</label>
<input type="text" id="id-field" class="form-control" placeholder="ID"
readonly />
</div>
<div class="mb-3">
<label for="owner-edit-field" class="form-label">Pemilik Lahan</label>
<input type="text" id="owner-edit-field" class="form-control" name="owner"
value="{{ old('owner') }}" placeholder="Masukan Nama Pemilik Lahan" required />
<div class="invalid-feedback">
Masukan Nama Pemilik Lahan
</div>
</div>
<div class="mb-3">
<label for="nohp-edit-field" class="form-label">Nomor HP</label>
<input type="text" id="nohp-edit-field" class="form-control" name="nohp"
value="{{ old('nohp') }}" placeholder="Masukan Nomor HP" required
oninput="validatePhoneNumber(this)" />
<div class="invalid-feedback">
Masukan Nomor HP
</div>
</div>
<div class="mb-3">
<label for="rentalprice-edit-field" class="form-label">Harga Sewa</label>
<input type="text" id="rentalprice-edit-field" class="form-control"
name="rental_price" value="{{ old('rental_price') }}"
placeholder="Masukan Harga Sewa" required oninput="validatePrice(this)" />
<div class="invalid-feedback">
Masukan Harga Sewa
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="mb-3">
<label for="rentalstart-edit-field" class="form-label">Mulai Dari</label>
<input type="date" id="rentalstart-edit-field" class="form-control"
name="rental_start" value="{{ old('rental_start') }}"
min="{{ date('Y-m-d') }}" placeholder="Masukan Tanggal Mulai" required />
<div class="invalid-feedback">
Masukan Tanggal Mulai
</div>
</div>
</div>
<div class="col-md-6">
<div class="mb-3">
<label for="rentaluntil-edit-field" class="form-label">Sampai</label>
<input type="date" id="rentaluntil-edit-field" class="form-control"
name="rental_until" value="{{ old('rental_start') }}"
min="{{ date('Y-m-d') }}" placeholder="Masukan Tanggal Sampai"
required />
<div class="invalid-feedback">
Masukan Tanggal Sampai
</div>
</div>
</div>
</div>
<div class="mb-3">
<label for="landname-edit-field" class="form-label">Nama Lahan</label>
<input type="text" id="landname-edit-field" class="form-control" name="land_name"
value="{{ old('land_name') }}" placeholder="Masukan Nama Lahan" required />
<div class="invalid-feedback">
Masukan Nama Lahan
</div>
</div>
<div class="mb-3">
<label for="province-edit-field" class="form-label">Provinsi</label>
<select name="province_id" id="province-edit-field" class="form-control" required
onchange="getRegencies(this.value)">
<option value="" selected disabled>Pilih Provinsi</option>
@foreach ($provinces as $province)
<option value="{{ $province->id }}"
{{ old('province_id') == $province->id ? 'selected' : '' }}>
{{ $province->name }}</option>
@endforeach
</select>
<div class="invalid-feedback">
Harap Pilih Provinsi
</div>
</div>
<div class="mb-3" id="regency-edit-container">
<label for="regency-edit-field" class="form-label">Kabupaten atau Kota</label>
<select name="regency_id" id="regency-edit-field" class="form-control" required
onchange="getDistricts(this.value)">
<option value="" selected disabled>Pilih Kabupaten atau Kota</option>
</select>
<div class="invalid-feedback">
Harap Pilih Kabupaten atau Kota
</div>
</div>
<div class="mb-3" id="district-edit-container">
<label for="district-edit-field" class="form-label">Kecamatan</label>
<select name="district_id" id="district-edit-field" class="form-control" required
onchange="showmap(this.value)">
<option value="" selected disabled>Pilih Kecamatan</option>
</select>
<div class="invalid-feedback">
Harap Pilih Kecamatan
</div>
</div>
<div id="loading-edit" class="text-center" style="display: none">
<div class="spinner-border text-primary" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
<div class="mb-3" id="address-edit-container" style="display: none">
<label for="address-edit-field" class="form-label">Alamat</label>
<textarea name="address" id="address-edit-field" rows="3" class="form-control"
placeholder="Masukan Alamat, cnth: Jl. Jend. Sudirman No. 12" required></textarea>
<div class="invalid-feedback">
Masukan Alamat
</div>
</div>
<div id="map-edit-container">
<label for="map-edit" class="form-label">Lokasi</label>
<div id="map-edit"></div>
<div class="mt-3">
<input type="hidden" name="lat" id="lat-edit" class="form-control"
readonly>
<input type="hidden" name="lng" id="lng-edit" class="form-control"
readonly>
</div>
</div>
</div>
<div class="modal-footer" id="edit-footer">
<div class="hstack gap-2 justify-content-end">
<button type="button" class="btn btn-light" data-bs-dismiss="modal">Tutup</button>
<button type="submit" class="btn btn-success" id="edit-btn">Update</button>
</div>
</div>
</form>
</div>
</div>
</div> --}}
<!-- Modal --> <!-- Modal -->
<div class="modal fade zoomIn" id="deleteRecordModal" tabindex="-1" aria-hidden="true"> <div class="modal fade zoomIn" id="deleteRecordModal" tabindex="-1" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered"> <div class="modal-dialog modal-dialog-centered">
@ -315,8 +134,7 @@ class="btn btn-sm btn-warning edit-item-btn">Edit</a>
<div class="modal-body"> <div class="modal-body">
<div class="mt-2 text-center"> <div class="mt-2 text-center">
<lord-icon src="https://cdn.lordicon.com/gsqxdxog.json" trigger="loop" <lord-icon src="https://cdn.lordicon.com/gsqxdxog.json" trigger="loop"
colors="primary:#25a0e2,secondary:#00bd9d" colors="primary:#25a0e2,secondary:#00bd9d" style="width:100px;height:100px"></lord-icon>
style="width:100px;height:100px"></lord-icon>
<div class="mt-4 pt-2 fs-15 mx-4 mx-sm-5"> <div class="mt-4 pt-2 fs-15 mx-4 mx-sm-5">
<h4>Anda yakin ?</h4> <h4>Anda yakin ?</h4>
<p class="text-muted mx-4 mb-0">Anda yakin akan menghapus data ini ?</p> <p class="text-muted mx-4 mb-0">Anda yakin akan menghapus data ini ?</p>

View File

@ -128,6 +128,7 @@
Route::prefix('data-lahan-petugas')->controller(LandController::class)->name('lahan.')->group(function () { Route::prefix('data-lahan-petugas')->controller(LandController::class)->name('lahan.')->group(function () {
Route::get('/', 'index')->name('index'); Route::get('/', 'index')->name('index');
Route::get('/tambah', 'create')->name('create');
Route::post('/', 'store')->name('store'); Route::post('/', 'store')->name('store');
Route::put('/{id}', 'update')->name('update'); Route::put('/{id}', 'update')->name('update');
Route::delete('/{id}', 'destroy')->name('destroy'); Route::delete('/{id}', 'destroy')->name('destroy');