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.
This commit is contained in:
randy committed 2026-09-13 11:11:12 +02:00
1 parent afae57aff4
commit 66e2e7a5c0
8 files changed
+226 -53

No files matched your search

+14 -9
View File
@@ -7,21 +7,26 @@
<div class="collapse navbar-collapse" id="navbarNavDropdown">
<ul class="navbar-nav me-auto">
<li class="nav-item">
<a class="nav-link" href="/">Home</a>
<a class="nav-link <%= 'active' if request.path == '/' %>" href="/">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/upload">Shipping labels</a>
<a class="nav-link <%= 'active' if request.path.start_with?('/brother') %>" href="/brother">Brother</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/epson">Receipts</a>
<a class="nav-link <%= 'active' if request.path == '/upload' %>" href="/upload">Shipping labels</a>
</li>
<li class="nav-item">
<a class="nav-link <%= 'active' if request.path == '/epson' %>" href="/epson">Receipts</a>
</li>
</ul>
<span class="navbar-text me-2">Brother:</span>
<div class="d-flex gap-1">
<% BROTHER_PRINTERS.each do |key, info| %>
<a href="/brother/<%= key %>/" class="btn btn-sm <%= request.path.start_with?("/brother/#{key}/") ? 'btn-primary' : 'btn-outline-secondary' %>"><%= info[:label].sub('Brother ', '') %></a>
<% end %>
</div>
<% if request.path.start_with?('/brother') %>
<span class="navbar-text me-2">Printer:</span>
<div class="d-flex gap-1">
<% BROTHER_PRINTERS.each do |key, info| %>
<a href="/brother/<%= key %>/" class="btn btn-sm <%= request.path.start_with?("/brother/#{key}/") ? 'btn-primary' : 'btn-outline-secondary' %>"><%= info[:label].sub('Brother ', '') %></a>
<% end %>
</div>
<% end %>
</div>
</div>
</nav>