docs: client portal design + milestone plan (M1 live view → M4 full auth) #61

Merged
serversdown merged 27 commits from feat/client-portal into dev 2026-06-11 23:21:53 -04:00
Showing only changes of commit 5455d3a931 - Show all commits
+6 -2
View File
@@ -81,14 +81,18 @@ const withCoords = LOCATIONS.filter(l => l.coordinates);
if (withCoords.length) { if (withCoords.length) {
const mapEl = document.getElementById('loc-map'); const mapEl = document.getElementById('loc-map');
mapEl.classList.remove('hidden'); mapEl.classList.remove('hidden');
const map = L.map('loc-map'); const map = L.map('loc-map', { scrollWheelZoom: false });
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
{ maxZoom: 19, attribution: '© OpenStreetMap' }).addTo(map); { maxZoom: 19, attribution: '© OpenStreetMap' }).addTo(map);
const pts = []; const pts = [];
withCoords.forEach(l => { withCoords.forEach(l => {
const [la, lo] = (l.coordinates || '').split(',').map(Number); const [la, lo] = (l.coordinates || '').split(',').map(Number);
if (!isNaN(la) && !isNaN(lo)) { if (!isNaN(la) && !isNaN(lo)) {
L.marker([la, lo]).addTo(map).bindPopup(l.name); // Same dot style as the internal project map (circleMarker, not a pin).
L.circleMarker([la, lo], {
radius: 8, fillColor: '#f48b1c', color: '#fff',
weight: 2, opacity: 1, fillOpacity: 0.9,
}).addTo(map).bindTooltip(l.name, { direction: 'top', offset: [0, -6] });
pts.push([la, lo]); pts.push([la, lo]);
} }
}); });