Saltearse al contenido

Tile de comms (PTT)

El tile de comms es la vista tabular de cada transmisión PTT en la misión. Complementa al widget flotante de PTT (desde donde transmites) y a la burbuja de transcripción (parciales en vivo) — este es el lugar donde revisas, reproduces y buscas por transcripción las comms pasadas.

Filas + columnas

Cada ráfaga PTT es una fila con estas columnas:

  • Emisor — chip de activo + nombre para mostrar + callsign.
  • Timestamp — hora local dd MMM HH:mm:ss.
  • Duraciónm:ss o Nm Ns (p. ej., “1m 30s”).
  • Vista previa de transcripción — primeros 60 caracteres de la transcripción, truncados con elipsis. Un spinner reemplaza el texto mientras la transcripción aún está en progreso.
  • Acciones — foco en el mapa (desplaza el mapa a la posición del emisor en el momento de la transmisión), un botón de play con progreso circular, chevron de expansión.

Paginada — 25 / 50 / 100 filas por página, controlada por el paginador estándar en la parte inferior.

Filtrado + búsqueda

Haz clic en el icono de búsqueda en el encabezado para revelar una caja de texto. El filtro coincide contra:

  • Texto de la transcripción.
  • Nombre + callsign del emisor.

El predicado del filtro es coincidencia de subcadena (sin distinguir mayúsculas). La tabla se re-renderiza instantáneamente mientras escribes.

Expandir una fila

Haz clic en cualquier fila (o en el chevron de expansión) para deslizar un panel de detalle debajo. Contenido:

  • Transcripción completa — sin truncar; se actualiza en vivo si aún está en progreso.
  • Chips de canal — cada canal en que se transmitió la ráfaga.
  • Barra de reproducción — reproductor de audio scrubeable con duración, tiempo actual, play/pause y jump-to-start. Haz clic en la barra scrubber para buscar.
  • Indicador de reproducido por — una pequeña lista de operadores que han reproducido esta grabación. Almacenado del lado del servidor para que “¿he escuchado esto?” sobreviva reinicios del navegador.

Reproducción

Haz clic en el botón de play con progreso circular en cualquier fila, o en el control de play en el detalle expandido. El audio se transmite desde S3 vía una URL presignada de corta duración (sin acceso directo a S3 para usuarios no autenticados).

  • Solo una fila reproduce a la vez — iniciar una fila nueva detiene la actual.
  • El badge de no reproducido en una fila desaparece una vez que la has reproducido hasta el final.

Borrar una grabación

Solo comandante — el botón de borrar solo se renderiza si tu rol es comandante o admin.

  1. Haz clic en el icono de papelera en la fila.
  2. Aparece un prompt de confirmación con un enfriamiento de 3 segundos (fricción deliberada para prevenir borrados accidentales).
  3. Haz clic en confirmar — el doc de Firestore se elimina y el blob de audio subyacente se recolecta de basura desde S3 de forma asíncrona.

El borrado es duro — sin deshacer, sin restaurar. Considera silenciar en su lugar si solo quieres dejar de ver una ráfaga.

Saltos a otros tiles

  • Foco en el mapa — desplaza el mapa a la posición mapeada del emisor en el momento de la transmisión.
  • Línea de tiempo — cada ráfaga PTT también es un evento comms en la línea de tiempo; salta desde allí si quieres la cronología cruzada de eventos.

Persistencia + retención

  • Firestore: missions/{missionId}/comms/{bustId} (o similar).
  • Audio: bucket S3 de la misión bajo un prefijo de comms.
  • Retenido según configuración de la org — típicamente 180 días para transcripciones, 90 para audio.

Limitaciones conocidas

  • Sin filtro de canal en el encabezado de la tabla — usa búsqueda para filtrado aproximado por nombre de canal si está en la transcripción.
  • Sin borrado masivo.
  • Sin exportación (CSV, texto de transcripción únicamente). Planificado.

Relacionado