93 lines
7.0 KiB
Markdown
93 lines
7.0 KiB
Markdown
# BRD — ET-014: Панель «Фильтры» открывается позади панели слоёв (z-index)
|
||
|
||
**Work Item:** ET-014
|
||
**Тип:** Bug / UX-fix
|
||
**Фаза:** PH-5 Redesign (затрагивает PH-8 / ET-008 — публичные GPS-треки)
|
||
**Приоритет:** High (блокирует функциональность фильтров публичных треков)
|
||
**Среды:** dev, test (https://openclaw.mva154.duckdns.org/enduro/)
|
||
|
||
---
|
||
|
||
## 1. Бизнес-контекст
|
||
|
||
В рамках PH-8 / ET-008 реализованы публичные GPS-треки с фильтрами по
|
||
активности, источнику и цвету линий. Доступ к фильтрам — через ссылку
|
||
«Фильтры…» внутри панели слоёв (terrain-popup, кнопка-гора справа).
|
||
|
||
Сейчас на устройствах в реальной эксплуатации (mobile, viewport ~360–414 px,
|
||
а также desktop) панель «Фильтры публичных треков» (`#sheet-gps-filters`)
|
||
открывается **позади** панели слоёв (`#terrain-popup`). Пользователь видит
|
||
только левую кромку sheet'а — основная часть с чекбоксами и сегментными
|
||
переключателями полностью перекрыта панелью слоёв.
|
||
|
||
В итоге **фильтрами публичных треков пользоваться невозможно**, хотя они
|
||
заявлены как готовая функция.
|
||
|
||
## 2. Проблема (как видит пользователь)
|
||
|
||
1. Пользователь открывает карту → жмёт кнопку «Рельеф» (иконка горы справа).
|
||
2. Открывается панель слоёв (Подложка / Эндуро / Публичные треки / POI).
|
||
3. Включает чекбокс «Публичные треки» → появляется ссылка «Фильтры…».
|
||
4. Жмёт «Фильтры…» → ожидает увидеть панель фильтров.
|
||
5. **Факт:** панель фильтров появляется снизу, но **скрыта за** панелью
|
||
слоёв. На мобильном видна узкая левая полоска, на desktop — частично
|
||
видно содержимое слева, основной блок недоступен.
|
||
6. Кликнуть по чекбоксам/кнопкам фильтра нельзя — клики ловит панель слоёв.
|
||
|
||
Подтверждение: скриншот мобильного браузера в зоне Москвы, zoom 12.
|
||
|
||
## 3. Бизнес-цель
|
||
|
||
Сделать фильтры публичных треков **реально доступными** для пользователя
|
||
с обеих сред (мобильной и десктопной), без визуальных артефактов при
|
||
открытии и закрытии.
|
||
|
||
## 4. Бизнес-требования
|
||
|
||
| ID | Требование |
|
||
|-------|------------|
|
||
| BR-01 | При нажатии «Фильтры…» панель фильтров должна быть полностью видна и интерактивна на mobile и desktop. |
|
||
| BR-02 | Панель слоёв (terrain-popup) не должна визуально перекрывать панель фильтров. |
|
||
| BR-03 | Закрытие фильтров (кнопкой «✕», свайпом или кликом по backdrop на mobile) возвращает пользователя к карте без артефактов наложения. |
|
||
| BR-04 | Поведение остальных bottom-sheets (маршрут, разведка, связка, красивый, GPX) **не должно регрессировать**. |
|
||
| BR-05 | Поведение `terrain-popup` для остальных кейсов (открытие/закрытие, чекбоксы рельефа, переключатели подложки/единиц) **не должно регрессировать**. |
|
||
| BR-06 | Решение должно одинаково работать в светлой и тёмной теме. |
|
||
|
||
## 5. Не входит в scope
|
||
|
||
- Редизайн панели слоёв или панели фильтров.
|
||
- Изменение состава фильтров или логики `gps_tracks.js`.
|
||
- Изменение позиционирования `terrain-popup` относительно кнопки «Рельеф».
|
||
- Добавление новых способов открытия фильтров (например, отдельной кнопки
|
||
на toolbar).
|
||
|
||
## 6. Стейкхолдеры
|
||
|
||
- Owner / PM проекта enduro-trails — приёмка.
|
||
- Конечные пользователи (райдеры) — пользуются фильтрами публичных треков
|
||
с мобильных устройств.
|
||
|
||
## 7. Метрики успеха
|
||
|
||
- Ручная проверка на mobile (viewport 360–414) и desktop (≥1024) — фильтры
|
||
открываются полностью видимыми и кликабельными.
|
||
- UI e2e тест-кейсы из 04b-ui-test-cases.md проходят на обеих средах.
|
||
- Сценарий «открыть слои → включить публичные треки → открыть фильтры →
|
||
изменить активность → закрыть» выполняется без визуальных дефектов.
|
||
|
||
## 8. Допущения
|
||
|
||
- Используется текущая HTML-структура: `#terrain-popup` (position:fixed,
|
||
z-index:500) и `#sheet-gps-filters` (`.bottom-sheet`, z-index:400),
|
||
`#sheet-backdrop` (z-index:390).
|
||
- Открытие фильтров инициируется только из `togglePublicTracksFiltersSheet()`
|
||
(gps_tracks.js); других точек входа сейчас нет.
|
||
|
||
## 9. Риски
|
||
|
||
| ID | Риск | Митигация |
|
||
|-----|------|-----------|
|
||
| R1 | Изменение z-index может задеть другие оверлеи (marker-dialog z=500, search-panel/ruler-info z=600). | В тест-плане отдельно проверить эти оверлеи. |
|
||
| R2 | Закрытие terrain-popup при открытии фильтров может удивить пользователя — потеряет состояние «панель слоёв открыта». | Допустимо: панель слоёв — точка входа в фильтры, после закрытия фильтров пользователь возвращается к карте, а не к панели слоёв. Решение архитектора. |
|
||
| R3 | На desktop sheet-backdrop скрыт (`display:none` в media-query); если решение опирается на backdrop — нужна проверка desktop отдельно. | Тест-кейс на desktop обязателен. |
|