diff --git a/src/js/event-listeners.js b/src/js/event-listeners.js index 4dba7e88..91afa946 100644 --- a/src/js/event-listeners.js +++ b/src/js/event-listeners.js @@ -26,8 +26,10 @@ function addListeners() { var geocode = false; /* Résultats autocompletion ou recherche récente */ let coords = null; + let save = true; if ( evt.target.classList.contains("autocompresult") || evt.target.classList.contains("recentresult")) { geocode = true; + save = !evt.target.classList.contains("recentresult"); evt.target.classList.add("autocompresultselected"); DOM.$rech.value = evt.target.getAttribute("fulltext"); coords = JSON.parse(evt.target.dataset.coordinates); @@ -36,21 +38,21 @@ function addListeners() { if (geocode) { if (Globals.backButtonState === "searchDirections") { setTimeout(() => { - Geocode.search(DOM.$rech.value, coords); + Geocode.search(DOM.$rech.value, coords, save); Globals.menu.open("directions"); }, 250); } else if(Globals.backButtonState === "searchIsochrone") { setTimeout(() => { - Geocode.search(DOM.$rech.value, coords); + Geocode.search(DOM.$rech.value, coords, save); Globals.menu.open("isochrone"); }, 250); } else if(Globals.backButtonState === "searchLandmark") { setTimeout(() => { - Geocode.search(DOM.$rech.value, coords); + Geocode.search(DOM.$rech.value, coords, save); Globals.menu.open("landmark"); }, 250); } else { - Geocode.searchAndMoveTo(DOM.$rech.value, coords); + Geocode.searchAndMoveTo(DOM.$rech.value, coords, save); setTimeout(() => Globals.menu.close("search"), 250); } } diff --git a/src/js/services/geocode.js b/src/js/services/geocode.js index aeef3faf..2ec1c239 100644 --- a/src/js/services/geocode.js +++ b/src/js/services/geocode.js @@ -4,7 +4,6 @@ import DOM from "../dom"; import Globals from "../globals"; import RecentSearch from "../search-recent"; - /** * Interface pour les evenements * @example @@ -53,7 +52,7 @@ function moveTo(coords, zoom=Globals.map.getZoom(), panTo=true) { * @returns * @fire search */ -async function search (text, coords) { +async function search (text, coords, save = true) { /** * Recherche un texte et le géocode à l'aide de look4, * puis va à sa position en ajoutant un marqueur @@ -61,6 +60,15 @@ async function search (text, coords) { if (text === "") { return; } + if (save) { + RecentSearch.add({ + text: text, + coordinates: { + lat: coords.lat, + lon: coords.lon + } + }); + } DOM.$rech.value = text; const geocode_result = { fulltext: text, @@ -91,8 +99,8 @@ async function search (text, coords) { * recherche et deplacement sur la carte * @param {*} text */ -async function searchAndMoveTo(text, coord = null) { - var coords = await search(text, coord); +async function searchAndMoveTo(text, coord = null, save = true) { + var coords = await search(text, coord, save); moveTo(coords, 14); }