Spaces:
Running
Running
Update reg.html
Browse files
reg.html
CHANGED
|
@@ -602,67 +602,118 @@
|
|
| 602 |
});
|
| 603 |
});
|
| 604 |
|
| 605 |
-
// دالة إرسال الطلبات ل
|
| 606 |
async function handleSubmit(section) {
|
| 607 |
const container = document.getElementById(section);
|
| 608 |
const resultDiv = container.querySelector(".response-container");
|
| 609 |
-
|
| 610 |
-
// إذا كان القسم "analysis"
|
| 611 |
if (section === 'analysis') {
|
| 612 |
const fileInput = container.querySelector("#analysisPDF");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 613 |
if (fileInput && fileInput.files && fileInput.files.length > 0) {
|
| 614 |
const file = fileInput.files[0];
|
| 615 |
console.log("Selected file:", file);
|
| 616 |
let formData = new FormData();
|
| 617 |
formData.append("file", file);
|
| 618 |
-
resultDiv.innerHTML = '<div class="loading-spinner"></div>';
|
| 619 |
-
|
| 620 |
-
|
| 621 |
-
|
| 622 |
-
|
| 623 |
-
|
| 624 |
-
|
| 625 |
-
if (!uploadResponse.ok) {
|
| 626 |
throw new Error("فشل رفع الملف");
|
| 627 |
}
|
| 628 |
-
|
| 629 |
-
|
| 630 |
-
|
| 631 |
-
|
| 632 |
-
|
| 633 |
-
|
| 634 |
-
|
| 635 |
-
|
|
|
|
| 636 |
}
|
| 637 |
-
|
| 638 |
-
|
| 639 |
-
|
| 640 |
-
|
| 641 |
-
|
| 642 |
-
|
| 643 |
-
|
| 644 |
-
|
| 645 |
-
|
| 646 |
-
|
| 647 |
-
|
| 648 |
-
|
| 649 |
-
|
| 650 |
-
|
| 651 |
-
|
| 652 |
-
|
| 653 |
-
|
| 654 |
-
|
| 655 |
-
|
| 656 |
-
|
| 657 |
-
|
| 658 |
-
|
| 659 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 660 |
}
|
| 661 |
-
const data = await response.json();
|
| 662 |
-
resultDiv.innerHTML = data.response || "";
|
| 663 |
-
} catch (error) {
|
| 664 |
-
console.error("Error:", error);
|
| 665 |
-
resultDiv.innerHTML = '<div class="text-red-500">حدث خطأ. يرجى المحاولة مرة أخرى.</div>';
|
| 666 |
}
|
| 667 |
}
|
| 668 |
|
|
|
|
| 602 |
});
|
| 603 |
});
|
| 604 |
|
| 605 |
+
// دالة إرسال الطلبات لقسم "التحليل القانوني"
|
| 606 |
async function handleSubmit(section) {
|
| 607 |
const container = document.getElementById(section);
|
| 608 |
const resultDiv = container.querySelector(".response-container");
|
| 609 |
+
|
| 610 |
+
// إذا كان القسم "analysis" نتعامل مع احتمال وجود ملف ونص
|
| 611 |
if (section === 'analysis') {
|
| 612 |
const fileInput = container.querySelector("#analysisPDF");
|
| 613 |
+
const textArea = container.querySelector("textarea");
|
| 614 |
+
const text = textArea.value.trim();
|
| 615 |
+
// مسح المحتوى السابق
|
| 616 |
+
resultDiv.innerHTML = '';
|
| 617 |
+
let filePromise = null, textPromise = null;
|
| 618 |
+
|
| 619 |
+
// إذا تم إرفاق ملف PDF، نقوم برفعه وتحليله
|
| 620 |
if (fileInput && fileInput.files && fileInput.files.length > 0) {
|
| 621 |
const file = fileInput.files[0];
|
| 622 |
console.log("Selected file:", file);
|
| 623 |
let formData = new FormData();
|
| 624 |
formData.append("file", file);
|
| 625 |
+
resultDiv.innerHTML += '<div id="fileAnalysisSpinner" class="loading-spinner"></div>';
|
| 626 |
+
filePromise = fetch('https://g2mgow5tgbxsjy-7777.proxy.runpod.net/proxy/8000/upload', {
|
| 627 |
+
method: "POST",
|
| 628 |
+
body: formData
|
| 629 |
+
})
|
| 630 |
+
.then(response => {
|
| 631 |
+
if (!response.ok) {
|
|
|
|
| 632 |
throw new Error("فشل رفع الملف");
|
| 633 |
}
|
| 634 |
+
return response.json();
|
| 635 |
+
})
|
| 636 |
+
.then(data => {
|
| 637 |
+
return data.response || "تم تحليل الملف بنجاح";
|
| 638 |
+
})
|
| 639 |
+
.catch(error => {
|
| 640 |
+
console.error("File analysis error:", error);
|
| 641 |
+
return '<div class="text-red-500">حدث خطأ في رفع الملف. يرجى المحاولة مرة أخرى.</div>';
|
| 642 |
+
});
|
| 643 |
}
|
| 644 |
+
|
| 645 |
+
// إذا وُجد نص للتحليل (سواءً مع الملف أو بدونه) نرسله عبر API النصي
|
| 646 |
+
if (text) {
|
| 647 |
+
resultDiv.innerHTML += '<div id="textAnalysisSpinner" class="loading-spinner"></div>';
|
| 648 |
+
const payload = {
|
| 649 |
+
message: getPromptPrefix(section) + text,
|
| 650 |
+
history: []
|
| 651 |
+
};
|
| 652 |
+
textPromise = fetch(API_URL, {
|
| 653 |
+
method: "POST",
|
| 654 |
+
headers: { "Content-Type": "application/json" },
|
| 655 |
+
body: JSON.stringify(payload)
|
| 656 |
+
})
|
| 657 |
+
.then(response => {
|
| 658 |
+
if (!response.ok) {
|
| 659 |
+
throw new Error("فشل الاستجابة من الخادم");
|
| 660 |
+
}
|
| 661 |
+
return response.json();
|
| 662 |
+
})
|
| 663 |
+
.then(data => {
|
| 664 |
+
return data.response || "";
|
| 665 |
+
})
|
| 666 |
+
.catch(error => {
|
| 667 |
+
console.error("Text analysis error:", error);
|
| 668 |
+
return '<div class="text-red-500">حدث خطأ في تحليل النص. يرجى المحاولة مرة أخرى.</div>';
|
| 669 |
+
});
|
| 670 |
+
}
|
| 671 |
+
|
| 672 |
+
// انتظار انتهاء كلا العمليتين (إن وُجدتا)
|
| 673 |
+
const fileResult = filePromise ? await filePromise : null;
|
| 674 |
+
const textResult = textPromise ? await textPromise : null;
|
| 675 |
+
|
| 676 |
+
// مسح عناصر التحميل (spinners)
|
| 677 |
+
resultDiv.innerHTML = '';
|
| 678 |
+
if (fileResult) {
|
| 679 |
+
resultDiv.innerHTML += `<div><strong>نتيجة تحليل الملف:</strong><br>${fileResult}</div><br>`;
|
| 680 |
+
}
|
| 681 |
+
if (textResult) {
|
| 682 |
+
resultDiv.innerHTML += `<div><strong>نتيجة تحليل النص:</strong><br>${textResult}</div>`;
|
| 683 |
+
}
|
| 684 |
+
if (!fileResult && !textResult) {
|
| 685 |
+
alert("الرجاء إدخال نص أو إرفاق ملف PDF");
|
| 686 |
+
return;
|
| 687 |
+
}
|
| 688 |
+
} else {
|
| 689 |
+
// للأقسام الأخرى (بدون رفع ملفات)
|
| 690 |
+
const textarea = container.querySelector("textarea");
|
| 691 |
+
const text = textarea.value.trim();
|
| 692 |
+
if (!text) {
|
| 693 |
+
alert("الرجاء إدخال نص");
|
| 694 |
+
return;
|
| 695 |
+
}
|
| 696 |
+
const payload = {
|
| 697 |
+
message: getPromptPrefix(section) + text,
|
| 698 |
+
history: []
|
| 699 |
+
};
|
| 700 |
+
|
| 701 |
+
resultDiv.innerHTML = '<div class="loading-spinner"></div>';
|
| 702 |
+
try {
|
| 703 |
+
const response = await fetch(API_URL, {
|
| 704 |
+
method: "POST",
|
| 705 |
+
headers: { "Content-Type": "application/json" },
|
| 706 |
+
body: JSON.stringify(payload)
|
| 707 |
+
});
|
| 708 |
+
if (!response.ok) {
|
| 709 |
+
throw new Error("فشل الاستجابة من الخادم");
|
| 710 |
+
}
|
| 711 |
+
const data = await response.json();
|
| 712 |
+
resultDiv.innerHTML = data.response || "";
|
| 713 |
+
} catch (error) {
|
| 714 |
+
console.error("Error:", error);
|
| 715 |
+
resultDiv.innerHTML = '<div class="text-red-500">حدث خطأ. يرجى المحاولة مرة أخرى.</div>';
|
| 716 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 717 |
}
|
| 718 |
}
|
| 719 |
|