Skip to content

Bugfix/ma us 17 usuario cuadro texto#34

Merged
DanielQueijeiro merged 6 commits into
developfrom
bugfix/MA_US-17-UsuarioCuadroTexto
May 2, 2025
Merged

Bugfix/ma us 17 usuario cuadro texto#34
DanielQueijeiro merged 6 commits into
developfrom
bugfix/MA_US-17-UsuarioCuadroTexto

Conversation

@M4urici02002
Copy link
Copy Markdown
Contributor

@M4urici02002 M4urici02002 commented May 2, 2025

Solicitud de cambio (PR)

Correcion de variables para seguir estandar

Descripción detallada

Correción de las variables de ingles a español de todos los archivos relacionados con sidebar, topbar y framelayout, además de documentar según el JSDocs

Tipo de cambio

  • Nueva funcionalidad (Un cambio que agrega una funcionalidad)
  • Corrección de errores (Un cambio que arregla un problema)
  • Hotfix (Una correción urgente que será revisada posteriormente)
  • Refactorización (Reorganización o mejora del código sin cambiar su funcionalidad)

Checklist del autor:

  • He determinado que los cambios no tienen un impacto negativo en la aplicación
  • La historia de usuario cumple con los requisitos de Done
  • El código sigue el estándar de codificación y cumple con la checklist de desarrollo
  • He actualizado los productos relacionados a la historia de usuario y lo cambiaré a "Terminado" una vez que se haga la fusión
  • Alguien más está asignado como evaluador (tester/reviewer)

Checklist del evaluador:

  • He determinado que los cambios no tienen un impacto negativo en la aplicación
  • He notificado al autor del PR en caso de dudas o ajustes necesarios
  • Una vez que acepte el PR, eliminaré la rama

Copy link
Copy Markdown
Collaborator

@DanielQueijeiro DanielQueijeiro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Checar los cambios solicitados

Comment thread harvester-app/src/framework/utils/js/sidebar.js Outdated
document.getElementById(id).innerHTML = html;
if (llamada) llamada(); // Ejecuta la función si la mandas
document.getElementById(idContenedor).innerHTML = html;
if (callback) callback();
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

callback está en inglés


// Llamadas para insertar los componentes
// Inserción de componentes una vez cargado el DOM
window.addEventListener("DOMContentLoaded", () => {
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tienes comillas dobles en lugar de sencilla

incluirHTML("topbar-container", "../vistas/topBar.html");
}); No newline at end of file
incluirHTML(
"contenedorBarraLateral",
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tienes comillas dobles en lugar de sencilla

Comment thread harvester-app/src/framework/vistas/FrameLayout.html
Copy link
Copy Markdown
Collaborator

@DanielQueijeiro DanielQueijeiro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

aprobado

@DanielQueijeiro DanielQueijeiro merged commit 0b889ae into develop May 2, 2025
@DanielQueijeiro DanielQueijeiro deleted the bugfix/MA_US-17-UsuarioCuadroTexto branch May 2, 2025 23:34
@black4ninja
Copy link
Copy Markdown

Análisis del Pull Request - Refactorización de Interfaz de Usuario
Evaluación General
Este PR realiza una refactorización significativa de la interfaz de usuario de la aplicación Harvester, mejorando la calidad del código, nomenclatura y documentación. Incluye:

Documentación completa de funciones con JSDoc
Renombrado de variables y funciones con nombres más descriptivos
Reestructuración del código HTML para mayor legibilidad
Estandarización de estilos de codificación en JavaScript

Aspectos Positivos

Documentación Completa

Implementación rigurosa de JSDoc en todas las funciones
Comentarios claros explicando el propósito de cada sección
Anotaciones de tipos para parámetros y valores de retorno

Mejora en la Nomenclatura

Cambio de nombres genéricos a descriptivos (ej. sidebar-collapsed → barraLateralColapsada)
Consistencia en el idioma (español) para todos los identificadores
Nombres de variables más explícitos que reflejan su propósito

Estructura y Organización

Formateo consistente del código HTML y JavaScript
Agrupación lógica de funcionalidades relacionadas
Separación clara entre declaraciones de funciones y su inicialización

Optimización del Código

Simplificación de bloques de código repetitivos
Mejor organización de la carga de scripts en el HTML
Eliminación de código redundante y mejora de la legibilidad

Accesibilidad Mejorada

Adición de atributos alt en todas las imágenes
Mejora en la estructura semántica del HTML
Elementos de interfaz con nombres más descriptivos

Áreas de Mejora

Inconsistencia en Nomenclatura entre Archivos

Algunos IDs en el HTML no coinciden con los utilizados en JavaScript
Por ejemplo: botonRegresar en topBar.html vs btn-regresar en sidebar.js
Inconsistencia entre topbar-icono/iconoBarraSuperior y topbar-titulo/tituloBarraSuperior

Manejo de Estado

Dependencia excesiva de localStorage para gestionar el estado de la aplicación
Falta de validación al leer datos del almacenamiento local
No hay manejo de errores para situaciones donde el almacenamiento no esté disponible

Código Duplicado Remanente

Repetición de selector de elementos en diferentes funciones
Lógica similar para manejar botones en la barra expandida y colapsada
Estructura repetitiva en la gestión de eventos

Potenciales Problemas de Rendimiento

Múltiples llamadas a querySelector y querySelectorAll que podrían optimizarse
Generación repetitiva de selectores complejos
Ausencia de caché para elementos frecuentemente accedidos

Recomendaciones Específicas

Unificar la Nomenclatura

Establecer y seguir un estándar claro para IDs y clases
Actualizar todas las referencias para que coincidan en todos los archivos
Ejemplo:
javascript// En sidebar.js
const elementoTituloBarraSuperior = document.getElementById('tituloBarraSuperior');
const elementoIconoBarraSuperior = document.getElementById('iconoBarraSuperior');
const botonRegresar = document.getElementById('botonRegresar');
html

Inicio

Icono sección

Implementar un Mejor Manejo de Estado

Crear un módulo centralizado para gestionar el estado de la aplicación
Validar datos del localStorage antes de utilizarlos
Ejemplo:
javascript// estadoAplicacion.js
const estadoAplicacion = {
obtenerSeccionActiva() {
try {
const seccion = localStorage.getItem('seccion-activa');
return seccion && ['inicio', 'analisis', 'plantillas', 'formulas', 'envios', 'usuario', 'gestionUsuarios'].includes(seccion) ? seccion : 'inicio';
} catch (error) {
console.error('Error al obtener sección activa:', error);
return 'inicio';
}
},

guardarSeccionActiva(seccion) {
try {
localStorage.setItem('seccion-activa', seccion);
return true;
} catch (error) {
console.error('Error al guardar sección activa:', error);
return false;
}
}
};

Reducir Código Duplicado

Extraer funcionalidades comunes a funciones auxiliares
Utilizar un enfoque más declarativo para manejar la UI
Ejemplo:
javascriptfunction cambiarVisibilidadElementos(elementoMostrar, elementoOcultar) {
if (elementoMostrar && elementoOcultar) {
elementoMostrar.style.display = 'flex';
elementoOcultar.style.display = 'none';
}
}

// Uso
botonColapsar.addEventListener('click', () => {
cambiarVisibilidadElementos(barraLateralColapsada, barraLateralExpandida);
});

botonExpandir.addEventListener('click', () => {
cambiarVisibilidadElementos(barraLateralExpandida, barraLateralColapsada);
});

Optimizar el Rendimiento

Almacenar en caché elementos DOM frecuentemente utilizados
Usar delegación de eventos para reducir el número de event listeners
Ejemplo:
javascript// Al inicio del archivo
const elementosDOM = {
barraLateral: {
contenedor: document.getElementById('contenedorBarraLateral'),
expandida: null, // Se inicializará después de cargar el HTML
colapsada: null, // Se inicializará después de cargar el HTML
botones: null // Se inicializará después de cargar el HTML
},
barraSuperior: {
contenedor: document.getElementById('contenedorBarraSuperior'),
titulo: null, // Se inicializará después de cargar el HTML
icono: null // Se inicializará después de cargar el HTML
},
contenidoPrincipal: document.querySelector('.ventana-principal')
};

// Delegación de eventos
document.querySelector('.sidebar-navegacion').addEventListener('click', (evento) => {
const boton = evento.target.closest('.boton-sidebar');
if (boton && boton.hasAttribute('data-seccion')) {
const seccion = boton.getAttribute('data-seccion');
// Lógica para manejar el cambio de sección
}
});

Añadir Pruebas Automatizadas

Implementar pruebas unitarias para las funciones principales
Añadir pruebas de integración para verificar la interacción entre componentes
Ejemplo:
javascript// pruebas/sidebar.test.js
describe('Barra Lateral', () => {
beforeEach(() => {
// Preparar el DOM para pruebas
document.body.innerHTML = <div id="contenedorBarraLateral">...</div>;
// Inicializar componentes
});

test('Debe cambiar correctamente entre estados expandido y colapsado', () => {
// Simular clic en botón de colapsar
document.getElementById('botonColapsar').click();

// Verificar cambio de estado
expect(document.getElementById('barraLateralExpandida').style.display).toBe('none');
expect(document.getElementById('barraLateralColapsada').style.display).toBe('flex');

});
});

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants