Move back button into sidebar, remove close button, reorder counties, add TODO notes

This commit is contained in:
zyphlar
2026-04-21 22:26:05 -07:00
parent 32cd6cba59
commit f35bc2dd9d
5 changed files with 92 additions and 50 deletions
+74
View File
@@ -140,3 +140,77 @@ docker-compose down
docker-compose build --no-cache docker-compose build --no-cache
docker-compose up -d docker-compose up -d
``` ```
## TODO
- Validate whether a similar address is within 50 feet (same number?)
- If addr:unit is like "Apartment 123" or "Apartment 123;Apartment 124;Apartment 125" remove the word Apartment so it's just "123" or "123;124;125"
- If an item gets through processing and is "<Null>" it should be cleared
- If a value is a range like "123 - 456" assume it's the same as "123-456" for matching purposes
- Unit numbers with semicolons are still getting detected as different despite being identical, like:
addr:city=Wildwood
addr:housenumber=8655
addr:postcode=34785
addr:state=FL
addr:street=Easterly Lane
addr:unit=108;208;308
- Some items appear duplicate in the data itself for unknown reasons:
addr:city=Bushnell
addr:housenumber=5740
addr:postcode=33513
addr:state=FL
addr:street=Hideaway Circle
- Sr is SR (State Route)
### Corrections
{
"corrections": [
{
"from": "D Angelo Lane",
"to": "D'Angelo Lane"
},
{
"from": "Lajolla Circle",
"to": "La Jolla Circle"
},
{
"from": "Gardena Court",
"to": "Gardenia Court"
},
{
"from": "Glenmont Court",
"to": "Glenmount Court"
},
{
"from": "Pawleys Island Path",
"to": "Pawley's Island Path"
},
{
"from": "Oday Street",
"to": "O'Day Street"
},
{
"from": "Obrien Place",
"to": "O'Brien Place"
},
{
"from": "Ohara Court",
"to": "O'Hara Court"
},
{
"from": "Drive Randy Mcdaniel Way",
"to": "Doctor Randy McDaniel Way"
},
{
"from": "Mcneillrescue Lane",
"to": "Rescue Lane"
},
{
"from": "Longleaf Lane",
"to": "Long Leaf Lane"
}
]
}
+10 -10
View File
@@ -315,24 +315,24 @@ def serve_data(filename):
COUNTIES_FILE = '/data/counties.yml' COUNTIES_FILE = '/data/counties.yml'
DEFAULT_COUNTIES = [ DEFAULT_COUNTIES = [
{
'id': 'lake',
'name': 'Lake County',
'state': 'Florida',
'color': '#28a745',
'roads_url': 'https://c.lakecountyfl.gov/ftp/GIS/GisDownloads/Shapefiles/Streets.zip',
'addresses_url': 'https://c.lakecountyfl.gov/ftp/GIS/GisDownloads/Shapefiles/Addresspoints.zip',
'paths_url': '',
},
{ {
'id': 'sumter', 'id': 'sumter',
'name': 'Sumter County', 'name': 'Sumter County',
'state': 'Florida', 'state': 'Florida',
'color': '#17a2b8', 'color': '#28a745',
'roads_url': 'https://www.arcgis.com/sharing/rest/content/items/9177e17c72d3433aa79630c7eda84add/data', 'roads_url': 'https://www.arcgis.com/sharing/rest/content/items/9177e17c72d3433aa79630c7eda84add/data',
'addresses_url': 'https://www.arcgis.com/sharing/rest/content/items/c75c5aac13a648968c5596b0665be28b/data', 'addresses_url': 'https://www.arcgis.com/sharing/rest/content/items/c75c5aac13a648968c5596b0665be28b/data',
'paths_url': 'upload', 'paths_url': 'upload',
}, },
{
'id': 'lake',
'name': 'Lake County',
'state': 'Florida',
'color': '#17a2b8',
'roads_url': 'https://c.lakecountyfl.gov/ftp/GIS/GisDownloads/Shapefiles/Streets.zip',
'addresses_url': 'https://c.lakecountyfl.gov/ftp/GIS/GisDownloads/Shapefiles/Addresspoints.zip',
'paths_url': '',
},
] ]
def _ensure_counties_file(): def _ensure_counties_file():
-2
View File
@@ -1160,7 +1160,6 @@ document.addEventListener('DOMContentLoaded', function() {
// Mobile hamburger menu toggle // Mobile hamburger menu toggle
const hamburgerButton = document.getElementById('hamburgerButton'); const hamburgerButton = document.getElementById('hamburgerButton');
const closeButton = document.getElementById('closeButton');
const controls = document.getElementById('controls'); const controls = document.getElementById('controls');
const overlay = document.getElementById('overlay'); const overlay = document.getElementById('overlay');
@@ -1182,7 +1181,6 @@ document.addEventListener('DOMContentLoaded', function() {
window.closeMobileControls = closeControls; window.closeMobileControls = closeControls;
hamburgerButton.addEventListener('click', toggleControls); hamburgerButton.addEventListener('click', toggleControls);
closeButton.addEventListener('click', closeControls);
overlay.addEventListener('click', closeControls); overlay.addEventListener('click', closeControls);
// Layer toggles // Layer toggles
-1
View File
@@ -122,7 +122,6 @@
background: white; background: white;
border-radius: 8px; border-radius: 8px;
box-shadow: 0 1px 3px rgba(0,0,0,0.07); box-shadow: 0 1px 3px rgba(0,0,0,0.07);
overflow: hidden;
} }
.wf-title { .wf-title {
+8 -37
View File
@@ -199,34 +199,12 @@
transform: rotate(-45deg) translate(6px, -6px); transform: rotate(-45deg) translate(6px, -6px);
} }
.close-button {
display: none;
position: absolute;
top: 10px;
right: 10px;
background: transparent;
border: none;
font-size: 24px;
cursor: pointer;
padding: 5px;
line-height: 1;
color: #666;
}
.close-button:hover {
color: #333;
}
/* Mobile styles */ /* Mobile styles */
@media (max-width: 768px) { @media (max-width: 768px) {
.hamburger-button { .hamburger-button {
display: flex; display: flex;
} }
.close-button {
display: block;
}
.controls { .controls {
position: fixed; position: fixed;
top: 0; top: 0;
@@ -276,30 +254,23 @@
cursor: crosshair !important; cursor: crosshair !important;
} }
/* Back button */ .btn-back {
.back-button { display: block;
position: absolute; margin-bottom: 12px;
top: 10px; padding: 5px 10px;
left: 10px;
z-index: 1000;
padding: 6px 12px;
background: #1a1a2e; background: #1a1a2e;
color: #ddd; color: #ddd;
border: none; border-radius: 4px;
border-radius: 5px;
font-size: 12px; font-size: 12px;
font-weight: 600; font-weight: 600;
cursor: pointer;
text-decoration: none; text-decoration: none;
display: inline-block; text-align: center;
box-shadow: 0 2px 6px rgba(0,0,0,0.3);
} }
.back-button:hover { background: #2d2d4e; color: #fff; } .btn-back:hover { background: #2d2d4e; color: #fff; }
</style> </style>
</head> </head>
<body> <body>
<div id="map"></div> <div id="map"></div>
<a href="/" class="back-button">&#8592; Back</a>
<!-- Hamburger menu button for mobile --> <!-- Hamburger menu button for mobile -->
<button class="hamburger-button" id="hamburgerButton" aria-label="Toggle menu"> <button class="hamburger-button" id="hamburgerButton" aria-label="Toggle menu">
@@ -312,7 +283,7 @@
<div class="overlay" id="overlay"></div> <div class="overlay" id="overlay"></div>
<div class="controls" id="controls"> <div class="controls" id="controls">
<button class="close-button" id="closeButton" aria-label="Close menu">&times;</button> <a href="/" class="btn-back">&#8592; Back</a>
<h3>Layer Controls (top to bottom)</h3> <h3>Layer Controls (top to bottom)</h3>
<div id="layerList"> <div id="layerList">
<div class="layer-item" draggable="true" data-layer="diff"> <div class="layer-item" draggable="true" data-layer="diff">