From 1cc03d8451973a394ad640285a9e9b4a1037c219 Mon Sep 17 00:00:00 2001 From: Roman Priesol Date: Sat, 12 Sep 2026 00:34:14 +0200 Subject: [PATCH] Inject persistent top navbar (with printer switcher) into proxied Brother pages --- app.rb | 7 ++++++- views/_navbar.erb | 27 +++++++++++++++++++++++++++ views/layout.erb | 22 +--------------------- 3 files changed, 34 insertions(+), 22 deletions(-) create mode 100644 views/_navbar.erb diff --git a/app.rb b/app.rb index 9fbdb1a..9d7ade9 100644 --- a/app.rb +++ b/app.rb @@ -102,13 +102,18 @@ helpers do res = Net::HTTP.start(uri.host, uri.port) { |http| http.request(proxied) } + body = res.body || '' + if res['Content-Type']&.include?('text/html') + body = body.sub(/(]*>)/i) { "#{Regexp.last_match(1)}\n#{erb(:_navbar, layout: false)}" } + end + headers = {} res.each_header do |key, value| next if %w[transfer-encoding connection content-length].include?(key.downcase) headers[key] = value end - [res.code.to_i, headers, [res.body || '']] + [res.code.to_i, headers, [body]] end end diff --git a/views/_navbar.erb b/views/_navbar.erb new file mode 100644 index 0000000..c55002d --- /dev/null +++ b/views/_navbar.erb @@ -0,0 +1,27 @@ + diff --git a/views/layout.erb b/views/layout.erb index 4fe379e..3b616b6 100644 --- a/views/layout.erb +++ b/views/layout.erb @@ -10,27 +10,7 @@
- + <%= erb :_navbar, layout: false %>
<% if @alert_success then %>
<%=@alert_success%>