DEV: детализация блока «Требует внимания» - #333
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Основа и контракт
dev,964e30193b8a55f242e487c507ad80e4f8c8861d(PR DEV: add expert evaluation analytics drilldown #332).feature/dev-program-attention-drilldown-ui.2ac7b8d5e82a53ec584e16596d9e5b280024c88e.5b030625499efe94cfd67db9694c713eecf2539f.bc1fffb16071935cfce449e6c59202251cb860c6; GitHub Deploy Dev для этого SHA завершился успешно.Что реализовано
В существующую analytics-модалку добавлены два корневых представления:
/office/profile/:userId./office/projects/:projectId.Все три строки «Требует внимания» — единообразные кнопки. Нули остаются видимыми, но отключены; при всех нулях сохранено существующее спокойное состояние. Tooltip — отдельный соседний контрол, не открывающий модалку.
Сохранён pipeline domain → adapter → repository → use case → локальный facade → UI. Прямого HttpClient в компонентах нет. Общая ApiPagination переиспользована с локальным уточнением nullable next/previous; CamelcaseInterceptor не менялся, добавлен regression преобразования новых snake_case полей/null.
Серверный поиск, страницы и состояния
Семантика работ
Отмена запросов и SPA
Закрытие, другое root-open, поиск, переход страницы, смена программы и destroy отменяют active request через takeUntil/takeUntilDestroyed. Старый ответ не перезаписывает новые данные.
ProgramAnalyticsInfoService и его реактивный parent paramMap из #332 не изменялись. Integration regression использует настоящий сервис и observable params: 12 → 13 до resolver обнуляет public programId, закрывает модалку, отписывает Subject и очищает результаты; до и после Program(13) новый attention request не возникает без нового действия пользователя.
Доступность и responsive
Один существующий overlay, один dialog и один CDK trap для всех шести views. Сохранены attachment-only initial focus, Escape через overlay keydownEvents, единый close flow, возврат на конкретный connected trigger и bottom-up cleanup. При RouterLink-навигации trigger очищается перед закрытием.
На desktop — таблицы, mobile/tablet — stacked cards в той же структуре с переносом длинных значений. Поиск и пагинация используют wrap; ширина/вертикальный скролл ограничены существующим dialog. Фактическая визуальная проверка в браузере ограничена, см. ниже.
Проверки
npm run test:ci: 1243/1243, 348 файлов.npm run lint:ts: успешно, 0 ошибок / 6 предупреждений. Файлы этих предупреждений сопоставлены с exact base и не менялись; массовый autofix не включён в diff.npm run build:prod: успешно, включая production Angular/TypeScript compilation.git diff --check,git diff --cached --check, diff против origin/dev: успешно.tsc -p tsconfig.vitest.json --noEmitне является зелёным общим gate: остаются 11 диагностик в test fixtures (profile/project/tooltip, существующая overview fixture и старый HttpRequest в interceptor test). В новых attention/drilldown файлах диагностик нет. Этот запуск не подменяет успешные Vitest и production compiler.Ручной smoke — не отмечен как пройденный
Backend Deploy Dev для #725 успешен. Read-only GET обоих новых endpoint без авторизации вернул ожидаемый 401.
Полный manager API smoke, реальные строки/search/pagination, переходы профиля/проекта и визуальная desktop/mobile/keyboard проверка не выполнены: управляемый браузер блокирует локальное preview (
net::ERR_BLOCKED_BY_CLIENT). Component tests с реальным CDK Overlay проверяют lifecycle/focus/cancellation, но не заменяют браузерную визуальную/E2E проверку. Перед Ready требуется этот smoke в доступной manager-сессии DEV.Изменённые файлы
docs/modules/program.mdprojects/core/src/lib/interceptors/camelcase.interceptor.spec.tsprojects/social_platform/src/app/api/program/facades/detail/program-analytics-attention.service.spec.tsprojects/social_platform/src/app/api/program/facades/detail/program-analytics-drilldown.service.spec.tsprojects/social_platform/src/app/api/program/facades/detail/program-analytics-drilldown.service.tsprojects/social_platform/src/app/api/program/use-cases/get-program-manager-attention.use-case.spec.tsprojects/social_platform/src/app/api/program/use-cases/get-program-manager-participants-without-team.use-case.tsprojects/social_platform/src/app/api/program/use-cases/get-program-manager-projects-awaiting-evaluation.use-case.tsprojects/social_platform/src/app/domain/program/ports/program.repository.port.tsprojects/social_platform/src/app/domain/program/program-analytics-attention.fixture.tsprojects/social_platform/src/app/domain/program/program-analytics-attention.model.tsprojects/social_platform/src/app/infrastructure/adapters/program/program-http.adapter.tsprojects/social_platform/src/app/infrastructure/repository/program/program.repository.tsprojects/social_platform/src/app/ui/pages/program/detail/analytics/analytics.component.htmlprojects/social_platform/src/app/ui/pages/program/detail/analytics/analytics.component.spec.tsprojects/social_platform/src/app/ui/pages/program/detail/analytics/drilldown/analytics-attention-route.spec.tsprojects/social_platform/src/app/ui/pages/program/detail/analytics/drilldown/analytics-attention.component.spec.tsprojects/social_platform/src/app/ui/pages/program/detail/analytics/drilldown/analytics-drilldown.component.htmlprojects/social_platform/src/app/ui/pages/program/detail/analytics/drilldown/analytics-drilldown.component.scssprojects/social_platform/src/app/ui/pages/program/detail/analytics/drilldown/analytics-drilldown.component.spec.tsprojects/social_platform/src/app/ui/pages/program/detail/analytics/drilldown/analytics-drilldown.component.tsОграничения и scope
Не добавлены вуз/роль/кейс, contact/team actions, напоминания, несданные работы, новые графики или выгрузки. Документация frontend-модуля и JSDoc обновлены.
Backend, React, shared app-modal, dependencies, workflows, Docker не менялись. API контракт не расширялся. Merge и deploy не выполнялись. PR оставить Draft.