Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature - General - Menú avanzado multinivel #208

Open
wants to merge 141 commits into
base: develop
Choose a base branch
from

Conversation

juanSTIC
Copy link
Collaborator

@juanSTIC juanSTIC commented Apr 24, 2024

Descripción

Este pull request introduce un nuevo sistema de menú multinivel configurable para SinergiaCRM. Las principales características incluyen:

  • Configuración flexible por parte de los administradores.
  • Soporte para múltiples niveles de anidamiento.
  • Capacidad para crear, renombrar y eliminar nodos.
  • Nodos asociables a módulos o utilizables como agrupadores en cualquier nivel del árbol.
  • Visualización opcional de iconos correspondientes a los módulos.
  • Nuevo menú "Todo" opcional con orden alfabético y buscador integrado.
  • Posibilidad de mostrar el mismo módulo en múltiples ubicaciones del menú.
  • Opción para añadir enlaces personalizados a los elementos del menú.
  • Botón persistente para desplegar el menú de acciones del módulo (Acciones, Recientes y Favoritos).

El desarrollo se divide en dos componentes principales:

  1. Página de Configuración del Menú Multinivel:

    • Nueva página de administración en el menú de Administración de SinergiaCRM.
    • Visualización y edición del menú en formato de árbol.
    • Funcionalidad de arrastrar y soltar para reorganizar elementos.
    • Opción para restaurar el menú oficial de SinergiaCRM.
    • Utiliza la librería open source jsTree para la construcción del menú en modo árbol.
    • Permite duplicar módulos en diferentes nodos manteniendo pulsada la tecla Control mientras se arrastra usando el menú contextual.
    • Incluye un menú contextual (botón derecho) para añadir enlaces personalizados a los elementos del menú.
    • Checkbox para activar/desactivar la visualización de iconos en el menú.
    • Checkbox para activar/desactivar el menú "Todo".
  2. Implementación del Menú Multinivel en SinergiaCRM:

    • Integración del nuevo menú multinivel como opción predeterminada.
    • Preservación de las características del menú actual, incluyendo control de acceso basado en roles.
    • Utiliza la librería open source SmartMenus para la funcionalidad del menú.
    • Implementación de un botón permanente, de tamaño fijo para acceder al menú de acciones del módulo.
    • Visualización condicional de iconos y menú "Todo" basada en la configuración del menu.

Nota: Es posible desactivar completamente la aplicación del nuevo menú avanzado mediante la variable $sugar_config['stic_advanced_menu_enabled'], que por defecto está establecida a true. Se han habilitado enlaces en la página de gestión del nuevo menú y del antiguo, que permiten cambiar entre ambos modos.

Pruebas a realizar

  1. Configuración del Menú:

    • Acceder a la nueva página de configuración desde Administración -> SinergiaCRM.
    • Crear nuevos nodos en diferentes niveles del árbol.
    • Renombrar y eliminar nodos existentes.
    • Arrastrar y soltar elementos para reorganizar el menú.
    • Asociar módulos a nodos y crear nodos agrupadores sin módulo asociado.
    • Verificar la opción de restaurar el menú oficial.
    • Probar la duplicación de módulos en diferentes nodos usando la tecla Control.
    • Verificar la funcionalidad de añadir enlaces personalizados mediante el menú contextual.
    • Comprobar el funcionamiento de los checkbox para activar/desactivar iconos y el menú "Todo".
  2. Funcionalidad del Menú en SinergiaCRM:

    • Comprobar que el nuevo menú se muestra correctamente en la interfaz principal.
    • Verificar la visualización correcta de iconos para los módulos cuando está activada.
    • Confirmar que los iconos no se muestran cuando la opción está desactivada.
    • Navegar a través de múltiples niveles de submenús.
    • Probar el acceso a módulos desde diferentes niveles del menú.
    • Verificar el funcionamiento del botón de menú de acciones del módulo.
  3. Menú "Todo":

    • Verificar que el menú "Todo" aparece cuando está activado y no aparece cuando está desactivado.
    • Comprobar que todos los módulos aparecen ordenados alfabéticamente en el menú "Todo".
    • Probar el buscador para localizar módulos específicos en el menú "Todo".
  4. Control de Acceso:

    • Iniciar sesión con diferentes roles de usuario.
    • Confirmar que solo se muestran los elementos de menú y módulos a los que cada usuario tiene acceso.
  5. Rendimiento:

    • Evaluar el tiempo de carga del menú en diferentes dispositivos y navegadores.
    • Verificar el rendimiento con un gran número de elementos en el menú.
  6. Compatibilidad:

    • Probar la funcionalidad en diferentes navegadores (Chrome, Firefox, Safari, Edge).
  7. Integridad de Datos:

    • Verificar que los cambios en el menú persisten después de cerrar sesión y volver a iniciarla.
    • Asegurar que las preferencias de visualización de iconos y menú "Todo" se mantienen entre sesiones.
  8. Cambio de Modo de Menú:

    • Probar la funcionalidad de los enlaces para cambiar entre el menú avanzado y el menú antiguo.
    • Verificar que la variable $sugar_config['stic-advanced-menu-enabled'] funciona correctamente al ser modificada.

@juanSTIC juanSTIC self-assigned this Apr 24, 2024
Copy link

github-actions bot commented Apr 24, 2024

Actions executed at: 2024-10-14 05:45:20.

jalbaiges
jalbaiges previously approved these changes Oct 8, 2024
Copy link
Collaborator

@jordiSTIC jordiSTIC left a comment

Choose a reason for hiding this comment

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

Verificación funcional:

  • Las observaciones anteriores han estado corregidas.

Observaciones del editor del menú:

  1. El listado de módulos de la derecha sigue aceptando módulos hijos (estructura de árbol).
  2. Si en el listado de la derecha se genera una estructura de árbol, y se arrastra a la izquierda, al guardar y aplicar vuelven a aparecer elementos arrastrados a la derecha y la estructura de árbol de la izquierda tiene valores "J1 122" y parecidos y el menú no muestra el subárbol.
  3. La funcionalidad de enlace se pierde si existen nodos hijos

Observaciones del menú:

  1. La opción "TODO" no muestra nunca los iconos

Copy link
Collaborator

@PaulaaSTIC PaulaaSTIC left a comment

Choose a reason for hiding this comment

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

Algunas observaciones:

  • Si un nodo tiene nodos colgando, se permite crear una URL, y en el editor aparece bien, pero no funciona el link.
  • Cuando le damos a guardar, aparece en la esquina superior derecha un mensaje de guardado diferente al que se muestra al restaurar.
  • El símbolo de cambios sin guardar que aparece en el botón 'Guardar y aplicar' solo se muestra si añadimos un nuevo nodo; si hacemos cambios en nodos ya creados, no avisa de esos cambios.

@juanSTIC juanSTIC closed this Oct 9, 2024
@juanSTIC juanSTIC reopened this Oct 9, 2024
@juanSTIC
Copy link
Collaborator Author

juanSTIC commented Oct 9, 2024

  1. El listado de módulos de la derecha sigue aceptando módulos hijos (estructura de árbol).

Aunque ya estaba implementado, parece que un problema de cache en la instancia de prueba impedía que funcionara correctamente. volver a probar

@jordiSTIC
Copy link
Collaborator

  1. El listado de módulos de la derecha sigue aceptando módulos hijos (estructura de árbol).

Aunque ya estaba implementado, parece que un problema de cache en la instancia de prueba impedía que funcionara correctamente. volver a probar

Ok, el listado de módulos de la derecha no puede tener estructura de árbol. Esto elimina también el error que se produce al arrastrar un árbol de la derecha a la izquierda

@juanSTIC
Copy link
Collaborator Author

juanSTIC commented Oct 9, 2024

  1. La opción "TODO" no muestra nunca los iconos

Corregido

@juanSTIC
Copy link
Collaborator Author

3. La funcionalidad de enlace se pierde si existen nodos hijos

Esto ya está corregido, parece que era tema de cache

@juanSTIC
Copy link
Collaborator Author

  • Si un nodo tiene nodos colgando, se permite crear una URL, y en el editor aparece bien, pero no funciona el link.

Esto está corregido, parece que era tema de cache

@juanSTIC
Copy link
Collaborator Author

  • Cuando le damos a guardar, aparece en la esquina superior derecha un mensaje de guardado diferente al que se muestra al restaurar.

Son funciones diferentes, ya que uno requiere confirmación y el otro no. Se valora dejarlo asi.

@juanSTIC juanSTIC closed this Oct 10, 2024
@juanSTIC juanSTIC reopened this Oct 10, 2024
@juanSTIC
Copy link
Collaborator Author

juanSTIC commented Oct 10, 2024

Se han corregido los problemas informados. Para evitar cierto problema de inconsistencia entre los ids de los árboles al arrastrar y soltar se ha optado por eliminar la funcionalidad de arrastrar nodos desde el menú hasta los módulos ocultos, de manera que esta operación (eliminar) hay que hacerla siempre mediante el menú contextual.
Esto ha implicado un cambio mínimo en el texto informativo del menú @jalbaiges

jalbaiges
jalbaiges previously approved these changes Oct 10, 2024
Copy link
Collaborator

@jordiSTIC jordiSTIC left a comment

Choose a reason for hiding this comment

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

Se han realizado pruebas en el editor de menús.
Se verifica que funciona correctamente y se han aplicado los cambios solicitados.

Se observa un nuevo error introducido:

  • Se crea un nodo hijo a un nodo principal
  • Bajo ese nodo se crea otro
  • Se le añade una url al nodo creado
  • Al guardar, el primer nodo creado pierde el nombre y el hijo

@juanSTIC
Copy link
Collaborator Author

Se observa un nuevo error introducido:

  • Se crea un nodo hijo a un nodo principal
  • Bajo ese nodo se crea otro
  • Se le añade una url al nodo creado
  • Al guardar, el primer nodo creado pierde el nombre y el hijo

Corregido.
Se ha visto que este error se daba si los nodos creados tenían el mismo ID

Copy link
Collaborator

@jordiSTIC jordiSTIC left a comment

Choose a reason for hiding this comment

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

(A)Probado
Los errores detectados han sido solucionados.
Las pruebas realizadas han ido bien. Todo parece robusto y funcional.
Hecha revisión de código (aunque no en profundidad)

Copy link
Collaborator

@PaulaaSTIC PaulaaSTIC left a comment

Choose a reason for hiding this comment

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

¡(A)probado!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
General new feature not urgent Team review PRs that should be tested by all the SinergiaTIC team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Nueva funcionalidad - General - Menu principal multinivel
5 participants