From 4c66be78a470c67657554a09ac17608349573437 Mon Sep 17 00:00:00 2001 From: loviuz Date: Fri, 13 Oct 2023 10:41:31 +0200 Subject: [PATCH] Aggiunta gestione apertura mappe con applicazione dispositivo mobile --- gulpfile.js | 1 + modules/anagrafiche/edit.php | 23 +++++++++++++++++------ modules/interventi/edit.php | 20 ++++++++++++++++---- package.json | 1 + 4 files changed, 35 insertions(+), 10 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 9d0a29a62..ee6e5dd76 100755 --- a/gulpfile.js +++ b/gulpfile.js @@ -122,6 +122,7 @@ const JS = gulp.parallel(() => { 'bootstrap-maxlength/dist/bootstrap-maxlength.js', 'leaflet/dist/leaflet.js', 'leaflet-gesture-handling/dist/leaflet-gesture-handling.min.js', + 'ismobilejs/dist/isMobile.min.js' ]; for (const i in vendor) { diff --git a/modules/anagrafiche/edit.php b/modules/anagrafiche/edit.php index b95487855..fd4084fcf 100755 --- a/modules/anagrafiche/edit.php +++ b/modules/anagrafiche/edit.php @@ -282,16 +282,14 @@ if (sizeof($problemi_anagrafica) > 0) { // Navigazione diretta verso l'indirizzo echo ' - + '.tr('Calcola percorso').' - '.((!empty($sede_cliente->lat) && !empty($sede_azienda->lat)) ? tr('(GPS)') : '').' '; // Ricerca diretta su Mappa echo ' '.tr('Cerca su Mappa').' - '.((!empty($sede_cliente->lat)) ? tr(' (GPS)') : '').' '; echo ' @@ -308,7 +306,11 @@ if (sizeof($problemi_anagrafica) > 0) { function cercaOpenStreetMap() { const indirizzo = getIndirizzoAnagrafica(); if (indirizzo[0] && indirizzo[1]) { - window.open("https://www.openstreetmap.org/?mlat=" + indirizzo[0] + "&mlon=" + indirizzo[1] + "#map=12/" + indirizzo[0] + "/" + indirizzo[1]); + if (isMobile.any) { + window.open("geo:" + indirizzo[0] + "," + indirizzo[1] + "?z=16&q=" + indirizzo[0] + "," + indirizzo[1]); + } else { + window.open("https://www.openstreetmap.org/?mlat=" + indirizzo[0] + "&mlon=" + indirizzo[1] + "#map=12/" + indirizzo[0] + "/" + indirizzo[1]); + } } else { window.open("https://www.openstreetmap.org/search?query=" + indirizzo[2]); } @@ -317,7 +319,12 @@ if (sizeof($problemi_anagrafica) > 0) { function calcolaPercorso() { const indirizzo_partenza = getIndirizzoAzienda(); const indirizzo_destinazione = getIndirizzoAnagrafica(); - window.open("https://www.openstreetmap.org/directions?engine=fossgis_osrm_car&route=" + indirizzo_partenza + ";" + indirizzo_destinazione[0] + "," + indirizzo_destinazione[1]); + + if (isMobile.any) { + window.open("geo:" + indirizzo_destinazione[0] + "," + indirizzo_destinazione[1] + "?z=16&q=" + indirizzo_destinazione[0] + "," + indirizzo_destinazione[1]); + } else { + window.open("https://www.openstreetmap.org/directions?engine=fossgis_osrm_car&route=" + indirizzo_partenza + ";" + indirizzo_destinazione[0] + "," + indirizzo_destinazione[1]); + } } function getIndirizzoAzienda() { @@ -327,7 +334,11 @@ if (sizeof($problemi_anagrafica) > 0) { const lat = parseFloat("'.$sede_azienda->lat.'"); const lng = parseFloat("'.$sede_azienda->lng.'"); - return lat + "," + lng; + if (lat && lng){ + return lat + ","+ lng; + } else { + return ""; + } } function getIndirizzoAnagrafica() { diff --git a/modules/interventi/edit.php b/modules/interventi/edit.php index 2030bcf41..6396b1be8 100755 --- a/modules/interventi/edit.php +++ b/modules/interventi/edit.php @@ -180,7 +180,6 @@ if (!empty($sede_cliente->gaddress) || (!empty($sede_cliente->lat) && !empty($se echo ' '.tr('Cerca su Mappa').' - '.((!empty($sede_cliente->lat)) ? tr(' (GPS)') : '').' '; } @@ -198,7 +197,11 @@ echo ' function cercaOpenStreetMap() { const indirizzo = getIndirizzoAnagrafica(); if (indirizzo[0] && indirizzo[1]) { - window.open("https://www.openstreetmap.org/?mlat=" + indirizzo[0] + "&mlon=" + indirizzo[1] + "#map=12/" + indirizzo[0] + "/" + indirizzo[1]); + if (isMobile.any) { + window.open("geo:" + indirizzo[0] + "," + indirizzo[1] + "?z=16&q=" + indirizzo[0] + "," + indirizzo[1]); + } else { + window.open("https://www.openstreetmap.org/?mlat=" + indirizzo[0] + "&mlon=" + indirizzo[1] + "#map=12/" + indirizzo[0] + "/" + indirizzo[1]); + } } else { window.open("https://www.openstreetmap.org/search?query=" + indirizzo[2]); } @@ -207,7 +210,12 @@ echo ' function calcolaPercorso() { const indirizzo_partenza = getIndirizzoAzienda(); const indirizzo_destinazione = getIndirizzoAnagrafica(); - window.open("https://www.openstreetmap.org/directions?engine=fossgis_osrm_car&route=" + indirizzo_partenza + ";" + indirizzo_destinazione[0] + "," + indirizzo_destinazione[1]); + + if (isMobile.any) { + window.open("geo:" + indirizzo_destinazione[0] + "," + indirizzo_destinazione[1] + "?z=16&q=" + indirizzo_destinazione[0] + "," + indirizzo_destinazione[1]); + } else { + window.open("https://www.openstreetmap.org/directions?engine=fossgis_osrm_car&route=" + indirizzo_partenza + ";" + indirizzo_destinazione[0] + "," + indirizzo_destinazione[1]); + } } function getIndirizzoAzienda() { @@ -217,7 +225,11 @@ echo ' const lat = parseFloat("'.$sede_azienda->lat.'"); const lng = parseFloat("'.$sede_azienda->lng.'"); - return lat + "," + lng; + if (lat && lng){ + return lat + ","+ lng; + } else { + return ""; + } } function getIndirizzoAnagrafica() { diff --git a/package.json b/package.json index f6191fe9d..0ba49217d 100755 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "hotkeys-js": "^3.8.5", "html5sortable": "^0.13.2", "inputmask": "^3.3.9", + "ismobilejs": "^1.1.1", "jquery": "^3.5.1", "jquery-form": "^4.2.1", "jquery-ui-touch-punch": "^0.2.3",