/admin, with Server, Accounts and Log sections chosen by the URL's hash. The server sends the page and /admin.js to admins only (anyone else asking for the page goes back to the app, and the script is 403), and removes the header's link to it from everyone else's page rather than hiding it. The API keeps refusing all of it to non-admins as before. Settings becomes personal: theme, OPML import and export, and the schedule and download folder to read. The server fields, the Users dialog and the Log dialog move out of dialogs.ts into admin.ts. The CSS moves out of index.html into web/app.css, which both pages load as /app.css?v=<hash>, served immutable like the scripts. The smoke test checks both pages. Closes #19. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
35 lines
1.1 KiB
HTML
35 lines
1.1 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 light">
|
|
<title>iPodderX admin</title>
|
|
<link rel="icon" type="image/png" sizes="128x128" href="/favicon.png">
|
|
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
|
|
<link rel="stylesheet" data-src="app.css">
|
|
</head>
|
|
<body class="adminpage">
|
|
<!-- The server sends this page, and its script, to admins only. -->
|
|
<header id="topbar">
|
|
<a class="btn ico" href="/" title="Back to iPodderX" aria-label="Back to iPodderX" data-icon="left"></a>
|
|
<img class="logo" src="/icon.png" alt="" width="26">
|
|
<h1>Admin</h1>
|
|
<span class="grow"></span>
|
|
<nav class="tabs" id="atabs">
|
|
<a href="#server" data-t="server">Server</a>
|
|
<a href="#accounts" data-t="accounts">Accounts</a>
|
|
<a href="#log" data-t="log">Log</a>
|
|
</nav>
|
|
</header>
|
|
<main class="wrap plain" id="admin">
|
|
<section id="server" hidden></section>
|
|
<section id="accounts" hidden></section>
|
|
<section id="log" hidden></section>
|
|
</main>
|
|
<div id="toasts"></div>
|
|
|
|
<script data-src="web/src"></script>
|
|
</body>
|
|
</html>
|