From 1c6bfddbabd639b77cf8f9abe3837ecc5db56e8e Mon Sep 17 00:00:00 2001 From: cybermano Date: Sat, 15 Jul 2023 15:27:37 +0200 Subject: [PATCH 1/6] Added scrollWheelZoom checkbox Checkbox to disable map zoom on mouse wheel scroll: InputfieldLeafletMapMarker.module has new field in configuraiton func, one line (:44) added in __construct(), one line (:112) added in ___render() and one class addition in markup to set a specific html class (triggered by JS), on line 159 and 161 InputfieldLeafletMapMarker.js has a check for the html class to set option as map.scrollWheelZoom.disable(), on lines 137-139 --- InputfieldLeafletMapMarker.js | 5 +++++ InputfieldLeafletMapMarker.module | 15 ++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/InputfieldLeafletMapMarker.js b/InputfieldLeafletMapMarker.js index b3df1ec..3461aee 100644 --- a/InputfieldLeafletMapMarker.js +++ b/InputfieldLeafletMapMarker.js @@ -133,6 +133,11 @@ var InputfieldLeafletMapMarker = { map.invalidateSize(); }, 200); }); + + if ($('div.InputfieldLeafletMapMarkerMap').hasClass('scrollwheel-disabled')){ + map.scrollWheelZoom.disable() + } + } }; diff --git a/InputfieldLeafletMapMarker.module b/InputfieldLeafletMapMarker.module index f01a059..bb03c43 100644 --- a/InputfieldLeafletMapMarker.module +++ b/InputfieldLeafletMapMarker.module @@ -41,6 +41,7 @@ class InputfieldLeafletMapMarker extends Inputfield { require_once(dirname(__FILE__) . '/LeafletMapMarker.php'); $this->set('defaultAddr', self::defaultAddr); $this->set('defaultZoom', 12); + $this->set('scrollWheelZoom', false); $this->set('defaultLat', ''); $this->set('defaultLng', ''); $this->set('height', 500); @@ -108,6 +109,7 @@ class InputfieldLeafletMapMarker extends Inputfield { $mapType = $this->defaultType; $provider = $this->defaultProvider; $height = $this->height ? (int) $this->height : 300; + $scrollWheelZoom = $this->scrollWheelZoom; $labels = array( 'addr' => $this->_('Address'), @@ -154,7 +156,9 @@ class InputfieldLeafletMapMarker extends Inputfield { _OUT; - $out .= "
scrollWheelZoom == true) ? $class = ' scrollwheel-disabled' : $class = ''; + + $out .= "
attr('type', 'number'); $inputfields->add($field); + $field = $this->modules->get('InputfieldCheckbox'); + $field->attr('name', 'scrollWheelZoom'); + $field->label = $this->_('Scrollwheel Zoom Disable'); + $field->label2 = $this->_('Check this to lock Scrollwheel Zoom ad prevent unwanted zoom in admin page edit'); + $field->description = $this->_('Lock zoom by mouse wheel scroll'); // Zoom level description + $field->attr('value', $this->scrollWheelZoom ? $this->scrollWheelZoom : 0 ); + $field->attr('checked', $this->scrollWheelZoom === 1 ? 'checked' : '' ); + $inputfields->add($field); + $field = $this->modules->get('InputfieldSelect'); $field->attr('name', 'defaultProvider'); $field->label = $this->_('Default Map Tile Provider'); From 6a4d53eacd85c4ac5bd44083c1ad08d53910459f Mon Sep 17 00:00:00 2001 From: Mauro Romano <66470231+cybermano@users.noreply.github.com> Date: Thu, 3 Aug 2023 11:18:50 +0200 Subject: [PATCH 2/6] Nominatim API search changed Using the URL /search/ and /reverse/ (with slashes) is no longer supported by nominatim.openstreetmap.org API Change url from /search/?q=Berlin in /search?q=Berlin :343 L.Control.Geocoder.jsonp(this.options.serviceUrl + 'search/', L.extend({ change in L.Control.Geocoder.jsonp(this.options.serviceUrl + 'search', L.extend({ :370 L.Control.Geocoder.jsonp(this.options.serviceUrl + 'reverse/', L.extend({ change in L.Control.Geocoder.jsonp(this.options.serviceUrl + 'reverse', L.extend({ --- Control.Geocoder.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Control.Geocoder.js b/Control.Geocoder.js index 30340e2..7f74514 100644 --- a/Control.Geocoder.js +++ b/Control.Geocoder.js @@ -340,7 +340,7 @@ }, geocode: function(query, cb, context) { - L.Control.Geocoder.jsonp(this.options.serviceUrl + 'search/', L.extend({ + L.Control.Geocoder.jsonp(this.options.serviceUrl + 'search', L.extend({ q: query, limit: 5, format: 'json', @@ -367,7 +367,7 @@ }, reverse: function(location, scale, cb, context) { - L.Control.Geocoder.jsonp(this.options.serviceUrl + 'reverse/', L.extend({ + L.Control.Geocoder.jsonp(this.options.serviceUrl + 'reverse', L.extend({ lat: location.lat, lon: location.lng, zoom: Math.round(Math.log(scale / 256) / Math.log(2)), From 9adf76ab12fa2d1321436a0dcef6a8903d919126 Mon Sep 17 00:00:00 2001 From: Mauro Romano <66470231+cybermano@users.noreply.github.com> Date: Thu, 3 Aug 2023 11:24:08 +0200 Subject: [PATCH 3/6] Restored original to make a PR --- Control.Geocoder.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Control.Geocoder.js b/Control.Geocoder.js index 7f74514..30340e2 100644 --- a/Control.Geocoder.js +++ b/Control.Geocoder.js @@ -340,7 +340,7 @@ }, geocode: function(query, cb, context) { - L.Control.Geocoder.jsonp(this.options.serviceUrl + 'search', L.extend({ + L.Control.Geocoder.jsonp(this.options.serviceUrl + 'search/', L.extend({ q: query, limit: 5, format: 'json', @@ -367,7 +367,7 @@ }, reverse: function(location, scale, cb, context) { - L.Control.Geocoder.jsonp(this.options.serviceUrl + 'reverse', L.extend({ + L.Control.Geocoder.jsonp(this.options.serviceUrl + 'reverse/', L.extend({ lat: location.lat, lon: location.lng, zoom: Math.round(Math.log(scale / 256) / Math.log(2)), From f3b3b58c701dc6dd0f0d92dedaaad3df72a638f1 Mon Sep 17 00:00:00 2001 From: Mauro Romano <66470231+cybermano@users.noreply.github.com> Date: Thu, 3 Aug 2023 11:26:29 +0200 Subject: [PATCH 4/6] Add files via upload --- Control.Geocoder.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Control.Geocoder.js b/Control.Geocoder.js index 30340e2..7f74514 100644 --- a/Control.Geocoder.js +++ b/Control.Geocoder.js @@ -340,7 +340,7 @@ }, geocode: function(query, cb, context) { - L.Control.Geocoder.jsonp(this.options.serviceUrl + 'search/', L.extend({ + L.Control.Geocoder.jsonp(this.options.serviceUrl + 'search', L.extend({ q: query, limit: 5, format: 'json', @@ -367,7 +367,7 @@ }, reverse: function(location, scale, cb, context) { - L.Control.Geocoder.jsonp(this.options.serviceUrl + 'reverse/', L.extend({ + L.Control.Geocoder.jsonp(this.options.serviceUrl + 'reverse', L.extend({ lat: location.lat, lon: location.lng, zoom: Math.round(Math.log(scale / 256) / Math.log(2)), From 86f7b95740b874c7963b3797d9c591bc7536f2c7 Mon Sep 17 00:00:00 2001 From: cybermano Date: Thu, 3 Aug 2023 11:29:53 +0200 Subject: [PATCH 5/6] Original file --- Control.Geocoder.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Control.Geocoder.js b/Control.Geocoder.js index 7f74514..30340e2 100644 --- a/Control.Geocoder.js +++ b/Control.Geocoder.js @@ -340,7 +340,7 @@ }, geocode: function(query, cb, context) { - L.Control.Geocoder.jsonp(this.options.serviceUrl + 'search', L.extend({ + L.Control.Geocoder.jsonp(this.options.serviceUrl + 'search/', L.extend({ q: query, limit: 5, format: 'json', @@ -367,7 +367,7 @@ }, reverse: function(location, scale, cb, context) { - L.Control.Geocoder.jsonp(this.options.serviceUrl + 'reverse', L.extend({ + L.Control.Geocoder.jsonp(this.options.serviceUrl + 'reverse/', L.extend({ lat: location.lat, lon: location.lng, zoom: Math.round(Math.log(scale / 256) / Math.log(2)), From 63254dffea9bd504eb45b124d64fd5832e38f013 Mon Sep 17 00:00:00 2001 From: cybermano Date: Thu, 3 Aug 2023 11:32:20 +0200 Subject: [PATCH 6/6] Update Control.Geocoder.js API search and reverse syntax changed Nominatim.openstreetmap.org change API: slashes are not yet supported into the url --- Control.Geocoder.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Control.Geocoder.js b/Control.Geocoder.js index 30340e2..7f74514 100644 --- a/Control.Geocoder.js +++ b/Control.Geocoder.js @@ -340,7 +340,7 @@ }, geocode: function(query, cb, context) { - L.Control.Geocoder.jsonp(this.options.serviceUrl + 'search/', L.extend({ + L.Control.Geocoder.jsonp(this.options.serviceUrl + 'search', L.extend({ q: query, limit: 5, format: 'json', @@ -367,7 +367,7 @@ }, reverse: function(location, scale, cb, context) { - L.Control.Geocoder.jsonp(this.options.serviceUrl + 'reverse/', L.extend({ + L.Control.Geocoder.jsonp(this.options.serviceUrl + 'reverse', L.extend({ lat: location.lat, lon: location.lng, zoom: Math.round(Math.log(scale / 256) / Math.log(2)),