Spaces:
Running
Running
Upload 9 files
Browse files- src/views/InstructorView.js +22 -1
src/views/InstructorView.js
CHANGED
|
@@ -1453,20 +1453,41 @@ export function setupInstructorEvents() {
|
|
| 1453 |
|
| 1454 |
// Helper Actions
|
| 1455 |
window.confirmReset = async (userId, challengeId, title) => {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1456 |
if (confirm(`確定要退回 ${title} 嗎?此動作將清除學員目前的進度。`)) {
|
|
|
|
| 1457 |
const roomCode = localStorage.getItem('vibecoding_instructor_room');
|
|
|
|
|
|
|
| 1458 |
if (userId && challengeId && roomCode) {
|
|
|
|
| 1459 |
try {
|
| 1460 |
// Use already imported resetProgress function
|
| 1461 |
await resetProgress(userId, roomCode, challengeId);
|
|
|
|
| 1462 |
alert("已退回");
|
| 1463 |
// close modal to refresh data context
|
| 1464 |
document.getElementById('prompt-list-modal').classList.add('hidden');
|
|
|
|
| 1465 |
} catch (e) {
|
| 1466 |
-
console.error("退回失敗:", e);
|
|
|
|
| 1467 |
alert("退回失敗: " + e.message);
|
| 1468 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1469 |
}
|
|
|
|
|
|
|
| 1470 |
}
|
| 1471 |
};
|
| 1472 |
|
|
|
|
| 1453 |
|
| 1454 |
// Helper Actions
|
| 1455 |
window.confirmReset = async (userId, challengeId, title) => {
|
| 1456 |
+
console.log('🔵 confirmReset called');
|
| 1457 |
+
console.log(' userId:', userId);
|
| 1458 |
+
console.log(' challengeId:', challengeId);
|
| 1459 |
+
console.log(' title:', title);
|
| 1460 |
+
console.log(' typeof resetProgress:', typeof resetProgress);
|
| 1461 |
+
|
| 1462 |
if (confirm(`確定要退回 ${title} 嗎?此動作將清除學員目前的進度。`)) {
|
| 1463 |
+
console.log('✅ User confirmed reset');
|
| 1464 |
const roomCode = localStorage.getItem('vibecoding_instructor_room');
|
| 1465 |
+
console.log(' roomCode:', roomCode);
|
| 1466 |
+
|
| 1467 |
if (userId && challengeId && roomCode) {
|
| 1468 |
+
console.log('✅ All parameters valid, calling resetProgress...');
|
| 1469 |
try {
|
| 1470 |
// Use already imported resetProgress function
|
| 1471 |
await resetProgress(userId, roomCode, challengeId);
|
| 1472 |
+
console.log('✅ resetProgress completed successfully');
|
| 1473 |
alert("已退回");
|
| 1474 |
// close modal to refresh data context
|
| 1475 |
document.getElementById('prompt-list-modal').classList.add('hidden');
|
| 1476 |
+
console.log('✅ Modal closed');
|
| 1477 |
} catch (e) {
|
| 1478 |
+
console.error("❌ 退回失敗:", e);
|
| 1479 |
+
console.error("Error stack:", e.stack);
|
| 1480 |
alert("退回失敗: " + e.message);
|
| 1481 |
}
|
| 1482 |
+
} else {
|
| 1483 |
+
console.error('❌ Missing required parameters:');
|
| 1484 |
+
console.error(' userId:', userId, '(valid:', !!userId, ')');
|
| 1485 |
+
console.error(' challengeId:', challengeId, '(valid:', !!challengeId, ')');
|
| 1486 |
+
console.error(' roomCode:', roomCode, '(valid:', !!roomCode, ')');
|
| 1487 |
+
alert('缺少必要參數,無法執行退回操作');
|
| 1488 |
}
|
| 1489 |
+
} else {
|
| 1490 |
+
console.log('❌ User cancelled reset');
|
| 1491 |
}
|
| 1492 |
};
|
| 1493 |
|