From a514cba94ff0bfd93d36697623eb3ba316648bc4 Mon Sep 17 00:00:00 2001 From: Ahsan Javaid Date: Tue, 15 Sep 2026 11:36:22 +0200 Subject: [PATCH] fix dropdown checkbox column bug --- solvronix_desk/hooks.py | 2 +- solvronix_desk/public/css/solvronix_desk.css | 17 +++++++++++++++-- tests/test_workspace_editorjs_popover_css.py | 2 +- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/solvronix_desk/hooks.py b/solvronix_desk/hooks.py index 3931282..1595efd 100644 --- a/solvronix_desk/hooks.py +++ b/solvronix_desk/hooks.py @@ -18,7 +18,7 @@ # ── AUTHENTICATED DESK ASSETS ────────────────────────────────────────────────── # Query versions are bumped whenever an asset changes to invalidate browser cache. app_include_css = [ - "/assets/solvronix_desk/css/solvronix_desk.css?v=58", + "/assets/solvronix_desk/css/solvronix_desk.css?v=59", "/assets/solvronix_desk/css/sidebar.css?v=31", "/assets/solvronix_desk/css/command_palette.css?v=4", "/assets/solvronix_desk/css/smart_home.css?v=7", diff --git a/solvronix_desk/public/css/solvronix_desk.css b/solvronix_desk/public/css/solvronix_desk.css index b2d1aa5..cff6942 100644 --- a/solvronix_desk/public/css/solvronix_desk.css +++ b/solvronix_desk/public/css/solvronix_desk.css @@ -1429,8 +1429,21 @@ html[data-theme="dark"] #st-powered-by { color: var(--st-text, #1A1A2E); } -/* ── MISC UI POLISH ─────────────────────────────────────────────────────────── */ - +/* Link-field dropdown (awesomplete) must paint above the DataTable's sticky + checkbox column. Frappe core (.awesomplete > [role="listbox"]) and the + bundled frappe-datatable library's sticky top-left corner cell + (.dt-cell--sticky-top, the "select all" checkbox) both independently use + z-index: 4 — an exact tie. On any report where a Link filter sits directly + above the grid (e.g. the Bull filter on Bull Performance Report), the + dropdown's on-screen position overlaps that sticky cell, and with a tied + z-index the browser falls back to DOM order, so the checkbox bleeds + through the dropdown inconsistently. 20 is chosen to sit comfortably above + frappe-datatable's own highest z-index (.dt-dropdown__list: 10, its column + header menu), while staying well below this theme's modal/toolbar layers + (1040–1200), so it never covers something it shouldn't. */ +.awesomplete > [role="listbox"] { + z-index: 20 !important; +} /* Dropdown menus — z-index above our toolbar (1060) so they're never hidden by it */ .dropdown-menu, .frappe-menu { diff --git a/tests/test_workspace_editorjs_popover_css.py b/tests/test_workspace_editorjs_popover_css.py index 032e64b..768edb9 100644 --- a/tests/test_workspace_editorjs_popover_css.py +++ b/tests/test_workspace_editorjs_popover_css.py @@ -39,7 +39,7 @@ def test_block_with_open_editorjs_popover_is_promoted_before_focus(self): def test_workspace_css_cache_is_bumped(self): hooks = HOOKS.read_text(encoding="utf-8") - self.assertIn("/assets/solvronix_desk/css/solvronix_desk.css?v=58", hooks) + self.assertIn("/assets/solvronix_desk/css/solvronix_desk.css?v=59", hooks) self.assertIn("/assets/solvronix_desk/js/solvronix_desk.js?v=63", hooks)