feat(dashboard): cards colapsables en Analytics Dashboard
- Convertir 9 cards a estructura colapsable con Bootstrap 5 Collapse - Headers fuera de cards como botones clickeables - Cards contraídos por defecto para reducir scroll - Añadir animación de rotación del chevron (180°) - Ajustar selector JS de loading overlay a .collapsible-section - CSS para estados hover, focus y bordes redondeados Cards modificados: 1. CTR 0% (collapse-ctr-zero) 2. Quick Wins (collapse-quick-wins) 3. Contenido Decadencia (collapse-decay) 4. Contenido Estrella (collapse-star) 5. Infraposicionados (collapse-infrapos) 6. Click Distribution (collapse-click-dist) 7. Top Búsquedas (collapse-top-searches) 8. Top Clicks (collapse-top-clicks) 9. Sin Resultados (collapse-zero-results) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -99,10 +99,10 @@
|
||||
return;
|
||||
}
|
||||
|
||||
// Find the card container and add loading state (keeps size, shows overlay)
|
||||
var card = tbody.closest('.card');
|
||||
if (card) {
|
||||
card.classList.add('is-loading-table');
|
||||
// Find the collapsible section container and add loading state (keeps size, shows overlay)
|
||||
var section = tbody.closest('.collapsible-section');
|
||||
if (section) {
|
||||
section.classList.add('is-loading-table');
|
||||
}
|
||||
|
||||
// Build form data
|
||||
@@ -157,8 +157,8 @@
|
||||
tbody.innerHTML = html;
|
||||
|
||||
// Remove loading state
|
||||
if (card) {
|
||||
card.classList.remove('is-loading-table');
|
||||
if (section) {
|
||||
section.classList.remove('is-loading-table');
|
||||
}
|
||||
|
||||
// Update pagination
|
||||
@@ -167,16 +167,16 @@
|
||||
bindPaginationEvents(paginationDiv, tableId);
|
||||
}
|
||||
} else {
|
||||
if (card) {
|
||||
card.classList.remove('is-loading-table');
|
||||
if (section) {
|
||||
section.classList.remove('is-loading-table');
|
||||
}
|
||||
showErrorMessage('Error al cargar datos');
|
||||
console.error('AJAX error:', result);
|
||||
}
|
||||
})
|
||||
.catch(function(error) {
|
||||
if (card) {
|
||||
card.classList.remove('is-loading-table');
|
||||
if (section) {
|
||||
section.classList.remove('is-loading-table');
|
||||
}
|
||||
console.error('Fetch error:', error);
|
||||
showErrorMessage('Error de conexión');
|
||||
|
||||
Reference in New Issue
Block a user