From 5d5531b695d120460c89f26d71f6aa3d28586c99701e2c24ca885c3498b03449 Mon Sep 17 00:00:00 2001 From: victor Date: Mon, 22 Jun 2026 19:34:19 -0300 Subject: [PATCH] =?UTF-8?q?Adi=C3=A7=C3=A3o=20do=20Usuario=20Externo=20e?= =?UTF-8?q?=20Corre=C3=A7=C3=A3o=20da=20data=20no=20dashboard?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Imagens para correção /Imagem colada (13).png | Bin 0 -> 13671 bytes app/helpers/application_helper.rb | 1 + app/models/user.rb | 7 +++++-- app/views/dashboard/index.html.erb | 12 ++++++++++-- app/views/layouts/_navbar.html.erb | 7 ++++++- 5 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 Imagens para correção /Imagem colada (13).png diff --git a/Imagens para correção /Imagem colada (13).png b/Imagens para correção /Imagem colada (13).png new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..c58c218f89566a6b294b26afa9139e42a7551f4854b5c268b57c07f0c15ed3e1 GIT binary patch literal 13671 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¥boO?SQ(eO!>osN`%${Y{PXxCSGDSaH`rvj(#I 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 'Administrador', 'gerente' => 'Gerente', 'operador' => 'Operador', - 'motorista' => 'Motorista' + 'motorista' => 'Motorista', + 'externo' => 'Externo (só dashboard)' }.freeze # ── Validações ────────────────────────────────────────────── diff --git a/app/views/dashboard/index.html.erb b/app/views/dashboard/index.html.erb index abafc9e..d475d47 100644 --- a/app/views/dashboard/index.html.erb +++ b/app/views/dashboard/index.html.erb @@ -441,11 +441,19 @@ String(d.getMonth() + 1).padStart(2, '0') + '-' + String(d.getDate()).padStart(2, '0'); + // Os valores vêm em ISO (YYYY-MM-DD), mas o dateFormat exibido é d/m/Y. + // Convertendo para Date local antes evita o flatpickr interpretar errado + // (era a causa da caixa mostrar uma data solta em vez do período). + const parseISO = (s) => { + const [y, m, d] = s.split('-').map(Number); + return new Date(y, m - 1, d); + }; + flatpickr(input, { mode: 'range', - locale: 'pt', + locale: Object.assign({}, flatpickr.l10ns.pt, { rangeSeparator: ' até ' }), dateFormat: 'd/m/Y', - defaultDate: [inicio, fim], + defaultDate: [parseISO(inicio), parseISO(fim)], maxDate: 'today', onClose: function (selectedDates) { if (selectedDates.length === 0) return; diff --git a/app/views/layouts/_navbar.html.erb b/app/views/layouts/_navbar.html.erb index f1004cc..e365a80 100644 --- a/app/views/layouts/_navbar.html.erb +++ b/app/views/layouts/_navbar.html.erb @@ -25,6 +25,7 @@ <%= current_user.admin? ? 'bg-orange-500 text-black' : current_user.gerente? ? 'bg-orange-800 text-white' : current_user.operador? ? 'bg-gray-700 text-white' : + current_user.externo? ? 'bg-blue-900 text-blue-200 border border-blue-500' : 'bg-gray-900 text-orange-400 border border-orange-500' %>"> <%= current_user.role_label %> @@ -33,9 +34,13 @@ <%# Navegação %>