Add a live run submission workflow and admin moderation UI. - Add run.html: new page to submit runs (video, raw footage, notes) and show recent submissions. - Update admelist.html: admin overview plus run queue table for reviewing/approving/rejecting/deleting submissions. - Update app.js: client-side support for runs (load/refresh/caching, SSE "runs-update", admin review actions, run submission handling, and graceful fallback when no server is available). - Server changes: add server/runs.json, implement /api/runs (GET, POST) and /api/runs/:id (PUT, DELETE) in server/server.js, ensure runs file, emit runs-update events, broaden CORS, set BASE path (/fedl) and default port 8090. - Add styles for admin overview, run submission UI and submission cards in styles.css. - Update README with run/admin pages and example URLs, adjust start-server.command to use PORT=8090, and minor note in LINUX_SERVICE_SETUP.txt. Notes: live submission/review features require running the Node server; client falls back to static behavior when served from file:// or when server is unavailable.
80 lines
2.6 KiB
HTML
80 lines
2.6 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
|
<title>Lists — GD fedl</title>
|
|
<link rel="stylesheet" href="styles.css">
|
|
</head>
|
|
<body data-page="lists">
|
|
<header>
|
|
<h1>fedl</h1>
|
|
<nav>
|
|
<a href="index.html">Home</a>
|
|
<a href="players.html">Players</a>
|
|
<a href="run.html">Submit Run</a>
|
|
<a href="rules.html">Rules</a>
|
|
<a href="roulette.html">Roulette</a>
|
|
<a href="admelist.html">Admin</a>
|
|
</nav>
|
|
</header>
|
|
<main class="layout">
|
|
<aside class="sidebar">
|
|
<div class="panel list-sidebar-panel">
|
|
<p class="sidebar-kicker">Quick Jump</p>
|
|
<h2>Rank ranges</h2>
|
|
<p class="muted">Jump straight to a section of the list and narrow things down fast.</p>
|
|
<ul id="levels"></ul>
|
|
</div>
|
|
</aside>
|
|
|
|
<section class="content list-page-shell">
|
|
<section class="panel list-hero-panel">
|
|
<div class="list-hero-copy">
|
|
<p class="hero-kicker">FEDL Rankings</p>
|
|
<h2 id="list-title">FEDL List</h2>
|
|
<p class="muted list-hero-text">Browse the full ranking, search for a level by name, filter by placement range, and open linked videos directly from the table.</p>
|
|
</div>
|
|
<div class="list-hero-badge">
|
|
<strong>Live list</strong>
|
|
<span>Updates pull from the current FEDL data source when available.</span>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="panel list-controls-panel">
|
|
<div class="search-row">
|
|
<label class="control-block" for="search">
|
|
<span>Search</span>
|
|
<input id="search" type="text" placeholder="Search titles..." />
|
|
</label>
|
|
<label class="control-block control-select" for="level-filter">
|
|
<span>Filter</span>
|
|
<select id="level-filter"><option value="all">All Levels</option></select>
|
|
</label>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="panel list-table-panel">
|
|
<div class="table-header">
|
|
<div>
|
|
<p class="status-label">List Table</p>
|
|
<h3>Current placements</h3>
|
|
</div>
|
|
<p class="muted table-hint">Click <strong>Open</strong> on any row to watch the linked run.</p>
|
|
</div>
|
|
|
|
<div class="table-wrap">
|
|
<table class="levels-table">
|
|
<thead>
|
|
<tr><th style="width:80px">#</th><th>Title</th><th style="width:140px">Action</th></tr>
|
|
</thead>
|
|
<tbody id="list-area"></tbody>
|
|
</table>
|
|
</div>
|
|
</section>
|
|
</section>
|
|
</main>
|
|
<script src="app.js"></script>
|
|
</body>
|
|
</html>
|