Skip to content

Commit f6cc354

Browse files
authored
Update obrigado.html
1 parent e06e6f4 commit f6cc354

File tree

1 file changed

+63
-140
lines changed

1 file changed

+63
-140
lines changed

obrigado.html

Lines changed: 63 additions & 140 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,19 @@
8888
margin-top:10px;
8989
color:#f5f5f5;
9090
}
91+
92+
#cargo {
93+
font-size:1rem;
94+
margin-top:5px;
95+
color:#d4af37;
96+
}
97+
98+
#partido {
99+
font-size:0.9rem;
100+
margin-top:5px;
101+
color:#bbb;
102+
}
103+
91104
button {
92105
margin-top:15px;
93106
padding:12px 30px;
@@ -242,13 +255,12 @@ <h1>✔️ Voto Computado com Sucesso</h1>
242255
</div>
243256

244257
<div id="nome">Carregando candidato...</div>
258+
<div id="cargo"></div>
259+
<div id="partido"></div>
245260

246261
<!-- Status do voto -->
247262
<div id="statusVoto" class="status">Buscando dados do voto...</div>
248263

249-
<!-- DEBUG INFO (remover depois) -->
250-
<div id="debugInfo" style="display:none; background:#222; padding:10px; border-radius:8px; margin:10px 0; font-size:0.8rem; font-family:monospace;"></div>
251-
252264
<!-- Mensagem de bloqueio -->
253265
<div class="blocked-message">
254266
⚠️ <strong>Sessão Finalizada</strong> - Não é possível voltar ou votar novamente
@@ -311,45 +323,43 @@ <h3>🔒 Seu voto é 100% Auditável</h3>
311323
});
312324

313325
// ==============================
314-
// CARREGAR DADOS DO VOTO - CORRIGIDO
326+
// CARREGAR DADOS DO VOTO - SIMPLIFICADO
315327
// ==============================
316328
async function carregarDadosVoto() {
317-
console.log("🚀 INICIANDO CARREGAMENTO...");
329+
console.log("🚀 Carregando dados do voto...");
318330

319331
const db = new PouchDB('terra_dourada_votos_local');
320-
const dbCandidatos = new PouchDB('terra_dourada_candidatos');
321332

322333
try {
323-
// 1. PRIMEIRO: Tenta pegar do localStorage (mais rápido)
324-
const candidatoIdLocal = localStorage.getItem("voto_candidato");
334+
// 1. PRIMEIRO: Tenta pegar do localStorage (mais rápido e simples)
335+
const candidatoSalvo = localStorage.getItem("ultimo_candidato_votado");
325336
const cidPinataLocal = localStorage.getItem("voto_cid");
326337

327-
console.log("📱 LocalStorage - candidatoId:", candidatoIdLocal);
328-
console.log("📱 LocalStorage - cidPinata:", cidPinataLocal);
329-
330-
if (candidatoIdLocal && candidatoIdLocal !== "branco") {
331-
console.log("✅ Usando dados do LocalStorage");
332-
await carregarCandidatoPorId(candidatoIdLocal, !!cidPinataLocal, cidPinataLocal);
338+
if (candidatoSalvo) {
339+
console.log("✅ Usando candidato do localStorage");
340+
const candidato = JSON.parse(candidatoSalvo);
341+
const usouBackend = !!cidPinataLocal;
342+
343+
mostrarCandidato(candidato, usouBackend, cidPinataLocal);
333344
return;
334345
}
335346

336-
// 2. SEGUNDO: Se não tem no localStorage, busca no banco
337-
console.log("🔍 Buscando no banco de dados...");
347+
// 2. SEGUNDO: Se não tem no localStorage, busca no banco de votos
348+
console.log("🔍 Buscando voto no banco...");
338349
const cid = localStorage.getItem("user_cid");
339350

340351
if (!cid) {
341352
throw new Error("CID do usuário não encontrado");
342353
}
343354

344355
const allDocs = await db.allDocs({ include_docs: true });
345-
console.log("📊 Total de documentos no DB:", allDocs.rows.length);
346-
356+
347357
// Filtra votos deste usuário
348358
const votosUsuario = allDocs.rows.filter(row =>
349-
row.doc.eleitor === cid && row.doc.candidato_id
359+
row.doc.eleitor === cid && row.doc.candidato
350360
);
351361

352-
console.log("🗳️ Votos deste usuário:", votosUsuario.length);
362+
console.log("🗳️ Votos encontrados:", votosUsuario.length);
353363

354364
if (votosUsuario.length > 0) {
355365
// Pega o voto mais recente
@@ -360,21 +370,19 @@ <h3>🔒 Seu voto é 100% Auditável</h3>
360370
const dadosVoto = ultimoVoto.doc;
361371
const usouBackend = dadosVoto.cid_pinata && !dadosVoto.erro;
362372
const cidPinata = dadosVoto.cid_pinata;
363-
const candidatoId = dadosVoto.candidato_id;
364373

365-
console.log("✅ Último voto - candidatoId:", candidatoId);
366-
console.log("✅ Último voto - usouBackend:", usouBackend);
367-
console.log("✅ Último voto - cidPinata:", cidPinata);
368-
374+
console.log("✅ Voto encontrado:", dadosVoto.candidato);
375+
376+
// ⭐⭐ SIMPLIFICAÇÃO: Usa o candidato EXATAMENTE como estava na votação
377+
const candidato = dadosVoto.candidato;
378+
369379
// Salva no localStorage para próxima vez
370-
if (candidatoId && candidatoId !== "branco") {
371-
localStorage.setItem("voto_candidato", candidatoId);
372-
if (cidPinata) {
373-
localStorage.setItem("voto_cid", cidPinata);
374-
}
380+
localStorage.setItem("ultimo_candidato_votado", JSON.stringify(candidato));
381+
if (cidPinata) {
382+
localStorage.setItem("voto_cid", cidPinata);
375383
}
376384

377-
await carregarCandidatoPorId(candidatoId, usouBackend, cidPinata, dadosVoto);
385+
mostrarCandidato(candidato, usouBackend, cidPinata);
378386

379387
} else {
380388
throw new Error("Nenhum voto encontrado para este usuário");
@@ -383,7 +391,7 @@ <h3>🔒 Seu voto é 100% Auditável</h3>
383391
} catch (error) {
384392
console.error("❌ ERRO:", error.message);
385393

386-
// Fallback completo
394+
// Fallback simples
387395
document.getElementById("fotoContainer").innerHTML = '<div class="foto-vazia">✓</div>';
388396
document.getElementById("nome").textContent = "Voto Registrado";
389397
document.getElementById("statusVoto").innerHTML = '⚠️ <strong>Voto Computado</strong>';
@@ -394,108 +402,51 @@ <h3>🔒 Seu voto é 100% Auditável</h3>
394402
}
395403

396404
// ==============================
397-
// CARREGAR CANDIDATO POR ID - BUSCANDO FOTO DO CADASTRO (CORRIGIDO)
405+
// MOSTRAR CANDIDATO - SIMPLES E DIRETO
398406
// ==============================
399-
async function carregarCandidatoPorId(candidatoId, usouBackend, cidPinata, dadosVoto = null) {
400-
console.log("👤 Buscando candidato ID:", candidatoId);
407+
function mostrarCandidato(candidato, usouBackend, cidPinata) {
408+
console.log("🎯 Mostrando candidato:", candidato);
401409

402-
const dbCandidatos = new PouchDB('terra_dourada_candidatos');
403-
404-
try {
405-
// ⭐⭐ CORREÇÃO: Busca o candidato DIRETAMENTE pelo ID
406-
let candidato;
407-
408-
try {
409-
// Tenta buscar pelo ID exato primeiro (mais eficiente)
410-
candidato = await dbCandidatos.get(candidatoId);
411-
console.log("✅ Candidato encontrado via get():", candidato.nome);
412-
console.log("📸 Foto via get():", candidato.foto ? "Base64 presente" : "NÃO TEM FOTO");
413-
414-
} catch (getError) {
415-
console.log("⚠️ Não encontrado via get(), buscando em allDocs...");
416-
417-
// Fallback: busca em todos os documentos
418-
const todosCandidatos = await dbCandidatos.allDocs({ include_docs: true });
419-
const candidatoEncontrado = todosCandidatos.rows.find(row => row.id === candidatoId);
420-
421-
if (candidatoEncontrado) {
422-
candidato = candidatoEncontrado.doc;
423-
console.log("✅ Candidato encontrado via allDocs():", candidato.nome);
424-
console.log("📸 Foto via allDocs():", candidato.foto ? "Base64 presente" : "NÃO TEM FOTO");
425-
} else {
426-
throw new Error("Candidato não encontrado em allDocs");
427-
}
428-
}
429-
430-
// ⭐⭐ CORREÇÃO: Verifica se a foto é Base64 válida
431-
if (candidato.foto && !candidato.foto.startsWith('data:image')) {
432-
console.warn("⚠️ Foto não é Base64 válida:", candidato.foto.substring(0, 50) + "...");
433-
}
434-
435-
atualizarInterfaceCandidato(candidato, usouBackend, cidPinata, dadosVoto);
436-
437-
} catch (error) {
438-
console.error("❌ Erro ao buscar candidato:", error.message);
439-
440-
// Fallback: usa dados do voto se disponível
441-
const candidatoFallback = {
442-
_id: candidatoId,
443-
nome: dadosVoto?.candidato_nome || "Candidato Escolhido",
444-
foto: null
445-
};
446-
447-
atualizarInterfaceCandidato(candidatoFallback, usouBackend, cidPinata, dadosVoto);
448-
}
449-
}
450-
451-
// ==============================
452-
// ATUALIZAR INTERFACE - CARREGANDO FOTO DO CANDIDATO (CORRIGIDO)
453-
// ==============================
454-
function atualizarInterfaceCandidato(candidato, usouBackend, cidPinata, dadosVoto) {
455410
const fotoContainer = document.getElementById("fotoContainer");
456411
const nomeElement = document.getElementById("nome");
412+
const cargoElement = document.getElementById("cargo");
413+
const partidoElement = document.getElementById("partido");
457414
const statusElement = document.getElementById("statusVoto");
458415

459-
console.log("🎨 Atualizando interface:", candidato.nome);
460-
console.log("🖼️ Foto disponível:", !!candidato.foto);
461-
462-
// Atualiza nome
463-
nomeElement.textContent = candidato.nome;
416+
// Atualiza informações básicas
417+
nomeElement.textContent = candidato.nome || "Candidato";
418+
cargoElement.textContent = candidato.cargo || "";
419+
partidoElement.textContent = candidato.partido ? `Partido: ${candidato.partido}` : "";
464420

465-
// ⭐⭐ CORREÇÃO: Carrega a foto do candidato se existir
421+
// ⭐⭐ SIMPLIFICAÇÃO: Carrega a foto EXATAMENTE como estava na votação
466422
if (candidato.foto && candidato.foto.startsWith('data:image')) {
467-
console.log("📸 Carregando foto Base64 do candidato...");
468-
469-
// Mostra loading enquanto a imagem carrega
470-
fotoContainer.innerHTML = '<div class="foto-vazia" style="color: #d4af37;">⏳</div>';
423+
console.log("📸 Carregando foto do candidato...");
471424

472425
const img = new Image();
473426
img.className = "foto-candidato";
474427
img.alt = candidato.nome;
475-
476-
// ⭐⭐ CORREÇÃO: Usa a foto Base64 diretamente
477428
img.src = candidato.foto;
478429

479430
img.onload = function() {
480-
console.log("✅ Foto do candidato carregada com sucesso!");
431+
console.log("✅ Foto carregada com sucesso!");
481432
fotoContainer.innerHTML = '';
482433
fotoContainer.appendChild(img);
483434
};
484435

485436
img.onerror = function() {
486-
console.log("❌ Erro ao carregar foto do candidato, usando ícone");
487-
// Fallback para ícone
488-
if (candidato._id === "branco" || candidato.nome.toUpperCase().includes("BRANCO")) {
489-
fotoContainer.innerHTML = '<div class="foto-vazia">⚪</div>';
490-
} else {
491-
fotoContainer.innerHTML = '<div class="foto-vazia">👤</div>';
492-
}
437+
console.log("❌ Erro ao carregar foto");
438+
fotoContainer.innerHTML = candidato._id === "branco" ?
439+
'<div class="foto-vazia">⚪</div>' :
440+
'<div class="foto-vazia">👤</div>';
493441
};
494442

495-
} else {
496-
console.log("📷 Candidato não tem foto Base64 válida:", candidato.foto ? "Tem campo mas não é Base64" : "Campo vazio");
443+
// Coloca a imagem imediatamente
444+
fotoContainer.innerHTML = '';
445+
fotoContainer.appendChild(img);
497446

498-
// Candidato sem foto - usa ícone baseado no tipo
447+
} else {
448+
console.log("📷 Sem foto, usando ícone");
449+
// Usa ícone baseado no tipo de voto
499450
if (candidato._id === "branco" || (candidato.nome && candidato.nome.toUpperCase().includes("BRANCO"))) {
500451
fotoContainer.innerHTML = '<div class="foto-vazia">⚪</div>';
501452
} else {
@@ -546,43 +497,15 @@ <h3>🔒 Seu voto é 100% Auditável</h3>
546497
// ==============================
547498
function sairDoSistema() {
548499
localStorage.removeItem("voto_cid");
549-
localStorage.removeItem("voto_candidato");
500+
localStorage.removeItem("ultimo_candidato_votado");
550501
window.location.href = "index.html";
551502
}
552503

553-
// ==============================
554-
// DIAGNÓSTICO TEMPORÁRIO (REMOVER DEPOIS)
555-
// ==============================
556-
async function diagnosticoCompleto() {
557-
try {
558-
const dbCandidatos = new PouchDB('terra_dourada_candidatos');
559-
const todos = await dbCandidatos.allDocs({ include_docs: true });
560-
561-
console.log("====== DIAGNÓSTICO COMPLETO DOS CANDIDATOS ======");
562-
todos.rows.forEach(row => {
563-
const doc = row.doc;
564-
console.log(`📋 ${doc.nome} (${doc._id})`, {
565-
temFoto: !!doc.foto,
566-
tipoFoto: doc.foto ? (doc.foto.startsWith('data:image') ? 'Base64 Válida' : 'Formato Inválido') : 'NULL',
567-
previewFoto: doc.foto ? doc.foto.substring(0, 30) + '...' : 'N/A'
568-
});
569-
});
570-
console.log("=================================================");
571-
} catch (error) {
572-
console.error("Erro no diagnóstico:", error);
573-
}
574-
}
575-
576504
// ==============================
577505
// INICIALIZAÇÃO
578506
// ==============================
579507
document.addEventListener('DOMContentLoaded', function() {
580508
console.log("📄 Página carregada - iniciando...");
581-
582-
// Executa diagnóstico temporário
583-
diagnosticoCompleto();
584-
585-
// Carrega dados do voto
586509
carregarDadosVoto();
587510

588511
window.onbeforeunload = function() {

0 commit comments

Comments
 (0)