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>
This commit is contained in:
parent
67def8ac19
commit
a37654cdc4
5 changed files with 139 additions and 21 deletions
|
|
@ -103,8 +103,11 @@ async function pushBooking(bookingId, deviceId) {
|
|||
body: JSON.stringify({ booking_id: bookingId, device_id: deviceId }),
|
||||
});
|
||||
const body = await res.json().catch(() => ({}));
|
||||
if (!res.ok) return { ok: false, error: body.error || `HTTP ${res.status}` };
|
||||
return { ok: true };
|
||||
// status included so callers can reliably tell "device busy" (409) apart
|
||||
// from other failures — used by content-script.js's default-tablet
|
||||
// fast-path to decide whether to fall back to the device picker.
|
||||
if (!res.ok) return { ok: false, status: res.status, error: body.error || `HTTP ${res.status}` };
|
||||
return { ok: true, status: res.status };
|
||||
} catch (err) {
|
||||
return { ok: false, error: err.message };
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue