fix: dismiss hovered council tooltips with Escape
This commit is contained in:
1 parent
e08c30848f
commit
a7de80de3b
6 files changed
+23
-9
No files matched your search
@@ -91,12 +91,16 @@
|
||||
button.addEventListener('focus', () => show(true));
|
||||
button.addEventListener('blur', () => { pinned = false; show(false); });
|
||||
button.addEventListener('click', () => { pinned = !pinned; show(pinned); });
|
||||
button.addEventListener('keydown', event => {
|
||||
if (event.key === 'Escape') { pinned = false; show(false); }
|
||||
});
|
||||
warning.addEventListener('council-tooltip-close', () => { pinned = false; show(false); });
|
||||
});
|
||||
}
|
||||
setupArticles(document);
|
||||
document.addEventListener('keydown', event => {
|
||||
if (event.key !== 'Escape') return;
|
||||
document.querySelectorAll('[data-warning] button[aria-expanded="true"]').forEach(button => {
|
||||
button.closest('[data-warning]').dispatchEvent(new Event('council-tooltip-close'));
|
||||
});
|
||||
});
|
||||
|
||||
async function loadArticles(details) {
|
||||
if (details.dataset.loaded || details.dataset.loading) return;
|
||||
|
||||
+3
-3
@@ -1,3 +1,3 @@
|
||||
APP_VERSION = "1.1.0"
|
||||
FRONTEND_VERSION = "1.1.0"
|
||||
BACKEND_VERSION = "1.1.0"
|
||||
APP_VERSION = "1.1.1"
|
||||
FRONTEND_VERSION = "1.1.1"
|
||||
BACKEND_VERSION = "1.1.1"
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
[project]
|
||||
name = "miem-workers"
|
||||
version = "1.1.0"
|
||||
version = "1.1.1"
|
||||
description = "MIEM employees parser, admin API, and web admin"
|
||||
requires-python = ">=3.11"
|
||||
dependencies = [
|
||||
|
||||
@@ -111,6 +111,16 @@ def main():
|
||||
summary.click()
|
||||
assert requests['articles'] == before
|
||||
warning = page.get_by_role('button', name='Уточнение: тип материала').first
|
||||
summary.focus()
|
||||
warning.hover()
|
||||
expect(summary).to_be_focused()
|
||||
expect(page.get_by_role('tooltip')).to_be_visible()
|
||||
page.keyboard.press('Escape')
|
||||
expect(page.get_by_role('tooltip')).to_have_count(0)
|
||||
expect(warning).to_have_attribute('aria-expanded', 'false')
|
||||
assert warning.evaluate("button => button.matches(':hover')")
|
||||
expect(summary).to_be_focused()
|
||||
page.mouse.move(5, 5)
|
||||
warning.hover()
|
||||
expect(page.get_by_role('tooltip')).to_be_visible()
|
||||
expect(page.get_by_role('tooltip')).to_contain_text('тип материала')
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ def test_health_returns_versions():
|
||||
response = TestClient(app).get("/api/health")
|
||||
|
||||
assert response.status_code == 200
|
||||
assert response.json()["backend_version"] == "1.1.0"
|
||||
assert response.json()["backend_version"] == "1.1.1"
|
||||
|
||||
|
||||
def test_api_employees_and_stats_require_admin_session():
|
||||
|
||||
@@ -223,7 +223,7 @@ def test_public_page_data_minimization_and_safe_links(db_session, export):
|
||||
assert "javascript:" not in fragment.text and "private@example.org" not in fragment.text
|
||||
assert "javascript:" not in response.text and "private@example.org" not in response.text
|
||||
assert "/admin/employees/" not in response.text and "/admin/logout" not in response.text
|
||||
assert "Backend 1.1.0 · Frontend 1.1.0" in response.text
|
||||
assert "Backend 1.1.1 · Frontend 1.1.1" in response.text
|
||||
assert "Вход в админку" in response.text
|
||||
assert client.get("/admin/directory", follow_redirects=False).status_code in (302, 303, 401, 403)
|
||||
assert "Сотрудники не найдены" in client.get("/admin/council?q=missing").text
|
||||
|
||||
Reference in new issue
Block a user