openstamanager/modules/mappa/js/app.js

124 lines
3.5 KiB
JavaScript
Raw Normal View History

2023-06-15 14:09:04 +02:00
$(document).ready(function() {
if(!$('body').hasClass('sidebar-collapse')){
2024-05-21 17:43:38 +02:00
$('body').addClass('sidebar-collapse');
}
2023-06-15 14:09:04 +02:00
setTimeout(function () {
caricaMappa();
reload_pointers();
}, 1000);
});
let map;
var markers = [];
2023-06-15 14:09:04 +02:00
$('#menu-filtri-toggle').click(function() {
if($(this).parent().parent().parent().hasClass("open-menu")){
$(this).parent().parent().parent().removeClass("open-menu");
$(this).parent().parent().parent().addClass("closed-menu");
$(this).removeClass('fa-forward');
$(this).addClass('fa-backward');
$('#lista-filtri').hide();
}else{
$(this).parent().parent().parent().removeClass("closed-menu");
$(this).parent().parent().parent().addClass("open-menu");
$(this).removeClass('fa-backward');
$(this).addClass('fa-forward');
$('#lista-filtri').show();
}
});
2024-08-09 17:01:10 +02:00
2023-06-15 14:09:04 +02:00
function reload_pointers() {
clearMarkers();
var check = [];
2024-08-09 17:01:10 +02:00
var svgContent = "";
2023-06-15 14:09:04 +02:00
$("input[type='checkbox']").each(function() {
if($(this).is(':checked')){
id = $(this).attr('id');
check.push(id);
}
});
2024-08-09 17:01:10 +02:00
$.ajax({
url: globals.rootdir + '/assets/dist/img/leaflet/place-marker.svg', // Percorso al file SVG
dataType: 'text', // Imposta il tipo di dati attesi
success: function(data) {
svgContent = data; // Inserisci il contenuto SVG nella variabile
},
error: function() {
alert('Failed to load SVG file.');
}
});
$.get(globals.rootdir + '/modules/mappa/actions.php?op=get_markers&idanagrafica='+$('#idanagrafica').val()+'&check='+check, function(data){
var dettagli = JSON.parse(data);
dettagli.forEach(function(dettaglio) {
2023-06-15 14:09:04 +02:00
if (dettaglio.lat && dettaglio.lng) {
2024-08-09 17:01:10 +02:00
let svgIcon = L.divIcon({
html: svgContent.replace('fill="#cccccc"','fill="' + dettaglio.colore + '"'),
className: '',
shadowUrl:globals.rootdir + "/assets/dist/img/leaflet/marker-shadow.png",
iconSize: [45, 61],
iconAnchor: [12, 41],
popupAnchor: [1, -34],
shadowSize: [41, 41]
});
2023-06-15 14:09:04 +02:00
L.marker([dettaglio.lat, dettaglio.lng], {
2024-08-09 17:01:10 +02:00
icon: svgIcon
}).bindTooltip("",
{
permanent: false,
direction: 'right'
}
).bindPopup(dettaglio.descrizione
).addTo(map);
2023-06-15 14:09:04 +02:00
}
});
2024-08-09 17:01:10 +02:00
if (input("lat").get() && input("lng").get()) {
const lat = parseFloat(input("lat").get());
const lng = parseFloat(input("lng").get());
var icon = new L.Icon({
iconUrl: globals.rootdir + "/assets/dist/img/marker-icon.png",
shadowUrl:globals.rootdir + "/assets/dist/img/leaflet/marker-shadow.png",
iconSize: [25, 41],
iconAnchor: [12, 41],
popupAnchor: [1, -34],
shadowSize: [41, 41]
});
L.marker([lat, lng], {
icon: icon
}).addTo(map);
}
});
}
function clearMarkers() {
2023-06-15 14:09:04 +02:00
map.eachLayer(function (layer) {
if(layer instanceof L.Marker) {
map.removeLayer(layer);
}
});
}
2023-06-15 14:09:04 +02:00
$("input[type='checkbox']").change(function() {
reload_pointers();
});
2023-06-15 14:09:04 +02:00
$('#idanagrafica').change(function() {
reload_pointers();
});