Files
shd.build/tools/game-data-capture/src/game_data_capture/web/templates/index.html
T
jb f48cc878aa
Validate and deploy production / validate (push) Successful in 24s
Validate and deploy staging / validate (push) Successful in 44s
Validate and deploy production / deploy (push) Failing after 29s
Validate and deploy staging / deploy (push) Failing after 6s
feat: classify gear and weapon mods
2026-07-31 21:54:47 -04:00

133 lines
5.8 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="color-scheme" content="dark" />
<title>Local Capture Review</title>
<link rel="stylesheet" href="/static/review.css" />
<script type="module" src="/static/review.js"></script>
</head>
<body>
<a class="skip-link" href="#workspace">Skip to review workspace</a>
<main class="shell" id="workspace">
<header class="command-header">
<div>
<p class="kicker">LOCAL OPERATIONS / CAPTURE REVIEW</p>
<h1>Evidence intake</h1>
</div>
<div class="header-state" aria-label="Session status">
<strong id="session-state">LOCKED</strong>
<span id="queue-state">Queue unavailable</span>
</div>
</header>
<section class="notice" id="notice" aria-live="polite" aria-atomic="true">
<strong id="notice-title">STARTUP</strong>
<span id="notice-copy">Checking this local session.</span>
</section>
<section class="control-strip" aria-label="Capture controls">
<div>
<p class="kicker">CAPTURE SESSION</p>
<p id="capture-state">DISARMED</p>
</div>
<div class="control-actions">
<button class="button button-primary" id="start-button" type="button" disabled>Start Session</button>
<button class="button" id="stop-button" type="button" disabled>Stop Session</button>
<button class="button" id="refresh-button" type="button" disabled>Refresh captures</button>
</div>
</section>
<section class="workspace-grid" aria-label="Capture review workspace">
<aside class="capture-panel" aria-labelledby="capture-list-title">
<div class="panel-heading">
<div>
<p class="kicker">PRIVATE QUEUE</p>
<h2 id="capture-list-title">Captures</h2>
</div>
<span id="capture-count">0 shown / 0 loaded</span>
</div>
<label class="queue-filter" for="hide-reviewed">
<input id="hide-reviewed" type="checkbox" />
<span>Hide reviewed captures</span>
</label>
<div class="capture-scroll" id="capture-scroll">
<p class="empty-copy" id="capture-empty">Authenticate to inspect the local capture queue.</p>
<ol class="capture-list" id="capture-list" aria-label="Available captures"></ol>
</div>
</aside>
<section class="review-panel" aria-labelledby="review-title">
<div class="panel-heading">
<div>
<p class="kicker">MANUAL REVIEW</p>
<h2 id="review-title">No capture selected</h2>
</div>
<span id="review-state">LOCKED</span>
</div>
<div class="review-empty" id="review-empty">
<p>Select a capture after the local session is unlocked. Media remains private to this browser session.</p>
</div>
<div class="review-content" id="review-content" hidden>
<figure class="evidence-frame">
<img id="capture-media" alt="Private captured game screen" />
<figcaption id="capture-meta"></figcaption>
</figure>
<form id="label-form" novalidate>
<fieldset id="family-fieldset">
<legend>Evidence family</legend>
<div class="choice-grid" id="family-options"></div>
</fieldset>
<fieldset id="view-fieldset" disabled>
<legend>Screen view</legend>
<div class="choice-grid" id="view-options"></div>
</fieldset>
<fieldset id="gear-slot-fieldset" hidden disabled>
<legend>Gear slot</legend>
<div class="choice-grid" id="gear-slot-options"></div>
</fieldset>
<fieldset id="record-types-fieldset" disabled>
<legend>Canonical records evidenced</legend>
<p class="field-help" id="record-types-help">Choose every record type shown by this screen.</p>
<div class="choice-grid" id="record-type-options"></div>
</fieldset>
<fieldset id="abstention-fieldset" hidden disabled>
<legend>Unknown screen reason</legend>
<div class="choice-grid" id="abstention-options"></div>
</fieldset>
<p class="validation-message" id="label-validation" role="status"></p>
<div class="form-actions">
<button class="button button-primary" id="save-label-button" type="submit" disabled>Save reviewed label</button>
<button class="button button-danger" id="reject-button" type="button" disabled>Reject evidence</button>
<button class="button button-danger quiet-danger" id="delete-button" type="button" disabled>Delete capture</button>
</div>
<p class="action-help">Rejecting retains evidence. Deletion requires separate confirmation and may be retained by policy.</p>
</form>
</div>
</section>
</section>
</main>
<dialog class="confirmation-dialog" id="confirmation-dialog" aria-labelledby="confirmation-title">
<form method="dialog" id="confirmation-form">
<p class="kicker" id="confirmation-kicker">CONFIRMATION REQUIRED</p>
<h2 id="confirmation-title">Confirm action</h2>
<p id="confirmation-copy"></p>
<div class="dialog-actions">
<button class="button" id="confirmation-cancel" value="cancel" type="submit">Cancel</button>
<button class="button button-primary" id="confirmation-submit" value="confirm" type="submit">Confirm</button>
</div>
</form>
</dialog>
</body>
</html>