diff --git a/index.html b/index.html
index 54591a88..18d938a6 100644
--- a/index.html
+++ b/index.html
@@ -3380,6 +3380,8 @@
diff --git a/modules/ui/markers-overview.js b/modules/ui/markers-overview.js
index 15837774..10ac506d 100644
--- a/modules/ui/markers-overview.js
+++ b/modules/ui/markers-overview.js
@@ -6,6 +6,8 @@ function overviewMarkers() {
const markerGroup = document.getElementById("markers");
const body = document.getElementById("markersBody");
+ const markersInverPin = document.getElementById("markersInverPin");
+ const markersInverLock = document.getElementById("markersInverLock");
const markersFooterNumber = document.getElementById("markersFooterNumber");
const markersOverviewRefresh = document.getElementById("markersOverviewRefresh");
const markersAddFromOverview = document.getElementById("markersAddFromOverview");
@@ -25,6 +27,8 @@ function overviewMarkers() {
const listeners = [
listen(body, "click", handleLineClick),
+ listen(markersInverPin, "click", invertPin),
+ listen(markersInverLock, "click", invertLock),
listen(markersOverviewRefresh, "click", addLines),
listen(markersAddFromOverview, "click", toggleAddMarker),
listen(markersGenerationConfig, "click", configMarkersGeneration),
@@ -45,12 +49,12 @@ function overviewMarkers() {
function addLines() {
const lines = pack.markers
- .map(({i, type, icon, lock}) => {
+ .map(({i, type, icon, pinned, lock}) => {
return `
`;
@@ -63,6 +67,27 @@ function overviewMarkers() {
applySorting(markersHeader);
}
+ function invertPin() {
+ let anyPinned = false;
+
+ pack.markers.forEach(marker => {
+ const pinned = !marker.pinned;
+ if (pinned) {
+ marker.pinned = true;
+ anyPinned = true;
+ } else delete marker.pinned;
+ });
+
+ markerGroup.setAttribute("pinned", anyPinned ? 1 : null);
+ drawMarkers();
+ addLines();
+ }
+
+ function invertLock() {
+ pack.markers = pack.markers.map(marker => ({...marker, lock: !marker.lock}));
+ addLines();
+ }
+
function openEditor(i) {
const marker = pack.markers.find(marker => marker.i === i);
if (!marker) return;