]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/index/directions.js
Merge remote-tracking branch 'upstream/pull/4897'
[rails.git] / app / assets / javascripts / index / directions.js
index 7bd0891a34e920956f0e80c3ed12a0f59e4bd9f7..9c5ff2a8d2af724697f2b166e3de7be1b139c352 100644 (file)
@@ -3,7 +3,6 @@
 //= require qs/dist/qs
 
 OSM.Directions = function (map) {
-  var awaitingGeocode; // true if the user has requested a route, but we're waiting on a geocode result
   var awaitingRoute; // true if we've asked the engine for a route and are waiting to hear back
   var chosenEngine;
 
@@ -70,12 +69,10 @@ OSM.Directions = function (map) {
     });
 
     input.on("keydown", function () {
-      input.removeClass("error");
+      input.removeClass("is-invalid");
     });
 
     input.on("change", function (e) {
-      awaitingGeocode = true;
-
       // make text the same in both text boxes
       var value = e.target.value;
       endpoint.setValue(value);
@@ -84,7 +81,7 @@ OSM.Directions = function (map) {
     endpoint.setValue = function (value, latlng) {
       endpoint.value = value;
       delete endpoint.latlng;
-      input.removeClass("error");
+      input.removeClass("is-invalid");
       input.val(value);
 
       if (latlng) {
@@ -109,7 +106,7 @@ OSM.Directions = function (map) {
         endpoint.awaitingGeocode = false;
         endpoint.hasGeocode = true;
         if (json.length === 0) {
-          input.addClass("error");
+          input.addClass("is-invalid");
           alert(I18n.t("javascripts.directions.errors.no_place", { place: endpoint.value }));
           return;
         }
@@ -118,10 +115,7 @@ OSM.Directions = function (map) {
 
         input.val(json[0].display_name);
 
-        if (awaitingGeocode) {
-          awaitingGeocode = false;
-          getRoute(true, true);
-        }
+        getRoute(true, true);
       });
     };
 
@@ -209,11 +203,9 @@ OSM.Directions = function (map) {
       var endpoint = endpoints[ep_i];
       if (!endpoint.hasGeocode && !endpoint.awaitingGeocode) {
         endpoint.getGeocode();
-        awaitingGeocode = true;
       }
     }
     if (endpoints[0].awaitingGeocode || endpoints[1].awaitingGeocode) {
-      awaitingGeocode = true;
       return;
     }
 
@@ -244,7 +236,7 @@ OSM.Directions = function (map) {
         map.removeLayer(polyline);
 
         if (reportErrors) {
-          $("#sidebar_content").html("<p class=\"search_results_error\">" + I18n.t("javascripts.directions.errors.no_route") + "</p>");
+          $("#sidebar_content").html("<div class=\"alert alert-danger\">" + I18n.t("javascripts.directions.errors.no_route") + "</div>");
         }
 
         return;
@@ -268,7 +260,8 @@ OSM.Directions = function (map) {
           I18n.t("javascripts.directions.descend") + ": " + formatHeight(route.descend) + ".");
       }
 
-      var turnByTurnTable = $("<table class='mb-3'>");
+      var turnByTurnTable = $("<table class='table table-hover table-sm mb-3'>")
+        .append($("<tbody>"));
       var directionsCloseButton = $("<button type='button' class='btn-close'>")
         .attr("aria-label", I18n.t("javascripts.close"));
 
@@ -304,9 +297,9 @@ OSM.Directions = function (map) {
         }
 
         var row = $("<tr class='turn'/>");
-        row.append("<td><div class='direction i" + direction + "'/></td> ");
-        row.append("<td class='instruction'>" + instruction);
-        row.append("<td class='distance'>" + dist);
+        row.append("<td class='border-0'><div class='direction i" + direction + "'/></td> ");
+        row.append("<td>" + instruction);
+        row.append("<td class='distance text-body-secondary text-end'>" + dist);
 
         row.on("click", function () {
           popup
@@ -356,7 +349,7 @@ OSM.Directions = function (map) {
     getRoute(true, true);
   });
 
-  $(".routing_marker").on("dragstart", function (e) {
+  $(".routing_marker_column img").on("dragstart", function (e) {
     var dt = e.originalEvent.dataTransfer;
     dt.effectAllowed = "move";
     var dragData = { type: $(this).data("type") };