7.0 KiB
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. Проблема (как видит пользователь)
- Пользователь открывает карту → жмёт кнопку «Рельеф» (иконка горы справа).
- Открывается панель слоёв (Подложка / Эндуро / Публичные треки / POI).
- Включает чекбокс «Публичные треки» → появляется ссылка «Фильтры…».
- Жмёт «Фильтры…» → ожидает увидеть панель фильтров.
- Факт: панель фильтров появляется снизу, но скрыта за панелью слоёв. На мобильном видна узкая левая полоска, на desktop — частично видно содержимое слева, основной блок недоступен.
- Кликнуть по чекбоксам/кнопкам фильтра нельзя — клики ловит панель слоёв.
Подтверждение: скриншот мобильного браузера в зоне Москвы, 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 обязателен. |