- assets → Assets - inc → Inc Completes the case-sensitivity fixes for Linux servers. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
100 lines
3.3 KiB
JavaScript
100 lines
3.3 KiB
JavaScript
/**
|
|
* Auto-detectar y agregar clases a filas especiales de tablas APU
|
|
*
|
|
* Este script detecta automáticamente filas especiales en tablas .desglose y .analisis
|
|
* y les agrega las clases CSS correspondientes para que se apliquen los estilos correctos.
|
|
*
|
|
* Detecta:
|
|
* - Section headers: Material, Mano de Obra, Herramienta, Equipo
|
|
* - Subtotal rows: Filas que empiezan con "Suma de"
|
|
* - Total row: Costo Directo
|
|
*
|
|
* @package Apus_Theme
|
|
* @since 1.0.0
|
|
*/
|
|
|
|
(function() {
|
|
'use strict';
|
|
|
|
/**
|
|
* Agrega clases a filas especiales de tablas APU
|
|
*/
|
|
function applyApuTableClasses() {
|
|
// Buscar todas las tablas con clase .desglose o .analisis
|
|
const tables = document.querySelectorAll('.desglose table, .analisis table');
|
|
|
|
if (tables.length === 0) {
|
|
return; // No hay tablas APU en esta página
|
|
}
|
|
|
|
let classesAdded = 0;
|
|
|
|
tables.forEach(function(table) {
|
|
const rows = table.querySelectorAll('tbody tr');
|
|
|
|
rows.forEach(function(row) {
|
|
// Evitar procesar filas que ya tienen clase
|
|
if (row.classList.contains('section-header') ||
|
|
row.classList.contains('subtotal-row') ||
|
|
row.classList.contains('total-row')) {
|
|
return;
|
|
}
|
|
|
|
const secondCell = row.querySelector('td:nth-child(2)');
|
|
if (!secondCell) {
|
|
return; // Fila sin segunda celda
|
|
}
|
|
|
|
const text = secondCell.textContent.trim();
|
|
|
|
// Detectar section headers
|
|
if (text === 'Material' ||
|
|
text === 'Mano de Obra' ||
|
|
text === 'Herramienta' ||
|
|
text === 'Equipo' ||
|
|
text === 'MATERIAL' ||
|
|
text === 'MANO DE OBRA' ||
|
|
text === 'HERRAMIENTA' ||
|
|
text === 'EQUIPO') {
|
|
row.classList.add('section-header');
|
|
classesAdded++;
|
|
return;
|
|
}
|
|
|
|
// Detectar subtotales (cualquier variación de "Suma de")
|
|
if (text.toLowerCase().startsWith('suma de ') ||
|
|
text.toLowerCase().startsWith('subtotal ')) {
|
|
row.classList.add('subtotal-row');
|
|
classesAdded++;
|
|
return;
|
|
}
|
|
|
|
// Detectar total final
|
|
if (text === 'Costo Directo' ||
|
|
text === 'COSTO DIRECTO' ||
|
|
text === 'Total' ||
|
|
text === 'TOTAL' ||
|
|
text === 'Costo directo') {
|
|
row.classList.add('total-row');
|
|
classesAdded++;
|
|
return;
|
|
}
|
|
});
|
|
});
|
|
|
|
// Log para debugging (solo en desarrollo)
|
|
if (classesAdded > 0 && window.console) {
|
|
console.log('[APU Tables] Clases agregadas automáticamente: ' + classesAdded);
|
|
}
|
|
}
|
|
|
|
// Ejecutar cuando el DOM esté listo
|
|
if (document.readyState === 'loading') {
|
|
document.addEventListener('DOMContentLoaded', applyApuTableClasses);
|
|
} else {
|
|
// DOM ya está listo
|
|
applyApuTableClasses();
|
|
}
|
|
|
|
})();
|