En portátil y monitor, el botón “Personalizar” convierte el dashboard en un editor sobre una grilla de 12 columnas. Todo se hace en un borrador: nada cambia en el servidor hasta pulsar Guardar. En tablet y celular no se edita; los widgets se acomodan solos en el orden guardado, y un ícono de información junto al título lo explica.
Paso a paso
- PersonaPulsa Personalizar
Aparece una barra fija con Agregar widget, Restaurar original, Cancelar y Guardar. Los widgets siguen mostrando datos reales, pero sin poder pulsarlos (
inert). - PersonaMueve, estira, quita o agrega widgets
Arrastrando por la agarradera o desde el menú ⋯ de cada widget (también con teclado). La medida (columnas × filas) aparece solo mientras se estira.
- NavegadorAplica las reglas al borrador
Reglas puras en
layoutEditing.ts: mover intercambia con el vecino, estirar respeta los topes de cada widget, todo se compacta hacia arriba y un widget agregado va al final con su tamaño original. Las cifras siguen al borrador. - Persona¿Qué hace al terminar?
- NavegadorDescarta el borrador
Si hubo cambios, pide confirmación. Salir de la página o cerrar la pestaña con cambios también la pide.
- NavegadorConfirma y envía DELETE /dashboard/layout
- Base de datosBorra las filas de la persona
Sin filas, la persona ve el diseño original del catálogo (
in_default_layout). - NavegadorMuestra el diseño original
- NavegadorEnvía PUT /dashboard/layout
Con cada widget, su lugar (x, y, ancho, alto) y si está visible.
- API¿Diseño válido para su rol?
Cada widget permitido para su rol, sin repetidos, dentro de las 12 columnas, con su tamaño entre los topes y sin encimarse con otro.
- Base de datosReemplaza su diseño
Una fila por widget en
user_dashboard_widgets(clave compuesta persona + widget). Un widget oculto conserva su lugar para cuando se vuelva a agregar. - NavegadorSale del modo edición con el diseño nuevo
Si la ventana se angosta por debajo del tamaño de portátil mientras se edita, aparece un aviso y el borrador se conserva hasta que vuelva a caber.
Qué ve la persona en cada error
| Código | HTTP | Cuándo | Mensaje en pantalla |
|---|---|---|---|
WIDGET_NOT_AVAILABLE | 422 | El diseño trae un widget que su cuenta ya no puede usar | Uno de los widgets ya no está disponible para tu cuenta. Recarga la página para ver tu dashboard actual. |
WIDGET_DUPLICATED | 422 | Un widget aparece dos veces | Un widget quedó repetido en el diseño. Recarga la página y vuelve a acomodarlo. |
WIDGET_OUT_OF_GRID | 422 | Un widget se sale de las 12 columnas | Un widget quedó fuera del espacio del dashboard. Muévelo dentro de la grilla e inténtalo de nuevo. |
WIDGET_SIZE_OUT_OF_RANGE | 422 | Un widget pasa de sus topes | Un widget quedó más grande o más pequeño de lo permitido. Ajusta su tamaño e inténtalo de nuevo. |
WIDGETS_OVERLAP | 422 | Dos widgets se enciman | Dos widgets quedaron uno encima del otro. Sepáralos e inténtalo de nuevo. |
Con el editor del navegador estos errores no deberían ocurrir: la API los revisa porque es la única garantía.
Dónde está en el código
ManageDashboardLayout: ver, guardar y restaurar.DashboardGrid: validación de la grilla y diseño original.DatabaseLayoutStore: filas por persona.useDashboardEditorylayoutEditing.ts.- Explicación del módulo: Módulo Dashboard.