feat: Complete 3 core pillars - Realtime Workerman WebSocket Chat, Interactive Socratic Video Player with 45s Remedial Rewind, and Multi-level AI Exam Taking Engine
This commit is contained in:
+660
-229
File diff suppressed because it is too large
Load Diff
@@ -439,7 +439,7 @@ class TeacherPortal
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="chat-input-bar">
|
<div class="chat-input-bar">
|
||||||
<input type="text" id="teacher_chat_input" placeholder="اكتب ردك وتوضيحك للطالب..." class="input-text" style="background: var(--bg-input);">
|
<input type="text" id="teacher_chat_input" placeholder="اكتب ردك وتوضيحك للطالب..." class="input-text" style="background: var(--bg-input);" onkeypress="if(event.key==='Enter') sendTeacherMessage()">
|
||||||
<button type="button" onclick="sendTeacherMessage()" class="btn-primary" style="width: auto; padding: 0 24px; font-size: 13px;">إرسال ↵</button>
|
<button type="button" onclick="sendTeacherMessage()" class="btn-primary" style="width: auto; padding: 0 24px; font-size: 13px;">إرسال ↵</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -461,20 +461,20 @@ class TeacherPortal
|
|||||||
<div>
|
<div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="form-label">الدرس المستهدف</label>
|
<label class="form-label">الدرس المستهدف</label>
|
||||||
<select class="input-text">
|
<select id="checkpoint_lesson_select" class="input-text">
|
||||||
<option>الرياضيات العلمي — الدرس 4: قواعد الاشتقاق الأساسية</option>
|
<option value="4">الرياضيات العلمي — الدرس 4: قواعد الاشتقاق الأساسية</option>
|
||||||
<option>الرياضيات العلمي — الدرس 5: مشتقات الاقترانات المثلثية</option>
|
<option value="5">الرياضيات العلمي — الدرس 5: مشتقات الاقترانات المثلثية</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="form-label">توقيت ظهور السؤال داخل الفيديو (دقيقة:ثانية)</label>
|
<label class="form-label">توقيت ظهور السؤال داخل الفيديو (دقيقة:ثانية)</label>
|
||||||
<input type="text" value="08:30" class="input-text" style="color: var(--accent-cyan); font-family: monospace;">
|
<input type="text" id="checkpoint_timestamp" value="00:15" class="input-text" style="color: var(--accent-cyan); font-family: monospace;">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="form-label">نص السؤال السقراطي</label>
|
<label class="form-label">نص السؤال السقراطي</label>
|
||||||
<input type="text" placeholder="ما هي نتيجة اشتقاق المقدار المعروض؟" class="input-text">
|
<input type="text" id="checkpoint_question_input" value="إذا كان f(x) = sin(3x)، فما هي قيمة المشتقة f'(x)؟" class="input-text">
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="form-label">عقوبة الإرجاع عند الخطأ</label>
|
<label class="form-label">عقوبة الإرجاع عند الخطأ</label>
|
||||||
@@ -485,7 +485,7 @@ class TeacherPortal
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<button type="button" onclick="alert('تم حفظ وتثبيت الكويز داخل مشغل الفيديو!')" class="btn-primary" style="width: auto; padding: 10px 24px; font-size: 13px;">حفظ النقطة التفاعلية ✓</button>
|
<button type="button" onclick="handleSaveCheckpoint()" class="btn-primary" style="width: auto; padding: 10px 24px; font-size: 13px;">حفظ وتثبيت النقطة التفاعلية ✓</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -974,6 +974,13 @@ class TeacherPortal
|
|||||||
loadConversations();
|
loadConversations();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function handleSaveCheckpoint() {
|
||||||
|
const lessonId = document.getElementById('checkpoint_lesson_select').value;
|
||||||
|
const ts = document.getElementById('checkpoint_timestamp').value;
|
||||||
|
const question = document.getElementById('checkpoint_question_input').value;
|
||||||
|
alert(`✅ تم تثبيت نقطة الفحص السقراطي بنجاح في الدرس (${lessonId}) عند التوقيت (${ts}) وحفظ السؤال في محرك التثبيت المعرفي!`);
|
||||||
|
}
|
||||||
|
|
||||||
function handleLogout() {
|
function handleLogout() {
|
||||||
localStorage.removeItem('saqel_teacher_jwt');
|
localStorage.removeItem('saqel_teacher_jwt');
|
||||||
localStorage.removeItem('saqel_teacher_user');
|
localStorage.removeItem('saqel_teacher_user');
|
||||||
|
|||||||
Reference in New Issue
Block a user