Spaces:
Running
Running
Update js/main.js
Browse files- js/main.js +42 -8
js/main.js
CHANGED
|
@@ -67,7 +67,30 @@ window.addEventListener('DOMContentLoaded', () => {
|
|
| 67 |
|
| 68 |
// --- Inicializar Grabadora ---
|
| 69 |
try {
|
| 70 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 71 |
if (btnStart && btnStop && transcriptEl && typeof initRecorder === 'function') { initRecorder({ btnStart, btnStop, transcriptEl, getProvider: getTranscriptionProviderUrl }); }
|
| 72 |
else { console.error("Faltan elementos/función para initRecorder"); }
|
| 73 |
} catch(e) { console.error("Error inicializando Recorder:", e); }
|
|
@@ -80,20 +103,32 @@ window.addEventListener('DOMContentLoaded', () => {
|
|
| 80 |
|
| 81 |
// --- Cambio de Pestañas ---
|
| 82 |
try {
|
| 83 |
-
function switchTab(clickedTab) {
|
| 84 |
if(allTabButtons.length>0){ allTabButtons.forEach(b=>{b.addEventListener('click',(e)=>{switchTab(e.currentTarget);});}); } else { console.error("No se pueden añadir listeners tabs."); }
|
| 85 |
} catch(e) { console.error("Error en setup Cambio de Pestañas:", e); }
|
| 86 |
|
| 87 |
-
|
|
|
|
|
|
|
| 88 |
try {
|
| 89 |
-
document.addEventListener('newRecordingStarted', () => {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 90 |
} catch(e) { console.error("Error añadiendo listener Limpiar UI:", e); }
|
|
|
|
|
|
|
| 91 |
|
| 92 |
// --- Lógica Pestaña Laboratorio ---
|
| 93 |
try {
|
| 94 |
// Listener Analizar Laboratorio (SIN IIFE)
|
| 95 |
if (btnAnalyzeLabs && labInputText && labLoadingIndicator && filterAlteredLabsCheckbox && labResultsOutput) {
|
| 96 |
-
btnAnalyzeLabs.addEventListener('click', async () => {
|
| 97 |
console.log("[Main] Click en btnAnalyzeLabs.");
|
| 98 |
const inputText = labInputText.value; if (!inputText.trim()) { alert("Pega resultados."); return; }
|
| 99 |
labLoadingIndicator.style.display = 'flex'; btnAnalyzeLabs.disabled = true; filterAlteredLabsCheckbox.disabled = true; labResultsOutput.innerHTML = ''; lastLabResultText = '';
|
|
@@ -102,9 +137,8 @@ window.addEventListener('DOMContentLoaded', () => {
|
|
| 102 |
console.log("RAW AI RESPONSE:", resultText); lastLabResultText = resultText;
|
| 103 |
const filterIsActive = filterAlteredLabsCheckbox.checked;
|
| 104 |
displayLabResults(resultText, labResultsOutput, filterIsActive);
|
| 105 |
-
// Llamada directa a updateModelLabels (definida en este scope)
|
| 106 |
console.log("[Main] Intentando llamar a updateModelLabels desde listener btnAnalyzeLabs...");
|
| 107 |
-
updateModelLabels(); //
|
| 108 |
console.log("[Main] Llamada a updateModelLabels desde listener btnAnalyzeLabs completada.");
|
| 109 |
} catch (error) { console.error("Error DENTRO listener btnAnalyzeLabs:", error); if(labResultsOutput) labResultsOutput.innerHTML = `<p class="text-red-600">Error: ${error.message}</p>`; alert(`Error al analizar: ${error.message}`); }
|
| 110 |
finally { labLoadingIndicator.style.display = 'none'; btnAnalyzeLabs.disabled = false; filterAlteredLabsCheckbox.disabled = false; }
|
|
@@ -116,7 +150,7 @@ window.addEventListener('DOMContentLoaded', () => {
|
|
| 116 |
} else { console.error("Faltan elementos para setup Pestaña Análisis Exámenes"); }
|
| 117 |
|
| 118 |
// Listener Copiar Laboratorio (sin cambios)
|
| 119 |
-
if (btnCopyLabResults && labResultsOutput) { btnCopyLabResults.addEventListener('click', async () => {
|
| 120 |
else { console.error("Faltan elementos para botón Copiar Lab"); }
|
| 121 |
} catch(e) { console.error("Error en setup Pestaña Análisis Exámenes:", e); }
|
| 122 |
|
|
|
|
| 67 |
|
| 68 |
// --- Inicializar Grabadora ---
|
| 69 |
try {
|
| 70 |
+
// La función getTranscriptionProviderUrl está definida dentro de este try-catch, lo cual es correcto
|
| 71 |
+
function getTranscriptionProviderUrl() {
|
| 72 |
+
console.log("[Main] Ejecutando getTranscriptionProviderUrl...");
|
| 73 |
+
const cfg = getIaConfig();
|
| 74 |
+
console.log("[Main] Configuración obtenida:", cfg);
|
| 75 |
+
const providerValue = cfg?.transcription?.provider;
|
| 76 |
+
console.log(`[Main] Proveedor de transcripción en config: ${providerValue}`);
|
| 77 |
+
|
| 78 |
+
if (providerValue) {
|
| 79 |
+
console.log("[Main] Lista de proveedores de transcripción (importada):", transcriptionProviders);
|
| 80 |
+
const prov = transcriptionProviders.find(p => p.value === providerValue);
|
| 81 |
+
console.log(`[Main] Proveedor encontrado en la lista:`, prov);
|
| 82 |
+
if (prov?.url) {
|
| 83 |
+
console.log(`[Main] URL encontrada para ${providerValue}: ${prov.url}`);
|
| 84 |
+
return prov.url;
|
| 85 |
+
} else {
|
| 86 |
+
console.warn(`[Main] URL no encontrada para el proveedor '${providerValue}'.`);
|
| 87 |
+
}
|
| 88 |
+
} else {
|
| 89 |
+
console.warn('[Main] No se encontró providerValue en cfg.transcription.provider.');
|
| 90 |
+
}
|
| 91 |
+
console.error('[Main] Fallo al obtener URL del proveedor. Retornando vacío.');
|
| 92 |
+
return '';
|
| 93 |
+
}
|
| 94 |
if (btnStart && btnStop && transcriptEl && typeof initRecorder === 'function') { initRecorder({ btnStart, btnStop, transcriptEl, getProvider: getTranscriptionProviderUrl }); }
|
| 95 |
else { console.error("Faltan elementos/función para initRecorder"); }
|
| 96 |
} catch(e) { console.error("Error inicializando Recorder:", e); }
|
|
|
|
| 103 |
|
| 104 |
// --- Cambio de Pestañas ---
|
| 105 |
try {
|
| 106 |
+
function switchTab(clickedTab) { const tId=clickedTab.dataset.contentId; const tC=document.getElementById(tId); if(tC&&!tC.classList.contains('active')){ allTabButtons.forEach(b => { const aC=b.dataset.activeClasses.split(' '); const iC=b.dataset.inactiveClasses.split(' '); b.classList.remove(...aC.filter(c=>c)); b.classList.add(...iC.filter(c=>c)); }); allTabContents.forEach(c=>{c.classList.remove('active');}); const aCadd=clickedTab.dataset.activeClasses.split(' '); const iCrem=clickedTab.dataset.inactiveClasses.split(' '); clickedTab.classList.remove(...iCrem.filter(c=>c)); clickedTab.classList.add(...aCadd.filter(c=>c)); tC.classList.add('active'); console.log(`Pestaña: ${tId}`); } }
|
| 107 |
if(allTabButtons.length>0){ allTabButtons.forEach(b=>{b.addEventListener('click',(e)=>{switchTab(e.currentTarget);});}); } else { console.error("No se pueden añadir listeners tabs."); }
|
| 108 |
} catch(e) { console.error("Error en setup Cambio de Pestañas:", e); }
|
| 109 |
|
| 110 |
+
|
| 111 |
+
// --- Limpiar UI al Grabar (BLOQUE COMENTADO) ---
|
| 112 |
+
/* <--- INICIO BLOQUE COMENTADO
|
| 113 |
try {
|
| 114 |
+
document.addEventListener('newRecordingStarted', () => {
|
| 115 |
+
console.log('[Main] Limpiando UI por newRecordingStarted...');
|
| 116 |
+
if(outputEnfermedadEl) outputEnfermedadEl.textContent='';
|
| 117 |
+
if(outputExploracionEl) outputExploracionEl.textContent='';
|
| 118 |
+
if(labInputText) labInputText.value='';
|
| 119 |
+
if(labResultsOutput) labResultsOutput.innerHTML='';
|
| 120 |
+
lastLabResultText='';
|
| 121 |
+
});
|
| 122 |
+
console.log('[Main] Listener newRecordingStarted COMENTADO.'); // Log para indicar que está comentado
|
| 123 |
} catch(e) { console.error("Error añadiendo listener Limpiar UI:", e); }
|
| 124 |
+
*/ // <--- FIN BLOQUE COMENTADO
|
| 125 |
+
|
| 126 |
|
| 127 |
// --- Lógica Pestaña Laboratorio ---
|
| 128 |
try {
|
| 129 |
// Listener Analizar Laboratorio (SIN IIFE)
|
| 130 |
if (btnAnalyzeLabs && labInputText && labLoadingIndicator && filterAlteredLabsCheckbox && labResultsOutput) {
|
| 131 |
+
btnAnalyzeLabs.addEventListener('click', async () => {
|
| 132 |
console.log("[Main] Click en btnAnalyzeLabs.");
|
| 133 |
const inputText = labInputText.value; if (!inputText.trim()) { alert("Pega resultados."); return; }
|
| 134 |
labLoadingIndicator.style.display = 'flex'; btnAnalyzeLabs.disabled = true; filterAlteredLabsCheckbox.disabled = true; labResultsOutput.innerHTML = ''; lastLabResultText = '';
|
|
|
|
| 137 |
console.log("RAW AI RESPONSE:", resultText); lastLabResultText = resultText;
|
| 138 |
const filterIsActive = filterAlteredLabsCheckbox.checked;
|
| 139 |
displayLabResults(resultText, labResultsOutput, filterIsActive);
|
|
|
|
| 140 |
console.log("[Main] Intentando llamar a updateModelLabels desde listener btnAnalyzeLabs...");
|
| 141 |
+
updateModelLabels(); // Llamada que podría dar error
|
| 142 |
console.log("[Main] Llamada a updateModelLabels desde listener btnAnalyzeLabs completada.");
|
| 143 |
} catch (error) { console.error("Error DENTRO listener btnAnalyzeLabs:", error); if(labResultsOutput) labResultsOutput.innerHTML = `<p class="text-red-600">Error: ${error.message}</p>`; alert(`Error al analizar: ${error.message}`); }
|
| 144 |
finally { labLoadingIndicator.style.display = 'none'; btnAnalyzeLabs.disabled = false; filterAlteredLabsCheckbox.disabled = false; }
|
|
|
|
| 150 |
} else { console.error("Faltan elementos para setup Pestaña Análisis Exámenes"); }
|
| 151 |
|
| 152 |
// Listener Copiar Laboratorio (sin cambios)
|
| 153 |
+
if (btnCopyLabResults && labResultsOutput) { btnCopyLabResults.addEventListener('click', async () => { try { const t=labResultsOutput.textContent; if(!t || t.startsWith('Error') || t.includes('No se generaron')) {alert('No hay resultados válidos.');return;} await copyText(t);} catch(e){console.error("Error copia lab:", e);} }); }
|
| 154 |
else { console.error("Faltan elementos para botón Copiar Lab"); }
|
| 155 |
} catch(e) { console.error("Error en setup Pestaña Análisis Exámenes:", e); }
|
| 156 |
|