La siguiente línea de tiempo expone una serie de eventos ordenados cronológicamente que clarifican el desarrollo del proyecto.
Cargando cronograma del proyecto...
Los hitos son eventos puntuales importantes del proyecto
Chart.js disponible: ${typeof Chart !== 'undefined' ? 'Sí' : 'No'}
Chart.js versión: ${typeof Chart !== 'undefined' && Chart.version ? Chart.version : 'N/A'}
Proyecto ID: ${this.proyectoId}
URL base: ${this.baseUrl}
Chart renderizado: ${this.chart ? 'Sí' : 'No'}
Elementos en gráfico: ${(this.data.etapas.length + this.data.hitos.length)}
${JSON.stringify(this.data, null, 2)}
`;
}
}
setupEventListeners() {
const debugToggle = document.getElementById('gantt-debug-toggle');
if (debugToggle) {
debugToggle.addEventListener('click', () => {
const debugInfo = document.getElementById('gantt-debug-info');
if (debugInfo) {
debugInfo.style.display = debugInfo.style.display === 'none' ? 'block' : 'none';
}
});
}
}
hideLoading() {
const loading = document.getElementById('gantt-loading');
const content = document.getElementById('gantt-content');
if (loading) loading.style.display = 'none';
if (content) content.style.display = 'block';
}
showError(message) {
const loading = document.getElementById('gantt-loading');
const errorContainer = document.getElementById('gantt-error-container');
if (loading) loading.style.display = 'none';
if (errorContainer) {
errorContainer.innerHTML = `
${message}
Chart.js disponible: ${typeof Chart !== 'undefined' ? 'Sí' : 'No'}
Proyecto ID: ${this.proyectoId}
Timestamp: ${new Date().toLocaleString()}
No se pudieron cargar los datos del proyecto solicitado.