mirror of
https://github.com/thegeneralist01/archivr
synced 2026-07-21 18:55:36 +02:00
* Add SQLite metadata database support * Implement archive metadata database * chore: let's guess cargoHash because there's something wrong with nixpkgs! * Gate test-only database helpers behind cfg(test) * Fix archive database row identity * Use serde for archive metadata JSON * Finalize archive runs at command level * Handle archive command errors without panics * Cover tweet entry metadata recording * Document static regex invariants * docs: add web UI design spec * docs: add web UI implementation plan * chore: move cli into workspace crate * chore: track workspace crates directory * refactor: extract archive core crate * refactor: add core archive opening APIs * refactor: rename taxonomy model to tags * feat: add archive query APIs * feat: add web server registry * feat: expose archive server APIs * feat: add archive table web UI * fix: complete web UI smoke path * docs: add architecture mental model * docs: remove private superpowers plans * nix: split cli and server packages * chore: remove PLAN.md
79 lines
2.5 KiB
HTML
79 lines
2.5 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>Archivr</title>
|
|
<link rel="stylesheet" href="/assets/styles.css">
|
|
</head>
|
|
<body>
|
|
<header class="topbar">
|
|
<div class="brand">Archivr</div>
|
|
<select id="archive-switcher" class="archive-switcher" aria-label="Select archive"></select>
|
|
<nav class="nav" aria-label="Primary">
|
|
<button class="nav-link is-active" data-view="archive">Archive</button>
|
|
<button class="nav-link" data-view="runs">Runs</button>
|
|
<button class="nav-link" data-view="admin">Admin</button>
|
|
</nav>
|
|
<button class="capture-button">+ Capture</button>
|
|
</header>
|
|
|
|
<main class="app-shell">
|
|
<section class="workspace">
|
|
<div class="search-row">
|
|
<input id="search" class="search-input" type="search" aria-label="Search archive" autocomplete="off">
|
|
<div id="result-count" class="result-count"></div>
|
|
</div>
|
|
|
|
<section id="archive-view" class="view is-active">
|
|
<table class="entry-table">
|
|
<colgroup>
|
|
<col class="col-added">
|
|
<col class="col-title">
|
|
<col class="col-type">
|
|
<col class="col-size">
|
|
<col class="col-url">
|
|
</colgroup>
|
|
<thead>
|
|
<tr>
|
|
<th>Added</th>
|
|
<th>Title</th>
|
|
<th>Type</th>
|
|
<th>Size</th>
|
|
<th>Original URL</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody id="entries-body"></tbody>
|
|
</table>
|
|
</section>
|
|
|
|
<section id="runs-view" class="view">
|
|
<table class="entry-table">
|
|
<thead>
|
|
<tr>
|
|
<th>Started</th>
|
|
<th>Status</th>
|
|
<th>Requested</th>
|
|
<th>Completed</th>
|
|
<th>Failed</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody id="runs-body"></tbody>
|
|
</table>
|
|
</section>
|
|
|
|
<section id="admin-view" class="view admin-view">
|
|
<h1>Mounted Archives</h1>
|
|
<div id="admin-archives" class="admin-list"></div>
|
|
</section>
|
|
</section>
|
|
|
|
<aside class="context-rail">
|
|
<div class="rail-title">Context</div>
|
|
<div id="context-body" class="rail-body">Select an entry.</div>
|
|
</aside>
|
|
</main>
|
|
|
|
<script type="module" src="/assets/app.js"></script>
|
|
</body>
|
|
</html>
|