tablet-checkin/backend/extension-src/options/options.html
jtricerolph a37654cdc4 Extension: per-machine default tablet, skip asking unless busy
- Options page gains a 'Default tablet for this machine' picker,
  populated from the device list once base URL + terminal key are
  configured, auto-saved on change (small enough setting not to warrant
  its own Save button).
- Popup pre-selects the default in its device dropdown but still shows
  the full picker — opening the popup is already a deliberate action, so
  staff can still override it there.
- Injected buttons (row + banner) skip the dropdown entirely when a
  default is configured — one click pushes straight to it. Only falls
  back to the full picker if that specific push comes back busy (409),
  with a note explaining why it's asking despite a default being set.
  background.js's pushBooking() now returns the HTTP status alongside
  ok/error so this can be detected reliably rather than string-matching
  the error message.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-01 20:42:35 +00:00

43 lines
1.7 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Send to Check-In Tablet — Settings</title>
<link rel="stylesheet" href="options.css" />
</head>
<body>
<h1>Send to Check-In Tablet</h1>
<p class="hint">
Two things needed before this extension can push a booking to a tablet — both come from the
<strong>tablet-checkin</strong> app itself, not from here.
</p>
<label for="baseUrl">Tablet Check-In base URL</label>
<input id="baseUrl" type="text" placeholder="https://<host>/tablet-checkin — not confirmed yet, see TODO in background.js" />
<p class="hint">The app's own address once deployed. Include no trailing slash.</p>
<label for="apiKey">Terminal API key</label>
<input id="apiKey" type="password" placeholder="Paste the key shown once when you created this terminal" />
<p class="hint">
Create one from tablet-checkin's <strong>Terminals</strong> admin page (requires the <code>admin</code>
capability). The raw key is shown exactly once at creation — if you've lost it, revoke it there and
create a new one.
</p>
<button id="save">Save</button>
<button id="test">Test connection</button>
<p id="status"></p>
<div id="defaultTabletSection" style="display: none;">
<label for="defaultDevice">Default tablet for this machine</label>
<select id="defaultDevice"></select>
<p class="hint">
The popup pre-selects this tablet but still lets you pick a different one. The "Send to Tablet"
buttons injected into NewBook itself skip asking entirely and push straight to this tablet —
unless it's busy, in which case they fall back to asking which one to use.
</p>
</div>
<script type="module" src="options.js"></script>
</body>
</html>