From ed12df8fcb16c534579337b8ca96880452180a1f Mon Sep 17 00:00:00 2001 From: kuznev Date: Tue, 21 Feb 2023 12:49:02 +0200 Subject: [PATCH 1/2] Fix Google Maps callback --- assets/js/common.js | 6 +++++- includes/components/class-geolocation.php | 3 ++- includes/configs/scripts.php | 6 +++--- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/assets/js/common.js b/assets/js/common.js index 3505d04..a89b0f5 100644 --- a/assets/js/common.js +++ b/assets/js/common.js @@ -1,7 +1,11 @@ (function($) { 'use strict'; - hivepress.initGeolocation = function(container) { + hivepress.initGeolocation = function(container = null) { + + if (container === null) { + container = $('body'); + } // Location container.find(hivepress.getSelector('location')).each(function() { diff --git a/includes/components/class-geolocation.php b/includes/components/class-geolocation.php index b1c01ab..e6579cd 100644 --- a/includes/components/class-geolocation.php +++ b/includes/components/class-geolocation.php @@ -241,12 +241,13 @@ public function enqueue_scripts() { 'https://maps.googleapis.com/maps/api/js?' . http_build_query( [ 'libraries' => 'places', + 'callback' => 'hivepress.initGeolocation', 'key' => get_option( 'hp_gmaps_api_key' ), 'language' => hivepress()->translator->get_language(), 'region' => hivepress()->translator->get_region(), ] ), - [], + [ 'hivepress-geolocation' ], null, true ); diff --git a/includes/configs/scripts.php b/includes/configs/scripts.php index 872e5d8..c29d1de 100644 --- a/includes/configs/scripts.php +++ b/includes/configs/scripts.php @@ -15,7 +15,7 @@ 'handle' => 'geocomplete', 'src' => hivepress()->get_url( 'geolocation' ) . '/assets/js/jquery.geocomplete.min.js', 'version' => hivepress()->get_version( 'geolocation' ), - 'deps' => [ 'google-maps' ], + 'deps' => [], 'scope' => [ 'frontend', 'backend' ], ], @@ -23,7 +23,7 @@ 'handle' => 'markerclustererplus', 'src' => hivepress()->get_url( 'geolocation' ) . '/assets/js/markerclustererplus.min.js', 'version' => hivepress()->get_version( 'geolocation' ), - 'deps' => [ 'google-maps' ], + 'deps' => [], 'scope' => [ 'frontend', 'backend' ], ], @@ -31,7 +31,7 @@ 'handle' => 'markerspiderfier', 'src' => hivepress()->get_url( 'geolocation' ) . '/assets/js/oms.min.js', 'version' => hivepress()->get_version( 'geolocation' ), - 'deps' => [ 'google-maps' ], + 'deps' => [], 'scope' => [ 'frontend', 'backend' ], ], From 639e6714a46c941c55025539c7d1fb23e35a9810 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 21 Feb 2023 10:49:41 +0000 Subject: [PATCH 2/2] Compile assets --- assets/js/common.min.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/js/common.min.js b/assets/js/common.min.js index fef8326..4110bc0 100644 --- a/assets/js/common.min.js +++ b/assets/js/common.min.js @@ -1 +1 @@ -(function(a){"use strict";hivepress.initGeolocation=function(b){b.find(hivepress.getSelector("location")).each(function(){var b=a(this),c=b.closest("form"),d=b.find("input[type=text]"),e=c.find("input[data-coordinate=lat]"),f=c.find("input[data-coordinate=lng]"),g=c.find("input[data-region]"),h=b.find("a"),i={};if("undefined"!=typeof mapboxData){i={accessToken:mapboxData.apiKey,language:hivepressCoreData.language},b.data("countries")&&(i.countries=b.data("countries").join(",")),b.data("types")&&(i.types=b.data("types").join(","));var j=new MapboxGeocoder(i);j.addTo(b.get(0));var k=b.children(".mapboxgl-ctrl"),l=d.prop("attributes");d.remove(),d=k.find("input[type=text]"),a.each(l,function(){d.attr(this.name,this.value)}),k.detach().prependTo(b),j.on("result",function(a){var b=["place","district","region","country"];g.length&&(a.result.place_type.filter(a=>b.includes(a)).length?g.val(a.result.id):g.val("")),f.val(a.result.geometry.coordinates[0]),e.val(a.result.geometry.coordinates[1])})}else i={details:c,detailsAttribute:"data-coordinate"},b.data("countries")&&(i.componentRestrictions={country:b.data("countries")}),b.data("types")&&(i.types=b.data("types")),d.geocomplete(i),d.bind("geocode:result",function(c,e){var f=[],h=["locality","administrative_area_level_2","administrative_area_level_1","country"];g.length&&(e.address_components[0].types.filter(a=>h.includes(a)).length?g.val(e.place_id):g.val("")),b.data("scatter")&&(h.push("route"),a.each(e.address_components,function(a,b){b.types.filter(a=>h.includes(a)).length&&f.push(b.long_name)}),d.val(f.join(", ")))});d.on("input",function(){d.val()||c.find("input[data-coordinate]").val("")}),navigator.geolocation?h.on("click",function(a){navigator.geolocation.getCurrentPosition(function(a){"undefined"==typeof mapboxData?d.geocomplete("find",a.coords.latitude+" "+a.coords.longitude):(j.options.reverseGeocode=!0,j.options.limit=1,j.query(a.coords.latitude+","+a.coords.longitude),j.options.reverseGeocode=!1,j.options.limit=5)}),a.preventDefault()}):h.hide()}),b.find(hivepress.getSelector("map")).each(function(){var b=a(this),c=b.width(),d=b.data("max-zoom");if(b.is("[data-height]")&&(c=b.data("height")),b.height(c),"undefined"!=typeof mapboxData){mapboxgl.accessToken=mapboxData.apiKey;var e=new mapboxgl.LngLatBounds,f=new mapboxgl.Map({container:b.get(0),style:"mapbox://styles/mapbox/streets-v11",center:[0,0],zoom:1});f.addControl(new mapboxgl.NavigationControl),f.addControl(new mapboxgl.FullscreenControl),f.addControl(new MapboxLanguage),a.each(b.data("markers"),function(a,b){e.extend([b.longitude,b.latitude]);new mapboxgl.Marker().setLngLat([b.longitude,b.latitude]).setPopup(new mapboxgl.Popup().setHTML(b.content)).addTo(f)}),f.fitBounds(e,{maxZoom:d-1,padding:50,duration:0});var g=new ResizeObserver(function(){f.resize(),f.fitBounds(e,{maxZoom:d-1,padding:50,duration:0})}).observe(b.get(0))}else{var h=!1,i=[],e=new google.maps.LatLngBounds,f=new google.maps.Map(b.get(0),{zoom:3,minZoom:2,maxZoom:d,mapTypeControl:!1,streetViewControl:!1,center:{lat:0,lng:0},styles:[{featureType:"poi",stylers:[{visibility:"off"}]}]}),j=new OverlappingMarkerSpiderfier(f,{markersWontMove:!0,markersWontHide:!0,basicFormatEvents:!0}),k={path:google.maps.SymbolPath.CIRCLE,fillColor:"#3a77ff",fillOpacity:.25,strokeColor:"#3a77ff",strokeWeight:1,strokeOpacity:.75,scale:10};a.each(b.data("markers"),function(a,c){var d=new google.maps.InfoWindow({content:c.content}),g={title:c.title,position:{lat:c.latitude,lng:c.longitude}};b.data("scatter")&&(g.icon=k);var l=new google.maps.Marker(g);l.addListener("spider_click",function(){h&&h.close(),h=d,d.open(f,l)}),i.push(l),j.addMarker(l),e.extend(l.getPosition())}),f.fitBounds(e);var g=new ResizeObserver(function(){f.fitBounds(e)}).observe(b.get(0)),l=new MarkerClusterer(f,i,{imagePath:hivepressGeolocationData.assetURL+"/images/markerclustererplus/m",maxZoom:d-1});b.data("scatter")&&f.addListener("zoom_changed",function(){var b=Math.pow;k.scale=b(1.3125,f.getZoom()),a.each(i,function(a){i[a].setIcon(k)})})}})},a(document).on("hivepress:init",function(a,b){hivepress.initGeolocation(b)})})(jQuery); \ No newline at end of file +(function(a){"use strict";hivepress.initGeolocation=function(b=null){null===b&&(b=a("body")),b.find(hivepress.getSelector("location")).each(function(){var b=a(this),c=b.closest("form"),d=b.find("input[type=text]"),e=c.find("input[data-coordinate=lat]"),f=c.find("input[data-coordinate=lng]"),g=c.find("input[data-region]"),h=b.find("a"),i={};if("undefined"!=typeof mapboxData){i={accessToken:mapboxData.apiKey,language:hivepressCoreData.language},b.data("countries")&&(i.countries=b.data("countries").join(",")),b.data("types")&&(i.types=b.data("types").join(","));var j=new MapboxGeocoder(i);j.addTo(b.get(0));var k=b.children(".mapboxgl-ctrl"),l=d.prop("attributes");d.remove(),d=k.find("input[type=text]"),a.each(l,function(){d.attr(this.name,this.value)}),k.detach().prependTo(b),j.on("result",function(a){var b=["place","district","region","country"];g.length&&(a.result.place_type.filter(a=>b.includes(a)).length?g.val(a.result.id):g.val("")),f.val(a.result.geometry.coordinates[0]),e.val(a.result.geometry.coordinates[1])})}else i={details:c,detailsAttribute:"data-coordinate"},b.data("countries")&&(i.componentRestrictions={country:b.data("countries")}),b.data("types")&&(i.types=b.data("types")),d.geocomplete(i),d.bind("geocode:result",function(c,e){var f=[],h=["locality","administrative_area_level_2","administrative_area_level_1","country"];g.length&&(e.address_components[0].types.filter(a=>h.includes(a)).length?g.val(e.place_id):g.val("")),b.data("scatter")&&(h.push("route"),a.each(e.address_components,function(a,b){b.types.filter(a=>h.includes(a)).length&&f.push(b.long_name)}),d.val(f.join(", ")))});d.on("input",function(){d.val()||c.find("input[data-coordinate]").val("")}),navigator.geolocation?h.on("click",function(a){navigator.geolocation.getCurrentPosition(function(a){"undefined"==typeof mapboxData?d.geocomplete("find",a.coords.latitude+" "+a.coords.longitude):(j.options.reverseGeocode=!0,j.options.limit=1,j.query(a.coords.latitude+","+a.coords.longitude),j.options.reverseGeocode=!1,j.options.limit=5)}),a.preventDefault()}):h.hide()}),b.find(hivepress.getSelector("map")).each(function(){var b=a(this),c=b.width(),d=b.data("max-zoom");if(b.is("[data-height]")&&(c=b.data("height")),b.height(c),"undefined"!=typeof mapboxData){mapboxgl.accessToken=mapboxData.apiKey;var e=new mapboxgl.LngLatBounds,f=new mapboxgl.Map({container:b.get(0),style:"mapbox://styles/mapbox/streets-v11",center:[0,0],zoom:1});f.addControl(new mapboxgl.NavigationControl),f.addControl(new mapboxgl.FullscreenControl),f.addControl(new MapboxLanguage),a.each(b.data("markers"),function(a,b){e.extend([b.longitude,b.latitude]);new mapboxgl.Marker().setLngLat([b.longitude,b.latitude]).setPopup(new mapboxgl.Popup().setHTML(b.content)).addTo(f)}),f.fitBounds(e,{maxZoom:d-1,padding:50,duration:0});var g=new ResizeObserver(function(){f.resize(),f.fitBounds(e,{maxZoom:d-1,padding:50,duration:0})}).observe(b.get(0))}else{var h=!1,i=[],e=new google.maps.LatLngBounds,f=new google.maps.Map(b.get(0),{zoom:3,minZoom:2,maxZoom:d,mapTypeControl:!1,streetViewControl:!1,center:{lat:0,lng:0},styles:[{featureType:"poi",stylers:[{visibility:"off"}]}]}),j=new OverlappingMarkerSpiderfier(f,{markersWontMove:!0,markersWontHide:!0,basicFormatEvents:!0}),k={path:google.maps.SymbolPath.CIRCLE,fillColor:"#3a77ff",fillOpacity:.25,strokeColor:"#3a77ff",strokeWeight:1,strokeOpacity:.75,scale:10};a.each(b.data("markers"),function(a,c){var d=new google.maps.InfoWindow({content:c.content}),g={title:c.title,position:{lat:c.latitude,lng:c.longitude}};b.data("scatter")&&(g.icon=k);var l=new google.maps.Marker(g);l.addListener("spider_click",function(){h&&h.close(),h=d,d.open(f,l)}),i.push(l),j.addMarker(l),e.extend(l.getPosition())}),f.fitBounds(e);var g=new ResizeObserver(function(){f.fitBounds(e)}).observe(b.get(0)),l=new MarkerClusterer(f,i,{imagePath:hivepressGeolocationData.assetURL+"/images/markerclustererplus/m",maxZoom:d-1});b.data("scatter")&&f.addListener("zoom_changed",function(){var b=Math.pow;k.scale=b(1.3125,f.getZoom()),a.each(i,function(a){i[a].setIcon(k)})})}})},a(document).on("hivepress:init",function(a,b){hivepress.initGeolocation(b)})})(jQuery); \ No newline at end of file