Estado na virada para versionamento: Secoes 1-5 do setup de banco validadas ponta a ponta (ONNX CLIP corrigido - ORA-54426; regiao do Generative AI corrigida na Secao 5.3 - ORA-20404), observabilidade de IA adicionada (TB_26AI_TECH_LOG + PRC_26AI_TECH_LOG instrumentando FNC_26ai_rag/fnc_26ai_tech_rag/fnc_26ai_embed/PRC_26AI_TECH), bug de vazamento de sqlerrm em insight_report corrigido, job de geracao em lote agora se autoencerra, e nova doc 09-operacao-observabilidade.html com checklist de erros comuns e consultas de troubleshooting. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
50 lines
1.5 KiB
JavaScript
50 lines
1.5 KiB
JavaScript
document.addEventListener('DOMContentLoaded', function () {
|
|
var btn = document.querySelector('.menu-toggle');
|
|
var sidebar = document.querySelector('.sidebar');
|
|
if (btn && sidebar) {
|
|
btn.addEventListener('click', function () {
|
|
sidebar.classList.toggle('open');
|
|
});
|
|
}
|
|
|
|
document.querySelectorAll('.copy-btn').forEach(function (button) {
|
|
button.addEventListener('click', function () {
|
|
var block = button.closest('.code-block');
|
|
var code = block ? block.querySelector('pre code, pre') : null;
|
|
if (!code) return;
|
|
var text = code.textContent;
|
|
|
|
function showCopied() {
|
|
var original = button.textContent;
|
|
button.textContent = 'Copiado!';
|
|
button.classList.add('copied');
|
|
setTimeout(function () {
|
|
button.textContent = original;
|
|
button.classList.remove('copied');
|
|
}, 1800);
|
|
}
|
|
|
|
if (navigator.clipboard && navigator.clipboard.writeText) {
|
|
navigator.clipboard.writeText(text).then(showCopied, function () {
|
|
fallbackCopy(text, showCopied);
|
|
});
|
|
} else {
|
|
fallbackCopy(text, showCopied);
|
|
}
|
|
});
|
|
});
|
|
|
|
function fallbackCopy(text, done) {
|
|
var ta = document.createElement('textarea');
|
|
ta.value = text;
|
|
ta.style.position = 'fixed';
|
|
ta.style.opacity = '0';
|
|
document.body.appendChild(ta);
|
|
ta.focus();
|
|
ta.select();
|
|
try { document.execCommand('copy'); } catch (e) { /* no-op */ }
|
|
document.body.removeChild(ta);
|
|
done();
|
|
}
|
|
});
|