fix(master-land): create page land

This commit is contained in:
arieeefajar 2025-03-05 21:54:56 +07:00
parent 5dce5fbcf8
commit d1624a4c6d
10 changed files with 649 additions and 29 deletions

View File

@ -17,6 +17,12 @@ public function index()
return view('master-data.lahan.index', compact('lands', 'provinces'));
}
public function create()
{
$provinces = Province::all();
return view('master-data.lahan.create', compact('provinces'));
}
public function store(Request $request)
{
$customMessage = [

90
leafletDrawer.html Normal file
View File

@ -0,0 +1,90 @@
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Leaflet Draw Polygon</title>
<!-- Leaflet CSS -->
<link
rel="stylesheet"
href="https://unpkg.com/leaflet/dist/leaflet.css"
/>
<!-- Leaflet Draw CSS -->
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/leaflet.draw/1.0.4/leaflet.draw.css"
/>
<script src="https://unpkg.com/leaflet/dist/leaflet.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet.draw/1.0.4/leaflet.draw.js"></script>
<style>
#map {
height: 500px;
} /* Atur tinggi peta */
</style>
</head>
<body>
<div id="map"></div>
<script>
// 1⃣ Inisialisasi peta
var map = L.map("map").setView([-6.2, 106.816666], 12); // Jakarta
// 2⃣ Tambahkan tile layer (OpenStreetMap)
L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", {
attribution: "© OpenStreetMap contributors",
}).addTo(map);
// 3⃣ Inisialisasi fitur gambar (Leaflet Draw)
var drawnItems = new L.FeatureGroup();
map.addLayer(drawnItems);
var drawControl = new L.Control.Draw({
draw: {
polygon: true, // Izinkan user menggambar polygon
polyline: false,
rectangle: false,
circle: false,
marker: false,
circlemarker: false,
},
edit: {
featureGroup: drawnItems, // Edit hanya objek yang sudah digambar
remove: true, // Izinkan menghapus objek
},
});
map.addControl(drawControl);
// 4⃣ Event saat user menggambar polygon
map.on("draw:created", function (event) {
var layer = event.layer;
drawnItems.addLayer(layer);
var coordinates = layer.getLatLngs();
console.log("Koordinat Polygon:", coordinates);
alert(
"Polygon berhasil dibuat! Cek console untuk koordinatnya."
);
});
// 5⃣ Event saat user mengedit polygon
map.on("draw:edited", function (event) {
var layers = event.layers;
layers.eachLayer(function (layer) {
var coordinates = layer.getLatLngs();
console.log("Koordinat setelah diedit:", coordinates);
alert(
"Polygon berhasil diedit! Cek console untuk koordinatnya."
);
});
});
// 6⃣ Event saat user menghapus polygon
map.on("draw:deleted", function (event) {
alert("Polygon telah dihapus!");
});
</script>
</body>
</html>

View File

@ -0,0 +1,347 @@
var map;
var currentMarker = null;
document.addEventListener("DOMContentLoaded", function () {
map = L.map("map", {
attributionControl: false,
}).setView([-8.157416852745705, 113.72281580436439], 16);
googleStreets = L.tileLayer(
"http://{s}.google.com/vt?lyrs=m&x={x}&y={y}&z={z}",
{
maxZoom: 20,
subdomains: ["mt0", "mt1", "mt2", "mt3"],
}
).addTo(map);
var iconMarker = L.icon({
iconUrl: "/assets/images/marker.png",
iconSize: [50, 50],
iconAnchor: [25, 50],
popupAnchor: [0, -50],
});
currentMarker = L.marker([-8.157416852745705, 113.72281580436439], {
icon: iconMarker,
draggable: true,
})
.addTo(map)
.bindPopup(
`<div class="text-center"><b>Anda berada di sini</b><br />Silahkan priksa lokasi petamu sudah benar.</div>`
);
var drawnItems = new L.FeatureGroup();
map.addLayer(drawnItems);
var drawControl = new L.Control.Draw({
draw: {
polygon: true, // Izinkan user menggambar polygon
polyline: false,
rectangle: false,
circle: false,
marker: false,
circlemarker: false,
},
edit: {
featureGroup: drawnItems, // Edit hanya objek yang sudah digambar
remove: true, // Izinkan menghapus objek
},
});
map.addControl(drawControl);
// 4⃣ Event saat user menggambar polygon
map.on("draw:created", function (event) {
var layer = event.layer;
drawnItems.addLayer(layer);
var coordinates = layer.getLatLngs();
console.log("Koordinat Polygon:", coordinates);
alert("Polygon berhasil dibuat! Cek console untuk koordinatnya.");
});
// 5⃣ Event saat user mengedit polygon
map.on("draw:edited", function (event) {
var layers = event.layers;
layers.eachLayer(function (layer) {
var coordinates = layer.getLatLngs();
console.log("Koordinat setelah diedit:", coordinates);
alert("Polygon berhasil diedit! Cek console untuk koordinatnya.");
});
});
// 6⃣ Event saat user menghapus polygon
map.on("draw:deleted", function (event) {
alert("Polygon telah dihapus!");
});
$("#showModal").on("shown.bs.modal", function () {
map.invalidateSize();
});
map.on("click", onMapClick);
});
var form = document.getElementById("add-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 districtContainer = form.querySelector("#district-container");
var districtField = form.querySelector("#district-field");
var districtVal = new Choices(districtField, {
shouldSort: false,
});
var addressContainer = form.querySelector("#address-container");
var addressField = form.querySelector("#address-field");
var mapContainer = form.querySelector("#map-container");
var latField = form.querySelector("#lat");
var lngField = form.querySelector("#lng");
var btnContainer = form.querySelector("#add-footer");
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;
$.ajax({
url: url,
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([
// {
// 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,
}))
);
// regencyEditVal.setChoices(
// data.map((regency) => ({
// value: regency.id,
// label: regency.name,
// selected: false,
// disabled: false,
// }))
// );
regencyContainer.style.display = "block";
// regencyEditContainer.style.display = "block";
} else {
mapContainer.style.display = "block";
mapContainer.innerHTML =
"<p class='text-center text-muted'>Terjadi kesalaahan saat mengambil data, silahkan coba beberapa saat lagi</p>";
// mapEditConatiner.style.display = "block";
// mapEditConatiner.innerHTML =
// "<p class='text-center text-muted'>Terjadi kesalaahan saat mengambil data, silahkan coba beberapa saat lagi</p>";
}
}
},
error: function (xhr, status, error) {
mapContainer.style.display = "block";
mapContainer.innerHTML =
"<p class='text-center text-muted'>Terjadi kesalaahan saat mengambil data, silahkan coba beberapa saat lagi</p>";
// mapEditConatiner.style.display = "block";
// mapEditConatiner.innerHTML =
// "<p class='text-center text-muted'>Terjadi kesalaahan saat mengambil data, silahkan coba beberapa saat lagi</p>";
},
});
}
function getDistricts(regencyId) {
districtContainer.style.display = "none";
addressContainer.style.display = "none";
loading.style.display = "block";
mapContainer.style.display = "none";
const url = "/location/get-district/" + regencyId;
$.ajax({
url: url,
type: "GET",
success: function (response) {
if (response.success) {
loading.style.display = "none";
const data = response.data;
districtVal.clearStore();
districtVal.clearChoices();
districtVal.value = "";
districtVal.setChoices([
{
value: "",
label: "Pilih Kecamatan",
selected: true,
disabled: true,
},
]);
if (Array.isArray(data)) {
districtVal.setChoices(
data.map((district) => ({
value: district.id,
label: district.name,
selected: false,
disabled: false,
}))
);
districtContainer.style.display = "block";
} else {
mapContainer.style.display = "block";
mapContainer.innerHTML =
"<p class='text-center text-muted'>Terjadi kesalaahan saat mengambil data, silahkan coba beberapa saat lagi</p>";
}
}
},
error: function (xhr, status, error) {
mapContainer.style.display = "block";
mapContainer.innerHTML =
"<p class='text-center text-muted'>Terjadi kesalaahan saat mengambil data, silahkan coba beberapa saat lagi</p>";
},
});
}
function showmap(districtId) {
loading.style.display = "block";
if (!navigator.geolocation) {
alert("Geolocation tidak didukung oleh browser ini.");
return;
}
navigator.geolocation.getCurrentPosition(
function (position) {
loading.style.display = "none";
mapContainer.style.display = "block";
map.invalidateSize();
addressContainer.style.display = "block";
btnContainer.style.display = "block";
var lat = position.coords.latitude;
var lng = position.coords.longitude;
map.setView([lat, lng], 16);
if (currentMarker) {
map.removeLayer(currentMarker);
}
if (currentMarker || currentMarkerEdit) {
map.removeLayer(currentMarker);
}
var iconMarker = L.icon({
iconUrl: "/assets/images/marker.png",
iconSize: [50, 50],
iconAnchor: [25, 50],
popupAnchor: [0, -50],
});
currentMarker = L.marker([lat, lng], {
icon: iconMarker,
draggable: true,
}).addTo(map);
currentMarker.on("dragend", onPointerDragend);
currentMarker
.bindPopup(
`<div class="text-center"><b>Anda berada di sini</b><br />Silahkan priksa lokasi petamu sudah benar.</div>`
)
.openPopup();
latField.value = lat;
lngField.value = lng;
},
function (error) {
alert("Error: " + error.message);
}
);
}
function onMapClick(e) {
var lat = e.latlng.lat;
var lng = e.latlng.lng;
if (!currentMarker) {
currentMarker = L.marker(e.latlng).addTo(map);
} else {
currentMarker.setLatLng(e.latlng);
}
currentMarker.on("dragend", onPointerDragend);
currentMarker
.bindPopup(
`<div class="text-center"><b>Anda berada di sini</b><br />Silahkan priksa lokasi petamu sudah benar.</div>`
)
.openPopup();
latField.value = lat;
lngField.value = lng;
}
function onPointerDragend() {
if (!currentMarker) return;
var coordinates = currentMarker.getLatLng();
currentMarker
.setLatLng(coordinates)
.bindPopup(
`<div class="text-center"><b>Anda berada di sini</b><br />Silahkan priksa lokasi petamu sudah benar.</div>`
)
.openPopup();
latField.value = coordinates.lat;
lngField.value = coordinates.lng;
}

View File

@ -1 +1,12 @@
(document.querySelectorAll("[toast-list]")||document.querySelectorAll("[data-choices]")||document.querySelectorAll("[data-provider]"))&&(document.writeln("<script type='text/javascript' src='https://cdn.jsdelivr.net/npm/toastify-js'><\/script>"),document.writeln("<script type='text/javascript' src='assets/libs/choices.js/public/assets/scripts/choices.min.js'><\/script>"),document.writeln("<script type='text/javascript' src='assets/libs/flatpickr/flatpickr.min.js'><\/script>"));
(document.querySelectorAll("[toast-list]") ||
document.querySelectorAll("[data-choices]") ||
document.querySelectorAll("[data-provider]")) &&
(document.writeln(
"<script type='text/javascript' src='https://cdn.jsdelivr.net/npm/toastify-js'></script>"
),
document.writeln(
"<script type='text/javascript' src='/assets/libs/choices.js/public/assets/scripts/choices.min.js'></script>"
),
document.writeln(
"<script type='text/javascript' src='/assets/libs/flatpickr/flatpickr.min.js'></script>"
));

View File

@ -9,18 +9,18 @@
<meta content="Premium Multipurpose Admin & Dashboard Template" name="description" />
<meta content="Themesbrand" name="author" />
<!-- App favicon -->
<link rel="shortcut icon" href="assets/images/favicon.ico">
<link rel="shortcut icon" href="{{ asset('assets/images/favicon.ico') }}">
<!-- Layout config Js -->
<script src="assets/js/layout.js"></script>
<script src="{{ asset('assets/js/layout.js') }}"></script>
<!-- Bootstrap Css -->
<link href="assets/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<link href="{{ asset('assets/css/bootstrap.min.css') }}" rel="stylesheet" type="text/css" />
<!-- Icons Css -->
<link href="assets/css/icons.min.css" rel="stylesheet" type="text/css" />
<link href="{{ asset('assets/css/icons.min.css') }}" rel="stylesheet" type="text/css" />
<!-- App Css-->
<link href="assets/css/app.min.css" rel="stylesheet" type="text/css" />
<link href="{{ asset('assets/css/app.min.css') }}" rel="stylesheet" type="text/css" />
<!-- custom Css-->
<link href="assets/css/custom.min.css" rel="stylesheet" type="text/css" />
<link href="{{ asset('assets/css/custom.min.css') }}" rel="stylesheet" type="text/css" />
@stack('other-css')
</head>
@ -594,18 +594,18 @@ class="form-check-input">
@include('sweetalert::alert')
<!-- JAVASCRIPT -->
<script src="assets/libs/bootstrap/js/bootstrap.bundle.min.js"></script>
<script src="assets/libs/simplebar/simplebar.min.js"></script>
<script src="assets/libs/node-waves/waves.min.js"></script>
<script src="assets/libs/feather-icons/feather.min.js"></script>
<script src="assets/js/pages/plugins/lord-icon-2.1.0.js"></script>
<script src="assets/js/plugins.js"></script>
<script src="{{ asset('assets/libs/bootstrap/js/bootstrap.bundle.min.js') }}"></script>
<script src="{{ asset('assets/libs/simplebar/simplebar.min.js') }}"></script>
<script src="{{ asset('assets/libs/node-waves/waves.min.js') }}"></script>
<script src="{{ asset('assets/libs/feather-icons/feather.min.js') }}"></script>
<script src="{{ asset('assets/js/pages/plugins/lord-icon-2.1.0.js') }}"></script>
<script src="{{ asset('assets/js/plugins.js') }}"></script>
@stack('other-js')
<!-- App js -->
<script src="assets/js/customApp.js"></script>
<script src="assets/libs/jquery/jquery.min.js"></script>
<script src="{{ asset('assets/js/app.js') }}"></script>
<script src="{{ asset('assets/libs/jquery/jquery.min.js') }}"></script>
</body>
</html>

View File

@ -0,0 +1,164 @@
@extends('layouts.app')
@push('title', 'Tambah Data Lahan')
@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="" />
<!-- Leaflet Draw CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet.draw/1.0.4/leaflet.draw.css" />
<style>
#map {
height: 400px;
width: 100%;
z-index: 0;
}
</style>
@endpush
<div class="page-content">
<div class="container-fluid">
<!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
<h4 class="mb-sm-0">Tambah Data Lahan</h4>
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="javascript: void(0);">Master Data</a></li>
<li class="breadcrumb-item active">Tambah Data Lahan</li>
</ol>
</div>
</div>
</div>
</div>
<!-- end page title -->
<div class="row">
<div class="col-lg-12">
<div class="card">
<div class="card-header">
<h4 class="card-title mb-0">Tambah Data Lahan</h4>
</div>
<div class="card-body">
<form id="add-form" class="needs-validation" method="POST" novalidate
action="{{ Auth::user()->role == 'admin' ? route('master_data.lahan.store') : route('lahan.store') }}">
@csrf
<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-field" class="form-label">Pemilik Lahan</label>
<input type="text" id="owner-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="landname-field" class="form-label">Nama Lahan</label>
<input type="text" id="landname-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-field" class="form-label">Provinsi</label>
<select name="province_id" id="province-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-container" style="display: none">
<label for="regency-field" class="form-label">Kabupaten atau Kota</label>
<select name="regency_id" id="regency-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-container" style="display: none">
<label for="district-field" class="form-label">Kecamatan</label>
<select name="district_id" id="district-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" 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-container" style="display: none">
<label for="address-field" class="form-label">Alamat</label>
<textarea name="address" id="address-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-container" style="display: none">
<label for="map" class="form-label">Lokasi</label>
<div id="map"></div>
<div class="mt-3">
<input type="hidden" name="lat" id="lat" class="form-control"
readonly>
<input type="hidden" name="lng" id="lng" class="form-control"
readonly>
</div>
</div>
</div>
<div class="modal-footer" id="add-footer" style="display: none">
<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="add-btn">Simpan</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
@push('other-js')
<script src="{{ asset('assets/js/pages/customJs/master-data/lahan/create.js') }}"></script>
<!-- Make sure you put this AFTER Leaflet's CSS -->
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"
integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo=" crossorigin=""></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet.draw/1.0.4/leaflet.draw.js"></script>
@endpush
@endsection

View File

@ -52,9 +52,10 @@
<div class="row g-4 mb-3">
<div class="col-sm-auto">
<div>
<button type="button" class="btn btn-success add-btn" data-bs-toggle="modal"
id="create-btn" data-bs-target="#showModal"><i
class="ri-add-line align-bottom me-1"></i> Tambah</button>
<a href="{{ route('master_data.lahan.create') }}"
class="btn btn-success add-btn" id="create-btn"><i
class="ri-add-line align-bottom me-1"></i>
Tambah</a>
</div>
</div>
<div class="col-sm">

View File

@ -6,19 +6,19 @@
<div class="navbar-brand-box horizontal-logo">
<a href="index.html" class="logo logo-dark">
<span class="logo-sm">
<img src="assets/images/logo-sm.png" alt="" height="22">
<img src="{{ asset('assets/images/logo-sm.png') }}" alt="" height="22">
</span>
<span class="logo-lg">
<img src="assets/images/logo-dark.png" alt="" height="17">
<img src="{{ asset('assets/images/logo-dark.png') }}" alt="" height="17">
</span>
</a>
<a href="index.html" class="logo logo-light">
<span class="logo-sm">
<img src="assets/images/logo-sm.png" alt="" height="22">
<img src="{{ asset('assets/images/logo-sm.png') }}" alt="" height="22">
</span>
<span class="logo-lg">
<img src="assets/images/logo-light.png" alt="" height="17">
<img src="{{ asset('assets/images/logo-light.png') }}" alt="" height="17">
</span>
</a>
</div>
@ -86,7 +86,7 @@
<!-- item -->
<a href="javascript:void(0);" class="dropdown-item notify-item py-2">
<div class="d-flex">
<img src="assets/images/users/avatar-2.jpg"
<img src="{{ asset('assets/images/users/avatar-2.jpg') }}"
class="me-3 rounded-circle avatar-xs" alt="user-pic">
<div class="flex-1">
<h6 class="m-0">Angela Bernier</h6>
@ -97,7 +97,7 @@ class="me-3 rounded-circle avatar-xs" alt="user-pic">
<!-- item -->
<a href="javascript:void(0);" class="dropdown-item notify-item py-2">
<div class="d-flex">
<img src="assets/images/users/avatar-3.jpg"
<img src="{{ asset('assets/images/users/avatar-3.jpg') }}"
class="me-3 rounded-circle avatar-xs" alt="user-pic">
<div class="flex-1">
<h6 class="m-0">David Grasso</h6>
@ -108,7 +108,7 @@ class="me-3 rounded-circle avatar-xs" alt="user-pic">
<!-- item -->
<a href="javascript:void(0);" class="dropdown-item notify-item py-2">
<div class="d-flex">
<img src="assets/images/users/avatar-5.jpg"
<img src="{{ asset('assets/images/users/avatar-5.jpg') }}"
class="me-3 rounded-circle avatar-xs" alt="user-pic">
<div class="flex-1">
<h6 class="m-0">Mike Bunch</h6>

View File

@ -4,19 +4,19 @@
<!-- Dark Logo-->
<a href="index.html" class="logo logo-dark">
<span class="logo-sm">
<img src="assets/images/logo-sm.png" alt="" height="22">
<img src="{{ asset('assets/images/logo-sm.png') }}" alt="" height="22">
</span>
<span class="logo-lg">
<img src="assets/images/logo-dark.png" alt="" height="17">
<img src="{{ asset('assets/images/logo-dark.png') }}" alt="" height="17">
</span>
</a>
<!-- Light Logo-->
<a href="index.html" class="logo logo-light">
<span class="logo-sm">
<img src="assets/images/logo-sm.png" alt="" height="22">
<img src="{{ asset('assets/images/logo-sm.png') }}" alt="" height="22">
</span>
<span class="logo-lg">
<img src="assets/images/logo-light.png" alt="" height="17">
<img src="{{ asset('assets/images/logo-light.png') }}" alt="" height="17">
</span>
</a>
<button type="button" class="btn btn-sm p-0 fs-20 header-item float-end btn-vertical-sm-hover"

View File

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