La UI de un vistazo
Todo lo que no sea /login, /invite y la consola de operación a pantalla completa se renderiza dentro del shell — un layout táctico con cuatro zonas persistentes.
Las cuatro zonas
1. Barra superior (.tac-topbar)
Anclada arriba, siempre visible.
- Botón de menú — hamburguesa en móvil, chevron en escritorio. Colapsa la navegación izquierda.
- Marca — logo de ARGUS + wordmark. Haz clic para volver a
/. - Título de la página — título traducido de la ruta actual (p. ej.
app.overview,app.operations), controlado desderoute.data.titlevía eventosActivationEnd. - Chip de estado del sistema —
ONLINE/OFFLINE. - Conmutador de tema — claro ↔ oscuro.
- Campana de notificaciones — insignia de no leídos, limitada a
99+. - Avatar + nombre + chip de indicativo — abre el desplegable de perfil (nombre de la organización, insignia de rol, Perfil, Ajustes, Acerca de, Ayuda, Cerrar sesión).
2. Navegación izquierda (.tac-sidebar)
Raíl colapsable. Recuerda su estado en localStorage bajo sar.sidebar.collapsed. En móvil (≤768px) se convierte en un drawer deslizante con cierre por gesto.
- MAIN — Resumen, Operaciones (con insignia de conteo en vivo), Mapping.
- TOOLS — Perfil, Ajustes, Equipos, Joystick Debug (solo escritorio; aparece cuando WebHID / WebSerial / Gamepad están presentes).
- ADMIN — solo para administradores.
/admin/org,/admin/users,/admin/assets,/admin/venues,/admin/dji,/admin/webhooks,/admin/workflows,/admin/roles,/admin/subscription. - SYSTEM — Acerca de, Ayuda.
Cada elemento se filtra por PermissionService — si no puedes ver Operaciones, el enlace no se renderiza en absoluto.
3. Área de contenido derecha (.tac-content)
<router-outlet>. Todo lo que cuelga de la ruta del shell aterriza aquí. La Consola de Operación (/ops/:id/live) es una ruta de nivel superior aparte que reemplaza el shell con una cuadrícula de tiles a pantalla completa.
4. Overlays flotantes
- FAB de ayuda (
<app-help-fab>) — abajo a la derecha. Popover con centro de ayuda, atajos y FAQ. - Overlay de tour (
<app-tour-overlay>) — foco guiado. - Panel de notificaciones y desplegable de perfil se montan cerca de la barra superior con fondos (backdrops).
Rutas clave
| URL | Qué es |
|---|---|
/ | Dashboard — tu pantalla de inicio |
/operations | La lista de operaciones a las que tienes acceso |
/operations/new | Asistente de creación de operación |
/operations/:id | Detalle de misión |
/operations/:id/edit | Editar (solo propietario / admin) |
/ops/:id/live | Consola de Operación — vista en vivo a pantalla completa |
/teams | Equipos a los que perteneces |
/mapping | Mapping — fotogrametría ODM |
/profile | Tu perfil |
/settings | Tema, audio, entrada |
/admin/org | Gestión de organización (admin+) |
/admin/users | Usuarios + invitaciones (manager+) |
/admin/assets | Inventario de activos (admin+) |
/admin/venues | Sedes / sitios interiores (admin / venue_creator) |
/admin/dji | Docks DJI (admin+) |
/admin/webhooks | Webhooks (admin+) |
/admin/workflows | Workflows (admin+) |
/admin/roles | Roles personalizados (solo superadmin) |
/admin/subscription | Plan + facturación (solo superadmin) |
/help | Centro de ayuda dentro de la app |
/about | Información de compilación |
La ruta heredada /missions redirige a /operations por compatibilidad.
Temas
Hoy: claro y oscuro (theme-light / theme-dark en <html>, conmutados por ThemeService, persistidos bajo sar.theme). El predeterminado es oscuro. Una tercera variante táctica para puestos de mando nocturnos es aspiracional — el servicio hoy es un conmutador de dos estados. Cambia desde el icono de tema de la barra superior o Ajustes → Tema.
Atajos de teclado
Lista completa: Atajos de teclado. Esenciales del shell:
- Esc — cerrar desplegable de perfil / panel de notificaciones (conectado en el shell vía
@HostListener('document:keydown.escape')). - Alt+1 — Dashboard.
- Alt+2 — Operaciones.
- Alt+H — Ayuda.
- ? — overlay de atajos.
- / — enfocar búsqueda global.
/, ? y Alt+N están documentados en la referencia de atajos pero dependen de su binding por superficie — aspiracionales a nivel de shell hasta que se despliegue un servicio de atajos globales. Dentro de la Consola de Operación, el conjunto completo de control de vuelo (Space hover, T takeoff, L land, M PTT) está activo.
Idioma
Inglés + español. I18nService elige: preferencia guardada (sar.lang) → navegador → inglés. Cambia desde Ajustes → Perfil o el menú del avatar.
Comportamiento offline
El chip de estado cambia a OFFLINE en navigator.onLine + desconexión de Firestore.
- Las lecturas continúan desde la caché local de Firestore para cualquier cosa ya cargada.
- Las escrituras (ediciones de misión, chat, flags) quedan encoladas por el SDK de Firestore y se envían al reconectar.
- La Consola de Operación requiere TACLINK en vivo; al desconectarse muestra una banda y reintenta automáticamente — ver conexión TACLINK.