Files
Aidem-Media-DLL-Analysis/ams/api/static/index.html
Patryk Gensch 30b2b1011e UI: upload panel — POST /jobs with live status polling
Adds a "+ wgraj" control to the sidebar that uploads an ISO/ZIP/DLL to the
acquisition endpoint and tracks the job to completion, then refreshes the
version list so the new snapshot appears without a reload.

- index.html: upload form + #jobs panel in the sidebar
- app.js: submitUpload() (FormData → POST /jobs), pollJobs() (2.5s while any
  job is queued/started; finished → load(); failed → inline error)
- style.css: mini-btn / upload form / job rows + queued/started badges

Verified: node --check clean; uvicorn serves /ui assets 200 and GET /jobs.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 12:28:35 +02:00

54 lines
1.9 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&nbsp;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
<button id="upload-toggle" class="mini-btn" title="Wgraj grę (ISO / ZIP / DLL)">+ wgraj</button>
</div>
<form id="upload-form" class="upload" hidden>
<input type="file" id="upload-file" required>
<input type="text" id="upload-game" class="owner" placeholder="nazwa gry (opcjonalnie)" autocomplete="off">
<button type="submit" id="upload-submit" class="compare">Wyślij do analizy</button>
<div id="upload-msg" class="upload-msg"></div>
</form>
<div id="jobs" class="jobs"></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>