Ajustes final etapa1 #69

Merged
deyvisonwanderley merged 22 commits from ajustes_final_etapa1 into master 2025-12-22 17:29:58 +00:00
59 changed files with 1937 additions and 7802 deletions
Showing only changes of commit d10eddca39 - Show all commits

View File

@@ -228,7 +228,7 @@
['Data e Hora', dataHora], ['Data e Hora', dataHora],
['Status', registro.dentroDoPrazo ? 'Dentro do Prazo' : 'Fora do Prazo'], ['Status', registro.dentroDoPrazo ? 'Dentro do Prazo' : 'Fora do Prazo'],
['Tolerância', `${registro.toleranciaMinutos} minutos`], ['Tolerância', `${registro.toleranciaMinutos} minutos`],
['Sincronizado', registro.sincronizadoComServidor ? 'Sim (Servidor)' : 'Não (PC Local)'] ['Sincronizado', registro.sincronizadoComServidor ? 'Sim (Servidor)' : 'Não (Servidor interno)']
]; ];
doc.setFontSize(12); doc.setFontSize(12);

View File

@@ -294,7 +294,7 @@
} }
} }
} else { } else {
// Usar relógio do PC (sem sincronização com servidor) // Usar servidor interno (sem sincronização com servidor)
timestampBase = Date.now(); timestampBase = Date.now();
} }
@@ -496,7 +496,7 @@
} }
} }
} else { } else {
// Usar relógio do PC (sem sincronização com servidor) // Usar servidor interno (sem sincronização com servidor)
timestampBase = Date.now(); timestampBase = Date.now();
} }
@@ -738,7 +738,7 @@
yPosition += 6; yPosition += 6;
doc.text( doc.text(
`Sincronizado: ${registro.sincronizadoComServidor ? 'Sim (Servidor)' : 'Não (PC Local)'}`, `Sincronizado: ${registro.sincronizadoComServidor ? 'Sim (Servidor)' : 'Não (Servidor interno)'}`,
15, 15,
yPosition yPosition
); );

View File

@@ -55,21 +55,21 @@
timestampBase = obterTempoPC(); timestampBase = obterTempoPC();
sincronizado = false; sincronizado = false;
usandoServidorExterno = false; usandoServidorExterno = false;
erro = 'Usando relógio do PC (falha na sincronização)'; erro = 'Usando servidor interno (falha na sincronização)';
} else { } else {
// Mesmo sem fallback configurado, usar PC como última opção // Mesmo sem fallback configurado, usar PC como última opção
timestampBase = obterTempoPC(); timestampBase = obterTempoPC();
sincronizado = false; sincronizado = false;
usandoServidorExterno = false; usandoServidorExterno = false;
erro = 'Usando relógio do PC (servidor indisponível)'; erro = 'Usando servidor interno (servidor indisponível)';
} }
} }
} else { } else {
// Usar relógio do PC (sem sincronização com servidor) // Usar servidor interno (sem sincronização com servidor)
timestampBase = obterTempoPC(); timestampBase = obterTempoPC();
sincronizado = false; sincronizado = false;
usandoServidorExterno = false; usandoServidorExterno = false;
erro = 'Usando relógio do PC'; erro = 'Usando servidor interno';
} }
// Aplicar GMT offset ao timestamp UTC // Aplicar GMT offset ao timestamp UTC
@@ -102,10 +102,10 @@
} }
onMount(async () => { onMount(async () => {
// Inicializar com relógio do PC imediatamente para não bloquear a interface // Inicializar com servidor interno imediatamente para não bloquear a interface
tempoAtual = new Date(obterTempoPC()); tempoAtual = new Date(obterTempoPC());
sincronizado = false; sincronizado = false;
erro = 'Usando relógio do PC'; erro = 'Usando servidor interno';
// Atualizar display a cada segundo // Atualizar display a cada segundo
intervalId = setInterval(atualizarRelogio, 1000); intervalId = setInterval(atualizarRelogio, 1000);
// Sincronizar em background (não bloquear) após um pequeno delay para garantir que a UI está renderizada // Sincronizar em background (não bloquear) após um pequeno delay para garantir que a UI está renderizada
@@ -194,7 +194,7 @@
<span class="text-sm font-semibold">{erro}</span> <span class="text-sm font-semibold">{erro}</span>
{:else} {:else}
<Clock class="h-4 w-4" strokeWidth={2.5} /> <Clock class="h-4 w-4" strokeWidth={2.5} />
<span class="text-sm font-semibold">Usando relógio do PC</span> <span class="text-sm font-semibold">Usando servidor interno</span>
{/if} {/if}
</div> </div>
</div> </div>

View File

@@ -125,7 +125,7 @@ export async function imprimirDetalhesRegistro(
['Data e Hora', dataHora], ['Data e Hora', dataHora],
['Status', registro.dentroDoPrazo ? 'Dentro do Prazo' : 'Fora do Prazo'], ['Status', registro.dentroDoPrazo ? 'Dentro do Prazo' : 'Fora do Prazo'],
['Tolerância', `${registro.toleranciaMinutos} minutos`], ['Tolerância', `${registro.toleranciaMinutos} minutos`],
['Sincronizado', registro.sincronizadoComServidor ? 'Sim (Servidor)' : 'Não (PC Local)'] ['Sincronizado', registro.sincronizadoComServidor ? 'Sim (Servidor)' : 'Não (Servidor interno)']
]; ];
if (registro.justificativa) { if (registro.justificativa) {

View File

@@ -3149,7 +3149,7 @@
['Data e Hora', dataHora], ['Data e Hora', dataHora],
['Status', registro.dentroDoPrazo ? 'Dentro do Prazo' : 'Fora do Prazo'], ['Status', registro.dentroDoPrazo ? 'Dentro do Prazo' : 'Fora do Prazo'],
['Tolerância', `${registro.toleranciaMinutos} minutos`], ['Tolerância', `${registro.toleranciaMinutos} minutos`],
['Sincronizado', registro.sincronizadoComServidor ? 'Sim (Servidor)' : 'Não (PC Local)'] ['Sincronizado', registro.sincronizadoComServidor ? 'Sim (Servidor)' : 'Não (Servidor interno)']
]; ];
if (registro.justificativa) { if (registro.justificativa) {

View File

@@ -272,7 +272,7 @@
{ {
title: 'Configurações de Relógio', title: 'Configurações de Relógio',
description: description:
'Configure a sincronização de tempo com servidor NTP ou use o relógio do PC como fallback.', 'Configure a sincronização de tempo com servidor NTP ou use o servidor interno como fallback.',
ctaLabel: 'Configurar Relógio', ctaLabel: 'Configurar Relógio',
href: '/(dashboard)/ti/configuracoes-relogio', href: '/(dashboard)/ti/configuracoes-relogio',
palette: 'info', palette: 'info',

View File

@@ -69,7 +69,7 @@
// Date.now() retorna timestamp UTC (milissegundos desde epoch) // Date.now() retorna timestamp UTC (milissegundos desde epoch)
timestampUTC = Date.now(); timestampUTC = Date.now();
timestampOriginal = timestampUTC; timestampOriginal = timestampUTC;
// Atualizar status para indicar que está usando relógio do PC // Atualizar status para indicar que está usando servidor interno
statusSincronizacao = { statusSincronizacao = {
ultimaSincronizacao: Date.now(), ultimaSincronizacao: Date.now(),
offsetSegundos: null, offsetSegundos: null,
@@ -305,7 +305,7 @@
'success', 'success',
resultado.usandoServidorExterno resultado.usandoServidorExterno
? `Sincronização bem-sucedida! Offset: ${resultado.offsetSegundos}s | Horário atual: ${horarioAtual}` ? `Sincronização bem-sucedida! Offset: ${resultado.offsetSegundos}s | Horário atual: ${horarioAtual}`
: 'Usando relógio do PC (servidor externo não disponível)' : 'Usando servidor interno (servidor externo não disponível)'
); );
} else { } else {
mostrarMensagem('error', 'Falha na sincronização'); mostrarMensagem('error', 'Falha na sincronização');
@@ -424,7 +424,7 @@
<span class="ml-1 text-blue-600/90"> <span class="ml-1 text-blue-600/90">
{statusSincronizacao?.usandoServidorExterno {statusSincronizacao?.usandoServidorExterno
? `Servidor NTP (${servidorNTP})` ? `Servidor NTP (${servidorNTP})`
: 'Relógio do PC'} : 'Servidor interno'}
</span> </span>
</div> </div>
{#if statusSincronizacao?.offsetSegundos !== null && statusSincronizacao?.offsetSegundos !== undefined} {#if statusSincronizacao?.offsetSegundos !== null && statusSincronizacao?.offsetSegundos !== undefined}
@@ -527,7 +527,7 @@
</label> </label>
<div class="label"> <div class="label">
<span class="label-text-alt" <span class="label-text-alt"
>Sincronizar com servidor de tempo externo (NTP) em vez de usar o relógio do PC</span >Sincronizar com servidor de tempo externo (NTP) em vez de usar o servidor interno</span
> >
</div> </div>
</div> </div>
@@ -577,11 +577,11 @@
<div class="form-control mb-4"> <div class="form-control mb-4">
<label class="label cursor-pointer gap-3"> <label class="label cursor-pointer gap-3">
<input type="checkbox" bind:checked={fallbackParaPC} class="checkbox checkbox-primary" /> <input type="checkbox" bind:checked={fallbackParaPC} class="checkbox checkbox-primary" />
<span class="label-text font-medium">Usar relógio do PC se servidor externo falhar</span> <span class="label-text font-medium">Usar servidor interno se servidor externo falhar</span>
</label> </label>
<div class="label"> <div class="label">
<span class="label-text-alt" <span class="label-text-alt"
>Se marcado, o sistema usará o relógio do PC caso não consiga sincronizar com o servidor >Se marcado, o sistema usará o servidor interno caso não consiga sincronizar com o servidor
externo</span externo</span
> >
</div> </div>
@@ -639,7 +639,7 @@
<div class="stat bg-base-200 rounded-lg p-4"> <div class="stat bg-base-200 rounded-lg p-4">
<div class="stat-title text-xs">Fonte de Tempo</div> <div class="stat-title text-xs">Fonte de Tempo</div>
<div class="stat-value text-lg"> <div class="stat-value text-lg">
{statusSincronizacao.usandoServidorExterno ? 'Servidor NTP' : 'Relógio do PC'} {statusSincronizacao.usandoServidorExterno ? 'Servidor NTP' : 'Servidor interno'}
</div> </div>
</div> </div>
</div> </div>

View File

@@ -279,8 +279,8 @@ export const sincronizarTempo = action({
// Sempre usar fallback como última opção, mesmo se desabilitado // Sempre usar fallback como última opção, mesmo se desabilitado
// Isso evita que o sistema trave completamente se o servidor externo não estiver disponível // Isso evita que o sistema trave completamente se o servidor externo não estiver disponível
const aviso: string = config.fallbackParaPC const aviso: string = config.fallbackParaPC
? 'Falha ao sincronizar com servidor externo, usando relógio do PC' ? 'Falha ao sincronizar com servidor externo, usando servidor interno'
: 'Falha ao sincronizar com servidor externo. Fallback desabilitado, mas usando relógio do PC como última opção.'; : 'Falha ao sincronizar com servidor externo. Fallback desabilitado, mas usando servidor interno como última opção.';
console.warn('Erro ao sincronizar tempo com servidor externo:', error); console.warn('Erro ao sincronizar tempo com servidor externo:', error);