Skip to content

Commit f5e0894

Browse files
committed
fix: caricamento mappa header interventi
1 parent 9f74df2 commit f5e0894

1 file changed

Lines changed: 76 additions & 50 deletions

File tree

modules/interventi/header.php

Lines changed: 76 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -425,64 +425,90 @@ function getIndirizzoAnagrafica() {
425425
return [lat, lng, indirizzo_default];
426426
}
427427
428-
var map = null;
428+
var maps = {};
429429
function caricaMappa() {
430-
const $map_container = $(".module-header:visible .card").eq(2);
430+
// Trova tutti i contenitori di header del modulo (inclusi quelli nei plugin)
431+
$(".module-header").each(function(index) {
432+
const $module_header = $(this);
433+
const $map_container = $module_header.find(".card").eq(2);
434+
435+
// Genera un ID univoco per ogni mappa basato sul tab container
436+
const $tab_pane = $module_header.closest(\'.tab-pane\');
437+
const tab_id = $tab_pane.length ? $tab_pane.attr(\'id\') : \'main\';
438+
const map_id = "map-edit-" + tab_id;
439+
440+
// Aggiorna l\'ID del contenitore mappa se necessario
441+
let $map_element = $map_container.find("#map-edit");
442+
if ($map_element.length === 0) {
443+
$map_element = $map_container.find("[id^=\'map-edit\']");
444+
}
431445
432-
// Ingrandimento area mappa
433-
$map_container.css("height", "320px");
434-
alignMaxHeight(".module-header .card");
435-
$("#map-edit").css("height", "85%");
436-
$("#map-edit").css("border", "none");
446+
if ($map_element.length > 0) {
447+
$map_element.attr("id", map_id);
448+
} else {
449+
// Se non trova il contenitore mappa, salta questo header
450+
return;
451+
}
437452
438-
$map_container.find(".load").addClass("hidden");
439-
$map_container.find(".go-to").removeClass("hidden");
453+
// Ingrandimento area mappa
454+
$map_container.css("height", "320px");
455+
alignMaxHeight(".module-header .card");
456+
$("#" + map_id).css("height", "85%");
457+
$("#" + map_id).css("border", "none");
440458
441-
const lat = parseFloat("'.$sede_cliente->lat.'");
442-
const lng = parseFloat("'.$sede_cliente->lng.'");
459+
$map_container.find(".load").addClass("hidden");
460+
$map_container.find(".go-to").removeClass("hidden");
443461
444-
var container = L.DomUtil.get("map-edit");
445-
if(container._leaflet_id != null){
446-
map.eachLayer(function (layer) {
447-
if(layer instanceof L.Marker) {
448-
map.removeLayer(layer);
449-
}
450-
});
451-
} else {
452-
map = L.map("map-edit", {
453-
gestureHandling: true
454-
});
462+
const lat = parseFloat("'.$sede_cliente->lat.'");
463+
const lng = parseFloat("'.$sede_cliente->lng.'");
455464
456-
L.control
457-
.fullscreen({
458-
position: "topright",
459-
title: "'.tr('Vai a schermo intero').'",
460-
titleCancel: "'.tr('Esci dalla modalità schermo intero').'",
461-
content: null,
462-
forceSeparateButton: true,
463-
forcePseudoFullscreen: true,
464-
fullscreenElement: false
465-
}).addTo(map);
466-
467-
L.tileLayer("'.setting('Tile server OpenStreetMap').'", {
468-
maxZoom: 17,
469-
attribution: "© OpenStreetMap"
470-
}).addTo(map);
471-
}
465+
var container = L.DomUtil.get(map_id);
466+
if (!container) {
467+
return; // Salta se il contenitore non esiste
468+
}
472469
473-
var icon = new L.Icon({
474-
iconUrl: globals.rootdir + "/assets/dist/img/marker-icon.png",
475-
shadowUrl:globals.rootdir + "/assets/dist/img/leaflet/marker-shadow.png",
476-
iconSize: [25, 41],
477-
iconAnchor: [12, 41],
478-
popupAnchor: [1, -34],
479-
shadowSize: [41, 41]
480-
});
470+
if(container._leaflet_id != null && maps[map_id]){
471+
maps[map_id].eachLayer(function (layer) {
472+
if(layer instanceof L.Marker) {
473+
maps[map_id].removeLayer(layer);
474+
}
475+
});
476+
} else {
477+
maps[map_id] = L.map(map_id, {
478+
gestureHandling: true
479+
});
480+
481+
L.control
482+
.fullscreen({
483+
position: "topright",
484+
title: "'.tr('Vai a schermo intero').'",
485+
titleCancel: "'.tr('Esci dalla modalità schermo intero').'",
486+
content: null,
487+
forceSeparateButton: true,
488+
forcePseudoFullscreen: true,
489+
fullscreenElement: false
490+
}).addTo(maps[map_id]);
491+
492+
L.tileLayer("'.setting('Tile server OpenStreetMap').'", {
493+
maxZoom: 17,
494+
attribution: "© OpenStreetMap"
495+
}).addTo(maps[map_id]);
496+
}
497+
498+
var icon = new L.Icon({
499+
iconUrl: globals.rootdir + "/assets/dist/img/marker-icon.png",
500+
shadowUrl:globals.rootdir + "/assets/dist/img/leaflet/marker-shadow.png",
501+
iconSize: [25, 41],
502+
iconAnchor: [12, 41],
503+
popupAnchor: [1, -34],
504+
shadowSize: [41, 41]
505+
});
481506
482-
var marker = L.marker([lat, lng], {
483-
icon: icon
484-
}).addTo(map);
507+
var marker = L.marker([lat, lng], {
508+
icon: icon
509+
}).addTo(maps[map_id]);
485510
486-
map.setView([lat, lng], 10);
511+
maps[map_id].setView([lat, lng], 10);
512+
});
487513
}
488514
</script>';

0 commit comments

Comments
 (0)