@@ -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