// ai-editor.js — bouton IA dans la sidebar éditeur document.addEventListener('DOMContentLoaded', function () { var btnAnalyze = document.getElementById('btn-ai-analyze'); if (!btnAnalyze) return; var panel = document.getElementById('ai-result-panel'); var critiqueEl = document.getElementById('ai-critique-content'); var rewriteEl = document.getElementById('ai-rewrite-content'); var btnApply = document.getElementById('btn-ai-apply'); var btnClose = document.getElementById('btn-ai-close'); var ta = document.getElementById('wz-content') || document.getElementById('content'); var titleEl = document.getElementById('title'); var lastRewrite = ''; btnAnalyze.addEventListener('click', async function () { btnAnalyze.disabled = true; btnAnalyze._origText = btnAnalyze.textContent; btnAnalyze.textContent = 'En cours…'; panel.style.display = 'none'; lastRewrite = ''; try { var titleVal = titleEl ? titleEl.value : ''; if (!titleVal && ta) { var m = ta.value.match(/^#\s+(.+)/m); if (m) { titleVal = m[1].trim(); } } var res = await fetch('/?action=ai_query', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: new URLSearchParams({ action: 'analyze', title: titleVal, content: ta ? ta.value : '', }), }); var data = await res.json(); if (!data.ok) { critiqueEl.textContent = data.error || 'Erreur inconnue.'; rewriteEl.textContent = ''; btnApply.style.display = 'none'; } else { critiqueEl.textContent = data.critique || ''; rewriteEl.textContent = data.rewrite || ''; lastRewrite = data.rewrite || ''; btnApply.style.display = lastRewrite ? '' : 'none'; } panel.style.display = ''; } catch (e) { critiqueEl.textContent = 'Erreur de connexion.'; rewriteEl.textContent = ''; btnApply.style.display = 'none'; panel.style.display = ''; } finally { btnAnalyze.disabled = false; btnAnalyze.textContent = btnAnalyze._origText; } }); btnApply.addEventListener('click', function () { if (!lastRewrite) return; if (!confirm("Remplacer le contenu de l'éditeur par la proposition IA ?")) return; if (ta) { ta.value = lastRewrite; ta.dispatchEvent(new Event('input')); } panel.style.display = 'none'; lastRewrite = ''; }); btnClose.addEventListener('click', function () { panel.style.display = 'none'; lastRewrite = ''; }); });