diff --git a/frontend/common/map.js b/frontend/common/map.js index a36834e..7611d81 100644 --- a/frontend/common/map.js +++ b/frontend/common/map.js @@ -197,6 +197,8 @@ async function updateBrouter () { } markers[markers.length-1]._icon.classList.add("red"); markers[0]._icon.classList.add("green"); + } else { + resetEditing() } geojsons = []; recompute_anglemarkers(geojsons); @@ -204,6 +206,7 @@ async function updateBrouter () { map.removeLayer(geojson); } if (markers.length < 2) { + document.querySelector("#save").disabled = true return; } for (let i = 0; i < markers.length - 1 ; i++) { @@ -221,6 +224,7 @@ async function updateBrouter () { if (geojson != undefined) { map.removeLayer(geojson); } + document.querySelector("#save").disabled = false delete data.features[0].properties.messages; geojsons.push(data.features[0]); recompute_anglemarkers(geojsons); @@ -236,6 +240,10 @@ async function updateBrouter () { } async function addBrouterMarker(pos) { + if (!editing) { + editFilename = undefined + } + purgeLayer(endmarkers) const marker = new L.marker(pos, {draggable: true}) ; markers.push(marker); marker.on("click", function(e) { @@ -279,10 +287,17 @@ const mapJSONs = {} let editFilename let editing +async function resetEditing() { + editFilename = undefined; + editing = false + document.querySelector('#featurename').innerHTML = "" +} + async function startEdit(e) { editing = true purgeLayer(endmarkers) addBrouterMarker(this._latlng) + document.querySelector('#featurename').innerHTML = `Editing ${editFilename.replace(/\.geojson$|\.json$/,"")}
` } async function whenClicked(e, feature, filename) { @@ -299,7 +314,6 @@ async function whenClicked(e, feature, filename) { mark.on('click', startEdit) } editFilename = filename - document.querySelector('#featurename').innerHTML = `Editing ${editFilename.replace(/\.geojson$|\.json$/,"")}
` } @@ -384,8 +398,7 @@ async function pickDirectory(e){ } markers = []; updateBrouter(); - editing = false; - editFilename = undefined; + resetEditing(); alert("Saved file!"); } } @@ -407,7 +420,7 @@ if (edit) {


- + ` } else { buttonDiv.innerHTML = "Your browser does not support editing.
As of 2025, editing is supported on Chromium-based browsers only.";