mirror of
https://github.com/smittix/intercept.git
synced 2026-07-26 01:38:10 -07:00
fix: Resolve TSCM function strip visibility and clipping issues
- Fix function strip content being clipped by changing overflow to visible - Add min-height and increased padding to function strip - Add explicit colors for TSCM strip stat values and labels - Fix output-panel overflow for TSCM mode using :has() selector - Add CSS variables --bg-dark and --bg-panel aliases - Clean up sidebar section margins for consistent spacing - Add unique IDs to WiFi/Bluetooth export sections for restore function Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -47,8 +47,6 @@
|
||||
<input type="checkbox" id="showAllAgents" onchange="toggleShowAllAgents()"> All
|
||||
</label>
|
||||
</div>
|
||||
<a href="#" onclick="history.back(); return false;" class="back-link">Back</a>
|
||||
<a href="/" class="back-link">Main Dashboard</a>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
|
||||
@@ -223,26 +223,6 @@
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
/* Navigation links */
|
||||
.nav-links {
|
||||
display: flex;
|
||||
gap: 16px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.back-link {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
color: var(--accent-cyan);
|
||||
text-decoration: none;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.back-link:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* Toast notifications */
|
||||
.toast {
|
||||
position: fixed;
|
||||
@@ -301,21 +281,6 @@
|
||||
</header>
|
||||
|
||||
<div class="agents-container">
|
||||
<div class="nav-links">
|
||||
<a href="#" onclick="history.back(); return false;" class="back-link">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
||||
<path d="M19 12H5M12 19l-7-7 7-7"/>
|
||||
</svg>
|
||||
Back
|
||||
</a>
|
||||
<a href="/" class="back-link">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
||||
<path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/>
|
||||
<polyline points="9 22 9 12 15 12 15 22"/>
|
||||
</svg>
|
||||
Dashboard
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="agents-header">
|
||||
<h1>Remote Agents</h1>
|
||||
|
||||
@@ -48,8 +48,6 @@
|
||||
<input type="checkbox" id="showAllAgents" onchange="toggleShowAllAgents()"> All
|
||||
</label>
|
||||
</div>
|
||||
<a href="#" onclick="history.back(); return false;" class="back-link">Back</a>
|
||||
<a href="/" class="back-link">Main Dashboard</a>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
|
||||
@@ -1500,7 +1500,7 @@
|
||||
</div>
|
||||
|
||||
<!-- TSCM Dashboard -->
|
||||
<div id="tscmVisuals" class="tscm-dashboard" style="display: none; padding: 16px;">
|
||||
<div id="tscmVisuals" class="tscm-dashboard" style="display: none;">
|
||||
<!-- TSCM Function Bar -->
|
||||
<div class="function-strip tscm-strip" id="tscmStrip" style="margin-bottom: 12px;">
|
||||
<div class="function-strip-inner">
|
||||
@@ -3017,8 +3017,8 @@
|
||||
restoreSectionsToMode('rtlamrMode', ['#rtlamrPpm', '#rtlamrUnique', '#rtlamrLogging'], 'Utility Meter');
|
||||
restoreSectionsToMode('aprsMode', [], 'APRS Tracking');
|
||||
restoreSectionsToMode('spystationsMode', ['#filterTypeNumber', '#countryFilters', '#modeFilters', '#spyStatsNumber'], 'Spy Stations');
|
||||
restoreSectionsToMode('wifiMode', ['#wifiScanModeQuick', '#monitorStartBtn', '#wifiChannel', '#watchMacInput', '#targetBssid'], 'WiFi Scanning');
|
||||
restoreSectionsToMode('bluetoothMode', ['#btAdapterSelect', '#btTransport', '#btScanDuration'], 'Bluetooth Scanning');
|
||||
restoreSectionsToMode('wifiMode', ['#wifiScanModeQuick', '#monitorStartBtn', '#wifiChannel', '#watchMacInput', '#targetBssid', '#wifiExportCsvBtn'], 'WiFi Scanning');
|
||||
restoreSectionsToMode('bluetoothMode', ['#btAdapterSelect', '#btTransport', '#btScanDuration', '#btExportCsvBtn', '#btCapabilityMarker'], 'Bluetooth Scanning');
|
||||
restoreSectionsToMode('tscmMode', ['#tscmWifiEnabled', '#tscmVerboseResults', '#tscmBaselineName'], 'TSCM Sweep');
|
||||
restoreSectionsToMode('satelliteMode', ['#satTrackingList', '#obsLat', '#obsLon'], 'Satellite Command');
|
||||
restoreSectionsToMode('sstvMode', ['#sstvFrequency'], 'ISS SSTV Decoder');
|
||||
|
||||
@@ -159,8 +159,6 @@
|
||||
{% block dashboard_header_center %}{% endblock %}
|
||||
<div class="header-utilities" style="gap: var(--space-2);">
|
||||
{% block agent_selector %}{% endblock %}
|
||||
<a href="#" onclick="history.back(); return false;" class="back-link" style="font-size: var(--text-sm);">Back</a>
|
||||
<a href="/" class="back-link" style="font-size: var(--text-sm);">Main Dashboard</a>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
@@ -514,8 +514,6 @@
|
||||
<span>// MULTI-AGENT VIEW</span>
|
||||
</div>
|
||||
<nav class="header-nav">
|
||||
<a href="#" onclick="history.back(); return false;">Back</a>
|
||||
<a href="/">Dashboard</a>
|
||||
<a href="/controller/manage">Manage Agents</a>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<div id="bluetoothMode" class="mode-content">
|
||||
<!-- Capability Status -->
|
||||
<div id="btCapabilityStatus" class="section" style="display: none;">
|
||||
<span id="btCapabilityMarker" style="display: none;"></span>
|
||||
<!-- Populated by JavaScript with capability warnings -->
|
||||
</div>
|
||||
|
||||
@@ -50,10 +51,10 @@
|
||||
<!-- Message Container for status cards -->
|
||||
<div id="btMessageContainer"></div>
|
||||
|
||||
<div class="section" style="margin-top: 10px;">
|
||||
<div class="section" id="btExportSection" style="margin-top: 10px;">
|
||||
<h3>Export</h3>
|
||||
<div style="display: flex; gap: 8px;">
|
||||
<button class="preset-btn" onclick="btExport('csv')" style="flex: 1;">
|
||||
<button class="preset-btn" id="btExportCsvBtn" onclick="btExport('csv')" style="flex: 1;">
|
||||
Export CSV
|
||||
</button>
|
||||
<button class="preset-btn" onclick="btExport('json')" style="flex: 1;">
|
||||
|
||||
@@ -97,8 +97,8 @@
|
||||
</div>
|
||||
|
||||
<!-- Advanced -->
|
||||
<div class="section" style="margin-top: 12px;">
|
||||
<h3 style="margin-bottom: 12px;">Baseline Recording</h3>
|
||||
<div class="section">
|
||||
<h3>Baseline Recording</h3>
|
||||
<div class="form-group">
|
||||
<input type="text" id="tscmBaselineName" placeholder="Baseline name...">
|
||||
</div>
|
||||
@@ -111,8 +111,8 @@
|
||||
<div id="tscmBaselineStatus" style="margin-top: 8px; font-size: 11px; color: var(--text-muted);"></div>
|
||||
</div>
|
||||
|
||||
<div class="section" style="margin-top: 12px;">
|
||||
<h3 style="margin-bottom: 12px;">Meeting Window</h3>
|
||||
<div class="section">
|
||||
<h3>Meeting Window</h3>
|
||||
<div id="tscmMeetingStatus" style="font-size: 11px; color: var(--text-muted); margin-bottom: 8px;">
|
||||
No active meeting
|
||||
</div>
|
||||
@@ -131,8 +131,8 @@
|
||||
</div>
|
||||
|
||||
<!-- Tools -->
|
||||
<div class="section" style="margin-top: 12px;">
|
||||
<h3 style="margin-bottom: 10px;">Tools</h3>
|
||||
<div class="section">
|
||||
<h3>Tools</h3>
|
||||
<div style="display: grid; grid-template-columns: 1fr 1fr; gap: 6px;">
|
||||
<button class="preset-btn" onclick="tscmShowCapabilities()" style="font-size: 10px; padding: 8px;">
|
||||
Capabilities
|
||||
|
||||
@@ -5,19 +5,28 @@
|
||||
<p style="color: var(--text-secondary); font-size: 11px; line-height: 1.5; margin-bottom: 15px;">
|
||||
Scan for nearby WiFi networks, analyze channels, and monitor wireless activity.
|
||||
</p>
|
||||
<div style="background: rgba(74, 158, 255, 0.1); border: 1px solid rgba(74, 158, 255, 0.3); border-radius: 4px; padding: 8px; font-size: 10px;">
|
||||
<span style="color: var(--accent-cyan);">Controls in function bar above</span>
|
||||
</div>
|
||||
<!-- Scan Mode Tabs -->
|
||||
<div style="margin-top: 12px;">
|
||||
<div class="wifi-scan-mode-tabs" style="display: flex; gap: 4px;">
|
||||
<button id="wifiScanModeQuick" class="wifi-mode-tab active" style="flex: 1; padding: 8px; font-size: 11px; background: var(--accent-green); color: #000; border: none; border-radius: 4px; cursor: pointer;">
|
||||
<div class="wifi-scan-mode-tabs" style="display: flex; gap: 4px; margin-bottom: 10px;">
|
||||
<button id="wifiScanModeQuick" class="wifi-mode-tab active">
|
||||
Quick Scan
|
||||
</button>
|
||||
<button id="wifiScanModeDeep" class="wifi-mode-tab" style="flex: 1; padding: 8px; font-size: 11px; background: var(--bg-tertiary); color: #888; border: 1px solid var(--border-color); border-radius: 4px; cursor: pointer;">
|
||||
<button id="wifiScanModeDeep" class="wifi-mode-tab">
|
||||
Deep Scan
|
||||
</button>
|
||||
</div>
|
||||
<!-- Scan Control Buttons -->
|
||||
<div id="wifiScanControls" style="display: flex; gap: 8px;">
|
||||
<button id="wifiQuickScanBtn" class="preset-btn wifi-start-btn" onclick="if(typeof WiFiMode !== 'undefined') WiFiMode.startQuickScan()" style="flex: 1;">
|
||||
Start Quick Scan
|
||||
</button>
|
||||
<button id="wifiDeepScanBtn" class="preset-btn wifi-start-btn" onclick="if(typeof WiFiMode !== 'undefined') WiFiMode.startDeepScan()" style="flex: 1; display: none;">
|
||||
Start Deep Scan
|
||||
</button>
|
||||
<button id="wifiStopScanBtn" class="preset-btn wifi-stop-btn" onclick="if(typeof WiFiMode !== 'undefined') WiFiMode.stopScan()" style="flex: 1; display: none;">
|
||||
Stop Scan
|
||||
</button>
|
||||
</div>
|
||||
<div id="wifiCapabilityStatus" class="info-text" style="margin-top: 8px; font-size: 10px;"></div>
|
||||
<!-- Show All Agents option (visible when agents are available) -->
|
||||
<div id="wifiShowAllAgentsContainer" style="margin-top: 8px; display: none;">
|
||||
@@ -32,10 +41,10 @@
|
||||
<div class="section">
|
||||
<h3>Monitor Mode</h3>
|
||||
<div style="display: flex; gap: 8px;">
|
||||
<button class="preset-btn" id="monitorStartBtn" onclick="enableMonitorMode()" style="flex: 1; background: var(--accent-green); color: #000;">
|
||||
<button class="preset-btn wifi-monitor-btn" id="monitorStartBtn" onclick="WiFiHelpers.enableMonitorMode()" style="flex: 1;">
|
||||
Enable Monitor
|
||||
</button>
|
||||
<button class="preset-btn" id="monitorStopBtn" onclick="disableMonitorMode()" style="flex: 1; display: none;">
|
||||
<button class="preset-btn wifi-monitor-stop-btn" id="monitorStopBtn" onclick="WiFiHelpers.disableMonitorMode()" style="flex: 1; display: none;">
|
||||
Disable Monitor
|
||||
</button>
|
||||
</div>
|
||||
@@ -75,7 +84,7 @@
|
||||
<label>Deauth Count</label>
|
||||
<input type="text" id="deauthCount" value="5" placeholder="5">
|
||||
</div>
|
||||
<button class="preset-btn" onclick="sendDeauth()" style="width: 100%; border-color: var(--accent-red); color: var(--accent-red);">
|
||||
<button class="preset-btn wifi-danger-btn" onclick="WiFiHelpers.sendDeauth()" style="width: 100%;">
|
||||
Send Deauth
|
||||
</button>
|
||||
</div>
|
||||
@@ -88,7 +97,7 @@
|
||||
<div class="form-group">
|
||||
<input type="text" id="watchMacInput" placeholder="AA:BB:CC:DD:EE:FF">
|
||||
</div>
|
||||
<button class="preset-btn" onclick="addWatchMac()" style="width: 100%; margin-bottom: 8px;">
|
||||
<button class="preset-btn" onclick="WiFiHelpers.addWatchMac()" style="width: 100%; margin-bottom: 8px;">
|
||||
Add to Watch List
|
||||
</button>
|
||||
<div id="watchList" style="max-height: 80px; overflow-y: auto; font-size: 10px; color: var(--text-dim);"></div>
|
||||
@@ -115,10 +124,10 @@
|
||||
<span id="captureStatus" style="font-weight: bold;">--</span>
|
||||
</div>
|
||||
<div style="display: flex; gap: 8px;">
|
||||
<button class="preset-btn" onclick="checkCaptureStatus()" style="flex: 1; font-size: 10px; padding: 4px;">
|
||||
<button class="preset-btn" onclick="WiFiHelpers.checkCaptureStatus()" style="flex: 1; font-size: 10px; padding: 4px;">
|
||||
Check Status
|
||||
</button>
|
||||
<button class="preset-btn" onclick="stopHandshakeCapture()" style="flex: 1; font-size: 10px; padding: 4px; background: var(--accent-red); border: none; color: #fff;">
|
||||
<button class="preset-btn wifi-stop-btn" onclick="WiFiHelpers.stopHandshakeCapture()" style="flex: 1; font-size: 10px; padding: 4px;">
|
||||
Stop Capture
|
||||
</button>
|
||||
</div>
|
||||
@@ -137,10 +146,10 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="section">
|
||||
<div class="section" id="wifiExportSection">
|
||||
<h3>Export</h3>
|
||||
<div style="display: flex; gap: 8px;">
|
||||
<button class="preset-btn" onclick="WiFiMode.exportData('csv')" style="flex: 1;">
|
||||
<button class="preset-btn" id="wifiExportCsvBtn" onclick="WiFiMode.exportData('csv')" style="flex: 1;">
|
||||
Export CSV
|
||||
</button>
|
||||
<button class="preset-btn" onclick="WiFiMode.exportData('json')" style="flex: 1;">
|
||||
|
||||
@@ -68,7 +68,6 @@
|
||||
<span id="trackingStatus">TRACKING</span>
|
||||
</div>
|
||||
<div class="datetime" id="utcTime">--:--:-- UTC</div>
|
||||
<a href="/" class="back-link">Main Dashboard</a>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
@@ -304,10 +303,6 @@
|
||||
|
||||
function setupEmbeddedMode() {
|
||||
if (isEmbedded) {
|
||||
// Hide back link when embedded
|
||||
const backLink = document.querySelector('.back-link');
|
||||
if (backLink) backLink.style.display = 'none';
|
||||
|
||||
// Add embedded class to body for CSS adjustments
|
||||
document.body.classList.add('embedded');
|
||||
|
||||
|
||||
Reference in New Issue
Block a user