X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/87dfbda93261b50332381d0c0c685a71a3b897ad..48e886784e742ec28e33c32b3a0e0bf7cf6d21e7:/app/assets/javascripts/index/directions.js diff --git a/app/assets/javascripts/index/directions.js b/app/assets/javascripts/index/directions.js index 7fda7f7f0..bdba41ec2 100644 --- a/app/assets/javascripts/index/directions.js +++ b/app/assets/javascripts/index/directions.js @@ -40,7 +40,8 @@ OSM.Directions = function (map) { shadowUrl: OSM.MARKER_SHADOW, shadowSize: [41, 41] }), - draggable: true + draggable: true, + autoPan: true }); endpoint.marker.on('drag dragend', function (e) { @@ -54,7 +55,7 @@ OSM.Directions = function (map) { }); input.on("keydown", function() { - input.removeClass("highlight_error"); + input.removeClass("error"); }); input.on("change", function (e) { @@ -68,6 +69,7 @@ OSM.Directions = function (map) { endpoint.setValue = function(value, latlng) { endpoint.value = value; delete endpoint.latlng; + input.removeClass("error"); input.val(value); if (latlng) { @@ -90,8 +92,8 @@ OSM.Directions = function (map) { endpoint.awaitingGeocode = false; endpoint.hasGeocode = true; if (json.length === 0) { + input.addClass("error"); alert(I18n.t('javascripts.directions.errors.no_place', {place: endpoint.value})); - input.addClass("highlight_error"); return; } @@ -157,15 +159,17 @@ OSM.Directions = function (map) { return h + ":" + (m < 10 ? '0' : '') + m; } - function setEngine(id) { - engines.forEach(function(engine, i) { - if (engine.id === id) { - chosenEngine = engine; - select.val(i); - } + function findEngine(id) { + return engines.findIndex(function(engine) { + return engine.id === id; }); } + function setEngine(index) { + chosenEngine = engines[index]; + select.val(index); + } + function getRoute(fitRoute, reportErrors) { // Cancel any route that is already in progress if (awaitingRoute) awaitingRoute.abort(); @@ -314,11 +318,11 @@ OSM.Directions = function (map) { select.append(""); }); - var chosenEngineId = $.cookie('_osm_directions_engine'); - if(!chosenEngineId) { - chosenEngineId = 'osrm_car'; + var chosenEngineIndex = findEngine('fossgis_osrm_car'); + if ($.cookie('_osm_directions_engine')) { + chosenEngineIndex = findEngine($.cookie('_osm_directions_engine')); } - setEngine(chosenEngineId); + setEngine(chosenEngineIndex); select.on("change", function (e) { chosenEngine = engines[e.target.selectedIndex]; @@ -372,7 +376,11 @@ OSM.Directions = function (map) { to = route[1] && L.latLng(route[1].split(',')); if (params.engine) { - setEngine(params.engine); + var engineIndex = findEngine(params.engine); + + if (engineIndex >= 0) { + setEngine(engineIndex); + } } endpoints[0].setValue(params.from || "", from);