Saltearse al contenido

Lista de operaciones

Operaciones es la página de listado en /operations. Muestra todos los documentos de misión en la ruta de Firestore missions/{id} que tu cuenta puede leer en la organización activa. Cada fila es una operación — planificada, en curso o finalizada.

Qué muestra la tabla

La página tiene una cabecera fija con el total y un botón Nueva operación (visible solo si tienes el permiso operations.create), un área de filas con desplazamiento y un panel lateral derecho con estadísticas rápidas.

ColumnaOrigenNotas
MiniaturaPrimera photo en mission.media[]Usa un marcador de posición si no hay imagen.
Operaciónmission.name, con mission.codename debajo si está definidoHaz clic en la fila para abrirla.
EstadoDerivado de los timestamps startOn / finishedOnplanned, active o finished.
Creadamission.createdOnOculta en viewports pequeños.
Iniciomission.startOn si > 0Muestra cuando no está programada. Oculta en viewports medianos.
ActivosLongitud de mission.assetIds[]Operativos + equipos + miembros de la org combinados.
MultimediaLongitud de mission.media[]Fotos y vídeos subidos durante la planificación.
AccionesMenú kebab de filaVer más abajo.

El panel lateral muestra cuatro estadísticas rápidas: Total, Activas, Planificadas, Finalizadas, calculadas en el cliente a partir del mismo listado.

El chip de estado se calcula a partir de los timestamps — una fila active significa que startOn ya pasó pero finishedOn no. Esto es independiente del campo más detallado mission.status (planning | ready | active | completed | aborted) establecido en los formularios de creación/edición. La vista de lista usa la etiqueta derivada del timestamp para que operaciones programadas y no finalizadas no se muestren como “active” prematuramente.

Abrir una fila

Al hacer clic en cualquier parte de la fila se navega a /ops/{id}/live — la consola de operaciones en vivo. Para llegar a la página de detalle de planificación, usa el enlace Editar del menú kebab, o escribe /operations/{id} directamente. Las filas se pueden activar con el teclado usando Enter.

Acciones de fila

El botón kebab (tres puntos) abre un menú desplegable de posición fija. Los elementos aparecen según los permisos:

  • Iniciar — igual que hacer clic en la fila. Enruta a /ops/{id}/live.
  • Editar — requiere operations.edit. Abre el formulario de edición.
  • Duplicar — requiere operations.edit. Abre un pequeño diálogo pre-rellenado con {name} (Copia). Al confirmar, llama a POST /operations/{sourceId}/duplicate en el backend, que copia el documento de misión más cada subcolección (flags, polygons, comms, tasks, assetLocations, etc.), y luego navega directamente a la página de edición de la nueva operación.
  • Eliminar — requiere operations.delete. Usa un prompt nativo confirm(), luego llama a deleteDoc(missions/{id}) directamente en Firestore.

Crear una nueva operación

El botón Nueva operación en la cabecera de la página y en la tarjeta de acción del panel lateral enrutan a /operations/new — el asistente de creación. Cuando se crea una operación, el servicio dispara una notificación operation_created a cada miembro activo de la organización actual; la entrega es best-effort y se descarta silenciosamente si falla.

Estados vacíos y de carga

Una cuenta nueva ve un estado vacío con icono de más y un enlace Crea tu primera operación. Mientras Firestore carga, se animan cinco filas skeleton en la cuadrícula.

No implementado aún

Los siguientes elementos aparecen en el roadmap pero no están en la versión actual:

  • Barra de filtros por chip de estado, selector de rango de fechas, multi-select de equipos, búsqueda de texto libre.
  • Selección masiva, archivado y exportación CSV.
  • Eliminación lógica / ventana de restauración de 30 días — hoy es un deleteDoc definitivo.

Si ves capturas que hagan referencia a esos, considéralas aspiracionales.

Relacionados