Update Saqel Platform: 2026-08-28 18:08:03

This commit is contained in:
Hamza-Ayed
2026-08-28 18:08:03 +03:00
parent 597ef1809d
commit 6c8cb53af0
5 changed files with 135 additions and 12 deletions
+35
View File
@@ -450,8 +450,43 @@ class CurriculumStudio
</div>
<p id="upload_progress_text" style="color: var(--text-secondary); font-size: 13px; font-weight: bold;">جاري التهيئة...</p>
<p id="upload_progress_percent" style="color: var(--accent-gold); font-size: 12px; margin-top: 5px;">0%</p>
<button id="btn_view_logs" type="button" style="margin-top: 15px; background: transparent; border: 1px solid var(--border-color); color: var(--text-muted); padding: 5px 12px; border-radius: 6px; font-size: 11px; cursor: pointer; transition: all 0.2s;" onmouseover="this.style.color='#fff'" onmouseout="this.style.color='var(--text-muted)'" onclick="toggleUploadLogs()">🔍 عرض سجل السيرفر (Logs)</button>
<div id="upload_logs_container" style="display: none; margin-top: 15px; width: 100%; text-align: left;">
<textarea id="upload_logs_textarea" readonly style="width: 100%; height: 120px; background: #000; color: #0f0; font-family: monospace; font-size: 11px; border: 1px solid #333; border-radius: 4px; padding: 8px; resize: none; direction: ltr;"></textarea>
</div>
</div>
</div>
<script>
let currentUploadTaskId = null;
function toggleUploadLogs() {
const container = document.getElementById('upload_logs_container');
if (container.style.display === 'none') {
container.style.display = 'block';
fetchUploadLogs();
} else {
container.style.display = 'none';
}
}
async function fetchUploadLogs() {
if (!currentUploadTaskId) return;
try {
const res = await fetch(`/api/curriculum/upload-log?task_id=${currentUploadTaskId}`);
const data = await res.json();
const textarea = document.getElementById('upload_logs_textarea');
if (data.status === 'success') {
textarea.value = data.log || 'No logs generated yet...';
textarea.scrollTop = textarea.scrollHeight;
}
} catch (e) {
console.error(e);
}
}
</script>
<style>
@keyframes pulse {
0% { transform: scale(1); opacity: 1; }