, Correçoes na busca da API para ver os ultimos planos
This commit is contained in:
@@ -36,6 +36,16 @@
|
||||
Em uso:
|
||||
<strong class="text-white"><%= @logo_atual.presence || 'logo-gade.png (padrão)' %></strong>
|
||||
</p>
|
||||
|
||||
<%# O logo está configurado mas o ARQUIVO sumiu do disco. Antes isto era
|
||||
mudo: a tela dizia o nome do logo novo e o PDF saía com o antigo.
|
||||
Agora aparece aqui, que é onde a pessoa está olhando quando troca. %>
|
||||
<% if @logo_problema == :sumiu %>
|
||||
<p class="text-sm text-red-300 bg-red-900/30 border border-red-500/40 rounded-lg px-3 py-2 mb-2">
|
||||
O arquivo deste logo <strong>não está mais no servidor</strong> — os PDFs estão
|
||||
saindo com o logo padrão. Envie o arquivo de novo.
|
||||
</p>
|
||||
<% end %>
|
||||
<input type="file" name="logo" accept="image/png,image/jpeg"
|
||||
class="w-full text-sm text-gray-300 file:mr-3 file:py-2.5 file:px-4 file:rounded-lg
|
||||
file:border-0 file:bg-[#1a1a1a] file:text-gray-200 file:cursor-pointer">
|
||||
@@ -66,6 +76,42 @@
|
||||
tela "A ação foi recusada por uma verificação de segurança" e volta ao
|
||||
início — enquanto o botão de buscar, na action original, passava. O helper
|
||||
sem argumentos devolve o token GLOBAL, válido para as duas actions. %>
|
||||
<%# ── Período dos planos ────────────────────────────────────────────────
|
||||
Form SEPARADO e em GET: filtra a LISTA de planos, não importa nada.
|
||||
Fica antes do formulário de importação porque é o que se mexe primeiro
|
||||
quando o plano procurado não está entre os 5.
|
||||
|
||||
Por que período e não data: período é aproximado por natureza — "agosto"
|
||||
a pessoa sabe; "20/08" ela não sabia, e era esse chute que a tela veio
|
||||
eliminar. É também o recorte que a própria tela do SimpliRoute usa, então
|
||||
não há tradução a fazer entre as duas. %>
|
||||
<%= form_with url: admin_romaneios_path, method: :get,
|
||||
class: 'flex flex-wrap items-end gap-3 mb-4 pb-4 border-b border-white/5' do %>
|
||||
<div>
|
||||
<label class="block text-xs font-medium text-gray-400 mb-1.5">Planos de</label>
|
||||
<input type="date" name="plano_inicio" value="<%= @plano_inicio %>"
|
||||
class="bg-[#1a1a1a] border border-white/10 rounded-xl px-3 py-2.5 text-white
|
||||
focus:outline-none focus:border-orange-500 min-h-[48px]">
|
||||
</div>
|
||||
<div>
|
||||
<label class="block text-xs font-medium text-gray-400 mb-1.5">até</label>
|
||||
<input type="date" name="plano_fim" value="<%= @plano_fim %>"
|
||||
class="bg-[#1a1a1a] border border-white/10 rounded-xl px-3 py-2.5 text-white
|
||||
focus:outline-none focus:border-orange-500 min-h-[48px]">
|
||||
</div>
|
||||
<button type="submit"
|
||||
class="px-4 py-2.5 bg-[#1a1a1a] hover:bg-[#242424] text-gray-200 border border-white/10
|
||||
rounded-xl min-h-[48px] whitespace-nowrap">
|
||||
<%= icone :buscar, cor: nil %> Filtrar planos
|
||||
</button>
|
||||
<%# Rótulo que diz o que o controle FAZ (diretriz 2): limpa o período e
|
||||
devolve os 5 mais recentes — não "limpa a tela". %>
|
||||
<% if @planos_filtrados %>
|
||||
<%= link_to 'Voltar aos 5 mais recentes', admin_romaneios_path,
|
||||
class: 'px-4 py-2.5 text-gray-400 hover:text-white border border-[#2a2a2a] rounded-xl min-h-[48px] inline-flex items-center whitespace-nowrap' %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
<%= form_with url: admin_romaneios_path, method: :post, multipart: true,
|
||||
authenticity_token: form_authenticity_token,
|
||||
data: { turbo: false }, class: 'space-y-4' do %>
|
||||
@@ -96,26 +142,33 @@
|
||||
<%= pl['name'] %> · <%= Array(pl['routes']).size %> veículos
|
||||
</option>
|
||||
<% end %>
|
||||
<%# Escape para plano mais antigo que os 5, ou para refazer um
|
||||
romaneio de um dia específico: valor vazio faz o controller
|
||||
usar o campo de data abaixo, como sempre fez. %>
|
||||
<option value="">— usar uma data específica —</option>
|
||||
</select>
|
||||
<p class="text-xs text-gray-500 mt-1.5">
|
||||
Os 5 planos mais recentes do SimpliRoute. O dia é descoberto pelo plano.
|
||||
<% if @planos_filtrados %>
|
||||
<%= pluralize(@planos.size, 'plano', plural: 'planos') %> no período.
|
||||
<% else %>
|
||||
Os 5 mais recentes. O dia é descoberto pelo plano.
|
||||
<% end %>
|
||||
</p>
|
||||
<% else %>
|
||||
<p class="text-xs text-orange-400/80 mb-1.5">
|
||||
Não consegui listar os planos do SimpliRoute agora — informe a data.
|
||||
<% if @planos_filtrados %>
|
||||
Nenhum plano nesse período — amplie a faixa ou limpe o filtro.
|
||||
<% else %>
|
||||
Não consegui listar os planos do SimpliRoute agora — informe a data.
|
||||
<% end %>
|
||||
</p>
|
||||
<% end %>
|
||||
|
||||
<%# Continua existindo sempre: é o caminho do "— usar uma data
|
||||
específica —" e a rede quando a API não responde. %>
|
||||
<input type="date" name="planned_date" value="<%= @data_padrao %>"
|
||||
<%= 'required' unless @planos.present? %>
|
||||
class="w-full mt-2 bg-[#1a1a1a] border border-white/10 rounded-xl px-3 py-3 text-white
|
||||
focus:outline-none focus:border-orange-500 min-h-[48px]">
|
||||
<%# A data solta só aparece quando NÃO há lista de planos: ela é a rede
|
||||
para a API fora do ar, e voltar a oferecê-la de graça reintroduziria
|
||||
justamente o chute que esta tela existe para eliminar. Para alcançar
|
||||
um plano antigo o caminho é o filtro de período, logo abaixo. %>
|
||||
<% if @planos.blank? %>
|
||||
<input type="date" name="planned_date" required value="<%= @data_padrao %>"
|
||||
class="w-full mt-2 bg-[#1a1a1a] border border-white/10 rounded-xl px-3 py-3 text-white
|
||||
focus:outline-none focus:border-orange-500 min-h-[48px]">
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
|
||||
Reference in New Issue
Block a user