Fix: iterar hijos directos de doc-body para ocultar section-title sin data-campo-id

Los div.section-title ("Firma del profesional") no tienen data-campo-id y eran
ignorados por querySelectorAll. Ahora se itera docBody.children en orden para
que inHidden aplique a todos los hijos incluyendo los que no tienen atributo.
Agrega console.log [tomas] para diagnóstico del estado de _mpAllGroups.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-07-10 11:57:37 -05:00
co-authored by Claude Sonnet 4.6
parent 393c226b7c
commit d12b605afd
+18 -9
View File
@@ -1297,33 +1297,42 @@ function _mpApplyExamVisibility(selectedExam) {
for (var gk in _mpAllGroups) {
_mpAllGroups[gk].forEach(function(s) { if (s.sep_id) allTomaSeps[s.sep_id] = gk; });
}
if (!Object.keys(allTomaSeps).length) return;
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;
}
// 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 DOM y aplicar visibilidad
// 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) return;
var inHidden = false;
docBody.querySelectorAll('[data-campo-id]').forEach(function(el) {
var cid = el.getAttribute('data-campo-id');
if (el.classList.contains('esquema-sep')) {
Array.from(docBody.children).forEach(function(child) {
if (child.classList.contains('esquema-sep')) {
var cid = child.getAttribute('data-campo-id') || '';
if (allTomaSeps[cid] !== undefined) {
inHidden = !examSeps[cid]; // ocultar si no es del examen
el.style.display = inHidden ? 'none' : '';
inHidden = !examSeps[cid];
} else {
inHidden = false; // separador genérico — siempre visible
el.style.display = '';
}
child.style.display = inHidden ? 'none' : '';
} else {
el.style.display = inHidden ? 'none' : '';
// campo, section-title, firma-pro-widget, etc.
child.style.display = inHidden ? 'none' : '';
}
});
}