8d81b436e5
The previous page showed a static "Server online" pill even though it did not track backend liveness. It also left the selected file in an uploadable state after completion, which made it too easy to start the same file again and then land in a saved record that could only fail with "complete file already exists". Remove the misleading server-status UI and make saved uploads describe their next action. Records with every chunk uploaded now show a Finish action, stale server records are cleared, and a terminal "complete file already exists" response clears the saved browser progress instead of inviting another resume. A successful completion also clears the active file selection so the primary actions settle back to idle. Test Plan: - just check Refs: none
53 lines
1.7 KiB
HTML
53 lines
1.7 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>upl</title>
|
|
<link rel="stylesheet" href="/styles.css">
|
|
<script src="/app.js" defer></script>
|
|
</head>
|
|
<body>
|
|
<main class="app-shell">
|
|
<section class="upload-panel" aria-labelledby="app-title">
|
|
<div class="panel-heading">
|
|
<div>
|
|
<h1 id="app-title">upl</h1>
|
|
<p class="subtle">Resumable uploads to this machine.</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="file-picker">
|
|
<button id="pick-button" type="button">Choose file</button>
|
|
<input id="file-input" type="file">
|
|
</div>
|
|
|
|
<div class="file-summary" id="file-summary" hidden>
|
|
<strong id="file-name"></strong>
|
|
<span id="file-size"></span>
|
|
</div>
|
|
|
|
<div class="progress-wrap" aria-label="Upload progress">
|
|
<div class="progress-bar" id="progress-bar"></div>
|
|
</div>
|
|
<div class="progress-meta" id="progress-meta">0 of 0 chunks</div>
|
|
|
|
<div class="actions">
|
|
<button id="start-button" type="button" disabled>Start</button>
|
|
<button id="pause-button" type="button" disabled>Pause</button>
|
|
<button id="resume-button" type="button" disabled>Resume</button>
|
|
</div>
|
|
|
|
<section class="pending-section" id="pending-section" hidden>
|
|
<h2>Saved upload progress</h2>
|
|
<ul class="pending-list" id="pending-list"></ul>
|
|
</section>
|
|
|
|
<ol class="event-log" id="event-log" aria-live="polite">
|
|
<li>Choose a file to begin.</li>
|
|
</ol>
|
|
</section>
|
|
</main>
|
|
</body>
|
|
</html>
|