@if (vm$ | async; as state) {
@switch (state.status) {
@case ('loading') {
}
@case ('error') {
Не удалось загрузить сессию.
}
@case ('ok') {
Сессия {{ state.id }}
@if (telemetry$ | async; as telemetryState) {
@if (activeTabIndex() === 0) {
@if (state.detail.session.title) {
{{ state.detail.session.title }}
}
{{ state.detail.session.status | sessionStatus }}
Начало: {{ formatDate(state.detail.session.started_at) }} · Окончание:
{{ formatDate(state.detail.session.ended_at) }}
Трансляция
@if (state.detail.streams.length === 0) {
Потоки ещё не готовы.
} @else {
@for (s of state.detail.streams; track s.stream_type) {
}
@if (playlistUrl(state.detail); as src) {
}
}
События телеметрии ({{ filteredTelemetryEvents(telemetryState.telemetry).length }})
@if (telemetryState.status === 'loading') {
} @else if (telemetryState.status === 'error') {
События телеметрии временно недоступны.
} @else {
@if (telemetryState.telemetry.length === 0) {
Событий пока нет.
} @else {
@for (t of uniqueTelemetryEventTypes(telemetryState.telemetry); track t) {
}
@if (filteredTelemetryEvents(telemetryState.telemetry).length === 0) {
Нет событий выбранного типа.
} @else {
| Время |
Тип |
Payload |
@for (
row of filteredTelemetryEvents(telemetryState.telemetry);
track row.timestamp + '-' + row.event_type + '-' + $index;
let i = $index
) {
| {{ formatUnixMs(row.timestamp) }} |
{{ row.event_type || '—' }} |
{{ eventDataPreview(row) }} |
@if (isTelemetryRowExpanded(row, i)) {
|
|
}
}
}
}
}
}
@if (activeTabIndex() === 1) {
Сессия
- Идентификатор
- {{ state.detail.session.id }}
- ID пользователя
- {{ state.detail.session.user_id ?? '—' }}
- Статус
{{ state.detail.session.status }}
- Начало
{{ state.detail.session.started_at ?? '—' }}
- Окончание
{{ state.detail.session.ended_at ?? '—' }}
- Всего чанков
- {{ state.detail.session.chunks_total ?? '—' }}
- Всего событий
- {{ state.detail.session.events_total ?? '—' }}
- Название
- {{ state.detail.session.title ?? '—' }}
Потоки
@if (state.detail.streams.length === 0) {
Нет записей о потоках.
} @else {
}
Запрос событий
- От (мс)
{{ telemetryState.fromMs }}
- До (мс)
{{ telemetryState.toMs }}
- ID сессии
-
@if (telemetryState.parsedMeta) {
{{ telemetryState.parsedMeta.session_id }}
} @else {
—
}
- Количество
-
@if (telemetryState.parsedMeta) {
{{ telemetryState.parsedMeta.count }}
} @else {
—
}
- Строк в выборке
- {{ telemetryState.telemetry.length }}
- Статус загрузки
{{ telemetryState.status }}
Исходный JSON
{{ detailPayloadJson(state.detail) }}
}
}
}
}
}