document.getElementById('resumerButton').addEventListener('click', loadResumerPage); document.getElementById('traductionbutton').addEventListener('click', loadTraductionPage); document.getElementById('qesdocButton').addEventListener('click', loadDocPage); document.getElementById('visualisationButton').addEventListener('click', loadVisualisationPage); document.getElementById('interpretationButton').addEventListener('click', loadInterpretationPage); document.getElementById('qesimgButton').addEventListener('click', loadImagePage); //quand on clique sur le boutton resumer ------------------------ function loadResumerPage() { document.body.style.setProperty('--background-image', "url('resumer2.webp')"); // Effacer uniquement le contenu de la page sans casser le script let appContainer = document.createElement("div"); appContainer.classList.add("app-container"); appContainer.innerHTML = `

Opérations sur documents

RÉSUMER 📋

Le résultat apparaîtra ici...

`; // Insérer la nouvelle interface sans écraser les scripts document.body.innerHTML = ""; document.body.appendChild(appContainer); document.getElementById('traductionbutton').addEventListener('click', loadTraductionPage); document.getElementById('qesdocButton').addEventListener('click', loadDocPage); document.getElementById('visualisationButton').addEventListener('click', loadVisualisationPage); document.getElementById('interpretationButton').addEventListener('click', loadInterpretationPage); document.getElementById('qesimgButton').addEventListener('click', loadImagePage); const fileInput = document.getElementById('fileInput'); const dropText = document.getElementById('dropText'); const uploadIcon = document.getElementById('uploadIcon'); + dropText.addEventListener('click', function(event) { event.preventDefault(); event.stopPropagation(); fileInput.click(); }); uploadIcon.addEventListener('click', function(event) { event.preventDefault(); event.stopPropagation(); fileInput.click(); }); fileInput.addEventListener('change', function(event) { let file = event.target.files[0]; if (file) { dropText.textContent = file.name; uploadIcon.style.display = "none"; } }); } //Quand on clique sur le boutton traduction --------------- function loadTraductionPage() { document.body.style.setProperty('--background-image', "url('traduction.webp')"); let appContainer = document.createElement("div"); appContainer.classList.add("app-container"); appContainer.innerHTML = `

Opérations sur documents

TRANSLATE

LOADING

`; // Ajout des écouteurs APRES que le HTML soit injecté document.getElementById("translateBtn").addEventListener("click", uploadForTranslation); const fileInput = document.getElementById("fileInput"); const dropText = document.getElementById("dropText"); const uploadIcon = document.getElementById("uploadIcon"); dropText.addEventListener("click", function (event) { event.preventDefault(); fileInput.click(); }); uploadIcon.addEventListener("click", function (event) { event.preventDefault(); fileInput.click(); }); fileInput.addEventListener("change", function (event) { let file = event.target.files[0]; if (file) { dropText.textContent = file.name; uploadIcon.style.display = "none"; } }); document.getElementById("backArrow").addEventListener("click", loadHomePage);} document.body.innerHTML = ""; document.body.appendChild(appContainer); document.getElementById('resumerButton').addEventListener('click', loadResumerPage); document.getElementById('qesdocButton').addEventListener('click', loadDocPage); document.getElementById('visualisationButton').addEventListener('click', loadVisualisationPage); document.getElementById('interpretationButton').addEventListener('click', loadInterpretationPage); document.getElementById('qesimgButton').addEventListener('click', loadImagePage); const fileInput = document.getElementById('fileInput'); const dropText = document.getElementById('dropText'); const uploadIcon = document.getElementById('uploadIcon'); + dropText.addEventListener('click', function(event) { event.preventDefault(); event.stopPropagation(); fileInput.click(); }); uploadIcon.addEventListener('click', function(event) { event.preventDefault(); event.stopPropagation(); fileInput.click(); }); fileInput.addEventListener('change', function(event) { let file = event.target.files[0]; if (file) { dropText.textContent = file.name; uploadIcon.style.display = "none"; } }); } function loadDocPage() { document.body.style.setProperty('--background-image', "url('qstdoc2.webp')"); // Créer une nouvelle structure pour ne pas écraser les événements let appContainer = document.createElement("div"); appContainer.classList.add("app-container"); appContainer.innerHTML = `

Opérations sur documents

QUESTION DOCUMENTS 📄❓

Le résultat apparaîtra ici...

`; // Insérer la nouvelle structure sans écraser les événements document.body.innerHTML = ""; document.body.appendChild(appContainer); // Réassocier les événements aux boutons document.getElementById('resumerButton').addEventListener('click', loadResumerPage); document.getElementById('traductionbutton').addEventListener('click', loadTraductionPage); document.getElementById('visualisationButton').addEventListener('click', loadVisualisationPage); document.getElementById('interpretationButton').addEventListener('click', loadInterpretationPage); document.getElementById('qesimgButton').addEventListener('click', loadImagePage); const fileInput = document.getElementById('fileInput'); const dropText = document.getElementById('dropText'); const uploadIcon = document.getElementById('uploadIcon'); + dropText.addEventListener('click', function(event) { event.preventDefault(); event.stopPropagation(); fileInput.click(); }); uploadIcon.addEventListener('click', function(event) { event.preventDefault(); event.stopPropagation(); fileInput.click(); }); fileInput.addEventListener('change', function(event) { let file = event.target.files[0]; if (file) { dropText.textContent = file.name; uploadIcon.style.display = "none"; } }); } //quand on clique sur visualisation ---------------------- function loadVisualisationPage() { document.body.style.setProperty('--background-image', "url('visualisation.webp')"); let appContainer = document.createElement("div"); appContainer.classList.add("app-container"); appContainer.innerHTML = `

Opérations sur documents

VISUALISATION

Géneration en cours

`; document.body.innerHTML = ""; document.body.appendChild(appContainer); document.getElementById('resumerButton').addEventListener('click', loadResumerPage); document.getElementById('traductionbutton').addEventListener('click', loadTraductionPage); document.getElementById('qesdocButton').addEventListener('click', loadDocPage); document.getElementById('interpretationButton').addEventListener('click', loadInterpretationPage); document.getElementById('qesimgButton').addEventListener('click', loadImagePage); const fileInput = document.getElementById('fileInput'); const dropText = document.getElementById('dropText'); const uploadIcon = document.getElementById('uploadIcon'); + dropText.addEventListener('click', function(event) { event.preventDefault(); event.stopPropagation(); fileInput.click(); }); uploadIcon.addEventListener('click', function(event) { event.preventDefault(); event.stopPropagation(); fileInput.click(); }); fileInput.addEventListener('change', function(event) { let file = event.target.files[0]; if (file) { dropText.textContent = file.name; uploadIcon.style.display = "none"; } }); } //quand on clique sur interpretation --------------------- function loadInterpretationPage() { document.body.style.setProperty('--background-image', "url('interpreter.webp')"); // Créer une nouvelle structure pour ne pas écraser les événements let appContainer = document.createElement("div"); appContainer.classList.add("app-container"); appContainer.innerHTML = `

Opérations sur images

INTERPRÉTATION DES IMAGES 🏞️🤖

Le résultat apparaîtra ici...

`; // Insérer la nouvelle structure sans écraser les événements document.body.innerHTML = ""; document.body.appendChild(appContainer); // Réassocier les événements aux boutons document.getElementById('resumerButton').addEventListener('click', loadResumerPage); document.getElementById('traductionbutton').addEventListener('click', loadTraductionPage); document.getElementById('qesdocButton').addEventListener('click', loadDocPage); document.getElementById('visualisationButton').addEventListener('click', loadVisualisationPage); document.getElementById('qesimgButton').addEventListener('click', loadImagePage); const fileInput = document.getElementById('fileInput'); const dropText = document.getElementById('dropText'); const uploadIcon = document.getElementById('uploadIcon'); + dropText.addEventListener('click', function(event) { event.preventDefault(); event.stopPropagation(); fileInput.click(); }); uploadIcon.addEventListener('click', function(event) { event.preventDefault(); event.stopPropagation(); fileInput.click(); }); fileInput.addEventListener('change', function(event) { let file = event.target.files[0]; if (file) { dropText.textContent = file.name; uploadIcon.style.display = "none"; } }); } //quand on clique sur quesion image --------------- function loadImagePage() { document.body.style.setProperty('--background-image', "url('qstimage.webp')"); // Créer une nouvelle structure pour éviter d’écraser les événements let appContainer = document.createElement("div"); appContainer.classList.add("app-container"); appContainer.innerHTML = `

Opérations sur images

QUESTION IMAGES 🖼️❓

Le résultat apparaîtra ici...

`; // Insérer la nouvelle structure sans écraser les événements document.body.innerHTML = ""; document.body.appendChild(appContainer); // Réassocier les événements aux boutons document.getElementById('resumerButton').addEventListener('click', loadResumerPage); document.getElementById('traductionbutton').addEventListener('click', loadTraductionPage); document.getElementById('qesdocButton').addEventListener('click', loadDocPage); document.getElementById('visualisationButton').addEventListener('click', loadVisualisationPage); document.getElementById('interpretationButton').addEventListener('click', loadInterpretationPage); const fileInput = document.getElementById('fileInput'); const dropText = document.getElementById('dropText'); const uploadIcon = document.getElementById('uploadIcon'); + dropText.addEventListener('click', function(event) { event.preventDefault(); event.stopPropagation(); fileInput.click(); }); uploadIcon.addEventListener('click', function(event) { event.preventDefault(); event.stopPropagation(); fileInput.click(); }); fileInput.addEventListener('change', function(event) { let file = event.target.files[0]; if (file) { dropText.textContent = file.name; uploadIcon.style.display = "none"; } }); // Gestion du bouton "Envoyer" document.getElementById('sendQuestionBtn').addEventListener('click', function() { const questionText = document.getElementById('questionInput').value; if (questionText.trim() === "") { alert("Veuillez entrer une question !"); return; } alert("Question envoyée : " + questionText); }); } async function uploadForTranslation() { let fileInput = document.getElementById("fileInput"); let targetLang = document.getElementById("languageSelect").value; let formData = new FormData(); formData.append("file", fileInput.files[0]); formData.append("target_lang", targetLang); try { console.log("📤 Envoi du fichier pour traduction..."); let response = await fetch("/translate/", { method: "POST", body: formData, headers: { "Accept": "application/json" } }); let responseText = await response.text(); console.log("📤 Réponse brute du serveur :", responseText); if (!response.ok) { throw new Error("Erreur de requête ! " + responseText); } let data = JSON.parse(responseText); console.log("📤 Réponse JSON du serveur :", data); let resultElement = document.createElement("div"); resultElement.innerText = data.translated_text ? "📝 Traduction : " + data.translated_text : "❌ Traduction non disponible."; document.querySelector(".results-container").appendChild(resultElement); } catch (error) { console.error("❌ Erreur :", error); let resultElement = document.createElement("div"); resultElement.innerText = "Échec de la requête ! " + error.message; document.querySelector(".results-container").appendChild(resultElement); } }