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"