Ajustes final etapa1 #69
@@ -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);
|
||||||
|
|||||||
@@ -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
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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',
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user