From d560b2e0b4f9fa253cf4ff7ddf436dd8e2f59b73 Mon Sep 17 00:00:00 2001 From: Mia Wu Date: Wed, 27 May 2026 10:29:26 -0400 Subject: [PATCH] UI changes --- dashboard/src/App.jsx | 7 +- dashboard/src/components/DirectoryBrowser.jsx | 67 ++++++++++++- dashboard/src/components/FilterPanel.jsx | 1 + dashboard/src/components/StatCard.jsx | 37 ++++++- dashboard/src/components/StatusBadge.jsx | 2 +- dashboard/src/components/TestTable.jsx | 1 + dashboard/src/components/TimeDisplay.jsx | 42 +++++--- server/app.py | 93 +++++++++++++++++- server/dashboard.db | Bin 446464 -> 446464 bytes server/dashboard.db-shm | Bin 32768 -> 32768 bytes server/dashboard.db-wal | Bin 4136512 -> 4144752 bytes server/db_py.py | 8 +- server/parser.py | 6 ++ server/scanner.py | 1 + 14 files changed, 237 insertions(+), 28 deletions(-) diff --git a/dashboard/src/App.jsx b/dashboard/src/App.jsx index c13ad5c..1ce1e2c 100644 --- a/dashboard/src/App.jsx +++ b/dashboard/src/App.jsx @@ -28,7 +28,7 @@ export default function App() { if (t.completed !== want) return false } const strFields = ['interference', 'device', 'rotation', 'test_point', - 'rssi', 'station', 'band', 'channel', 'bandwidth', 'direction'] + 'rssi', 'station', 'band', 'channel', 'bandwidth', 'direction', 'throttled'] for (const f of strFields) { if (filters[f] && t[f] !== filters[f]) return false } @@ -99,6 +99,11 @@ export default function App() { label={d.name} value={`${(d.completionRate * 100).toFixed(1)}%`} sub={`${d.completed} / ${d.total}`} + detailsPosition="right" + details={['COE', 'P2P', 'P3P'].map((type) => { + const typeStats = d.byType?.[type] ?? { completed: 0, total: 0 } + return `${type}: ${typeStats.completed}/${typeStats.total}` + })} /> diff --git a/dashboard/src/components/DirectoryBrowser.jsx b/dashboard/src/components/DirectoryBrowser.jsx index c9a74a8..c2b7da4 100644 --- a/dashboard/src/components/DirectoryBrowser.jsx +++ b/dashboard/src/components/DirectoryBrowser.jsx @@ -7,6 +7,8 @@ export default function DirectoryBrowser({ onSelect, onClose }) { const [dirs, setDirs] = useState(null) // null = not loaded yet const [loading, setLoading] = useState(false) const [error, setError] = useState(null) + const [manualPath, setManualPath] = useState('') + const [networkHost, setNetworkHost] = useState('') async function navigate(path) { setLoading(true) @@ -16,6 +18,7 @@ export default function DirectoryBrowser({ onSelect, onClose }) { setCurrent(data.path) setParent(data.parent) setDirs(data.dirs) + setManualPath(data.path ?? '') } catch (e) { setError(e.message) } finally { @@ -23,16 +26,40 @@ export default function DirectoryBrowser({ onSelect, onClose }) { } } + function goToManualPath() { + const path = manualPath.trim() + if (!path) { + navigate(null) + return + } + navigate(path) + } + + function goToHost() { + const host = networkHost.trim() + if (!host) return + navigate(`\\\\${host}`) + } + // Load roots on first render if (dirs === null && !loading && !error) { navigate(null) } - const breadcrumbs = current ? current.replace(/\\/g, '/').split('/').filter(Boolean) : [] - const isUnixPath = !!current && current.startsWith('/') + const normalizedCurrent = current ?? '' + const isUnixPath = normalizedCurrent.startsWith('/') + const isUncPath = normalizedCurrent.startsWith('\\\\') + const breadcrumbs = normalizedCurrent + ? (isUncPath + ? normalizedCurrent.slice(2).split(/\\+/).filter(Boolean) + : normalizedCurrent.replace(/\\/g, '/').split('/').filter(Boolean)) + : [] function breadcrumbPathAt(index) { const parts = breadcrumbs.slice(0, index + 1) + if (isUncPath) { + return `\\\\${parts.join('\\')}` + } if (isUnixPath) { return `/${parts.join('/')}` } @@ -50,7 +77,7 @@ export default function DirectoryBrowser({ onSelect, onClose }) { {/* Breadcrumb */}
- + {breadcrumbs.map((part, i) => { const path = breadcrumbPathAt(i) return ( @@ -68,6 +95,40 @@ export default function DirectoryBrowser({ onSelect, onClose }) { })}
+ {/* Jump controls */} +
+
+ setManualPath(e.target.value)} + placeholder="Path (e.g. C:\\data or \\\\192.168.1.10\\share)" + className="flex-1 bg-slate-800 border border-slate-700 text-slate-200 text-sm rounded-lg px-3 py-2 focus:outline-none focus:border-blue-500" + /> + +
+
+ setNetworkHost(e.target.value)} + placeholder="Network host/IP (e.g. 192.168.1.10)" + className="flex-1 bg-slate-800 border border-slate-700 text-slate-200 text-sm rounded-lg px-3 py-2 focus:outline-none focus:border-blue-500" + /> + +
+
+ {/* Directory list */}
{loading && ( diff --git a/dashboard/src/components/FilterPanel.jsx b/dashboard/src/components/FilterPanel.jsx index 8b46c82..d2207d1 100644 --- a/dashboard/src/components/FilterPanel.jsx +++ b/dashboard/src/components/FilterPanel.jsx @@ -13,6 +13,7 @@ const DERIVED_FIELDS = [ { key: 'channel', label: 'Channel' }, { key: 'bandwidth', label: 'Bandwidth' }, { key: 'direction', label: 'Direction' }, + { key: 'throttled', label: 'Throttled' }, ] function unique(tests, key) { diff --git a/dashboard/src/components/StatCard.jsx b/dashboard/src/components/StatCard.jsx index e1a4a04..2691fd7 100644 --- a/dashboard/src/components/StatCard.jsx +++ b/dashboard/src/components/StatCard.jsx @@ -1,9 +1,36 @@ -export default function StatCard({ label, value, sub, accent }) { +export default function StatCard({ label, value, sub, accent, details, detailsPosition = 'below' }) { + const showDetails = details?.length > 0 + const detailsOnRight = showDetails && detailsPosition === 'right' + return ( -
-

{label}

-

{value}

- {sub &&

{sub}

} +
+
+
+

{label}

+

{value}

+ {sub &&

{sub}

} +
+ + {detailsOnRight && ( +
+ {details.map((line) => ( +

+ {line} +

+ ))} +
+ )} +
+ + {showDetails && !detailsOnRight && ( +
+ {details.map((line) => ( +

+ {line} +

+ ))} +
+ )}
) } diff --git a/dashboard/src/components/StatusBadge.jsx b/dashboard/src/components/StatusBadge.jsx index 4744623..3a8df79 100644 --- a/dashboard/src/components/StatusBadge.jsx +++ b/dashboard/src/components/StatusBadge.jsx @@ -1,5 +1,5 @@ export default function StatusBadge({ completed }) { return completed - ? ✓ Done + ? ✓ Completed : ○ Pending } diff --git a/dashboard/src/components/TestTable.jsx b/dashboard/src/components/TestTable.jsx index 84aa7de..7bcb263 100644 --- a/dashboard/src/components/TestTable.jsx +++ b/dashboard/src/components/TestTable.jsx @@ -127,6 +127,7 @@ export default function TestTable({ tests = [], isLoading }) { +
diff --git a/dashboard/src/components/TimeDisplay.jsx b/dashboard/src/components/TimeDisplay.jsx index e848cbc..d1397cf 100644 --- a/dashboard/src/components/TimeDisplay.jsx +++ b/dashboard/src/components/TimeDisplay.jsx @@ -6,16 +6,33 @@ function fmt(seconds) { return `${m}m` } -function fmtDays(seconds) { - if (seconds == null) return null - const days = seconds / 57600 // 16 hours per day - return days < 1 ? `${(days * 24).toFixed(1)}h` : `${days.toFixed(1)}d (16h/day)` +function estimateDays(seconds) { + const s = Number(seconds) + if (!Number.isFinite(s) || s < 0) return null + + let days = s / 57600 // 16 hours per day + const estDate = new Date(Date.now() + days * 24 * 3600 * 1000) + // Calculate how many weekends + let weekends = 0 + for (let d = new Date(); d < estDate; d.setDate(d.getDate() + 1)) { + if (d.getDay() === 0 || d.getDay() === 6) { + weekends++ + } + } + const weekdays = (s - weekends * 24 * 3600) / 57600 + days = weekdays + weekends + return Number.isFinite(days) ? days : null } -function fmtCompletionDate(seconds) { - if (seconds == null) return null - const days = seconds / 57600 // 16 hours per day +function fmtDaysLabel(days) { + if (days == null || !Number.isFinite(days)) return null + return days < 1 ? `${(days * 24).toFixed(1)}h` : `${days.toFixed(1)}d` +} + +function fmtCompletionDate(days) { + if (days == null || !Number.isFinite(days)) return null const date = new Date(Date.now() + days * 24 * 3600 * 1000) + if (Number.isNaN(date.getTime())) return null return date.toLocaleDateString(undefined, { weekday: 'short', month: 'short', day: 'numeric', year: 'numeric' }) } @@ -26,15 +43,16 @@ export default function TimeDisplay({ elapsedSeconds, estimatedRemainingSeconds, .map(([t]) => t) : [] - const days = fmtDays(estimatedRemainingSeconds) - const completionDate = fmtCompletionDate(estimatedRemainingSeconds) + const estimatedDays = estimateDays(estimatedRemainingSeconds) + const daysLabel = fmtDaysLabel(estimatedDays) + const completionDate = fmtCompletionDate(estimatedDays) return (

Time Elapsed

-

+

{fmt(elapsedSeconds) ?? '—'}

@@ -43,8 +61,8 @@ export default function TimeDisplay({ elapsedSeconds, estimatedRemainingSeconds,

{estimatedRemainingSeconds != null ? fmt(estimatedRemainingSeconds) : '—'}

- {days && ( -

{days}

+ {daysLabel && ( +

{daysLabel}

)}
{completionDate && ( diff --git a/server/app.py b/server/app.py index be1fd88..5ad4b50 100644 --- a/server/app.py +++ b/server/app.py @@ -1,4 +1,5 @@ import os +import subprocess from pathlib import Path from flask import Flask, Response, jsonify, request, send_from_directory @@ -29,6 +30,7 @@ CORS(app) def get_tests_route(): completed = request.args.get("completed") interference = request.args.get("interference") + throttled = request.args.get("throttled") device = request.args.get("device") rotation = request.args.get("rotation") test_point = request.args.get("testPoint") @@ -46,6 +48,8 @@ def get_tests_route(): tests = [t for t in tests if t.get("completed") == completed_value] if interference: tests = [t for t in tests if t.get("interference") == interference] + if throttled: + tests = [t for t in tests if t.get("throttled") == throttled] if device: tests = [t for t in tests if t.get("device") == device] if rotation: @@ -72,6 +76,7 @@ def get_tests_route(): @app.get("/api/stats") def get_stats_route(): tests = get_all_tests() + types = ["COE", "P2P", "P3P"] total_completed = sum(1 for t in tests if t.get("completed")) overall = { @@ -87,10 +92,21 @@ def get_stats_route(): continue if name not in device_map: - device_map[name] = {"total": 0, "completed": 0} + device_map[name] = { + "total": 0, + "completed": 0, + "byType": {t: {"total": 0, "completed": 0} for t in types}, + } device_map[name]["total"] += 1 + + interference = test.get("interference") + if interference in device_map[name]["byType"]: + device_map[name]["byType"][interference]["total"] += 1 + if test.get("completed"): device_map[name]["completed"] += 1 + if interference in device_map[name]["byType"]: + device_map[name]["byType"][interference]["completed"] += 1 devices = [] for name in sorted(device_map.keys()): @@ -101,6 +117,7 @@ def get_stats_route(): "total": stats["total"], "completed": stats["completed"], "completionRate": (stats["completed"] / stats["total"]) if stats["total"] else 0, + "byType": stats["byType"], } ) @@ -110,7 +127,6 @@ def get_stats_route(): if test.get("completed") and duration is not None: elapsed_seconds += duration - types = ["COE", "P2P", "P3P"] by_type = {} estimate_possible = True estimated_remaining_seconds = 0 @@ -234,6 +250,56 @@ def rescan_route(): @app.get("/api/browse") def browse_route(): + def _normalize_request_path(path): + if not path: + return path + p = path.strip() + if os.name == "nt": + p = p.replace("/", "\\") + return p + + def _is_unc_host_only(path): + if os.name != "nt" or not path: + return False + p = path.rstrip("\\") + if not p.startswith("\\\\"): + return False + remainder = p[2:] + return bool(remainder) and "\\" not in remainder + + def _shares_for_unc_host(host): + # Enumerate SMB shares with native Windows tooling for host-only UNC paths. + proc = subprocess.run( + ["net", "view", f"\\\\{host}"], + capture_output=True, + text=True, + timeout=10, + check=False, + ) + if proc.returncode != 0: + raise RuntimeError(proc.stderr.strip() or proc.stdout.strip() or "Cannot query network host") + + shares = [] + in_table = False + for raw_line in proc.stdout.splitlines(): + line = raw_line.strip() + if not line: + continue + if line.startswith("---"): + in_table = True + continue + if not in_table: + continue + if line.lower().startswith("the command completed successfully"): + break + + first = line.split()[0] + if first and first.lower() not in {"share", "name"}: + shares.append(first) + + unique = sorted(set(shares), key=str.lower) + return [{"name": share, "path": f"\\\\{host}\\{share}"} for share in unique] + def _configured_roots(): raw = os.getenv("BROWSE_ROOTS", "").strip() if not raw: @@ -260,8 +326,19 @@ def browse_route(): continue return False + def _is_unc_host_allowed(host, roots): + if not roots: + return True + host_prefix = os.path.normcase(f"\\\\{host}\\") + host_exact = host_prefix.rstrip("\\") + for root in roots: + normalized_root = os.path.normcase(root) + if normalized_root == host_exact or normalized_root.startswith(host_prefix): + return True + return False + roots = _configured_roots() - req_path = request.args.get("path") + req_path = _normalize_request_path(request.args.get("path")) if not req_path: if roots: @@ -282,6 +359,16 @@ def browse_route(): return jsonify({"path": None, "parent": None, "dirs": dirs}) + if _is_unc_host_only(req_path): + host = req_path.rstrip("\\")[2:] + if not _is_unc_host_allowed(host, roots): + return jsonify({"error": "Path is outside allowed browse roots"}), 403 + try: + dirs = _shares_for_unc_host(host) + except Exception as exc: + return jsonify({"error": f"Cannot list shares for host: {exc}"}), 403 + return jsonify({"path": f"\\\\{host}", "parent": None, "dirs": dirs}) + if not os.path.exists(req_path): return jsonify({"error": "Path does not exist"}), 400 if not os.path.isdir(req_path): diff --git a/server/dashboard.db b/server/dashboard.db index f937ecf3297a1a0396c6fce529a1afe89e5ec8d2..ed90e1c335b60293fbfd350a479922e63b25b241 100644 GIT binary patch delta 22101 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 A`2YX_ literal 32768 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 R3%cIoyj$o97N^#s?O(=5Be4Jg delta 90643 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 diff --git a/server/db_py.py b/server/db_py.py index 9f6dbba..ae8a927 100644 --- a/server/db_py.py +++ b/server/db_py.py @@ -64,6 +64,7 @@ def _init_db(): "dl_rssi_dbm REAL", "ul_rssi_dbm REAL", "tput_results TEXT", + "throttled TEXT", ]: try: _conn.execute(f"ALTER TABLE tests ADD COLUMN {col_def}") @@ -96,10 +97,10 @@ def upsert_test(test): """ INSERT INTO tests (id, test_id, parent_dir, filename, interference, device, rotation, - test_point, station, band, channel, bandwidth, rssi, direction) + test_point, station, band, channel, bandwidth, rssi, direction, throttled) VALUES (:id, :test_id, :parent_dir, :filename, :interference, :device, :rotation, - :test_point, :station, :band, :channel, :bandwidth, :rssi, :direction) + :test_point, :station, :band, :channel, :bandwidth, :rssi, :direction, :throttled) ON CONFLICT(id) DO UPDATE SET test_id = excluded.test_id, parent_dir = excluded.parent_dir, @@ -113,7 +114,8 @@ def upsert_test(test): channel = excluded.channel, bandwidth = excluded.bandwidth, rssi = excluded.rssi, - direction = excluded.direction + direction = excluded.direction, + throttled = excluded.throttled """, test, ) diff --git a/server/parser.py b/server/parser.py index f243938..76a8b36 100644 --- a/server/parser.py +++ b/server/parser.py @@ -11,6 +11,11 @@ def parse_target_filename(filename, parent_dir): test_identifier = f"{parent_dir}/{base_name}" interference = segments[0] if segments and segments[0] in INTERFERENCE_TYPES else None test_id = next((s for s in segments if re.match(r"^R\d+[A-Z0-9]+$", s, re.IGNORECASE)), None) + throttled = None + if interference == "P3P" and test_id: + # P3P test_id carries throttle marker: TH = throttled, otherwise UT. + throttled = "TH" if "TH" in test_id.upper() else "UT" + device = segments[1] if len(segments) > 1 else None test_point = next((s for s in segments if re.match(r"^TPT\w+$", s)), None) rssi = next((s for s in segments if re.match(r"^RSSI\d+$", s)), None) @@ -39,6 +44,7 @@ def parse_target_filename(filename, parent_dir): "bandwidth": bandwidth, "direction": direction, "rotation": rotation, + "throttled": throttled, } diff --git a/server/scanner.py b/server/scanner.py index 8cd16de..fe5a6b9 100644 --- a/server/scanner.py +++ b/server/scanner.py @@ -77,6 +77,7 @@ def scan_targets(target_dir): "bandwidth": parsed["bandwidth"], "rssi": parsed["rssi"], "direction": parsed["direction"], + "throttled": parsed["throttled"], } )