X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/4254a1f2910d993aed343ea963c59e8ac9ca52c2..9d2f920feb9dce028b985e8d452538d3df7a1d9c:/app/assets/javascripts/index/directions.js diff --git a/app/assets/javascripts/index/directions.js b/app/assets/javascripts/index/directions.js index f7ac87636..ee195af41 100644 --- a/app/assets/javascripts/index/directions.js +++ b/app/assets/javascripts/index/directions.js @@ -26,9 +26,14 @@ OSM.Directions = function (map) { Endpoint($("input[name='route_to']"), OSM.MARKER_RED) ]; + var expiry = new Date(); + expiry.setYear(expiry.getFullYear() + 10); + function Endpoint(input, iconUrl) { var endpoint = {}; + endpoint.input = input; + endpoint.marker = L.marker([0, 0], { icon: L.icon({ iconUrl: iconUrl, @@ -73,7 +78,7 @@ OSM.Directions = function (map) { endpoint.awaitingGeocode = true; - $.getJSON(document.location.protocol + OSM.NOMINATIM_URL + 'search?q=' + encodeURIComponent(endpoint.value) + '&format=json', function (json) { + $.getJSON(OSM.NOMINATIM_URL + 'search?q=' + encodeURIComponent(endpoint.value) + '&format=json', function (json) { endpoint.awaitingGeocode = false; endpoint.hasGeocode = true; if (json.length === 0) { @@ -108,7 +113,21 @@ OSM.Directions = function (map) { return endpoint; } - $(".directions_form a.directions_close").on("click", function(e) { + $(".directions_form .reverse_directions").on("click", function() { + var input_from = endpoints[0].input.val(); + var input_to = endpoints[1].input.val(); + var latlng_from = endpoints[0].latlng; + var latlng_to = endpoints[1].latlng; + + endpoints[0].setLatLng(latlng_to); + endpoints[1].setLatLng(latlng_from); + endpoints[0].input.val(input_to); + endpoints[1].input.val(input_from); + + getRoute(); + }); + + $(".directions_form .close").on("click", function(e) { e.preventDefault(); var route_from = endpoints[0].value; if (route_from) { @@ -146,7 +165,7 @@ OSM.Directions = function (map) { function getRoute() { // Cancel any route that is already in progress - if (awaitingRoute) awaitingRoute.abourt(); + if (awaitingRoute) awaitingRoute.abort(); // go fetch geocodes for any endpoints which have not already // been geocoded. @@ -189,7 +208,7 @@ OSM.Directions = function (map) { map.removeLayer(polyline); if (!dragging) { - alert(I18n.t('javascripts.directions.errors.no_route')); + $('#sidebar_content').html('
' + I18n.t('javascripts.directions.errors.no_route') + '
'); } return; @@ -207,8 +226,13 @@ OSM.Directions = function (map) { '' + I18n.t('javascripts.directions.directions') + '' + I18n.t('javascripts.directions.distance') + ': ' + formatDistance(route.distance) + '. ' + - I18n.t('javascripts.directions.time') + ': ' + formatTime(route.time) + '.
' + - '