]> git.openstreetmap.org Git - rails.git/commitdiff
Rename geocodeCallback to changeCallback, call it from latlon setValue
authorAnton Khorev <tony29@yandex.ru>
Sun, 11 Aug 2024 03:47:38 +0000 (06:47 +0300)
committerAnton Khorev <tony29@yandex.ru>
Thu, 15 Aug 2024 09:00:31 +0000 (12:00 +0300)
endpoint.setValue always calls changeCallback on its successful completion, with geocoding or without. This allows to decide when to call getRoute entirely from callbacks and event listeners.

app/assets/javascripts/index/directions-endpoint.js
app/assets/javascripts/index/directions.js

index 14c91a4fb4d6cca917308b71dff6c66f3946f634..24042081d73eabbb4d84436a71e151e914c3e55f 100644 (file)
@@ -1,4 +1,4 @@
-OSM.DirectionsEndpoint = function Endpoint(map, input, iconUrl, dragCallback, geocodeCallback) {
+OSM.DirectionsEndpoint = function Endpoint(map, input, iconUrl, dragCallback, changeCallback) {
   var endpoint = {};
 
   endpoint.marker = L.marker([0, 0], {
   var endpoint = {};
 
   endpoint.marker = L.marker([0, 0], {
@@ -42,6 +42,7 @@ OSM.DirectionsEndpoint = function Endpoint(map, input, iconUrl, dragCallback, ge
     if (latlng) {
       setLatLng(latlng);
       setInputValueFromLatLng(latlng);
     if (latlng) {
       setLatLng(latlng);
       setInputValueFromLatLng(latlng);
+      changeCallback();
     } else {
       endpoint.getGeocode();
     }
     } else {
       endpoint.getGeocode();
     }
@@ -71,7 +72,7 @@ OSM.DirectionsEndpoint = function Endpoint(map, input, iconUrl, dragCallback, ge
 
       input.val(json[0].display_name);
 
 
       input.val(json[0].display_name);
 
-      geocodeCallback();
+      changeCallback();
     });
   };
 
     });
   };
 
index 974a40e850edc685c09ce7043eed1ae4ba70df05..b34f18ed1e52fd24b3f89c6de75957adb7745991 100644 (file)
@@ -28,13 +28,13 @@ OSM.Directions = function (map) {
 
     getRoute(false, !dragging);
   };
 
     getRoute(false, !dragging);
   };
-  var endpointGeocodeCallback = function () {
+  var endpointChangeCallback = function () {
     getRoute(true, true);
   };
 
   var endpoints = [
     getRoute(true, true);
   };
 
   var endpoints = [
-    OSM.DirectionsEndpoint(map, $("input[name='route_from']"), OSM.MARKER_GREEN, endpointDragCallback, endpointGeocodeCallback),
-    OSM.DirectionsEndpoint(map, $("input[name='route_to']"), OSM.MARKER_RED, endpointDragCallback, endpointGeocodeCallback)
+    OSM.DirectionsEndpoint(map, $("input[name='route_from']"), OSM.MARKER_GREEN, endpointDragCallback, endpointChangeCallback),
+    OSM.DirectionsEndpoint(map, $("input[name='route_to']"), OSM.MARKER_RED, endpointDragCallback, endpointChangeCallback)
   ];
 
   var expiry = new Date();
   ];
 
   var expiry = new Date();
@@ -303,7 +303,6 @@ OSM.Directions = function (map) {
       var precision = OSM.zoomPrecision(map.getZoom());
       var value = ll.lat.toFixed(precision) + ", " + ll.lng.toFixed(precision);
       endpoints[type === "from" ? 0 : 1].setValue(value, ll);
       var precision = OSM.zoomPrecision(map.getZoom());
       var value = ll.lat.toFixed(precision) + ", " + ll.lng.toFixed(precision);
       endpoints[type === "from" ? 0 : 1].setValue(value, ll);
-      getRoute(true, true);
     });
 
     var params = Qs.parse(location.search.substring(1)),
     });
 
     var params = Qs.parse(location.search.substring(1)),
@@ -323,8 +322,6 @@ OSM.Directions = function (map) {
     endpoints[1].setValue(params.to || "", to);
 
     map.setSidebarOverlaid(!from || !to);
     endpoints[1].setValue(params.to || "", to);
 
     map.setSidebarOverlaid(!from || !to);
-
-    getRoute(true, true);
   };
 
   page.load = function () {
   };
 
   page.load = function () {