From 2e69c62dbcf7e94c7fbb02bf5677d8cd76b3bb51 Mon Sep 17 00:00:00 2001 From: arieeefajar Date: Sat, 15 Feb 2025 21:11:15 +0700 Subject: [PATCH] fix(master-land): fix func update data --- app/Http/Controllers/LocationController.php | 7 + .../pages/customJs/master-data/lahan/index.js | 180 ++++++++++++------ .../views/master-data/lahan/index.blade.php | 123 +++++++++++- routes/web.php | 1 + 4 files changed, 243 insertions(+), 68 deletions(-) diff --git a/app/Http/Controllers/LocationController.php b/app/Http/Controllers/LocationController.php index 1637516..9ef1c9a 100644 --- a/app/Http/Controllers/LocationController.php +++ b/app/Http/Controllers/LocationController.php @@ -3,12 +3,19 @@ namespace App\Http\Controllers; use App\Models\District; +use App\Models\Province; use App\Models\Regency; use Dflydev\DotAccessData\Data; use Illuminate\Http\Request; class LocationController extends Controller { + public function getProvinces() + { + $provinces = Province::all(); + return response()->json(['success' => true, 'data' => $provinces]); + } + public function getRegencies($provinceId) { $regencies = Regency::where('province_id', $provinceId)->get(); diff --git a/public/assets/js/pages/customJs/master-data/lahan/index.js b/public/assets/js/pages/customJs/master-data/lahan/index.js index fe47ee1..01968f4 100644 --- a/public/assets/js/pages/customJs/master-data/lahan/index.js +++ b/public/assets/js/pages/customJs/master-data/lahan/index.js @@ -1,5 +1,6 @@ -var map; -var currentMarker = null; +var map, mapEdit; +var currentMarker, + currentMarkerEdit = null; var form = document.getElementById("add-form"); var provinceField = form.querySelector("#province-field"); @@ -26,20 +27,30 @@ var loading = form.querySelector("#loading"); var btnContainer = form.querySelector("#add-footer"); document.addEventListener("DOMContentLoaded", function () { - // Initialize the first map map = L.map("map", { attributionControl: false, }).setView([-8.157416852745705, 113.72281580436439], 16); - // Add tile layers to both maps + mapEdit = L.map("map-edit", { + attributionControl: false, + }).setView([-8.157416852745705, 113.72281580436439], 16); + L.tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png", { maxZoom: 19, }).addTo(map); + L.tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png", { + maxZoom: 19, + }).addTo(mapEdit); + $("#showModal").on("shown.bs.modal", function () { map.invalidateSize(); }); + $("#editModal").on("shown.bs.modal", function () { + mapEdit.invalidateSize(); + }); + map.on("click", onMapClick); }); @@ -64,59 +75,6 @@ function validatePrice(input) { input.value = formatted.replace("Rp", "").trim(); } -function getRegencies(provinceId) { - regencyContainer.style.display = "none"; - districtContainer.style.display = "none"; - loading.style.display = "block"; - mapContainer.style.display = "none"; - - const url = "/location/get-regency/" + provinceId; - $.ajax({ - url: url, - type: "GET", - success: function (response) { - if (response.success) { - loading.style.display = "none"; - const data = response.data; - - regencyVal.clearStore(); - regencyVal.clearChoices(); - - regencyVal.value = ""; - regencyVal.setChoices([ - { - value: "", - label: "Pilih Kabupaten", - selected: true, - disabled: true, - }, - ]); - - if (Array.isArray(data)) { - regencyVal.setChoices( - data.map((regency) => ({ - value: regency.id, - label: regency.name, - selected: false, - disabled: false, - })) - ); - regencyContainer.style.display = "block"; - } else { - mapContainer.style.display = "block"; - mapContainer.innerHTML = - "

Terjadi kesalaahan saat mengambil data, silahkan coba beberapa saat lagi

"; - } - } - }, - error: function (xhr, status, error) { - mapContainer.style.display = "block"; - mapContainer.innerHTML = - "

Terjadi kesalaahan saat mengambil data, silahkan coba beberapa saat lagi

"; - }, - }); -} - function showmap(districtId) { if (!navigator.geolocation) { alert("Geolocation tidak didukung oleh browser ini."); @@ -204,6 +162,82 @@ function onMapDragend() { lngField.value = coordinates.lng; } +function getProvinces(provinceId) { + return new Promise(function (resolve, reject) { + $.ajax({ + url: "/location/get-province", + type: "GET", + success: function (response) { + if (response.success) { + const province = response.data.find( + (province) => province.id == provinceId + ); + + resolve(province); + } else { + reject(new Error("Terjadi kesalahan saat mengambil data")); + } + }, + error: function (xhr, status, error) { + reject(new Error("Terjadi kesalahan saat mengambil data")); + }, + }); + }); +} + +function getRegencies(provinceId) { + regencyContainer.style.display = "none"; + districtContainer.style.display = "none"; + loading.style.display = "block"; + mapContainer.style.display = "none"; + + const url = "/location/get-regency/" + provinceId; + $.ajax({ + url: url, + type: "GET", + success: function (response) { + if (response.success) { + loading.style.display = "none"; + const data = response.data; + + regencyVal.clearStore(); + regencyVal.clearChoices(); + + regencyVal.value = ""; + regencyVal.setChoices([ + { + value: "", + label: "Pilih Kabupaten", + selected: true, + disabled: true, + }, + ]); + + if (Array.isArray(data)) { + regencyVal.setChoices( + data.map((regency) => ({ + value: regency.id, + label: regency.name, + selected: false, + disabled: false, + })) + ); + regencyContainer.style.display = "block"; + } else { + mapContainer.style.display = "block"; + mapContainer.innerHTML = + "

Terjadi kesalaahan saat mengambil data, silahkan coba beberapa saat lagi

"; + } + } + }, + error: function (xhr, status, error) { + mapContainer.style.display = "block"; + mapContainer.innerHTML = + "

Terjadi kesalaahan saat mengambil data, silahkan coba beberapa saat lagi

"; + }, + }); +} + function getDistricts(regencyId) { districtContainer.style.display = "none"; loading.style.display = "block"; @@ -256,14 +290,34 @@ function getDistricts(regencyId) { }); } -function updateData(land) { +async function updateData(land) { var form = document.getElementById("edit-form"); - var landName = document.getElementById("landname-edit-field"); - var status = document.getElementById("status-edit-field"); + var ownerEditField = form.querySelector("#owner-edit-field"); + var noHpEditField = form.querySelector("#nohp-edit-field"); + var rentalPriceEditField = form.querySelector("#rentalprice-edit-field"); + var rentalStartEditField = form.querySelector("#rentalstart-edit-field"); + var rentalUntilEditField = form.querySelector("#rentaluntil-edit-field"); + var landNameEditField = form.querySelector("#landname-edit-field"); + var provinceEditField = form.querySelector("#province-edit-field"); + var provinceEditVal = new Choices(provinceEditField); + var regencyEditField = form.querySelector("#regency-edit-field"); + var districtEditField = form.querySelector("#district-edit-field"); + var latEditField = form.querySelector("#lat-edit"); + var lngEditField = form.querySelector("#lng-edit"); - landName.value = land.name; - status.value = land.description; - form.action = "/data-lahan/" + land.id; + let rentalPrice = new Intl.NumberFormat("id-ID", { + style: "currency", + currency: "IDR", + minimumFractionDigits: 0, + }).format(land.rental_price); + + ownerEditField.value = land.owner; + noHpEditField.value = land.no_hp; + rentalPriceEditField.value = rentalPrice.replace(/Rp\s?/g, "").trim(); + rentalStartEditField.value = land.rental_start; + rentalUntilEditField.value = land.rental_until; + landNameEditField.value = land.land_name; + provinceEditField.value = land.province_code; } function deleteData(id) { diff --git a/resources/views/master-data/lahan/index.blade.php b/resources/views/master-data/lahan/index.blade.php index a1b3c70..5f72887 100644 --- a/resources/views/master-data/lahan/index.blade.php +++ b/resources/views/master-data/lahan/index.blade.php @@ -10,6 +10,11 @@ height: 200px; width: 100%; } + + #map-edit { + height: 200px; + width: 100%; + } @endpush
@@ -310,19 +315,127 @@ class="fw-medium link-primary">#VZ2101 readonly />
+
+ + +
+ Masukan Nama Pemilik Lahan +
+
+ +
+ + +
+ Masukan Nomor HP +
+
+ +
+ + +
+ Masukan Harga Sewa +
+
+ +
+
+
+ + +
+ Masukan Tanggal Mulai +
+
+
+
+
+ + +
+ Masukan Tanggal Sampai +
+
+
+
+
+
+ Masukan Nama Lahan +
-
- - +
+ + +
+ Harap Pilih Provinsi +
+
+ +
+ + +
+ Harap Pilih Kabupaten atau Kota +
+
+ +
+ + +
+ Harap Pilih Kecamatan +
+
+ + + +
+ +
+ +
+ + +
-