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:
co-authored by
Claude Sonnet 4.6
parent
393c226b7c
commit
d12b605afd
@@ -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' : '';
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user