Commit ·
36f63dd
1
Parent(s): 8e5f1c9
fix: Better error handling for fact-image validation errors
Browse files- static/js/main.js +13 -5
static/js/main.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
| 1 |
/* NCAkit - Main JavaScript */
|
| 2 |
|
| 3 |
// Wait for DOM to be ready
|
| 4 |
-
document.addEventListener('DOMContentLoaded', function() {
|
| 5 |
-
|
| 6 |
// ============================================
|
| 7 |
// TAB SWITCHING
|
| 8 |
// ============================================
|
|
@@ -85,7 +85,7 @@ document.addEventListener('DOMContentLoaded', function() {
|
|
| 85 |
// ============================================
|
| 86 |
// VIDEO CREATOR MODULE
|
| 87 |
// ============================================
|
| 88 |
-
|
| 89 |
// Add scene
|
| 90 |
document.getElementById('addScene').addEventListener('click', () => {
|
| 91 |
const container = document.getElementById('scenesContainer');
|
|
@@ -182,9 +182,17 @@ document.addEventListener('DOMContentLoaded', function() {
|
|
| 182 |
});
|
| 183 |
const result = await res.json();
|
| 184 |
|
| 185 |
-
if (result.job_id) {
|
| 186 |
status.innerHTML = `✅ Job started! ID: ${result.job_id}<br>Checking status...`;
|
| 187 |
pollFactStatus(result.job_id);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 188 |
}
|
| 189 |
} catch (err) {
|
| 190 |
status.className = 'status error';
|
|
@@ -490,7 +498,7 @@ document.addEventListener('DOMContentLoaded', function() {
|
|
| 490 |
});
|
| 491 |
|
| 492 |
// Toggle Manual/AI mode - make global
|
| 493 |
-
window.toggleTsMode = function() {
|
| 494 |
const mode = document.querySelector('input[name="tsMode"]:checked').value;
|
| 495 |
document.getElementById('tsAiSection').style.display = mode === 'ai' ? 'block' : 'none';
|
| 496 |
document.getElementById('tsManualSection').style.display = mode === 'manual' ? 'block' : 'none';
|
|
|
|
| 1 |
/* NCAkit - Main JavaScript */
|
| 2 |
|
| 3 |
// Wait for DOM to be ready
|
| 4 |
+
document.addEventListener('DOMContentLoaded', function () {
|
| 5 |
+
|
| 6 |
// ============================================
|
| 7 |
// TAB SWITCHING
|
| 8 |
// ============================================
|
|
|
|
| 85 |
// ============================================
|
| 86 |
// VIDEO CREATOR MODULE
|
| 87 |
// ============================================
|
| 88 |
+
|
| 89 |
// Add scene
|
| 90 |
document.getElementById('addScene').addEventListener('click', () => {
|
| 91 |
const container = document.getElementById('scenesContainer');
|
|
|
|
| 182 |
});
|
| 183 |
const result = await res.json();
|
| 184 |
|
| 185 |
+
if (res.ok && result.job_id) {
|
| 186 |
status.innerHTML = `✅ Job started! ID: ${result.job_id}<br>Checking status...`;
|
| 187 |
pollFactStatus(result.job_id);
|
| 188 |
+
} else {
|
| 189 |
+
status.className = 'status error';
|
| 190 |
+
// Show validation errors
|
| 191 |
+
let errorMsg = result.detail || 'Unknown error';
|
| 192 |
+
if (Array.isArray(result.detail)) {
|
| 193 |
+
errorMsg = result.detail.map(e => e.msg).join(', ');
|
| 194 |
+
}
|
| 195 |
+
status.innerHTML = '❌ Error: ' + errorMsg;
|
| 196 |
}
|
| 197 |
} catch (err) {
|
| 198 |
status.className = 'status error';
|
|
|
|
| 498 |
});
|
| 499 |
|
| 500 |
// Toggle Manual/AI mode - make global
|
| 501 |
+
window.toggleTsMode = function () {
|
| 502 |
const mode = document.querySelector('input[name="tsMode"]:checked').value;
|
| 503 |
document.getElementById('tsAiSection').style.display = mode === 'ai' ? 'block' : 'none';
|
| 504 |
document.getElementById('tsManualSection').style.display = mode === 'manual' ? 'block' : 'none';
|