fix(master-land): fix store function
This commit is contained in:
parent
d1624a4c6d
commit
fa9a30b9f0
|
@ -4,8 +4,10 @@
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Models\Land;
|
use App\Models\Land;
|
||||||
|
use App\Models\LandDetails;
|
||||||
use App\Models\Province;
|
use App\Models\Province;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
use Illuminate\Support\Facades\Validator;
|
use Illuminate\Support\Facades\Validator;
|
||||||
|
|
||||||
class LandController extends Controller
|
class LandController extends Controller
|
||||||
|
@ -30,26 +32,6 @@ public function store(Request $request)
|
||||||
'owner.max' => 'Nama pemilik maksimal 25 karakter',
|
'owner.max' => 'Nama pemilik maksimal 25 karakter',
|
||||||
'owner.string' => 'Nama pemilik harus berupa string',
|
'owner.string' => 'Nama pemilik harus berupa string',
|
||||||
|
|
||||||
'nohp.required' => 'Nomor HP wajib diisi',
|
|
||||||
'nohp.min' => 'Nomor HP minimal 10 karakter',
|
|
||||||
'nohp.max' => 'Nomor HP maksimal 13 karakter',
|
|
||||||
'nohp.string' => 'Nomor HP harus berupa string',
|
|
||||||
|
|
||||||
'rental_price.required' => 'Harga sewa wajib diisi',
|
|
||||||
'rental_price.numeric' => 'Harga sewa harus berupa angka',
|
|
||||||
|
|
||||||
'rental_start.required' => 'Tanggal mulai sewa wajib diisi',
|
|
||||||
'rental_start.date' => 'Tanggal mulai sewa harus berupa tanggal',
|
|
||||||
'rental_start.after_or_equal' => 'Tanggal mulai sewa harus hari ini atau setelahnya',
|
|
||||||
|
|
||||||
'rental_until.required' => 'Tanggal sampai sewa wajib diisi',
|
|
||||||
'rental_until.date' => 'Tanggal sampai sewa harus berupa tanggal',
|
|
||||||
'rental_until.after_or_equal' => 'Tanggal sampai sewa harus sama atau lebih besar dari tanggal mulai sewa',
|
|
||||||
|
|
||||||
'land_name.required' => 'Nama lahan wajib diisi',
|
|
||||||
'land_name.max' => 'Nama lahan maksimal 25 karakter',
|
|
||||||
'land_name.string' => 'Nama lahan harus berupa string',
|
|
||||||
|
|
||||||
'province_id.required' => 'Provinsi wajib diisi',
|
'province_id.required' => 'Provinsi wajib diisi',
|
||||||
'province_id.exists' => 'Provinsi tidak ditemukan',
|
'province_id.exists' => 'Provinsi tidak ditemukan',
|
||||||
|
|
||||||
|
@ -68,51 +50,52 @@ public function store(Request $request)
|
||||||
|
|
||||||
'lng.required' => 'Longitude wajib diisi',
|
'lng.required' => 'Longitude wajib diisi',
|
||||||
'lng.numeric' => 'Longitude harus berupa angka',
|
'lng.numeric' => 'Longitude harus berupa angka',
|
||||||
];
|
|
||||||
|
|
||||||
$request->merge([
|
'polygon.required' => 'Petak lahan wajib digambar',
|
||||||
'rental_price' => str_replace('.', '', $request->rental_price),
|
];
|
||||||
]);
|
|
||||||
|
|
||||||
$validator = Validator::make($request->all(), [
|
$validator = Validator::make($request->all(), [
|
||||||
'owner' => 'required|string|max:25',
|
'owner' => 'required|string|max:25',
|
||||||
'nohp' => 'required|string|min:10|max:13',
|
|
||||||
'rental_price' => 'required|numeric',
|
|
||||||
'rental_start' => 'required|date|after_or_equal:today',
|
|
||||||
'rental_until' => 'required|date|after_or_equal:rental_start',
|
|
||||||
'land_name' => 'required|string|max:25',
|
|
||||||
'province_id' => 'required|exists:provinces,id',
|
'province_id' => 'required|exists:provinces,id',
|
||||||
'regency_id' => 'required|exists:regencies,id',
|
'regency_id' => 'required|exists:regencies,id',
|
||||||
'district_id' => 'required|exists:districts,id',
|
'district_id' => 'required|exists:districts,id',
|
||||||
'address' => 'required|string|max:100',
|
'address' => 'required|string|max:100',
|
||||||
'lat' => 'required|numeric',
|
'lat' => 'required|numeric',
|
||||||
'lng' => 'required|numeric',
|
'lng' => 'required|numeric',
|
||||||
|
'polygon' => 'required',
|
||||||
], $customMessage);
|
], $customMessage);
|
||||||
|
|
||||||
|
$polygon = json_decode($request->polygon, true);
|
||||||
|
|
||||||
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();
|
||||||
}
|
}
|
||||||
|
|
||||||
$land = new Land();
|
DB::beginTransaction();
|
||||||
$land->owner = $request->owner;
|
|
||||||
$land->no_hp = $request->nohp;
|
|
||||||
$land->rental_price = $request->rental_price;
|
|
||||||
$land->rental_start = $request->rental_start;
|
|
||||||
$land->rental_until = $request->rental_until;
|
|
||||||
$land->land_name = $request->land_name;
|
|
||||||
$land->province_code = $request->province_id;
|
|
||||||
$land->regency_code = $request->regency_id;
|
|
||||||
$land->district_code = $request->district_id;
|
|
||||||
$land->address = $request->address;
|
|
||||||
$land->latitude = $request->lat;
|
|
||||||
$land->longitude = $request->lng;
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
$land = new Land();
|
||||||
|
$land->owner = $request->owner;
|
||||||
|
$land->province_code = $request->province_id;
|
||||||
|
$land->regency_code = $request->regency_id;
|
||||||
|
$land->district_code = $request->district_id;
|
||||||
|
$land->address = $request->address;
|
||||||
|
$land->latitude = $request->lat;
|
||||||
|
$land->longitude = $request->lng;
|
||||||
$land->save();
|
$land->save();
|
||||||
|
|
||||||
|
foreach ($polygon as $point) {
|
||||||
|
$landDetails = new LandDetails();
|
||||||
|
$landDetails->land_id = $land->id;
|
||||||
|
$landDetails->lat = $point['lat'];
|
||||||
|
$landDetails->lng = $point['lng'];
|
||||||
|
$landDetails->save();
|
||||||
|
}
|
||||||
|
DB::commit();
|
||||||
toast('Data berhasil disimpan', 'success')->position('top-right')->autoclose(3000);
|
toast('Data berhasil disimpan', 'success')->position('top-right')->autoclose(3000);
|
||||||
return redirect()->back();
|
return redirect()->back();
|
||||||
} catch (\Throwable $th) {
|
} catch (\Throwable $th) {
|
||||||
|
DB::rollBack();
|
||||||
dd($th->getMessage());
|
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();
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class LandDetails extends Model
|
||||||
|
{
|
||||||
|
use HasFactory;
|
||||||
|
|
||||||
|
protected $table = 'land_details';
|
||||||
|
protected $guarded = [];
|
||||||
|
}
|
|
@ -13,12 +13,7 @@ public function up(): void
|
||||||
{
|
{
|
||||||
Schema::create('land', function (Blueprint $table) {
|
Schema::create('land', function (Blueprint $table) {
|
||||||
$table->id();
|
$table->id();
|
||||||
$table->string('land_name');
|
|
||||||
$table->string('owner');
|
$table->string('owner');
|
||||||
$table->string('no_hp');
|
|
||||||
$table->string('rental_price');
|
|
||||||
$table->date('rental_start');
|
|
||||||
$table->date('rental_until');
|
|
||||||
$table->string('province_code');
|
$table->string('province_code');
|
||||||
$table->string('regency_code');
|
$table->string('regency_code');
|
||||||
$table->string('district_code');
|
$table->string('district_code');
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::create('land_details', function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->unsignedBigInteger('land_id');
|
||||||
|
$table->string('lat');
|
||||||
|
$table->string('lng');
|
||||||
|
$table->timestamps();
|
||||||
|
});
|
||||||
|
|
||||||
|
Schema::table('land_details', function (Blueprint $table) {
|
||||||
|
$table->foreign('land_id')->references('id')->on('land')->onDelete('cascade');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('land_details');
|
||||||
|
}
|
||||||
|
};
|
|
@ -1,7 +1,7 @@
|
||||||
var map;
|
var map, drawnItems, drawControl, googleStreets, iconMarker;
|
||||||
var currentMarker = null;
|
var currentMarker = null;
|
||||||
|
|
||||||
document.addEventListener("DOMContentLoaded", function () {
|
function initMap() {
|
||||||
map = L.map("map", {
|
map = L.map("map", {
|
||||||
attributionControl: false,
|
attributionControl: false,
|
||||||
}).setView([-8.157416852745705, 113.72281580436439], 16);
|
}).setView([-8.157416852745705, 113.72281580436439], 16);
|
||||||
|
@ -14,7 +14,7 @@ document.addEventListener("DOMContentLoaded", function () {
|
||||||
}
|
}
|
||||||
).addTo(map);
|
).addTo(map);
|
||||||
|
|
||||||
var iconMarker = L.icon({
|
iconMarker = L.icon({
|
||||||
iconUrl: "/assets/images/marker.png",
|
iconUrl: "/assets/images/marker.png",
|
||||||
iconSize: [50, 50],
|
iconSize: [50, 50],
|
||||||
iconAnchor: [25, 50],
|
iconAnchor: [25, 50],
|
||||||
|
@ -27,13 +27,13 @@ document.addEventListener("DOMContentLoaded", function () {
|
||||||
})
|
})
|
||||||
.addTo(map)
|
.addTo(map)
|
||||||
.bindPopup(
|
.bindPopup(
|
||||||
`<div class="text-center"><b>Anda berada di sini</b><br />Silahkan priksa lokasi petamu sudah benar.</div>`
|
`<div class="text-center"><b>Anda berada di sini</b><br />Silahkan tentukan petak lahan.<br />Pastikan lokasi anda sudah benar.</div>`
|
||||||
);
|
);
|
||||||
|
|
||||||
var drawnItems = new L.FeatureGroup();
|
drawnItems = new L.FeatureGroup();
|
||||||
map.addLayer(drawnItems);
|
map.addLayer(drawnItems);
|
||||||
|
|
||||||
var drawControl = new L.Control.Draw({
|
drawControl = new L.Control.Draw({
|
||||||
draw: {
|
draw: {
|
||||||
polygon: true, // Izinkan user menggambar polygon
|
polygon: true, // Izinkan user menggambar polygon
|
||||||
polyline: false,
|
polyline: false,
|
||||||
|
@ -49,36 +49,15 @@ document.addEventListener("DOMContentLoaded", function () {
|
||||||
});
|
});
|
||||||
map.addControl(drawControl);
|
map.addControl(drawControl);
|
||||||
|
|
||||||
// 4️⃣ Event saat user menggambar polygon
|
map.on("draw:created", handleDrawCreated);
|
||||||
map.on("draw:created", function (event) {
|
map.on("draw:edited", handleDrawEdited);
|
||||||
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 () {
|
$("#showModal").on("shown.bs.modal", function () {
|
||||||
map.invalidateSize();
|
map.invalidateSize();
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
map.on("click", onMapClick);
|
document.addEventListener("DOMContentLoaded", initMap);
|
||||||
});
|
|
||||||
|
|
||||||
var form = document.getElementById("add-form");
|
var form = document.getElementById("add-form");
|
||||||
var provinceField = form.querySelector("#province-field");
|
var provinceField = form.querySelector("#province-field");
|
||||||
|
@ -103,19 +82,17 @@ var mapContainer = form.querySelector("#map-container");
|
||||||
var latField = form.querySelector("#lat");
|
var latField = form.querySelector("#lat");
|
||||||
var lngField = form.querySelector("#lng");
|
var lngField = form.querySelector("#lng");
|
||||||
|
|
||||||
|
var polygonField = form.querySelector("#polygon");
|
||||||
|
var loading = form.querySelector("#loading");
|
||||||
|
|
||||||
var btnContainer = form.querySelector("#add-footer");
|
var btnContainer = form.querySelector("#add-footer");
|
||||||
|
|
||||||
function getRegencies(provinceId) {
|
function getRegencies(provinceId) {
|
||||||
regencyContainer.style.display = "none";
|
regencyContainer.style.display = "none";
|
||||||
// regencyEditContainer.style.display = "none";
|
|
||||||
districtContainer.style.display = "none";
|
districtContainer.style.display = "none";
|
||||||
// districtEditContainer.style.display = "none";
|
|
||||||
addressContainer.style.display = "none";
|
addressContainer.style.display = "none";
|
||||||
// addressEditContainer.style.display = "none";
|
|
||||||
loading.style.display = "block";
|
loading.style.display = "block";
|
||||||
// loadingEdit.style.display = "block";
|
|
||||||
mapContainer.style.display = "none";
|
mapContainer.style.display = "none";
|
||||||
// mapEditConatiner.style.display = "none";
|
|
||||||
|
|
||||||
const url = "/location/get-regency/" + provinceId;
|
const url = "/location/get-regency/" + provinceId;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
|
@ -124,15 +101,11 @@ function getRegencies(provinceId) {
|
||||||
success: function (response) {
|
success: function (response) {
|
||||||
if (response.success) {
|
if (response.success) {
|
||||||
loading.style.display = "none";
|
loading.style.display = "none";
|
||||||
// loadingEdit.style.display = "none";
|
|
||||||
const data = response.data;
|
const data = response.data;
|
||||||
|
|
||||||
regencyVal.clearStore();
|
regencyVal.clearStore();
|
||||||
regencyVal.clearChoices();
|
regencyVal.clearChoices();
|
||||||
|
|
||||||
// regencyEditVal.clearStore();
|
|
||||||
// regencyEditVal.clearChoices();
|
|
||||||
|
|
||||||
regencyVal.value = "";
|
regencyVal.value = "";
|
||||||
regencyVal.setChoices([
|
regencyVal.setChoices([
|
||||||
{
|
{
|
||||||
|
@ -143,16 +116,6 @@ function getRegencies(provinceId) {
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// regencyEditVal.value = "";
|
|
||||||
// regencyEditVal.setChoices([
|
|
||||||
// {
|
|
||||||
// value: "",
|
|
||||||
// label: "Pilih Kabupaten",
|
|
||||||
// selected: true,
|
|
||||||
// disabled: true,
|
|
||||||
// },
|
|
||||||
// ]);
|
|
||||||
|
|
||||||
if (Array.isArray(data)) {
|
if (Array.isArray(data)) {
|
||||||
regencyVal.setChoices(
|
regencyVal.setChoices(
|
||||||
data.map((regency) => ({
|
data.map((regency) => ({
|
||||||
|
@ -163,24 +126,11 @@ function getRegencies(provinceId) {
|
||||||
}))
|
}))
|
||||||
);
|
);
|
||||||
|
|
||||||
// regencyEditVal.setChoices(
|
|
||||||
// data.map((regency) => ({
|
|
||||||
// value: regency.id,
|
|
||||||
// label: regency.name,
|
|
||||||
// selected: false,
|
|
||||||
// disabled: false,
|
|
||||||
// }))
|
|
||||||
// );
|
|
||||||
regencyContainer.style.display = "block";
|
regencyContainer.style.display = "block";
|
||||||
// regencyEditContainer.style.display = "block";
|
|
||||||
} else {
|
} else {
|
||||||
mapContainer.style.display = "block";
|
mapContainer.style.display = "block";
|
||||||
mapContainer.innerHTML =
|
mapContainer.innerHTML =
|
||||||
"<p class='text-center text-muted'>Terjadi kesalaahan saat mengambil data, silahkan coba beberapa saat lagi</p>";
|
"<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>";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -188,10 +138,6 @@ function getRegencies(provinceId) {
|
||||||
mapContainer.style.display = "block";
|
mapContainer.style.display = "block";
|
||||||
mapContainer.innerHTML =
|
mapContainer.innerHTML =
|
||||||
"<p class='text-center text-muted'>Terjadi kesalaahan saat mengambil data, silahkan coba beberapa saat lagi</p>";
|
"<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>";
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -266,8 +212,6 @@ function showmap(districtId) {
|
||||||
|
|
||||||
addressContainer.style.display = "block";
|
addressContainer.style.display = "block";
|
||||||
|
|
||||||
btnContainer.style.display = "block";
|
|
||||||
|
|
||||||
var lat = position.coords.latitude;
|
var lat = position.coords.latitude;
|
||||||
var lng = position.coords.longitude;
|
var lng = position.coords.longitude;
|
||||||
|
|
||||||
|
@ -296,7 +240,7 @@ function showmap(districtId) {
|
||||||
|
|
||||||
currentMarker
|
currentMarker
|
||||||
.bindPopup(
|
.bindPopup(
|
||||||
`<div class="text-center"><b>Anda berada di sini</b><br />Silahkan priksa lokasi petamu sudah benar.</div>`
|
`<div class="text-center"><b>Anda berada di sini</b><br />Silahkan tentukan petak lahan.<br />Pastikan lokasi anda sudah benar.</div>`
|
||||||
)
|
)
|
||||||
.openPopup();
|
.openPopup();
|
||||||
|
|
||||||
|
@ -309,28 +253,6 @@ function showmap(districtId) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
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() {
|
function onPointerDragend() {
|
||||||
if (!currentMarker) return;
|
if (!currentMarker) return;
|
||||||
var coordinates = currentMarker.getLatLng();
|
var coordinates = currentMarker.getLatLng();
|
||||||
|
@ -345,3 +267,25 @@ function onPointerDragend() {
|
||||||
latField.value = coordinates.lat;
|
latField.value = coordinates.lat;
|
||||||
lngField.value = coordinates.lng;
|
lngField.value = coordinates.lng;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function handleDrawCreated(e) {
|
||||||
|
var layer = e.layer;
|
||||||
|
drawnItems.addLayer(layer);
|
||||||
|
var coordinates = layer.getLatLngs()[0];
|
||||||
|
console.log("Koordinat Polygon:", coordinates);
|
||||||
|
polygonField.value = JSON.stringify(coordinates);
|
||||||
|
|
||||||
|
layer.bindPopup("<b>Petak Lahan Berhasil Dibuat!</b>").openPopup();
|
||||||
|
btnContainer.style.display = "block";
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleDrawEdited(e) {
|
||||||
|
var layers = e.layers;
|
||||||
|
layers.eachLayer(function (layer) {
|
||||||
|
var coordinates = layer.getLatLngs();
|
||||||
|
console.log("Koordinat setelah diedit:", coordinates);
|
||||||
|
polygonField.value = JSON.stringify(coordinates);
|
||||||
|
|
||||||
|
layer.bindPopup("<b>Petak Lahan Berhasil Diedit!</b>").openPopup();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
|
@ -606,6 +606,7 @@ class="form-check-input">
|
||||||
<!-- App js -->
|
<!-- App js -->
|
||||||
<script src="{{ asset('assets/js/app.js') }}"></script>
|
<script src="{{ asset('assets/js/app.js') }}"></script>
|
||||||
<script src="{{ asset('assets/libs/jquery/jquery.min.js') }}"></script>
|
<script src="{{ asset('assets/libs/jquery/jquery.min.js') }}"></script>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -135,6 +135,11 @@
|
||||||
<input type="hidden" name="lng" id="lng" class="form-control"
|
<input type="hidden" name="lng" id="lng" class="form-control"
|
||||||
readonly>
|
readonly>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="mt-3">
|
||||||
|
<input type="hidden" name="polygon" id="polygon" class="form-control"
|
||||||
|
readonly>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer" id="add-footer" style="display: none">
|
<div class="modal-footer" id="add-footer" style="display: none">
|
||||||
|
|
Loading…
Reference in New Issue