@if (workState$ | async; as state) { @switch (state.status) { @case ('loading') {
} @case ('error') {

Не удалось загрузить работу.

} @case ('ok') {

Работа #{{ workId() }}

@switch (activeTabIndex()) { @case (0) {

Сведения о работе

Идентификатор
{{ state.work.id }}
Студент
{{ (studentName$ | async) ?? '#' + state.work.student_id }}
Мероприятие
{{ (eventName$ | async) ?? '#' + state.work.event_id }}
Время
{{ formatDateTime(state.work.time) }}
Архив
@if (state.work.archive_object_key) { {{ state.work.archive_object_key }} } @else { не загружен }
@if (summaryState$ | async; as summaryState) { @if (summaryState.status === 'ok') {

Сводка

Уровень риска {{ summaryState.summary.presentation_summary?.risk_level | riskLevel }}
Индекс доверия {{ summaryState.summary.presentation_summary?.trust_score ?? '—' }}
Доля заимствований {{ summaryState.summary.presentation_summary?.plagiarism_rate ?? '—' }}
Совпадений {{ summaryState.summary.presentation_summary?.counterparts_count ?? 0 }}
} } } @case (1) {

Загрузка архива и запуск проверки

@if (isPolling()) {

Опрос статуса запущен...

} @if (latestRun(); as run) {

Текущий статус: {{ run.status | analysisRunStatus }}

}
} @case (2) {

Запуски проверки

@if (runsState$ | async; as runsState) { @switch (runsState.status) { @case ('loading') {
} @case ('error') {} @case ('ok') { @if (runsState.runs.length === 0) {

Проверки пока не запускались.

} @else {
@for (run of runsState.runs; track run.id) { }
ID Статус Обновлено Длительность
#{{ run.id }} {{ run.status | analysisRunStatus }} {{ formatDateTime(run.updated_at) }} {{ getRunDuration(run) || '—' }} @if (run.status === 'Failed' || run.status === 'Completed') { }
} } } }

Совпадения выбранного запуска

@if (adoptionsState$ | async; as adoptState) { @switch (adoptState.status) { @case ('idle') {

Выберите run.

} @case ('loading') {
} @case ('error') {} @case ('ok') {

Всего совпадений: {{ adoptState.adoptions.length }}

@if (adoptState.adoptions.length > 0) {
@for (adoption of adoptState.adoptions; track adoption.id) {
ID
{{ adoption.id }}
Путь
{{ adoption.path ?? '—' }}
Схожесть
{{ adoption.similarity_score ?? '—' }}
@if (adoption.segment_excerpt) {

{{ adoption.segment_excerpt }}

}
}
} } } }
} @case (3) {
@if (summaryState$ | async; as ss) { @if (ss.status === 'ok') { } @else if (ss.status === 'loading') {
} }
} @case (4) {
} } } } }