From f747c36eb7a0e8d42497294c7613768fc3951089 Mon Sep 17 00:00:00 2001 From: arieeefajar Date: Fri, 7 Mar 2025 19:20:20 +0700 Subject: [PATCH] fix(master-land): fix index page --- .../Controllers/MasterData/LandController.php | 6 +- app/Models/Province.php | 10 + app/Models/Regency.php | 10 + .../pages/customJs/master-data/lahan/index.js | 282 +++--------------- .../views/master-data/lahan/index.blade.php | 176 +---------- 5 files changed, 76 insertions(+), 408 deletions(-) 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( - `
Anda berada di sini
Silahkan priksa lokasi petamu sudah benar.
` - ); - currentMarkerEdit = L.marker([-8.157416852745705, 113.72281580436439], { icon: iconMarker, draggable: true, @@ -93,15 +51,10 @@ document.addEventListener("DOMContentLoaded", function () { `
Anda berada di sini
Silahkan priksa lokasi petamu sudah benar.
` ); - $("#showModal").on("shown.bs.modal", function () { - map.invalidateSize(); - }); - $("#editModal").on("shown.bs.modal", function () { mapEdit.invalidateSize(); }); - map.on("click", onMapClick); mapEdit.on("click", onMapClick); }); @@ -129,15 +82,10 @@ function getProvinces(provinceId) { } function getRegencies(provinceId) { - regencyContainer.style.display = "none"; regencyEditContainer.style.display = "none"; - 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-regency/" + provinceId; @@ -146,26 +94,12 @@ function getRegencies(provinceId) { type: "GET", success: function (response) { if (response.success) { - loading.style.display = "none"; loadingEdit.style.display = "none"; const data = response.data; - regencyVal.clearStore(); - regencyVal.clearChoices(); - regencyEditVal.clearStore(); regencyEditVal.clearChoices(); - regencyVal.value = ""; - regencyVal.setChoices([ - { - value: "", - label: "Pilih Kabupaten", - selected: true, - disabled: true, - }, - ]); - regencyEditVal.value = ""; regencyEditVal.setChoices([ { @@ -177,15 +111,6 @@ function getRegencies(provinceId) { ]); if (Array.isArray(data)) { - regencyVal.setChoices( - data.map((regency) => ({ - value: regency.id, - label: regency.name, - selected: false, - disabled: false, - })) - ); - regencyEditVal.setChoices( data.map((regency) => ({ value: regency.id, @@ -194,13 +119,8 @@ function getRegencies(provinceId) { disabled: false, })) ); - regencyContainer.style.display = "block"; regencyEditContainer.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

"; @@ -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( - `
Anda berada di sini
Silahkan priksa lokasi petamu sudah benar.
` - ) - .openPopup(); - currentMarkerEdit .bindPopup( `
Anda berada di sini
Silahkan priksa lokasi petamu sudah benar.
` ) .openPopup(); - latField.value = lat; - lngField.value = lng; - latEditField.value = lat; lngEditField.value = lng; }, @@ -549,23 +402,13 @@ function onMapClick(e) { var lat = e.latlng.lat; var lng = e.latlng.lng; - if (!currentMarker || !currentMarkerEdit) { - currentMarker = L.marker(e.latlng).addTo(map); + if (!currentMarkerEdit) { currentMarkerEdit = L.marker(e.latlng).addTo(mapEdit); } else { - currentMarker.setLatLng(e.latlng); currentMarkerEdit.setLatLng(e.latlng); } - - currentMarker.on("dragend", onPointerDragend); currentMarkerEdit.on("dragend", onPointerDragend); - currentMarker - .bindPopup( - `
Anda berada di sini
Silahkan priksa lokasi petamu sudah benar.
` - ) - .openPopup(); - currentMarkerEdit .bindPopup( `
Anda berada di sini
Silahkan priksa lokasi petamu sudah benar.
` @@ -590,27 +433,6 @@ function onPointerDragend() { lngField.value = coordinates.lng; } -function validatePhoneNumber(input) { - input.value = input.value.replace(/\D/g, ""); - - if (input.value.length < 10 || input.value.length > 13) { - input.setCustomValidity("Nomor telepon tidak valid"); - } else { - input.setCustomValidity(""); - } -} - -function validatePrice(input) { - let value = input.value.replace(/\D/g, ""); - let formatted = new Intl.NumberFormat("id-ID", { - style: "currency", - currency: "IDR", - minimumFractionDigits: 0, - }).format(value); - - input.value = formatted.replace("Rp", "").trim(); -} - var checkAll = document.getElementById("checkAll"); checkAll && (checkAll.onclick = function () { @@ -722,67 +544,55 @@ function updateList() { })), userList.update(); } -filterContact("All"), - ischeckboxcheck(), - document - .getElementById("showModal") - .addEventListener("hidden.bs.modal", function () { - clearFields(); - }), - document - .querySelector("#customerList") - .addEventListener("click", function () { - ischeckboxcheck(); - }); +filterContact("All"), ischeckboxcheck(), document.getElementById("showModal"); +document.querySelector("#customerList").addEventListener("click", function () { + ischeckboxcheck(); +}); var table = document.getElementById("customerTable"), tr = table.getElementsByTagName("tr"), trlist = table.querySelectorAll(".list tr"), count = Number(isValue.replace(/[^0-9]/g, "")) + 1; -addBtn.addEventListener("click", function (e) { - "" !== customerNameField.value && - "" !== emailField.value && - "" !== dateField.value && - "" !== phoneField.value && - (customerList.add({ - id: - '#VZ' + - count + - "", - customer_name: customerNameField.value, - email: emailField.value, - date: dateField.value, - phone: phoneField.value, - status: isStatus(statusField.value), +// addBtn.addEventListener("click", function (e) { +// "" !== customerNameField.value && +// "" !== emailField.value && +// "" !== dateField.value && +// "" !== phoneField.value && +// (customerList.add({ +// id: +// '#VZ' + +// count + +// "", +// customer_name: customerNameField.value, +// email: emailField.value, +// date: dateField.value, +// phone: phoneField.value, +// status: isStatus(statusField.value), +// }), +// document.getElementById("close-modal").click(), +// clearFields(), +// filterContact("All"), +// count++); +// }), +editBtn.addEventListener("click", function (e) { + (document.getElementById("exampleModalLabel").innerHTML = "Edit Customer"), + customerList.get({ id: idField.value }).forEach(function (e) { + (isid = new DOMParser().parseFromString(e._values.id, "text/html")), + isid.body.firstElementChild.innerHTML == itemId && + e.values({ + id: + '' + + idField.value + + "", + customer_name: customerNameField.value, + email: emailField.value, + date: dateField.value, + phone: phoneField.value, + status: isStatus(statusField.value), + }); }), document.getElementById("close-modal").click(), - clearFields(), - filterContact("All"), - count++); -}), - editBtn.addEventListener("click", function (e) { - (document.getElementById("exampleModalLabel").innerHTML = - "Edit Customer"), - customerList.get({ id: idField.value }).forEach(function (e) { - (isid = new DOMParser().parseFromString( - e._values.id, - "text/html" - )), - isid.body.firstElementChild.innerHTML == itemId && - e.values({ - id: - '' + - idField.value + - "", - customer_name: customerNameField.value, - email: emailField.value, - date: dateField.value, - phone: phoneField.value, - status: isStatus(statusField.value), - }); - }), - document.getElementById("close-modal").click(), - clearFields(); - }); + clearFields(); +}); function isStatus(e) { switch (e) { case "Active": diff --git a/resources/views/master-data/lahan/index.blade.php b/resources/views/master-data/lahan/index.blade.php index 3dbe139..e988c23 100644 --- a/resources/views/master-data/lahan/index.blade.php +++ b/resources/views/master-data/lahan/index.blade.php @@ -73,10 +73,8 @@ class="ri-add-line align-bottom me-1"> No - Nama Lahan Pemilik - Harga Sewa - Lama Sewa + Alamat Action @@ -86,13 +84,12 @@ class="ri-add-line align-bottom me-1"> {{ $loop->iteration }} #VZ2101 - {{ $land->land_name }} {{ $land->owner }} - Rp.{{ number_format($land->rental_price) }} - {{ \Carbon\Carbon::parse($land->length_of_ease)->diffInDays(\Carbon\Carbon::parse($land->rental_until)) }} - Hari + {{ $land->address }}, Kecamatan + {{ $district->name }}, + {{ $regency->name }}, Provinsi {{ $province->name }}
@@ -144,169 +141,8 @@ class="fw-medium link-primary">#VZ2101
- {{-- add modal --}} - - {{-- edit modal --}} -