auto-sync: 2026-05-05 14:10:01
This commit is contained in:
75
tasks/enduro-trails/prototype/static/app.js
vendored
75
tasks/enduro-trails/prototype/static/app.js
vendored
@@ -281,7 +281,8 @@ function showSkeleton(containerId, count) {
|
||||
// ─── Deactivate All Modes ──────────────────────────────────────────
|
||||
|
||||
function deactivateAllModes() {
|
||||
if (routeMode) { routeMode = false; document.getElementById('tb-route').classList.remove('active'); closeSheet('sheet-route'); clearRoute(); }
|
||||
// Deactivate all input modes but preserve route/scenic/link data on map
|
||||
if (routeMode) { routeMode = false; document.getElementById('tb-route').classList.remove('active'); closeSheet('sheet-route'); /* NOT clearRoute — keep line on map */ }
|
||||
if (rulerMode) toggleRuler();
|
||||
if (markerMode) toggleMarkerMode();
|
||||
if (typeof reconMode !== 'undefined' && reconMode) toggleReconMode();
|
||||
@@ -392,19 +393,22 @@ function toggleRouteMode() {
|
||||
const sheet = document.getElementById('sheet-route');
|
||||
|
||||
if (routeMode) {
|
||||
// Already in route mode
|
||||
if (sheet.classList.contains('open')) {
|
||||
// Sheet is open → close sheet but keep route on map
|
||||
minimizeSheet('sheet-route');
|
||||
} else {
|
||||
// Sheet already closed → exit route mode entirely (clear route)
|
||||
routeMode = false;
|
||||
btn.classList.remove('active');
|
||||
clearRoute();
|
||||
window._map.getCanvas().style.cursor = '';
|
||||
}
|
||||
// Already in route input mode → exit input mode but keep route on map
|
||||
routeMode = false;
|
||||
btn.classList.remove('active');
|
||||
closeSheet('sheet-route');
|
||||
window._map.getCanvas().style.cursor = '';
|
||||
} else if (routeResults.length > 0) {
|
||||
// Not in input mode, but route exists on map → clear it and start fresh
|
||||
clearRoute();
|
||||
// Now enter input mode
|
||||
deactivateAllModes();
|
||||
routeMode = true;
|
||||
btn.classList.add('active');
|
||||
openSheet('sheet-route');
|
||||
window._map.getCanvas().style.cursor = 'crosshair';
|
||||
} else {
|
||||
// Enter route mode
|
||||
// No route, not in mode → enter route input mode
|
||||
deactivateAllModes();
|
||||
routeMode = true;
|
||||
btn.classList.add('active');
|
||||
@@ -1183,16 +1187,13 @@ let reconRadius = 20;
|
||||
|
||||
function toggleReconMode() {
|
||||
const btn = document.getElementById('tb-recon');
|
||||
const sheet = document.getElementById('sheet-recon');
|
||||
if (reconMode) {
|
||||
if (sheet.classList.contains('open')) {
|
||||
minimizeSheet('sheet-recon');
|
||||
} else {
|
||||
reconMode = false;
|
||||
btn.classList.remove('active');
|
||||
window._map.getCanvas().style.cursor = '';
|
||||
clearRecon();
|
||||
}
|
||||
// Exit recon mode
|
||||
reconMode = false;
|
||||
btn.classList.remove('active');
|
||||
closeSheet('sheet-recon');
|
||||
window._map.getCanvas().style.cursor = '';
|
||||
clearRecon(); // recon data is transient — safe to clear
|
||||
} else {
|
||||
deactivateAllModes();
|
||||
reconMode = true;
|
||||
@@ -1295,16 +1296,13 @@ let linkMarkers = [];
|
||||
|
||||
function toggleLinkMode() {
|
||||
const btn = document.getElementById('tb-link');
|
||||
const sheet = document.getElementById('sheet-link');
|
||||
if (linkMode) {
|
||||
if (sheet.classList.contains('open')) {
|
||||
minimizeSheet('sheet-link');
|
||||
} else {
|
||||
linkMode = false;
|
||||
btn.classList.remove('active');
|
||||
window._map.getCanvas().style.cursor = '';
|
||||
clearLink();
|
||||
}
|
||||
// Exit link mode
|
||||
linkMode = false;
|
||||
btn.classList.remove('active');
|
||||
closeSheet('sheet-link');
|
||||
window._map.getCanvas().style.cursor = '';
|
||||
clearLink();
|
||||
} else {
|
||||
deactivateAllModes();
|
||||
linkMode = true;
|
||||
@@ -1451,16 +1449,13 @@ let activeScenicIdx = 0;
|
||||
|
||||
function toggleScenicMode() {
|
||||
const btn = document.getElementById('tb-scenic');
|
||||
const sheet = document.getElementById('sheet-scenic');
|
||||
if (scenicMode) {
|
||||
if (sheet.classList.contains('open')) {
|
||||
minimizeSheet('sheet-scenic');
|
||||
} else {
|
||||
scenicMode = false;
|
||||
btn.classList.remove('active');
|
||||
window._map.getCanvas().style.cursor = '';
|
||||
clearScenic();
|
||||
}
|
||||
// Exit scenic mode
|
||||
scenicMode = false;
|
||||
btn.classList.remove('active');
|
||||
closeSheet('sheet-scenic');
|
||||
window._map.getCanvas().style.cursor = '';
|
||||
clearScenic();
|
||||
} else {
|
||||
deactivateAllModes();
|
||||
scenicMode = true;
|
||||
|
||||
Reference in New Issue
Block a user