# 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 обязателен. |