From ec6789920cdb3548155ff676af893ee277ee7bfa Mon Sep 17 00:00:00 2001 From: Anton Khorev Date: Sun, 11 Aug 2024 06:47:38 +0300 Subject: [PATCH] Rename geocodeCallback to changeCallback, call it from latlon setValue 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 | 5 +++-- app/assets/javascripts/index/directions.js | 9 +++------ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/app/assets/javascripts/index/directions-endpoint.js b/app/assets/javascripts/index/directions-endpoint.js index 14c91a4fb4..24042081d7 100644 --- a/app/assets/javascripts/index/directions-endpoint.js +++ b/app/assets/javascripts/index/directions-endpoint.js @@ -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], { @@ -42,6 +42,7 @@ OSM.DirectionsEndpoint = function Endpoint(map, input, iconUrl, dragCallback, ge if (latlng) { setLatLng(latlng); setInputValueFromLatLng(latlng); + changeCallback(); } else { endpoint.getGeocode(); } @@ -71,7 +72,7 @@ OSM.DirectionsEndpoint = function Endpoint(map, input, iconUrl, dragCallback, ge input.val(json[0].display_name); - geocodeCallback(); + changeCallback(); }); }; diff --git a/app/assets/javascripts/index/directions.js b/app/assets/javascripts/index/directions.js index 974a40e850..b34f18ed1e 100644 --- a/app/assets/javascripts/index/directions.js +++ b/app/assets/javascripts/index/directions.js @@ -28,13 +28,13 @@ OSM.Directions = function (map) { getRoute(false, !dragging); }; - var endpointGeocodeCallback = function () { + var endpointChangeCallback = function () { 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(); @@ -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); - getRoute(true, true); }); 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); - - getRoute(true, true); }; page.load = function () {