Link não encontrado
Este link de aprovação pode ter expirado ou não existe.
document.addEventListener("DOMContentLoaded", function() {
const params = new URLSearchParams(window.location.search);
const id = params.get('id');
if (!id) { showError(); return; }
fetch('/wp-json/aprovacao/v1/ler?id=' + id)
.then(r => r.ok ? r.json() : Promise.reject())
.then(data => renderData(data))
.catch(() => showError());
});
function showError() {
document.getElementById('loading').classList.add('hidden');
document.getElementById('error').classList.remove('hidden');
}
function renderData(data) {
// Helpers
const set = (id, val) => document.getElementById(id).innerText = val || '';
const hide = (id) => document.getElementById(id).style.display = 'none';
// 1. Textos Básicos
set('view-cliente', data.cliente);
set('view-data', data.data);
set('view-legenda', data.legenda || 'Sem descrição');
// 2. Condicionais de Exibição
if (data.codigo) set('view-codigo', data.codigo); else set('view-codigo', 'Avulso');
if (data.obs && data.obs !== "Sem observações") set('view-obs', data.obs);
else hide('block-obs');
if (data.servico) set('view-servico', data.servico); else set('view-servico', 'Avulso');
if (data.tipo) set('view-tipo', data.tipo); else hide('block-tipo');
if (data.numero) set('view-numero', data.numero); else hide('block-numero');
// 3. Renderização de Canais (Ícones)
const canaisContainer = document.getElementById('view-canais');
const canaisTexto = data.canais || "";
const iconMap = {
'instagram': 'fa-instagram text-pink-600',
'facebook': 'fa-facebook text-blue-600',
'linkedin': 'fa-linkedin text-blue-700',
'youtube': 'fa-youtube text-red-600',
'tiktok': 'fa-tiktok text-black',
'twitter': 'fa-twitter text-blue-400',
'pinterest': 'fa-pinterest text-red-500'
};
// Divide por vírgula e limpa espaços
const listaCanais = canaisTexto.split(',').map(c => c.trim()).filter(c => c);
if(listaCanais.length > 0) {
listaCanais.forEach(canal => {
const key = canal.toLowerCase();
let iconClass = null;
// Busca parcial (ex: "Instagram Feed" acha "instagram")
for (const k in iconMap) {
if (key.includes(k)) iconClass = iconMap[k];
}
const badge = document.createElement('div');
badge.className = "flex items-center gap-2 bg-gray-100 px-3 py-1 rounded-full text-sm font-medium";
if (iconClass) {
badge.innerHTML = `
${canal}`;
} else {
badge.innerHTML = `
${canal}`;
}
canaisContainer.appendChild(badge);
});
} else {
canaisContainer.innerHTML = '
--';
}
// 4. Botões
const btnAprov = document.getElementById('btn-aprovacao');
if (data.link_aprov) {
btnAprov.href = data.link_aprov;
} else {
btnAprov.style.display = 'none';
}
const btnCont = document.getElementById('btn-conteudo');
if (data.link_cont) {
btnCont.href = data.link_cont;
} else {
btnCont.style.display = 'none';
}
// Finaliza
document.getElementById('loading').classList.add('hidden');
document.getElementById('app').classList.remove('hidden');
}