Inject persistent top navbar (with printer switcher) into proxied Brother pages
This commit is contained in:
1 parent
daa39320a6
commit
1cc03d8451
3 files changed
+34
-22
No files matched your search
@@ -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(/(<body[^>]*>)/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
|
||||
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-light">
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="/">Print server</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarNavDropdown">
|
||||
<ul class="navbar-nav me-auto">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/">Home</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/upload">Shipping labels</a>
|
||||
</li>
|
||||
</ul>
|
||||
<span class="navbar-text me-2">Brother:</span>
|
||||
<div class="d-flex gap-1">
|
||||
<% BROTHER_PRINTERS.each do |key, info| %>
|
||||
<form action="/brother/select" method="POST" class="m-0">
|
||||
<input type="hidden" name="printer" value="<%= key %>">
|
||||
<button type="submit" class="btn btn-sm <%= session[:brother_printer] == key ? 'btn-primary' : 'btn-outline-secondary' %>"><%= info[:label].sub('Brother ', '') %></button>
|
||||
</form>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
+1
-21
@@ -10,27 +10,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-light">
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="/">Print server</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarNavDropdown">
|
||||
<ul class="navbar-nav">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" aria-current="page" href="/">Home</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/upload">Shipping labels</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/brother">Brother printers</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<%= erb :_navbar, layout: false %>
|
||||
<div class="row">
|
||||
<% if @alert_success then %>
|
||||
<div class="alert alert-success"><%=@alert_success%></div>
|
||||
|
||||
Reference in new issue
Block a user