diff --git a/app/javascript/controllers/validacao_controller.js b/app/javascript/controllers/validacao_controller.js index 3e34c95..c984400 100644 --- a/app/javascript/controllers/validacao_controller.js +++ b/app/javascript/controllers/validacao_controller.js @@ -6,7 +6,7 @@ import { Controller } from "@hotwired/stimulus" export default class extends Controller { static targets = [ - "linha", "checkbox", "selecionarTodos", + "linha", "checkbox", "selecionarTodos", "busca", "buscaVazia", "toggles", "barra", "barraManuais", "percentual", "chipVeiculo", "contadorClassificadas", "contadorTotal", "contadorManuais", "manuaisInfo", "qtdNormal", "qtdRetirada", "qtdBonus", "qtdDesconto", "qtdExtraordinaria", @@ -64,10 +64,27 @@ export default class extends Controller { } } - // ── Selecionar / desmarcar todos os checkboxes ───────────── + // ── Busca na listagem de notas (filtra os cards por NF/local/endereço/veículo) ── + filtrarBusca(event) { + const q = (event.currentTarget.value || "").trim().toLowerCase() + let visiveis = 0 + this.linhaTargets.forEach(l => { + const ok = q === "" || (l.dataset.busca || "").includes(q) + l.classList.toggle("hidden", !ok) + if (ok) visiveis++ + }) + if (this.hasBuscaVaziaTarget) + this.buscaVaziaTarget.classList.toggle("hidden", q === "" || visiveis > 0) + } + + // ── Selecionar / desmarcar todos os checkboxes (só os visíveis na busca) ── selecionarTodos(event) { const marcar = event.currentTarget.checked - this.checkboxTargets.forEach(c => { c.checked = marcar }) + this.checkboxTargets.forEach(c => { + const linha = c.closest("[data-busca]") + if (linha && linha.classList.contains("hidden")) return + c.checked = marcar + }) } // O pilar está ativo (ring-2) na entrega indicada? diff --git a/app/views/consolidacao_entregas/validar.html.erb b/app/views/consolidacao_entregas/validar.html.erb index cef8dbc..736afdb 100644 --- a/app/views/consolidacao_entregas/validar.html.erb +++ b/app/views/consolidacao_entregas/validar.html.erb @@ -13,7 +13,7 @@