]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/5962' master
authorTom Hughes <tom@compton.nu>
Tue, 29 Apr 2025 17:22:59 +0000 (18:22 +0100)
committerTom Hughes <tom@compton.nu>
Tue, 29 Apr 2025 17:22:59 +0000 (18:22 +0100)
Gemfile.lock
app/assets/javascripts/index/directions.js

index 4ed1bfa36bb421bc29208cb34ea792fb7aa765c6..0be357a7574356a556840df7836bcdd8bbfabe7d 100644 (file)
@@ -96,8 +96,8 @@ GEM
     autoprefixer-rails (10.4.21.0)
       execjs (~> 2)
     aws-eventstream (1.3.2)
-    aws-partitions (1.1090.0)
-    aws-sdk-core (3.222.2)
+    aws-partitions (1.1093.0)
+    aws-sdk-core (3.222.3)
       aws-eventstream (~> 1, >= 1.3.0)
       aws-partitions (~> 1, >= 1.992.0)
       aws-sigv4 (~> 1.9)
@@ -107,7 +107,7 @@ GEM
     aws-sdk-kms (1.99.0)
       aws-sdk-core (~> 3, >= 3.216.0)
       aws-sigv4 (~> 1.5)
-    aws-sdk-s3 (1.183.0)
+    aws-sdk-s3 (1.184.0)
       aws-sdk-core (~> 3, >= 3.216.0)
       aws-sdk-kms (~> 1)
       aws-sigv4 (~> 1.5)
@@ -166,7 +166,7 @@ GEM
     config (5.5.2)
       deep_merge (~> 1.2, >= 1.2.1)
       ostruct
-    connection_pool (2.5.1)
+    connection_pool (2.5.3)
     cork (0.3.0)
       colored2 (~> 3.1)
     crack (1.0.0)
@@ -271,7 +271,7 @@ GEM
     factory_bot_rails (6.4.4)
       factory_bot (~> 6.5)
       railties (>= 5.0.0)
-    faraday (2.13.0)
+    faraday (2.13.1)
       faraday-net_http (>= 2.0, < 3.5)
       json
       logger
@@ -297,7 +297,7 @@ GEM
     glob (0.4.1)
     globalid (1.2.1)
       activesupport (>= 6.1)
-    google-protobuf (3.25.6)
+    google-protobuf (3.25.7)
     hashdiff (1.1.2)
     hashie (5.0.0)
     highline (3.1.2)
@@ -349,7 +349,7 @@ GEM
       rails-dom-testing (>= 1, < 3)
       railties (>= 4.2.0)
       thor (>= 0.14, < 2.0)
-    json (2.10.2)
+    json (2.11.3)
     jwt (2.10.1)
       base64
     kgio (2.11.4)
@@ -422,7 +422,7 @@ GEM
       rack (>= 1.2, < 4)
       snaky_hash (~> 2.0)
       version_gem (~> 1.1)
-    octokit (9.2.0)
+    octokit (10.0.0)
       faraday (>= 1, < 3)
       sawyer (~> 0.9)
     omniauth (2.1.3)
@@ -560,10 +560,10 @@ GEM
     rexml (3.4.1)
     rinku (2.0.6)
     rotp (6.3.0)
-    rouge (4.5.1)
+    rouge (4.5.2)
     rtlcss (0.2.1)
       mini_racer (>= 0.6.3)
-    rubocop (1.75.3)
+    rubocop (1.75.4)
       json (~> 2.3)
       language_server-protocol (~> 3.17.0.2)
       lint_roller (~> 1.1.0)
index c5d5cce1589a0d63f6698374546dccedf48eb558..61c646c590203b64c18d2fda465e4f4fbab8aece 100644 (file)
@@ -8,6 +8,8 @@ OSM.Directions = function (map) {
   let lastLocation = [];
   let chosenEngine;
 
+  let scheduledRouteArguments = null;
+
   const routeOutput = OSM.DirectionsRouteOutput(map);
 
   const endpointDragCallback = function (dragging) {
@@ -86,7 +88,15 @@ OSM.Directions = function (map) {
     select.val(chosenEngine.provider);
   }
 
-  function getRoute(fitRoute, reportErrors) {
+  function getRoute(...routeArguments) {
+    if ($("#directions_content").length) {
+      getScheduledRoute(...routeArguments);
+    } else {
+      scheduledRouteArguments = routeArguments;
+    }
+  }
+
+  function getScheduledRoute(fitRoute, reportErrors) {
     // Cancel any route that is already in progress
     if (controller) controller.abort();
 
@@ -212,18 +222,18 @@ OSM.Directions = function (map) {
   const page = {};
 
   page.pushstate = page.popstate = function () {
-    if ($("#directions_content").length) {
-      page.load();
-    } else {
-      initializeFromParams();
+    page.load();
 
-      $(".search_form").hide();
-      $(".directions_form").show();
+    if ($("#directions_content").length) return;
 
-      OSM.loadSidebarContent("/directions", enableListeners);
+    OSM.loadSidebarContent("/directions", () => {
+      if (scheduledRouteArguments) {
+        getScheduledRoute(...scheduledRouteArguments);
+        scheduledRouteArguments = null;
+      }
+    });
 
-      map.setSidebarOverlaid(!endpoints[0].latlng || !endpoints[1].latlng);
-    }
+    map.setSidebarOverlaid(!endpoints[0].latlng || !endpoints[1].latlng);
   };
 
   page.load = function () {
@@ -252,6 +262,8 @@ OSM.Directions = function (map) {
     endpoints[1].clearValue();
 
     routeOutput.remove($("#directions_content"));
+
+    scheduledRouteArguments = null;
   };
 
   return page;