From 8ec121e4e095a297ddec4b6bd4761df353c7ca8f Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Fri, 10 Jul 2026 12:06:38 -0500 Subject: [PATCH] Fix: usar .campos-grid como contenedor real de campos para visibilidad de tomas MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Los campos están en div.campos-grid (hijo de .doc-body), no directamente en .doc-body. Elimina todos los console.log de debug y simplifica _mpApplyExamVisibility. Co-Authored-By: Claude Sonnet 4.6 --- ver_formulario_enviado.php | 53 +++++--------------------------------- 1 file changed, 6 insertions(+), 47 deletions(-) diff --git a/ver_formulario_enviado.php b/ver_formulario_enviado.php index 2ae8372..c7f64fa 100644 --- a/ver_formulario_enviado.php +++ b/ver_formulario_enviado.php @@ -1297,78 +1297,37 @@ function _mpApplyExamVisibility(selectedExam) { for (var gk in _mpAllGroups) { _mpAllGroups[gk].forEach(function(s) { if (s.sep_id) allTomaSeps[s.sep_id] = gk; }); } - console.log('[tomas] _mpAllGroups keys:', Object.keys(_mpAllGroups)); - console.log('[tomas] allTomaSeps:', allTomaSeps); - console.log('[tomas] selectedExam:', selectedExam); - if (!Object.keys(allTomaSeps).length) { - console.warn('[tomas] Sin sep_ids en _mpAllGroups — no se aplica visibilidad'); - return; - } + if (!Object.keys(allTomaSeps).length) return; // 2. Sep_ids del examen seleccionado var examSeps = {}; if (selectedExam) { var groups = _mpGetGroupsForExam(selectedExam); - console.log('[tomas] groups for', selectedExam, ':', Object.keys(groups)); for (var gk2 in groups) { groups[gk2].forEach(function(s) { if (s.sep_id) examSeps[s.sep_id] = true; }); } } - console.log('[tomas] examSeps:', examSeps); - // 3. Recorrer hijos directos de doc-body en orden - // (no querySelectorAll — así capturamos section-title y otros sin data-campo-id) - var docBody = document.querySelector('.doc-body'); - if (!docBody) { console.warn('[tomas] .doc-body no encontrado'); return; } - // Encontrar el contenedor real donde están los campos - var fieldContainer = docBody; - var children = Array.from(docBody.children); - var sepsInChildren = children.filter(function(c){return c.classList.contains('esquema-sep');}).length; - console.log('[tomas] docBody.children.length:', children.length, '| seps en children:', sepsInChildren); - if (sepsInChildren === 0 && children.length > 0) { - // Los campos están anidados — buscar el contenedor que tenga esquema-sep - var found = null; - children.forEach(function(child) { - if (!found && child.querySelector('.esquema-sep')) found = child; - }); - if (found) { - fieldContainer = found; - console.log('[tomas] usando contenedor anidado:', found.tagName, found.className); - } else { - // Intentar con querySelectorAll en todo el doc-body - console.warn('[tomas] no se encontró .esquema-sep en hijos directos, usando querySelectorAll fallback'); - fieldContainer = null; - } - } - var childList = fieldContainer ? Array.from(fieldContainer.children) : []; + // 3. Recorrer hijos directos del contenedor de campos (.campos-grid) + var container = document.querySelector('.campos-grid') || document.querySelector('.doc-body'); + if (!container) return; var inHidden = false; - var hiddenCount = 0; - childList.forEach(function(child) { + Array.from(container.children).forEach(function(child) { if (child.classList.contains('esquema-sep')) { var cid = child.getAttribute('data-campo-id') || ''; - if (allTomaSeps[cid] !== undefined) { - inHidden = !examSeps[cid]; - } else { - inHidden = false; // separador genérico — siempre visible - } + inHidden = allTomaSeps[cid] !== undefined ? !examSeps[cid] : false; child.style.display = inHidden ? 'none' : ''; - if (inHidden) hiddenCount++; } else { child.style.display = inHidden ? 'none' : ''; - if (inHidden) hiddenCount++; } }); - console.log('[tomas] elementos ocultados:', hiddenCount); } -// Escuchar selección de tipo de examen - // Escuchar selección de tipo de examen document.addEventListener('change', function(e) { if (!_mpModoTurnero) return; var el = e.target; if (el.name !== '_c8j2g16') return; - console.log('[tomas] change _c8j2g16 type:', el.type, 'value:', el.value, 'checked:', el.checked); var examName = (el.type === 'checkbox' && !el.checked) ? null : el.value; _mpApplyExamVisibility(examName); if (_mpTomasConfig !== null) return; // ya configurado, no mostrar panel