feat(admin): vista respuestas mejorada + vista detallada [admin]
/admin/responses: filtro survey dinámico (select, no hardcodeado), paginación 50/página, link a vista detallada, conteos consistentes con el filtro de preguntas permitidas (evita página fantasma al final). /admin/responses/[id]: respuestas agrupadas por sección (derivado de type='section', igual que el wizard — no existen section_number/ section_title, ver TECH-DEBT-011), instancias bajo "Familiar N". RLS y exclusión de sensibles intactos en ambas vistas. Fixes de revisión antes de cerrar: toggle expandir/colapsar movido a un <button> real (evita anidar el link "Ver" dentro de un role=button), formatDate/renderValue unificados en admin-format.ts, queries independientes en paralelo (Promise.all).
This commit is contained in:
@@ -1007,19 +1007,46 @@ body {
|
||||
.admin-title { font-size: 1.375rem; font-weight: 700; color: var(--color-text); margin: 0 0 4px; }
|
||||
.admin-subtitle { font-size: 0.8125rem; color: var(--color-text-muted); margin: 0; }
|
||||
.admin-survey-nav { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
|
||||
.admin-survey-link {
|
||||
font-size: 0.75rem; font-weight: 600; padding: 4px 12px; border-radius: 999px;
|
||||
border: 1px solid var(--color-border); color: var(--color-text-muted); text-decoration: none;
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
.admin-survey-link:hover { color: var(--color-text); border-color: var(--color-primary); }
|
||||
.admin-survey-link-active { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }
|
||||
.admin-refresh {
|
||||
display: inline-block; padding: 8px 16px; border-radius: var(--radius);
|
||||
background: var(--color-primary); color: #fff; font-size: 0.8125rem;
|
||||
font-weight: 600; text-decoration: none; white-space: nowrap;
|
||||
}
|
||||
.admin-refresh:hover { background: var(--color-primary-hover); }
|
||||
.admin-survey-select {
|
||||
font-size: 0.8125rem; padding: 6px 10px; border-radius: var(--radius);
|
||||
border: 1px solid var(--color-border); color: var(--color-text);
|
||||
background: var(--color-surface);
|
||||
}
|
||||
.admin-action-link {
|
||||
font-size: 0.75rem; font-weight: 600; color: var(--color-primary);
|
||||
text-decoration: none;
|
||||
}
|
||||
.admin-action-link:hover { text-decoration: underline; }
|
||||
.admin-pagination {
|
||||
display: flex; align-items: center; justify-content: center; gap: 16px;
|
||||
margin-top: 16px; font-size: 0.8125rem;
|
||||
}
|
||||
.admin-pagination-link { color: var(--color-primary); text-decoration: none; font-weight: 600; }
|
||||
.admin-pagination-link:hover { text-decoration: underline; }
|
||||
.admin-pagination-disabled { color: var(--color-text-muted); cursor: default; }
|
||||
.admin-pagination-current { color: var(--color-text-muted); }
|
||||
.admin-back-link {
|
||||
display: inline-block; margin-bottom: 12px; font-size: 0.8125rem;
|
||||
font-weight: 600; color: var(--color-primary); text-decoration: none;
|
||||
}
|
||||
.admin-back-link:hover { text-decoration: underline; }
|
||||
.admin-detail-section { margin-bottom: 24px; }
|
||||
.admin-detail-section-title {
|
||||
font-size: 1.0625rem; font-weight: 700; color: var(--color-text);
|
||||
margin: 0 0 10px;
|
||||
}
|
||||
.admin-detail-instance { margin-bottom: 14px; }
|
||||
.admin-instance-badge {
|
||||
display: inline-block; font-size: 0.75rem; font-weight: 600;
|
||||
color: var(--color-primary-hover); background: var(--color-primary-light);
|
||||
padding: 3px 10px; border-radius: 999px; margin-bottom: 6px;
|
||||
}
|
||||
.admin-table-wrapper {
|
||||
overflow-x: auto; background: var(--color-surface); border: 1px solid var(--color-border);
|
||||
border-radius: var(--radius); box-shadow: var(--shadow-card);
|
||||
@@ -1040,6 +1067,10 @@ body {
|
||||
display: inline-block; width: 14px; margin-right: 4px;
|
||||
color: var(--color-text-muted); font-size: 0.7rem;
|
||||
}
|
||||
.admin-row-toggle-btn {
|
||||
background: none; border: none; padding: 0; margin: 0;
|
||||
font: inherit; color: inherit; cursor: pointer;
|
||||
}
|
||||
.admin-nodata {
|
||||
display: inline-block; padding: 1px 8px; border-radius: 10px;
|
||||
background: var(--color-re-light); color: var(--color-re-dark);
|
||||
|
||||
Reference in New Issue
Block a user