10 Commits
Author SHA1 Message Date
randy 7ea03e5bc5 Rename /labels route to /repository
deploy / deploy (push) Successful in 9s
2026-09-15 22:29:10 +02:00
randy 46fd345b7f Match klikatko/mc-panel look: dark navbar, Bootstrap 5.3.8, MDI icons
deploy / deploy (push) Successful in 12s
2026-09-15 22:17:49 +02:00
randy ec9278c0dd Remove doubled-up padding on the divider links, add explicit flex align to the brand row
deploy / deploy (push) Successful in 9s
ps-3 stacked on top of nav-link's own padding made the gap after the
border look uneven -- nav-link's built-in padding is enough on its own.
2026-09-13 12:20:45 +02:00
randy f351212395 Fix navbar dividers: border-start on the link itself instead of a standalone vr div
deploy / deploy (push) Successful in 10s
The vr utility needs stretch alignment from its flex parent to size
correctly -- inside a plain nav-item li it collapsed/misaligned instead
of showing as a clean vertical rule.
2026-09-13 12:18:00 +02:00
randy eafea9f728 Add visual separators: inverted banner sections on receipts, dividers in navbar
deploy / deploy (push) Successful in 9s
ReceiptBuilder#invert (GS B) + #section_separator give the test page (and
future receipts) a full-width white-on-black banner between sections --
the closest a direct-thermal printer gets to a second color. Navbar gets
a vr divider between Home | Brother/Shipping labels/Receipts | Labels to
group the three logical clusters.
2026-09-13 12:16:09 +02:00
randy 148f7dc248 Unified /labels page (badges, edit, preview), mnemonic ESC/POS parser for the raw receipt field
deploy / deploy (push) Successful in 10s
- Saved labels/receipts now show on one page instead of split across
  Shipping labels and Receipts, each with a badge for its type/printer,
  Edit (name+content, in place), Print, and Delete.
- ZPL labels get a real visual preview via Labelary's public render API;
  ESC/POS ones show their raw content (no good general preview for that).
- The Receipts free-text field only ever encoded whatever was typed as
  literal printable characters -- pasting mnemonic ESC/POS notation
  (ESC/GS/LF as command names, 0xNN as raw bytes) just printed as text
  instead of being interpreted. Added a small line-based parser for that
  notation (ReceiptBuilder#raw appends already-resolved bytes verbatim),
  verified byte-for-byte against an example with align/bold/barcode/cut.
2026-09-13 11:21:46 +02:00
randy 66e2e7a5c0 Redesign: clear active nav state, Shipping labels + Receipts get free-text/raw print, shared label repository
deploy / deploy (push) Successful in 10s
- Home page is now just the print server overview, no more unrelated
  network links (3D printers, Cockpit) left over from when this was a
  general landing page.
- Navbar shows which section is active; Brother's per-printer buttons
  now live under a dedicated Brother nav item instead of always-visible.
- Shipping labels: paste raw ZPL directly (no need to save to a file
  first), with a Labelary preview link alongside it.
- Receipts: paste already-formatted ESC/POS text directly, printed as-is.
- Both can save what they just printed into a shared label repository
  (lib/label_repository.rb, one JSON file per label under data/labels/)
  for reprinting later -- saving happens independently of whether the
  print itself succeeds, so a failed/offline printer doesn't lose the
  content.
2026-09-13 11:11:12 +02:00
randy afae57aff4 Add Epson TM-T20II receipt printing (title/body/QR, no ESC/POS knowledge needed)
deploy / deploy (push) Successful in 8s
Custom ReceiptBuilder instead of the escpos gem -- its diacritics handling
needed the same manual UTF-8->CP852 encode call anyway, based on earlier
experiments in ~/test/epson/.
2026-09-13 10:42:52 +02:00
randy 5c06f725f0 Address Brother QL printer by URL path instead of session cookie
deploy / deploy (push) Successful in 9s
Drops /brother/select and the session-based "active printer" state:
the printer key now lives in the path (/brother/<printer>/*), so the
proxy is stateless and any path under it -- including brother_ql_web's
API, not just its UI -- is reachable without a prior "activation" step.
2026-09-12 23:18:08 +02:00
randy 1cc03d8451 Inject persistent top navbar (with printer switcher) into proxied Brother pages 2026-09-12 00:34:14 +02:00