From afeed5b67e4cda421f73ac29b6d93308154a485e Mon Sep 17 00:00:00 2001 From: MpakobecEx Date: Mon, 26 Oct 2026 02:32:01 +0500 Subject: [PATCH] =?UTF-8?q?=D0=9E=D1=82=D0=BA=D1=80=D1=8B=D1=82=D0=B0?= =?UTF-8?q?=D1=8F=20=D0=B3=D1=80=D1=83=D0=BF=D0=BF=D0=B0=20=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D1=8E=20=D0=B7=D0=B0=D0=BA=D1=80=D1=8B=D0=B2=D0=B0=D0=B5?= =?UTF-8?q?=D1=82=20=D1=81=D0=BE=D1=81=D0=B5=D0=B4=D0=BD=D1=8E=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit При наведении или клике на «Сообщения»/«Пользователи» остальные группы теперь закрываются сразу, поэтому два списка не висят одновременно. Клик вне меню по-прежнему закрывает всё. --- README.md | 2 +- admin/templates/base.html | 30 ++++++++++++++++++++++-------- common/version.py | 2 +- tests/test_version.py | 2 +- 4 files changed, 25 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 35ae2bf..5256fe1 100644 --- a/README.md +++ b/README.md @@ -171,7 +171,7 @@ make backup E=test # на домашнем сервере: ./scripts/clickho ## Версионирование -- Единый источник версии — `common/version.py` (`__version__`), текущая — `0.6.6`. +- Единый источник версии — `common/version.py` (`__version__`), текущая — `0.6.7`. - Схема — SemVer-подобная (`MAJOR.MINOR.PATCH`); git-тег = `v` + версия (`v0.1`). - Docker-образы тегируются версией (Блок 2), события ClickHouse получают `bot_version` (Блок 3). - Выпуск: изменить `common/version.py` → коммит → аннотированный тег `vX.Y` → `git push --tags`. diff --git a/admin/templates/base.html b/admin/templates/base.html index 320a7a7..e65bb4b 100644 --- a/admin/templates/base.html +++ b/admin/templates/base.html @@ -98,6 +98,23 @@ } var groups = document.querySelectorAll("[data-group]"); + + function hideGroup(group) { + var dropdown = group.querySelector("[data-group-dropdown]"); + var toggle = group.querySelector("[data-group-toggle]"); + if (dropdown) { + dropdown.classList.add("hidden"); + dropdown.classList.remove("flex"); + } + if (toggle) toggle.setAttribute("aria-expanded", "false"); + } + + function hideOthers(current) { + groups.forEach(function (group) { + if (group !== current) hideGroup(group); + }); + } + groups.forEach(function (group) { var toggle = group.querySelector("[data-group-toggle]"); var dropdown = group.querySelector("[data-group-dropdown]"); @@ -114,12 +131,15 @@ toggle.addEventListener("click", function (event) { event.stopPropagation(); if (closeTimer) clearTimeout(closeTimer); - setOpen(dropdown.classList.contains("hidden")); + var willOpen = dropdown.classList.contains("hidden"); + if (willOpen) hideOthers(group); + setOpen(willOpen); }); if (window.matchMedia("(min-width: 640px)").matches) { group.addEventListener("mouseenter", function () { if (closeTimer) clearTimeout(closeTimer); + hideOthers(group); setOpen(true); }); group.addEventListener("mouseleave", function () { @@ -130,13 +150,7 @@ }); document.addEventListener("click", function () { - groups.forEach(function (group) { - var dropdown = group.querySelector("[data-group-dropdown]"); - if (dropdown) { - dropdown.classList.add("hidden"); - dropdown.classList.remove("flex"); - } - }); + groups.forEach(hideGroup); }); var tags = { diff --git a/common/version.py b/common/version.py index 45ae06b..cf906d2 100644 --- a/common/version.py +++ b/common/version.py @@ -7,4 +7,4 @@ from __future__ import annotations -__version__ = "0.6.6" +__version__ = "0.6.7" diff --git a/tests/test_version.py b/tests/test_version.py index 6d2e7ea..9d0620d 100644 --- a/tests/test_version.py +++ b/tests/test_version.py @@ -7,4 +7,4 @@ from common import __version__ def test_version_is_set(): assert __version__ - assert __version__ == "0.6.6" + assert __version__ == "0.6.7"