F-LAB-28: siempre mostrar panel de config, sin auto-aplicar config guardada
- PHP: elimina auto-aplicación de _tomas_config guardada; las tomas siempre parten limpias hasta que el profesional configure manualmente - JS: elimina auto-guardado cuando hay 1 sola toma por grupo - JS: restaura _mpGetGroupsForExam a mostrar todos los grupos disponibles (condicionados del examen + genéricos sin condición) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
c0f45dd47a
commit
1715af4506
@@ -300,27 +300,8 @@ if ($modoTurnero && $embebido && $_soloFirmaPro) {
|
|||||||
foreach ($_mpSecs as $_s) { $_mpGroups[$_s['tipo']][] = $_s; }
|
foreach ($_mpSecs as $_s) { $_mpGroups[$_s['tipo']][] = $_s; }
|
||||||
$_mpGroupsFull = $_mpGroups;
|
$_mpGroupsFull = $_mpGroups;
|
||||||
|
|
||||||
// Aplicar filtro de ciclos si el profesional ya configuró las tomas para este paciente
|
// La configuración de tomas siempre se hace manualmente en el panel;
|
||||||
$__rawCfg = $datosCliente['_tomas_config'] ?? null;
|
// no se auto-aplica config guardada para evitar defaults no deseados.
|
||||||
if (is_array($__rawCfg)) {
|
|
||||||
$_tomasConfig = $__rawCfg;
|
|
||||||
foreach ($_mpGroups as $__gk => &$__gsecs) {
|
|
||||||
if (!isset($_tomasConfig[$__gk])) {
|
|
||||||
// Grupo no configurado: ocultar sus secciones y vaciarlo del mapa
|
|
||||||
foreach ($__gsecs as $__s) { $_mpSkippedSepIds[$__s['sep_id']] = true; }
|
|
||||||
$__gsecs = [];
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
$__allowed = array_flip($_tomasConfig[$__gk]);
|
|
||||||
foreach ($__gsecs as $__s) {
|
|
||||||
if (!isset($__allowed[$__s['firma']])) {
|
|
||||||
$_mpSkippedSepIds[$__s['sep_id']] = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$__gsecs = array_values(array_filter($__gsecs, fn($s) => isset($__allowed[$s['firma']])));
|
|
||||||
}
|
|
||||||
unset($__gsecs);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Construir $_mpMap desde grupos (posiblemente filtrados)
|
// Construir $_mpMap desde grupos (posiblemente filtrados)
|
||||||
foreach ($_mpGroups as $_tipo => $_secs) {
|
foreach ($_mpGroups as $_tipo => $_secs) {
|
||||||
@@ -1369,38 +1350,16 @@ function _mpShowCfgPanel(examName, groups) {
|
|||||||
document.getElementById('mp-cfg-title').innerHTML =
|
document.getElementById('mp-cfg-title').innerHTML =
|
||||||
'<i class="fas fa-sliders-h me-2"></i>' + examName;
|
'<i class="fas fa-sliders-h me-2"></i>' + examName;
|
||||||
|
|
||||||
// Si solo hay 1 toma por grupo, auto-guardar sin mostrar panel
|
|
||||||
var hasMul = Object.keys(groups).some(function(k) { return groups[k].length >= 2; });
|
|
||||||
if (!hasMul) {
|
|
||||||
var cfg = {};
|
|
||||||
for (var gk in groups) cfg[gk] = groups[gk].map(function(s){return s.firma;});
|
|
||||||
_mpGuardarConfig(cfg, examName, function() { location.reload(); }, function(e) {
|
|
||||||
console.warn('mp-cfg auto:', e);
|
|
||||||
});
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
document.getElementById('mp-cfg-overlay').classList.remove('d-none');
|
document.getElementById('mp-cfg-overlay').classList.remove('d-none');
|
||||||
}
|
}
|
||||||
|
|
||||||
function _mpGetGroupsForExam(examName) {
|
function _mpGetGroupsForExam(examName) {
|
||||||
// Primero buscar grupos condicionados para este examen
|
|
||||||
var result = {};
|
var result = {};
|
||||||
var hasOwn = false;
|
|
||||||
for (var gk in _mpAllGroups) {
|
for (var gk in _mpAllGroups) {
|
||||||
var parts = gk.split('|').filter(Boolean);
|
var parts = gk.split('|').filter(Boolean);
|
||||||
var isCond = parts.some(function(p) { return _mpExamOptions.indexOf(p) !== -1; });
|
var isCond = parts.some(function(p) { return _mpExamOptions.indexOf(p) !== -1; });
|
||||||
if (isCond && parts.indexOf(examName) !== -1) {
|
if (!isCond || parts.indexOf(examName) !== -1) {
|
||||||
result[gk] = _mpAllGroups[gk];
|
result[gk] = _mpAllGroups[gk];
|
||||||
hasOwn = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Solo incluir grupos genéricos (sin condición) si el examen no tiene secciones propias
|
|
||||||
if (!hasOwn) {
|
|
||||||
for (var gk in _mpAllGroups) {
|
|
||||||
var parts = gk.split('|').filter(Boolean);
|
|
||||||
var isCond = parts.some(function(p) { return _mpExamOptions.indexOf(p) !== -1; });
|
|
||||||
if (!isCond) result[gk] = _mpAllGroups[gk];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
Reference in New Issue
Block a user