diff --git a/index.html b/index.html index 5dd23a7f..5728d055 100644 --- a/index.html +++ b/index.html @@ -3377,6 +3377,7 @@ + diff --git a/modules/ui/markers-overview.js b/modules/ui/markers-overview.js index cdcc754c..e52a32da 100644 --- a/modules/ui/markers-overview.js +++ b/modules/ui/markers-overview.js @@ -10,6 +10,7 @@ function overviewMarkers() { const markersAddFromOverview = document.getElementById("markersAddFromOverview"); const markersGenerationConfig = document.getElementById("markersGenerationConfig"); const markersRemoveAll = document.getElementById("markersRemoveAll"); + const markersExport = document.getElementById("markersExport"); addLines(); @@ -26,7 +27,8 @@ function overviewMarkers() { listen(markersOverviewRefresh, "click", addLines), listen(markersAddFromOverview, "click", toggleAddMarker), listen(markersGenerationConfig, "click", configMarkersGeneration), - listen(markersRemoveAll, "click", triggerRemoveAll) + listen(markersRemoveAll, "click", triggerRemoveAll), + listen(markersExport, "click", exportMarkers) ]; function handleLineClick(ev) { @@ -66,6 +68,7 @@ function overviewMarkers() { editMarker(i); } + // TODO: highlight markers on hover function highlightMarkerOn(event) { if (!layerIsOn("toggleLabels")) toggleLabels(); // burgLabels.select("[data-id='" + burg + "']").classed("drag", true); @@ -129,6 +132,22 @@ function overviewMarkers() { addLines(); } + function exportMarkers() { + const headers = "Id,Type,Icon,Name,Note,X,Y\n"; + + const body = pack.markers.map(marker => { + const {i, type, icon, x, y} = marker; + const id = `marker${i}`; + const note = notes.find(note => note.id === id); + const legend = escape(note.legend); + return [id, type, icon, note.name, legend, x, y].join(","); + }); + + const data = headers + body.join("\n"); + const fileName = getFileName("Markers") + ".csv"; + downloadFile(data, fileName); + } + function close() { listeners.forEach(removeListener => removeListener());