Saving current working state before proceeding to Stage 2. Includes: - Backend: Python-based QC validator with shapefile processing - Frontend: Drag-and-drop file upload interface - Sample files for testing - Documentation and revision history 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
95 lines
3.3 KiB
HTML
95 lines
3.3 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<title>LLD QC Tool</title>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
|
|
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
|
|
<link rel="stylesheet" href="/static/styles.css" />
|
|
</head>
|
|
<body>
|
|
<!-- Full-screen map -->
|
|
<div id="map"></div>
|
|
|
|
<!-- Floating header bar -->
|
|
<div id="header">
|
|
<div class="header-left">
|
|
<h1>LLD QC Tool</h1>
|
|
</div>
|
|
<div class="header-center">
|
|
<div class="control-group">
|
|
<label>Market</label>
|
|
<select id="marketSelect" class="modern-select">
|
|
<option value="">Loading...</option>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="control-group">
|
|
<label>Zone</label>
|
|
<select id="zoneSelect" class="modern-select" disabled>
|
|
<option value="">Select Market First</option>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="control-group">
|
|
<label>Segment Filter</label>
|
|
<select id="segmentTypeFilter" class="modern-select">
|
|
<option value="">All Types</option>
|
|
<option value="aerial">Aerial</option>
|
|
<option value="underground">Underground</option>
|
|
<option value="proposed">Proposed</option>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="control-group">
|
|
<label>QC Operation</label>
|
|
<select id="qcOperationSelect" class="modern-select">
|
|
<option value="">Select QC Check...</option>
|
|
<option value="connectivity">Network Connectivity</option>
|
|
<option value="single-span">Single Span</option>
|
|
<option value="aerial-endpoints">Aerial Endpoints</option>
|
|
<option value="underground-endpoints">Underground Endpoints</option>
|
|
<option value="zone-containment">Zone Containment</option>
|
|
<option value="handhole-connectivity">Handhole Connectivity</option>
|
|
<option value="site-connectivity">Site Connectivity</option>
|
|
</select>
|
|
</div>
|
|
|
|
<button id="runQCButton" class="primary-button" disabled>
|
|
<span class="button-text">Run QC</span>
|
|
<span class="button-loader"></span>
|
|
</button>
|
|
|
|
<button id="clearQCButton" class="secondary-button" style="display:none;">
|
|
Clear QC Results
|
|
</button>
|
|
|
|
<div class="control-group endpoint-toggle" id="endpointToggleContainer" style="display:none;">
|
|
<label>
|
|
<input type="checkbox" id="endpointToggle" checked>
|
|
Show Endpoints
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Status/Results Panel -->
|
|
<div id="statusPanel">
|
|
<div id="status"></div>
|
|
<div id="qcResult"></div>
|
|
</div>
|
|
|
|
<!-- Loading overlay -->
|
|
<div id="loadingOverlay" style="display:none;">
|
|
<div class="loader-spinner"></div>
|
|
<div class="loader-text">Loading data...</div>
|
|
</div>
|
|
|
|
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
|
|
<script src="https://unpkg.com/@turf/turf/turf.min.js"></script>
|
|
<script src="/static/main.js"></script>
|
|
</body>
|
|
</html> |