Files
intercept/templates/partials/modes/drone.html
T
James Smith 6523686aca feat(drone): add main visuals panel with map and contact list
- Sidebar inputs now use form-group/label pattern matching other modes
- Move map and contact list out of sidebar into a dedicated droneVisuals
  main panel (same pattern as tscm, spystations, etc.)
- droneVisuals: stats header (contacts / non-compliant / high-risk),
  left contact card panel, and full-height Leaflet map on the right
- Wire droneVisuals into switchMode display toggle and modesWithVisuals
  so the shared signal-feed output is hidden when drone mode is active
- Add invalidateMap() to force Leaflet to recalculate after the
  container becomes visible
- Stats now update both sidebar counts and main panel values

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 09:16:54 +01:00

60 lines
2.2 KiB
HTML

<!-- DRONE INTELLIGENCE MODE -->
<div id="droneMode" class="mode-content">
<div class="section">
<h3>Drone Intelligence</h3>
<p class="info-text" style="margin-bottom: 12px;">
Multi-vector UAV detection: Remote ID (WiFi/BLE), 433/868&nbsp;MHz control links, 2.4/5.8&nbsp;GHz wideband.
</p>
</div>
<div class="section">
<h3>Detection Vectors</h3>
<div id="droneVectorStatus" class="drone-vector-pills">
<span class="drone-vector-pill" id="dronePillRemoteId">Remote ID</span>
<span class="drone-vector-pill" id="dronePill433">433 MHz</span>
<span class="drone-vector-pill" id="dronePillHackrf">2.4 / 5.8 GHz</span>
</div>
</div>
<div class="section">
<h3>WiFi Interface</h3>
<div class="form-group">
<label for="droneWifiIface">Interface (monitor mode)</label>
<input type="text" id="droneWifiIface" placeholder="e.g. wlan0mon">
</div>
</div>
<div class="section">
<h3>SDR Settings</h3>
<div class="form-group">
<label for="droneRtlIndex">RTL-SDR Device Index (433 MHz)</label>
<input type="number" id="droneRtlIndex" value="0" min="0" max="7" placeholder="Device index">
</div>
<div class="form-group">
<label class="inline-checkbox">
<input type="checkbox" id="droneUseHackrf" checked>
Use HackRF (2.4 / 5.8 GHz)
</label>
</div>
</div>
<div class="section">
<div style="display:flex; gap:8px;">
<button id="droneStartBtn" class="run-btn" style="flex:1;">Start</button>
<button id="droneStopBtn" class="stop-btn" style="flex:1;" disabled>Stop</button>
</div>
</div>
<div class="section">
<h3>Status</h3>
<p class="info-text">
Status: <span id="droneStatusText" style="color:var(--accent-yellow);">Standby</span>
</p>
<p class="info-text">
Contacts: <span id="droneContactCount">0</span>
&nbsp;|&nbsp;
Non-compliant: <span id="droneNonCompliantCount" style="color:var(--accent-red);">0</span>
</p>
</div>
</div>