Spaces:
Running
Running
Update static/script.js
Browse files- static/script.js +113 -1
static/script.js
CHANGED
@@ -4,6 +4,12 @@ document.getElementById('qesdocButton').addEventListener('click', loadDocPage);
|
|
4 |
document.getElementById('visualisationButton').addEventListener('click', loadVisualisationPage);
|
5 |
document.getElementById('interpretationButton').addEventListener('click', loadInterpretationPage);
|
6 |
document.getElementById('qesimgButton').addEventListener('click', loadImagePage);
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
//quand on clique sur le boutton resumer ------------------------
|
8 |
function loadResumerPage() {
|
9 |
document.body.style.setProperty('--background-image', "url('resumer2.webp')");
|
@@ -239,7 +245,7 @@ fileInput.addEventListener('change', function(event) {
|
|
239 |
<option value="zh"class="a">Chinese</option>
|
240 |
<option value="zu"class="a">Zulu</option>
|
241 |
</select>
|
242 |
-
<button class="translate">TRANSLATE</button>
|
243 |
</div>
|
244 |
</div>
|
245 |
|
@@ -251,6 +257,31 @@ fileInput.addEventListener('change', function(event) {
|
|
251 |
</div>
|
252 |
</div>
|
253 |
`;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
254 |
document.body.innerHTML = "";
|
255 |
document.body.appendChild(appContainer);
|
256 |
|
@@ -681,5 +712,86 @@ fileInput.addEventListener('change', function(event) {
|
|
681 |
});
|
682 |
|
683 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
684 |
|
685 |
|
|
|
4 |
document.getElementById('visualisationButton').addEventListener('click', loadVisualisationPage);
|
5 |
document.getElementById('interpretationButton').addEventListener('click', loadInterpretationPage);
|
6 |
document.getElementById('qesimgButton').addEventListener('click', loadImagePage);
|
7 |
+
|
8 |
+
|
9 |
+
|
10 |
+
|
11 |
+
|
12 |
+
|
13 |
//quand on clique sur le boutton resumer ------------------------
|
14 |
function loadResumerPage() {
|
15 |
document.body.style.setProperty('--background-image', "url('resumer2.webp')");
|
|
|
245 |
<option value="zh"class="a">Chinese</option>
|
246 |
<option value="zu"class="a">Zulu</option>
|
247 |
</select>
|
248 |
+
<button class="translate" id="translateBtn">TRANSLATE</button>
|
249 |
</div>
|
250 |
</div>
|
251 |
|
|
|
257 |
</div>
|
258 |
</div>
|
259 |
`;
|
260 |
+
// Ajout des écouteurs APRES que le HTML soit injecté
|
261 |
+
document.getElementById("translateBtn").addEventListener("click", uploadForTranslation);
|
262 |
+
const fileInput = document.getElementById("fileInput");
|
263 |
+
const dropText = document.getElementById("dropText");
|
264 |
+
const uploadIcon = document.getElementById("uploadIcon");
|
265 |
+
|
266 |
+
dropText.addEventListener("click", function (event) {
|
267 |
+
event.preventDefault();
|
268 |
+
fileInput.click();
|
269 |
+
});
|
270 |
+
|
271 |
+
uploadIcon.addEventListener("click", function (event) {
|
272 |
+
event.preventDefault();
|
273 |
+
fileInput.click();
|
274 |
+
});
|
275 |
+
|
276 |
+
fileInput.addEventListener("change", function (event) {
|
277 |
+
let file = event.target.files[0];
|
278 |
+
if (file) {
|
279 |
+
dropText.textContent = file.name;
|
280 |
+
uploadIcon.style.display = "none";
|
281 |
+
}
|
282 |
+
});
|
283 |
+
|
284 |
+
document.getElementById("backArrow").addEventListener("click", loadHomePage);
|
285 |
document.body.innerHTML = "";
|
286 |
document.body.appendChild(appContainer);
|
287 |
|
|
|
712 |
});
|
713 |
|
714 |
}
|
715 |
+
|
716 |
+
|
717 |
+
|
718 |
+
|
719 |
+
|
720 |
+
|
721 |
+
|
722 |
+
|
723 |
+
|
724 |
+
|
725 |
+
|
726 |
+
|
727 |
+
|
728 |
+
|
729 |
+
|
730 |
+
|
731 |
+
|
732 |
+
|
733 |
+
|
734 |
+
|
735 |
+
|
736 |
+
|
737 |
+
|
738 |
+
|
739 |
+
|
740 |
+
|
741 |
+
|
742 |
+
|
743 |
+
|
744 |
+
|
745 |
+
|
746 |
+
|
747 |
+
|
748 |
+
|
749 |
+
|
750 |
+
|
751 |
+
|
752 |
+
|
753 |
+
|
754 |
+
|
755 |
+
|
756 |
+
async function uploadForTranslation() {
|
757 |
+
let fileInput = document.getElementById("fileInput");
|
758 |
+
let targetLang = document.getElementById("languageSelect").value;
|
759 |
+
let formData = new FormData();
|
760 |
+
formData.append("file", fileInput.files[0]);
|
761 |
+
formData.append("target_lang", targetLang);
|
762 |
+
|
763 |
+
try {
|
764 |
+
console.log("📤 Envoi du fichier pour traduction...");
|
765 |
+
let response = await fetch("/translate/", {
|
766 |
+
method: "POST",
|
767 |
+
body: formData,
|
768 |
+
headers: { "Accept": "application/json" }
|
769 |
+
});
|
770 |
+
|
771 |
+
let responseText = await response.text();
|
772 |
+
console.log("📤 Réponse brute du serveur :", responseText);
|
773 |
+
|
774 |
+
if (!response.ok) {
|
775 |
+
throw new Error("Erreur de requête ! " + responseText);
|
776 |
+
}
|
777 |
+
|
778 |
+
let data = JSON.parse(responseText);
|
779 |
+
console.log("📤 Réponse JSON du serveur :", data);
|
780 |
+
|
781 |
+
let resultElement = document.createElement("div");
|
782 |
+
resultElement.innerText = data.translated_text ? "📝 Traduction : " + data.translated_text : "❌ Traduction non disponible.";
|
783 |
+
document.querySelector(".results-container").appendChild(resultElement);
|
784 |
+
} catch (error) {
|
785 |
+
console.error("❌ Erreur :", error);
|
786 |
+
let resultElement = document.createElement("div");
|
787 |
+
resultElement.innerText = "Échec de la requête ! " + error.message;
|
788 |
+
document.querySelector(".results-container").appendChild(resultElement);
|
789 |
+
}
|
790 |
+
}
|
791 |
+
|
792 |
+
|
793 |
+
|
794 |
+
|
795 |
+
|
796 |
|
797 |
|