diff --git a/templates/index.html b/templates/index.html
index 2970619..c2c88b8 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -1337,25 +1337,31 @@
+
🔵 Discovered Devices (0)
-
+
Start scanning to discover devices...
-
+
+
📍 Tracker Detection
+
+
Monitoring for AirTags, Tiles, and other trackers...
+
+
+
-
-
📍 Tracker Detection
-
-
Monitoring for AirTags, Tiles, and other trackers...
-
-
@@ -6054,10 +6060,91 @@
if (device) {
document.getElementById('btSignalGraphDevice').textContent = device.name || mac;
document.getElementById('btTargetMac').value = mac;
+ updateBtSelectedDevice(device);
}
updateBtDeviceList(); // Refresh to show selection
}
+ // Update the selected device details panel
+ function updateBtSelectedDevice(device) {
+ const panel = document.getElementById('btSelectedDevice');
+ if (!panel || !device) return;
+
+ const typeIcon = {
+ 'phone': '📱', 'audio': '🎧', 'wearable': '⌚', 'tracker': '📍',
+ 'computer': '💻', 'input': '⌨️', 'other': '📶'
+ }[device.device_type || device.type] || '📶';
+
+ const rssiColor = device.rssi > -50 ? 'var(--accent-green)' :
+ device.rssi > -70 ? 'var(--accent-cyan)' :
+ device.rssi > -85 ? 'var(--accent-orange)' : 'var(--accent-red)';
+
+ const signalBars = Math.max(1, Math.min(5, Math.floor((device.rssi + 100) / 10)));
+ const barsHtml = Array(5).fill(0).map((_, i) =>
+ `
`
+ ).join('');
+
+ let trackerInfo = '';
+ if (device.findmy) {
+ trackerInfo = `
+
+
🍎 ${escapeHtml(device.findmy.type)}
+
${escapeHtml(device.findmy.network)} Network Device
+
`;
+ } else if (device.tracker) {
+ trackerInfo = `
+
+
📍 ${escapeHtml(device.tracker.name)}
+
Tracking Device Detected
+
`;
+ }
+
+ panel.innerHTML = `
+
+
+
${typeIcon} ${escapeHtml(device.name || 'Unknown Device')}
+
${escapeHtml((device.device_type || device.type || 'unknown').toUpperCase())}
+
+
+
${device.rssi || '--'} dBm
+
${barsHtml}
+
+
+
+
+
MAC ADDRESS
+
${escapeHtml(device.mac)}
+
+
+
MANUFACTURER
+
${escapeHtml(device.manufacturer || 'Unknown')}
+
+
+
ADDRESS TYPE
+
${escapeHtml(device.address_type || 'Unknown')}
+
+
+
LAST SEEN
+
${device.last_seen ? new Date(device.last_seen * 1000).toLocaleTimeString() : 'Now'}
+
+
+ ${trackerInfo}
+
+
+
+
+ `;
+ }
+
+ // Copy text to clipboard helper
+ function copyToClipboard(text) {
+ navigator.clipboard.writeText(text).then(() => {
+ showNotification('Copied', text);
+ }).catch(() => {
+ showInfo('Failed to copy to clipboard');
+ });
+ }
+
// Update tracker list panel
function updateBtTrackerList() {
const listEl = document.getElementById('btTrackerList');