From abb4eb0edba64f487a1cc29b54c52ffa0a5d90a4 Mon Sep 17 00:00:00 2001 From: Roman Priesol Date: Sun, 13 Sep 2026 11:37:24 +0200 Subject: [PATCH] Split Print into Save / Save & Print -- saving no longer requires also printing Name is now required (it's the only thing identifying what got saved), and printing is an explicit separate choice instead of an implicit side-effect of naming something. --- app.rb | 38 ++++++++++++++++++++++++++------------ views/epson.erb | 7 ++++--- views/upload.erb | 7 ++++--- 3 files changed, 34 insertions(+), 18 deletions(-) diff --git a/app.rb b/app.rb index 42aa4e7..3bf9500 100644 --- a/app.rb +++ b/app.rb @@ -219,15 +219,22 @@ end post '/shipping/zpl' do zpl = params[:zpl].to_s + name = params[:save_as].to_s if zpl.strip.empty? flash 'ZPL text is empty', 'warning' + elsif name.empty? + flash 'Name is required to save', 'warning' else - LABEL_REPO.save(name: params[:save_as], type: 'zpl', content: zpl) unless params[:save_as].to_s.empty? - begin - print_to_datamax(zpl) - flash 'ZPL sent to printer', 'success' - rescue => e - flash "ZPL print failed (#{e.message})", 'danger' + LABEL_REPO.save(name: name, type: 'zpl', content: zpl) + if params[:commit] == 'save_and_print' + begin + print_to_datamax(zpl) + flash "Saved '#{name}' and sent to printer", 'success' + rescue => e + flash "Saved '#{name}', but print failed (#{e.message})", 'danger' + end + else + flash "Saved '#{name}'", 'success' end end redirect '/upload' @@ -296,15 +303,22 @@ end post '/epson/raw' do content = params[:content].to_s + name = params[:save_as].to_s if content.strip.empty? flash 'Receipt text is empty', 'warning' + elsif name.empty? + flash 'Name is required to save', 'warning' else - LABEL_REPO.save(name: params[:save_as], type: 'escpos', content: content) unless params[:save_as].to_s.empty? - begin - print_raw_escpos(content) - flash 'Sent to Epson printer', 'success' - rescue => e - flash "Epson print failed (#{e.message})", 'danger' + LABEL_REPO.save(name: name, type: 'escpos', content: content) + if params[:commit] == 'save_and_print' + begin + print_raw_escpos(content) + flash "Saved '#{name}' and sent to printer", 'success' + rescue => e + flash "Saved '#{name}', but print failed (#{e.message})", 'danger' + end + else + flash "Saved '#{name}'", 'success' end end redirect '/epson' diff --git a/views/epson.erb b/views/epson.erb index 7db4cd0..0f82d31 100644 --- a/views/epson.erb +++ b/views/epson.erb @@ -37,11 +37,12 @@ GS V 0x00 # Full cut
- - + +
- + +
diff --git a/views/upload.erb b/views/upload.erb index 2d0769e..6d97b15 100644 --- a/views/upload.erb +++ b/views/upload.erb @@ -23,11 +23,12 @@
- - + +
- + +