26 lines
2.9 KiB
Markdown
26 lines
2.9 KiB
Markdown
|
|
# WD04.5 — Contrato de interfaz
|
||
|
|
|
||
|
|
Auditoría y matriz completadas antes de implementar los menús.
|
||
|
|
|
||
|
|
## Presentación e interacción
|
||
|
|
|
||
|
|
WorkplaceNodeActionsMenu reutiliza DropdownMenu de shadcn/Base UI, elipsis Tabler y Button ghost. El trigger tiene nombre «Acciones de {{name}}», área compacta y foco visible. Se sitúa en la esquina superior derecha, como hermano del enlace principal; este conserva su hit area. Se reserva espacio dentro de la tarjeta sin cambiar las dimensiones de Dagre. No se anidan botones dentro de enlaces.
|
||
|
|
|
||
|
|
Nodos de entidad reciben descriptores tipados de acciones de consulta o apertura de operaciones, preparados fuera del nodo. ID de presentación, UUID de Asset/instalación y UUID de Resource no se confunden. El adaptador decide las acciones conforme a la matriz; los nodos no hacen HTTP ni contienen reglas de dominio.
|
||
|
|
|
||
|
|
Orden: navegación, edición, gestión específica, historial. Se agrupan con separadores solo entre grupos no vacíos. No hay submenús ni elementos ficticios para completar opciones. Se omiten los menús vacíos y los de presentación; una operación temporalmente no disponible puede mostrarse disabled con explicación traducida.
|
||
|
|
|
||
|
|
## Canvas y compacto
|
||
|
|
|
||
|
|
El trigger usa `nodrag nopan nowheel pointer-events-auto`; el portal de DropdownMenu evita clipping por el canvas y utiliza la pila de Base UI, sin capas globales manuales. Enter/Espacio, flechas, Escape y colisiones corresponden a la primitiva instalada. No se activan drag, pan, zoom, borrado o conexiones. Abrir un menú o diálogo no modifica nodos ni sus posiciones, por lo que no remonta la cámara.
|
||
|
|
|
||
|
|
Las mismas tarjetas y el mismo catálogo de acciones se usan en WorkplaceCompactMap. Los títulos largos conservan un enlace accesible completo y espacio para el trigger. Los nuevos textos utilizan assets/companies es/en según el consumidor.
|
||
|
|
|
||
|
|
## Diálogos, contexto y retorno
|
||
|
|
|
||
|
|
La composición superior abre los diálogos reales. AssetEditorDialog, AssetSupportManagementDialog, WorkstationEditorDialog, WorkstationSoftwareDialog, SoftwareInstallationEditorDialog y SoftwareHistoryDialog conservan sus formularios, mutaciones, restricciones y confirmaciones. AssetHistory se presenta en un contenedor modal de Assets sin duplicar su contenido.
|
||
|
|
|
||
|
|
Una selección de menú captura el trigger, la identidad del nodo, el puesto y el principal. Al cerrar se restaura el trigger conectado, o el trigger actual del mismo nodo tras refetch, o un control estable del mapa. Cambiar de puesto/principal cierra el contexto anterior. Si desaparece la entidad se conserva una salida accesible sin operar sobre un registro diferente.
|
||
|
|
|
||
|
|
Las mutaciones siguen las invalidaciones existentes. La composición usa If-Match y su recuperación de conflictos; no se inventan precondiciones nuevas para Asset ni SoftwareInstallation. Su límite real de concurrencia consta en el informe WD04.5. Los errores de carga/guardado permanecen en el contexto y no ocultan el mapa completo.
|