Spaces:
Sleeping
Sleeping
Upload folder using huggingface_hub
Browse files- frontend/court/court.js +25 -6
frontend/court/court.js
CHANGED
|
@@ -32,10 +32,14 @@ const state = {
|
|
| 32 |
// ════════════════════════════════════════════════════════════
|
| 33 |
|
| 34 |
document.addEventListener('DOMContentLoaded', () => {
|
| 35 |
-
|
|
|
|
| 36 |
updateLobbyTime();
|
| 37 |
setInterval(updateLobbyTime, 1000);
|
| 38 |
-
document.getElementById('argument-input')
|
|
|
|
|
|
|
|
|
|
| 39 |
});
|
| 40 |
|
| 41 |
// ════════════════════════════════════════════════════════════
|
|
@@ -43,6 +47,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
|
| 43 |
// ════════════════════════════════════════════════════════════
|
| 44 |
|
| 45 |
function showScreen(screenId) {
|
|
|
|
| 46 |
// Hide all screens
|
| 47 |
document.querySelectorAll('.screen').forEach(s => s.classList.remove('active'));
|
| 48 |
|
|
@@ -51,10 +56,11 @@ function showScreen(screenId) {
|
|
| 51 |
if (targetScreen) {
|
| 52 |
targetScreen.classList.add('active');
|
| 53 |
state.currentScreen = screenId;
|
|
|
|
| 54 |
|
| 55 |
// Screen-specific initialization
|
| 56 |
if (screenId === 'lobby') {
|
| 57 |
-
loadRecentSessions();
|
| 58 |
} else if (screenId === 'courtroom') {
|
| 59 |
initializeCourtroom();
|
| 60 |
} else if (screenId === 'analysis') {
|
|
@@ -62,6 +68,8 @@ function showScreen(screenId) {
|
|
| 62 |
} else if (screenId === 'sessions') {
|
| 63 |
loadAllSessions();
|
| 64 |
}
|
|
|
|
|
|
|
| 65 |
}
|
| 66 |
}
|
| 67 |
|
|
@@ -110,17 +118,22 @@ function removeIssue(issue) {
|
|
| 110 |
}
|
| 111 |
|
| 112 |
function goToStep(step) {
|
|
|
|
|
|
|
| 113 |
// Validate current step
|
| 114 |
if (state.setupStep === 1 && !state.setupData.side) {
|
| 115 |
alert('Please select your side');
|
|
|
|
| 116 |
return;
|
| 117 |
}
|
| 118 |
if (state.setupStep === 2) {
|
| 119 |
-
|
|
|
|
| 120 |
alert('Please enter case title');
|
|
|
|
| 121 |
return;
|
| 122 |
}
|
| 123 |
-
state.setupData.title =
|
| 124 |
state.setupData.userClient = document.getElementById('user-client').value;
|
| 125 |
state.setupData.opposingParty = document.getElementById('opposing-party').value;
|
| 126 |
state.setupData.facts = document.getElementById('brief-facts').value;
|
|
@@ -130,7 +143,13 @@ function goToStep(step) {
|
|
| 130 |
// Update steps
|
| 131 |
state.setupStep = step;
|
| 132 |
document.querySelectorAll('.setup-step').forEach(s => s.classList.add('hidden'));
|
| 133 |
-
document.getElementById(`setup-step-${step}`)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 134 |
|
| 135 |
// Update indicators
|
| 136 |
document.querySelectorAll('.step-indicator').forEach((ind, i) => {
|
|
|
|
| 32 |
// ════════════════════════════════════════════════════════════
|
| 33 |
|
| 34 |
document.addEventListener('DOMContentLoaded', () => {
|
| 35 |
+
console.log('✓ NyayaSetu Moot Court UI loaded');
|
| 36 |
+
try { loadRecentSessions(); } catch (e) { console.warn('Could not load sessions:', e); }
|
| 37 |
updateLobbyTime();
|
| 38 |
setInterval(updateLobbyTime, 1000);
|
| 39 |
+
const argInput = document.getElementById('argument-input');
|
| 40 |
+
if (argInput) {
|
| 41 |
+
argInput.addEventListener('input', updateWordCount);
|
| 42 |
+
}
|
| 43 |
});
|
| 44 |
|
| 45 |
// ════════════════════════════════════════════════════════════
|
|
|
|
| 47 |
// ════════════════════════════════════════════════════════════
|
| 48 |
|
| 49 |
function showScreen(screenId) {
|
| 50 |
+
console.log(`🔄 Navigating to screen: ${screenId}`);
|
| 51 |
// Hide all screens
|
| 52 |
document.querySelectorAll('.screen').forEach(s => s.classList.remove('active'));
|
| 53 |
|
|
|
|
| 56 |
if (targetScreen) {
|
| 57 |
targetScreen.classList.add('active');
|
| 58 |
state.currentScreen = screenId;
|
| 59 |
+
console.log(`✓ Screen active: ${screenId}`);
|
| 60 |
|
| 61 |
// Screen-specific initialization
|
| 62 |
if (screenId === 'lobby') {
|
| 63 |
+
try { loadRecentSessions(); } catch (e) { console.warn('Error loading sessions:', e); }
|
| 64 |
} else if (screenId === 'courtroom') {
|
| 65 |
initializeCourtroom();
|
| 66 |
} else if (screenId === 'analysis') {
|
|
|
|
| 68 |
} else if (screenId === 'sessions') {
|
| 69 |
loadAllSessions();
|
| 70 |
}
|
| 71 |
+
} else {
|
| 72 |
+
console.error(`✗ Screen not found: screen-${screenId}`);
|
| 73 |
}
|
| 74 |
}
|
| 75 |
|
|
|
|
| 118 |
}
|
| 119 |
|
| 120 |
function goToStep(step) {
|
| 121 |
+
console.log(`→ Moving to setup step ${step}`);
|
| 122 |
+
|
| 123 |
// Validate current step
|
| 124 |
if (state.setupStep === 1 && !state.setupData.side) {
|
| 125 |
alert('Please select your side');
|
| 126 |
+
console.warn('Cannot advance: side not selected');
|
| 127 |
return;
|
| 128 |
}
|
| 129 |
if (state.setupStep === 2) {
|
| 130 |
+
const title = document.getElementById('case-title').value.trim();
|
| 131 |
+
if (!title) {
|
| 132 |
alert('Please enter case title');
|
| 133 |
+
console.warn('Cannot advance: case title missing');
|
| 134 |
return;
|
| 135 |
}
|
| 136 |
+
state.setupData.title = title;
|
| 137 |
state.setupData.userClient = document.getElementById('user-client').value;
|
| 138 |
state.setupData.opposingParty = document.getElementById('opposing-party').value;
|
| 139 |
state.setupData.facts = document.getElementById('brief-facts').value;
|
|
|
|
| 143 |
// Update steps
|
| 144 |
state.setupStep = step;
|
| 145 |
document.querySelectorAll('.setup-step').forEach(s => s.classList.add('hidden'));
|
| 146 |
+
const stepEl = document.getElementById(`setup-step-${step}`);
|
| 147 |
+
if (stepEl) {
|
| 148 |
+
stepEl.classList.remove('hidden');
|
| 149 |
+
console.log(`✓ Setup step ${step} displayed`);
|
| 150 |
+
} else {
|
| 151 |
+
console.error(`✗ Setup step ${step} element not found`);
|
| 152 |
+
}
|
| 153 |
|
| 154 |
// Update indicators
|
| 155 |
document.querySelectorAll('.step-indicator').forEach((ind, i) => {
|