Static HTML/CSS/JS served by FastAPI (mounted at /ui, / redirects there), talking to the existing JSON API — no node/npm, no bundler. - games/versions sidebar with A/B version selectors - visual 4-axis diff (types/methods/events/fields, +/- struct_layout) with +/-/~ rows, per-axis counts, class (owner) filter, moved-methods section - single-snapshot browser (tabs + live filter) - app.py mounts StaticFiles(html=True) last so API routes win; / -> /ui/ Smoke-tested live on uvicorn: /, /ui/ and assets serve 200; UI wiring drives the same /games and /diff endpoints verified end-to-end. app.js passes `node --check`. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
42 lines
1.4 KiB
HTML
42 lines
1.4 KiB
HTML
<!doctype html>
|
|
<html lang="pl">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>Aidem Media — Command Center</title>
|
|
<link rel="stylesheet" href="style.css">
|
|
</head>
|
|
<body>
|
|
<header class="topbar">
|
|
<div class="brand">⌖ Aidem Media <span>Command Center</span></div>
|
|
<div class="sub">Piklib / BlooMoo — analiza różnicowa powierzchni silnika</div>
|
|
</header>
|
|
|
|
<div class="layout">
|
|
<aside id="sidebar" class="sidebar">
|
|
<div class="panel-title">Gry / wersje</div>
|
|
<div id="games" class="games"></div>
|
|
</aside>
|
|
|
|
<main class="main">
|
|
<div class="controls">
|
|
<div class="slots">
|
|
<span class="slot" id="slot-a">A: <em>—</em></span>
|
|
<span class="arrow">→</span>
|
|
<span class="slot" id="slot-b">B: <em>—</em></span>
|
|
</div>
|
|
<input id="owner" class="owner" placeholder="filtr klasy, np. CMC_Animo" autocomplete="off">
|
|
<span id="axes" class="axes"></span>
|
|
<button id="compare" class="compare" disabled>Porównaj A→B</button>
|
|
</div>
|
|
<div id="results" class="results">
|
|
<div class="hint">Wybierz dwie wersje (A i B) z panelu po lewej, a potem „Porównaj”.<br>
|
|
Kliknij nazwę wersji, by przejrzeć jej powierzchnię.</div>
|
|
</div>
|
|
</main>
|
|
</div>
|
|
|
|
<script src="app.js"></script>
|
|
</body>
|
|
</html>
|