Files
roast_command_center/public/roasters.html
T
snowspeeder 824a964f9d
Test and deploy / test-and-deploy (push) Successful in 2m28s
Rebuild printable roast plans and remove machine-based adjustments
2026-09-05 14:56:11 -04:00

143 lines
5.1 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>Machines — Roast Planner</title>
<link rel="stylesheet" href="/app.css?v=__ASSET_VERSION__" />
<link rel="icon" href="/icon.svg?v=__ASSET_VERSION__" type="image/svg+xml" />
<meta name="theme-color" content="#A8481A" />
</head>
<body>
<div class="app-shell">
<nav class="side-nav" id="side-nav" aria-label="Main navigation">
<div class="side-nav-brand">
<img class="brand-mark" src="/brand-mark.svg?v=__ASSET_VERSION__" alt="" aria-hidden="true" />
<span class="brand-name">Roast Planner</span>
</div>
<div id="nav-links"></div>
<div class="nav-spacer"></div>
<button
class="icon-btn nav-collapse-toggle"
type="button"
id="nav-collapse"
aria-label="Collapse navigation"
title="Collapse navigation"
>
«
</button>
<div class="nav-user">
<div class="nav-user-avatar" id="nav-user-avatar" aria-hidden="true"></div>
<div class="nav-user-detail">
<span class="nav-user-email" id="account-email"></span>
<button class="nav-user-logout" type="button" id="btn-logout">
Log out
</button>
</div>
</div>
</nav>
<div class="app-workspace" id="app-workspace">
<header class="app-header">
<div class="header-row-top">
<button
class="icon-btn nav-hamburger"
type="button"
id="nav-hamburger"
aria-label="Open navigation"
aria-expanded="false"
>
☰
</button>
<div class="brand">
<div class="brand-text">
<h1>Machines</h1>
<p class="brand-sub">
Your roasters and recorded history. Machines do not change roast plans.
</p>
</div>
</div>
</div>
</header>
<div class="drawer-overlay hidden" id="drawer-overlay"></div>
<main class="page-content">
<section class="panel-card" id="roasters-card">
<div class="panel-head"><h2>Your roasters</h2></div>
<div class="panel-body">
<div class="table-wrap">
<table class="data-table" id="roasters-table">
<thead>
<tr>
<th>Roaster</th>
<th>Default</th>
<th class="num">Logged roasts</th>
<th></th>
</tr>
</thead>
<tbody id="roasters-body"></tbody>
</table>
</div>
<form
id="roaster-form"
style="display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px"
>
<input
class="text-input"
name="name"
placeholder="Name (e.g. Hottop)"
required
style="max-width:200px"
/>
<input
class="text-input"
name="model"
placeholder="Model (e.g. KN-8828B-2K+)"
style="max-width:220px"
/>
<button class="ghost-btn" type="submit">Add roaster</button>
</form>
<p class="field-note">
Uploaded .alogs attach to the default roaster (you can reassign
any roast from its detail view on the Roasts page). Learning,
the planner's suggested curve, and roast reviews all use the
selected machine's own history.
</p>
</div>
</section>
<section class="panel-card hidden" id="report-card">
<div class="panel-head">
<h2 id="report-title">Analysis</h2>
<span class="muted" id="report-count"></span>
</div>
<div class="panel-body">
<p class="field-note" id="report-empty" hidden>
No roasts logged against this machine yet — upload finished
.alogs on the Roasts page and the analysis fills in.
</p>
<div id="report-body">
<div class="table-wrap">
<table class="data-table" id="report-table">
<thead>
<tr>
<th>Recorded milestone</th>
<th>Learned from your roasts</th>
</tr>
</thead>
<tbody id="report-rows"></tbody>
</table>
</div>
<p class="field-note" id="report-ror"></p>
<div id="report-adjustments" style="margin-top:8px"></div>
</div>
</div>
</section>
</main>
</div>
</div>
<script type="module" src="/js/roasters.js?v=__ASSET_VERSION__"></script>
</body>
</html>