From bd574aedc02859aaaa007410c6255c35fc02b5a0 Mon Sep 17 00:00:00 2001 From: killer-cf Date: Wed, 12 Nov 2025 23:18:41 -0300 Subject: [PATCH] Use resolve() for all internal hrefs and goto paths to ensure correct routing --- apps/web/src/lib/components/Sidebar.svelte | 2 +- apps/web/src/routes/(dashboard)/+page.svelte | 11 ++-- .../(dashboard)/alterar-senha/+page.svelte | 9 +-- .../routes/(dashboard)/compras/+page.svelte | 3 +- .../(dashboard)/comunicacao/+page.svelte | 3 +- .../(dashboard)/controladoria/+page.svelte | 3 +- .../(dashboard)/esqueci-senha/+page.svelte | 7 ++- .../(dashboard)/financeiro/+page.svelte | 3 +- .../(dashboard)/gestao-pessoas/+page.svelte | 3 +- .../gestao-ausencias/+page.svelte | 5 +- .../routes/(dashboard)/juridico/+page.svelte | 3 +- .../(dashboard)/licitacoes/+page.svelte | 3 +- .../programas-esportivos/+page.svelte | 3 +- .../atestados-licencas/+page.svelte | 5 +- .../recursos-humanos/ausencias/+page.svelte | 5 +- .../funcionarios/+page.svelte | 7 ++- .../funcionarios/[funcionarioId]/+page.svelte | 17 +++--- .../[funcionarioId]/documentos/+page.svelte | 13 ++-- .../[funcionarioId]/editar/+page.svelte | 9 +-- .../funcionarios/excluir/+page.svelte | 9 +-- .../funcionarios/relatorios/+page.svelte | 61 ++++++++++--------- .../recursos-humanos/simbolos/+page.svelte | 7 ++- .../simbolos/[simboloId]/editar/+page.svelte | 5 +- .../simbolos/cadastro/+page.svelte | 9 +-- .../secretaria-executiva/+page.svelte | 3 +- .../gestao-ausencias/+page.svelte | 5 +- .../(dashboard)/solicitar-acesso/+page.svelte | 5 +- .../(dashboard)/ti/auditoria/+page.svelte | 16 ++--- .../ti/painel-administrativo/+page.svelte | 53 ++++++++-------- .../routes/(dashboard)/ti/perfis/+page.svelte | 5 +- .../ti/personalizar-permissoes/+page.svelte | 9 +-- .../(dashboard)/ti/usuarios/+page.svelte | 3 +- 32 files changed, 168 insertions(+), 136 deletions(-) diff --git a/apps/web/src/lib/components/Sidebar.svelte b/apps/web/src/lib/components/Sidebar.svelte index 282c574..1d1e1cc 100644 --- a/apps/web/src/lib/components/Sidebar.svelte +++ b/apps/web/src/lib/components/Sidebar.svelte @@ -366,7 +366,7 @@ {@const isActive = currentPath.startsWith(s.link)}
  • diff --git a/apps/web/src/routes/(dashboard)/+page.svelte b/apps/web/src/routes/(dashboard)/+page.svelte index 750841a..0c7070b 100644 --- a/apps/web/src/routes/(dashboard)/+page.svelte +++ b/apps/web/src/routes/(dashboard)/+page.svelte @@ -4,6 +4,7 @@ import { onMount } from "svelte"; import { page } from "$app/stores"; import { goto } from "$app/navigation"; + import { resolve } from "$app/paths"; import { UserPlus, Mail } from "lucide-svelte"; import { useAuth } from "@mmailaender/convex-better-auth-svelte/svelte"; @@ -145,7 +146,7 @@

    {alertData.message}

    {#if alertType === "access_denied"}
    - + Solicitar Acesso - + Contatar TI @@ -781,19 +782,19 @@

    Acesso Rápido

    Novo Funcionário Novo Símbolo Painel Admin diff --git a/apps/web/src/routes/(dashboard)/alterar-senha/+page.svelte b/apps/web/src/routes/(dashboard)/alterar-senha/+page.svelte index 11ca82d..a2a96d1 100644 --- a/apps/web/src/routes/(dashboard)/alterar-senha/+page.svelte +++ b/apps/web/src/routes/(dashboard)/alterar-senha/+page.svelte @@ -3,6 +3,7 @@ import { api } from '@sgse-app/backend/convex/_generated/api'; import { authStore } from '$lib/stores/auth.svelte'; import { goto } from '$app/navigation'; + import { resolve } from '$app/paths'; import { onMount } from 'svelte'; const convex = useConvexClient(); @@ -19,7 +20,7 @@ onMount(() => { if (!currentUser?.data) { - goto('/'); + goto(resolve('/')); } }); @@ -112,7 +113,7 @@ // Redirecionar após 2 segundos setTimeout(() => { - goto('/'); + goto(resolve('/')); }, 2000); } else { notice = { @@ -131,7 +132,7 @@ } function cancelar() { - goto('/'); + goto(resolve('/')); } @@ -161,7 +162,7 @@ diff --git a/apps/web/src/routes/(dashboard)/compras/+page.svelte b/apps/web/src/routes/(dashboard)/compras/+page.svelte index 619c5c0..e6497f9 100644 --- a/apps/web/src/routes/(dashboard)/compras/+page.svelte +++ b/apps/web/src/routes/(dashboard)/compras/+page.svelte @@ -1,11 +1,12 @@
    diff --git a/apps/web/src/routes/(dashboard)/comunicacao/+page.svelte b/apps/web/src/routes/(dashboard)/comunicacao/+page.svelte index 9caada5..2166880 100644 --- a/apps/web/src/routes/(dashboard)/comunicacao/+page.svelte +++ b/apps/web/src/routes/(dashboard)/comunicacao/+page.svelte @@ -1,11 +1,12 @@
    diff --git a/apps/web/src/routes/(dashboard)/controladoria/+page.svelte b/apps/web/src/routes/(dashboard)/controladoria/+page.svelte index 440da96..74917ac 100644 --- a/apps/web/src/routes/(dashboard)/controladoria/+page.svelte +++ b/apps/web/src/routes/(dashboard)/controladoria/+page.svelte @@ -1,12 +1,13 @@
    diff --git a/apps/web/src/routes/(dashboard)/esqueci-senha/+page.svelte b/apps/web/src/routes/(dashboard)/esqueci-senha/+page.svelte index 9d85216..989b244 100644 --- a/apps/web/src/routes/(dashboard)/esqueci-senha/+page.svelte +++ b/apps/web/src/routes/(dashboard)/esqueci-senha/+page.svelte @@ -2,6 +2,7 @@ import { useConvexClient } from 'convex-svelte'; import { api } from '@sgse-app/backend/convex/_generated/api'; + import { resolve } from '$app/paths'; const convex = useConvexClient(); let matricula = $state(''); @@ -88,7 +89,7 @@ @@ -204,7 +205,7 @@
    - +
    - + import { DollarSign, Building2, Plus, Calculator, TrendingUp, FileText } from "lucide-svelte"; + import { resolve } from "$app/paths";
    diff --git a/apps/web/src/routes/(dashboard)/gestao-pessoas/+page.svelte b/apps/web/src/routes/(dashboard)/gestao-pessoas/+page.svelte index acc3a39..74d5f63 100644 --- a/apps/web/src/routes/(dashboard)/gestao-pessoas/+page.svelte +++ b/apps/web/src/routes/(dashboard)/gestao-pessoas/+page.svelte @@ -1,4 +1,5 @@
    diff --git a/apps/web/src/routes/(dashboard)/licitacoes/+page.svelte b/apps/web/src/routes/(dashboard)/licitacoes/+page.svelte index 6075af1..65b2844 100644 --- a/apps/web/src/routes/(dashboard)/licitacoes/+page.svelte +++ b/apps/web/src/routes/(dashboard)/licitacoes/+page.svelte @@ -1,12 +1,13 @@
    diff --git a/apps/web/src/routes/(dashboard)/programas-esportivos/+page.svelte b/apps/web/src/routes/(dashboard)/programas-esportivos/+page.svelte index 47809cc..60340ef 100644 --- a/apps/web/src/routes/(dashboard)/programas-esportivos/+page.svelte +++ b/apps/web/src/routes/(dashboard)/programas-esportivos/+page.svelte @@ -1,11 +1,12 @@
    diff --git a/apps/web/src/routes/(dashboard)/recursos-humanos/atestados-licencas/+page.svelte b/apps/web/src/routes/(dashboard)/recursos-humanos/atestados-licencas/+page.svelte index a346d4b..d4be00d 100644 --- a/apps/web/src/routes/(dashboard)/recursos-humanos/atestados-licencas/+page.svelte +++ b/apps/web/src/routes/(dashboard)/recursos-humanos/atestados-licencas/+page.svelte @@ -1,5 +1,6 @@ diff --git a/apps/web/src/routes/(dashboard)/ti/auditoria/+page.svelte b/apps/web/src/routes/(dashboard)/ti/auditoria/+page.svelte index 85ccaa2..85e4d2e 100644 --- a/apps/web/src/routes/(dashboard)/ti/auditoria/+page.svelte +++ b/apps/web/src/routes/(dashboard)/ti/auditoria/+page.svelte @@ -2,9 +2,11 @@ import { useQuery } from "convex-svelte"; import { api } from "@sgse-app/backend/convex/_generated/api"; + + import { resolve } from "$app/paths"; let abaAtiva = $state<"atividades" | "logins">("atividades"); let limite = $state(50); - + // Queries com $derived para garantir reatividade const atividades = $derived(useQuery(api.logsAtividades.listarAtividades, { limite })); const logins = $derived(useQuery(api.logsLogin.listarTodosLogins, { limite })); @@ -55,7 +57,7 @@ @@ -124,7 +126,7 @@
    - -
    - +
    - + {#if !atividades?.data}
    @@ -279,7 +281,7 @@
    {logins.data.length} registro{logins.data.length !== 1 ? 's' : ''}
    {/if}
    - + {#if !logins?.data}
    diff --git a/apps/web/src/routes/(dashboard)/ti/painel-administrativo/+page.svelte b/apps/web/src/routes/(dashboard)/ti/painel-administrativo/+page.svelte index d005651..c8a798b 100644 --- a/apps/web/src/routes/(dashboard)/ti/painel-administrativo/+page.svelte +++ b/apps/web/src/routes/(dashboard)/ti/painel-administrativo/+page.svelte @@ -4,20 +4,21 @@ import StatsCard from "$lib/components/ti/StatsCard.svelte"; import { BarChart3, Users, CheckCircle2, Ban, Clock, Plus, Layers, FileText, Info } from "lucide-svelte"; + import { resolve } from "$app/paths"; const client = useConvexClient(); const usuariosQuery = useQuery(api.usuarios.listar, {}); - + // Verificar se está carregando const carregando = $derived(usuariosQuery === undefined); - + // Extrair dados dos usuários const usuarios = $derived(usuariosQuery?.data ?? []); - + // Estatísticas derivadas const stats = $derived.by(() => { // Se ainda está carregando, retorna null para mostrar loading if (carregando) return null; - + // Se não há usuários, retorna stats zeradas (mas não null para não mostrar loading) if (!Array.isArray(usuarios) || usuarios.length === 0) { return { @@ -27,11 +28,11 @@ inativos: 0 }; } - + const ativos = usuarios.filter(u => u.ativo && !u.bloqueado).length; const bloqueados = usuarios.filter(u => u.bloqueado === true).length; const inativos = usuarios.filter(u => !u.ativo).length; - + return { total: usuarios.length, ativos, @@ -58,32 +59,32 @@ {#if stats}
    - - - - - - -

    Ações Rápidas

    - + Criar Usuário - - + + Gerenciar Perfis - - + + Ver Logs diff --git a/apps/web/src/routes/(dashboard)/ti/perfis/+page.svelte b/apps/web/src/routes/(dashboard)/ti/perfis/+page.svelte index 7d3ab7d..c3017c3 100644 --- a/apps/web/src/routes/(dashboard)/ti/perfis/+page.svelte +++ b/apps/web/src/routes/(dashboard)/ti/perfis/+page.svelte @@ -1,4 +1,5 @@ @@ -8,7 +9,7 @@ -
    diff --git a/apps/web/src/routes/(dashboard)/ti/usuarios/+page.svelte b/apps/web/src/routes/(dashboard)/ti/usuarios/+page.svelte index f93c768..f2dc39f 100644 --- a/apps/web/src/routes/(dashboard)/ti/usuarios/+page.svelte +++ b/apps/web/src/routes/(dashboard)/ti/usuarios/+page.svelte @@ -1,4 +1,5 @@