Volver a la wiki

El modal de restauración enseña el mismo árbol, con badges "ya existe" y selector de modo (v1.76.0)

Valor para el usuario

Hasta ahora, el modal de restauración solo enseñaba una lista plana de racks con checkboxes, y el resto del contenido de la maleta se escondía detrás de un desplegable “What’s inside this backup”. Desde v1.76.0 el modal abre con el MISMO árbol que el diálogo de creación (v1.74.0): las secciones del dashboard (Maps, Rows, Rooms y “No Map”, con sus racks y conteos) y los dominios completos (Monitoring, Wireless, UPS, DSM, ITSM, Terminal, Cables, Catálogo) — todo a la vista, nada plegado. Además, cada elemento que ya existe en la organización destino (por su identidad natural: nombre de rack o plano, IP de una ficha o target, nombre de script o playlist, stencil) lleva una etiqueta “already exists”, para que el usuario vea qué va a chocar ANTES de decidir. Y junto al árbol aparece el selector de modo: Add as a copy (el histórico: todo se recrea, lo que coincide se duplica) o Update existing (el motor de v1.75.0: lo que coincide se sobrescribe, lo nuevo se añade, nada se borra), con un texto de confirmación distinto y veraz según el modo elegido. Si el backup subido es parcial, el resumen lo avisa.

Tercera de las cuatro piezas de la ventana del task #236 (grill del 21-08). Queda la última: un informe final claro tras aplicar el restore.

Cómo usarla

  1. Configuration → File Operations → restaurar → seleccionar el ZIP.
  2. El cliente llama a POST /api/racks/restore/full/preview; la respuesta cambia de forma — pierde la lista plana racks y gana tree (mismo esquema que build_backup_inventory de la creación) y partial (bool).
  3. El frontend reutiliza buildBackupTree() (compartida con el diálogo de creación) para pintar el árbol en el contenedor restore-tree, con las badges de “ya existe” por rack, sección y dominio.
  4. El usuario desmarca lo que no quiere traer y elige el modo con un radio button (Add as a copy / Update existing); el texto de confirmación cambia según el modo.
  5. Al confirmar, si algo quedó desmarcado, el cliente añade selection (JSON del árbol, con los IDs de la maleta) a la petición; si todo sigue marcado, no manda selección y viaja la maleta entera. El mode siempre viaja.
  6. POST /api/racks/restore/full recibe selection + mode; el backend normaliza selection y lo pasa como tree_selection, que prevalece sobre el rack_ids CSV legacy si ambos llegasen.

Implementación

Commits relacionados

Véase también

Subir