aarnal80 commited on
Commit
b15f84b
·
verified ·
1 Parent(s): 12b3a3c

Update js/main.js

Browse files
Files changed (1) hide show
  1. js/main.js +42 -8
js/main.js CHANGED
@@ -67,7 +67,30 @@ window.addEventListener('DOMContentLoaded', () => {
67
 
68
  // --- Inicializar Grabadora ---
69
  try {
70
- function getTranscriptionProviderUrl() { /* ... código sin cambios ... */ return ''; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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) { /* ... código sin cambios ... */ }
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
- // --- Limpiar UI al Grabar ---
 
 
88
  try {
89
- document.addEventListener('newRecordingStarted', () => { console.log('[Main] Limpiando UI por newRecordingStarted...'); if(outputEnfermedadEl) outputEnfermedadEl.textContent=''; if(outputExploracionEl) outputExploracionEl.textContent=''; if(labInputText) labInputText.value=''; if(labResultsOutput) labResultsOutput.innerHTML=''; lastLabResultText=''; });
 
 
 
 
 
 
 
 
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 () => { // Listener async estándar
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(); // Debería funcionar ahora
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