diff --git a/app/Http/Controllers/MasterData/LandController.php b/app/Http/Controllers/MasterData/LandController.php index 8565eb8..6b64521 100644 --- a/app/Http/Controllers/MasterData/LandController.php +++ b/app/Http/Controllers/MasterData/LandController.php @@ -15,8 +15,10 @@ class LandController extends Controller public function index() { $lands = Land::orderBy('created_at', 'desc')->get(); - $provinces = Province::all(); - return view('master-data.lahan.index', compact('lands', 'provinces')); + $province = Province::where('id', $lands->first()->province_code)->first(); + $regency = $province->regency()->where('id', $lands->first()->regency_code)->first(); + $district = $regency->district()->where('id', $lands->first()->district_code)->first(); + return view('master-data.lahan.index', compact('lands', 'province', 'regency', 'district')); } public function create() diff --git a/app/Models/Province.php b/app/Models/Province.php index 6a83e13..05b3c85 100644 --- a/app/Models/Province.php +++ b/app/Models/Province.php @@ -11,4 +11,14 @@ class Province extends Model protected $table = 'provinces'; protected $guarded = []; + + public function regencies() + { + return $this->hasMany(Regency::class); + } + + public function regency() + { + return $this->hasOne(Regency::class); + } } diff --git a/app/Models/Regency.php b/app/Models/Regency.php index 7700c49..3779c8d 100644 --- a/app/Models/Regency.php +++ b/app/Models/Regency.php @@ -11,4 +11,14 @@ class Regency extends Model protected $table = 'regencies'; protected $guarded = []; + + public function districts() + { + return $this->hasMany(District::class); + } + + public function district() + { + return $this->hasOne(District::class); + } } 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 b189f0b..31024c5 100644 --- a/public/assets/js/pages/customJs/master-data/lahan/index.js +++ b/public/assets/js/pages/customJs/master-data/lahan/index.js @@ -1,17 +1,7 @@ -var map, mapEdit; -var currentMarker = null; +var mapEdit; var currentMarkerEdit = null; -var form = document.getElementById("add-form"); var formEdit = document.getElementById("edit-form"); -var provinceField = form.querySelector("#province-field"); -var provinceVal = new Choices(provinceField); - -var regencyContainer = form.querySelector("#regency-container"); -var regencyField = form.querySelector("#regency-field"); -var regencyVal = new Choices(regencyField, { - shouldSort: false, -}); var regencyEditContainer = formEdit.querySelector("#regency-edit-container"); var regencyEditField = formEdit.querySelector("#regency-edit-field"); @@ -19,51 +9,28 @@ var regencyEditVal = new Choices(regencyEditField, { shouldSort: false, }); -var districtContainer = form.querySelector("#district-container"); -var districtField = form.querySelector("#district-field"); -var districtVal = new Choices(districtField, { - shouldSort: false, -}); - var districtEditContainer = formEdit.querySelector("#district-edit-container"); var districtEditField = formEdit.querySelector("#district-edit-field"); var districtEditVal = new Choices(districtEditField, { shouldSort: false, }); -var addressContainer = form.querySelector("#address-container"); -var addressField = form.querySelector("#address-field"); - var addressEditContainer = formEdit.querySelector("#address-edit-container"); var addressEditField = formEdit.querySelector("#address-edit-field"); -var mapContainer = form.querySelector("#map-container"); -var latField = form.querySelector("#lat"); -var lngField = form.querySelector("#lng"); - var mapEditConatiner = formEdit.querySelector("#map-edit-container"); var latEditField = formEdit.querySelector("#lat-edit"); var lngEditField = formEdit.querySelector("#lng-edit"); -var loading = form.querySelector("#loading"); var loadingEdit = formEdit.querySelector("#loading-edit"); -var btnContainer = form.querySelector("#add-footer"); var btnEditContainer = formEdit.querySelector("#edit-footer"); document.addEventListener("DOMContentLoaded", function () { - map = L.map("map", { - attributionControl: false, - }).setView([-8.157416852745705, 113.72281580436439], 16); - 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); @@ -75,15 +42,6 @@ document.addEventListener("DOMContentLoaded", function () { popupAnchor: [0, -50], }); - currentMarker = L.marker([-8.157416852745705, 113.72281580436439], { - icon: iconMarker, - draggable: true, - }) - .addTo(map) - .bindPopup( - `
Terjadi kesalaahan saat mengambil data, silahkan coba beberapa saat lagi
"; - mapEditConatiner.style.display = "block"; mapEditConatiner.innerHTML = "Terjadi kesalaahan saat mengambil data, silahkan coba beberapa saat lagi
"; @@ -208,10 +128,6 @@ function getRegencies(provinceId) { } }, error: function (xhr, status, error) { - mapContainer.style.display = "block"; - mapContainer.innerHTML = - "Terjadi kesalaahan saat mengambil data, silahkan coba beberapa saat lagi
"; - mapEditConatiner.style.display = "block"; mapEditConatiner.innerHTML = "Terjadi kesalaahan saat mengambil data, silahkan coba beberapa saat lagi
"; @@ -220,13 +136,9 @@ function getRegencies(provinceId) { } function getDistricts(regencyId) { - districtContainer.style.display = "none"; districtEditContainer.style.display = "none"; - addressContainer.style.display = "none"; addressEditContainer.style.display = "none"; - loading.style.display = "block"; loadingEdit.style.display = "block"; - mapContainer.style.display = "none"; mapEditConatiner.style.display = "none"; const url = "/location/get-district/" + regencyId; @@ -235,26 +147,12 @@ function getDistricts(regencyId) { type: "GET", success: function (response) { if (response.success) { - loading.style.display = "none"; loadingEdit.style.display = "none"; const data = response.data; - districtVal.clearStore(); - districtVal.clearChoices(); - districtEditVal.clearStore(); districtEditVal.clearChoices(); - districtVal.value = ""; - districtVal.setChoices([ - { - value: "", - label: "Pilih Kecamatan", - selected: true, - disabled: true, - }, - ]); - districtEditVal.value = ""; districtEditVal.setChoices([ { @@ -266,15 +164,6 @@ function getDistricts(regencyId) { ]); if (Array.isArray(data)) { - districtVal.setChoices( - data.map((district) => ({ - value: district.id, - label: district.name, - selected: false, - disabled: false, - })) - ); - districtEditVal.setChoices( data.map((district) => ({ value: district.id, @@ -283,12 +172,8 @@ function getDistricts(regencyId) { disabled: false, })) ); - districtContainer.style.display = "block"; districtEditContainer.style.display = "block"; } else { - mapContainer.style.display = "block"; - mapContainer.innerHTML = - "Terjadi kesalaahan saat mengambil data, silahkan coba beberapa saat lagi
"; mapEditConatiner.style.display = "block"; mapEditConatiner.innerHTML = "Terjadi kesalaahan saat mengambil data, silahkan coba beberapa saat lagi
"; @@ -296,10 +181,6 @@ function getDistricts(regencyId) { } }, error: function (xhr, status, error) { - mapContainer.style.display = "block"; - mapContainer.innerHTML = - "Terjadi kesalaahan saat mengambil data, silahkan coba beberapa saat lagi
"; - mapEditConatiner.style.display = "block"; mapEditConatiner.innerHTML = "Terjadi kesalaahan saat mengambil data, silahkan coba beberapa saat lagi
"; @@ -308,7 +189,6 @@ function getDistricts(regencyId) { } function showmap(districtId) { - loading.style.display = "block"; loadingEdit.style.display = "block"; if (!navigator.geolocation) { alert("Geolocation tidak didukung oleh browser ini."); @@ -317,20 +197,13 @@ function showmap(districtId) { navigator.geolocation.getCurrentPosition( function (position) { - loading.style.display = "none"; loadingEdit.style.display = "none"; - mapContainer.style.display = "block"; - map.invalidateSize(); - - addressContainer.style.display = "block"; - mapEditConatiner.style.display = "block"; mapEdit.invalidateSize(); addressEditContainer.style.display = "block"; - btnContainer.style.display = "block"; btnEditContainer.style.display = "block"; var lat = position.coords.latitude; @@ -338,14 +211,9 @@ function showmap(districtId) { console.log(lat, lng); - map.setView([lat, lng], 16); mapEdit.setView([lat, lng], 16); - if (currentMarker) { - map.removeLayer(currentMarker); - } - if (currentMarker || currentMarkerEdit) { - map.removeLayer(currentMarker); + if (currentMarkerEdit) { mapEdit.removeLayer(currentMarkerEdit); } @@ -356,34 +224,19 @@ function showmap(districtId) { popupAnchor: [0, -50], }); - currentMarker = L.marker([lat, lng], { - icon: iconMarker, - draggable: true, - }).addTo(map); - currentMarkerEdit = L.marker([lat, lng], { icon: iconMarker, draggable: true, }).addTo(mapEdit); - currentMarker.on("dragend", onPointerDragend); currentMarkerEdit.on("dragend", onPointerDragend); - currentMarker - .bindPopup( - `