VCST-5276: Fix Export data-selector toolbar overlapping the grid header#101
Conversation
Hand-rolled inline position:absolute styles collapsed the .blade-static toolbar height, letting it overlap the grid <thead>. Adopt the platform searchrow/column-half flex convention (as Pricing/Contract blades) so the toolbar reserves its own height. Co-Authored-By: Claude <noreply@anthropic.com>
… filter edit (VCST-5276) The prior commit left the clear button offset (inline right:45px) and the pencil on non-canonical classes. Align fully to the contract/pricing searchrow reference: plain .btn clear with the export reset ng-click, .filter-edit pencil, and drop the __search modifier. Co-Authored-By: Claude <noreply@anthropic.com>
…op toolbar shift (VCST-5276) The searchrow flex row included the restrictDataSelectivity warning block, so when the warning shows (Catalog/restrictDataSelectivity) it shared the row and squeezed the search/filter controls to the right. Move the warning to its own row above the toolbar. Co-Authored-By: Claude <noreply@anthropic.com>
…avoid empty toolbar gap (VCST-5276) Co-Authored-By: Claude <noreply@anthropic.com>
…blades (VCST-5276) The legacy ng-style set a fixed height:140px only when restrictDataSelectivity was true, constraining the container so the warning + searchrow toolbar overflowed onto the grid. Remove the ng-style height so .blade-static auto-sizes, matching the Contract/Pricing filter blades. Co-Authored-By: Claude <noreply@anthropic.com>
…ector toolbar (VCST-5276) The searchrow refactor dropped two affordances the original toolbar had: the search input lost the `__search` class (the right-padding that makes room for the clear button) and the clear button lost its X icon (it became an empty <button>). Restore `form-input __search` + `btn __other` with `<i class="btn-ico fa fa-remove">` to match the platform's canonical search-box convention (vc-module-pricing / admin-spa UI conventions). Layout markup only — no behavior, binding, or contract change. Verified via render harness against live platform.css (clear-X renders in the padded search box; searchrow stays above the grid header). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…data-selector toolbar (VCST-5276)" This reverts commit 5f2c3b7.
…nder harness (#54) ## Why [vc-module-export PR #101](VirtoCommerce/vc-module-export#101) took **5 commits + a dismissed review** to fix one Admin SPA toolbar-overlap bug. The `/qa-fix` Admin UI path had two gaps: 1. **Knowledge** — `/angular-admin` had zero documentation of the platform's Admin SPA layout classes, so the agent invented layout with inline `position:absolute` + fixed pixels and discovered the real conventions (`searchrow`/`column-half`/`filter-edit`, `blade-static` auto-sizing) by trial-and-error. 2. **Verification** — the Node scratch harness can't render CSS and the dev team has no browser, so layout/CSS was "trivial-skip, confirm after deploy" — nothing caught wrong styles until post-deploy. ## What **New `/angular-admin` files** - `admin-spa-ui-conventions.md` — element-by-element catalog of platform UI classes (blades & sizing, search, filters, `va-filter-panel`, dropdowns, form inputs, buttons, `ui-grid`, `vc-checkbox`, dialogs, lists) grounded in `vc-platform` source, with a *mirror-a-canonical-sibling-blade* discovery recipe. (No Storybook exists for the Admin SPA — this is the substitute style guide.) - `css-layout-patterns.md` — before/after fix recipes. - `visual-render-harness.md` — renders the **real** blade against the **real** `platform.css` and proves the fix **red→green in a browser before the PR opens** (qa-backend-expert + `playwright-edge` interactively; Bash + Playwright headlessly in CI). **Wired into the flow** - `SKILL.md` / `angular-patterns.md` — new Layout/CSS path; replaced the trivial-skip / "human-Storybook confirmation" language. - `quality-gates.md` — G2 (render red), G3/G4 (browser green pre-PR + reject inline `position`/fixed-px/`ng-style`), G6 (final post-deploy confirmation). - `fullstack-backend.md`, `backend-reviewer.md` (Gate-4 anti-pattern check), `qa-backend-expert.md` (render-harness verification), `vc-module-architecture.md`, `skills-commands.md`. - CI twins: `ci/agents/fix-backend-agent.md` (+ Admin SPA UI section, Bash+Playwright render), `ci/agents/fix-triage-agent.md` (layout/CSS is GO). ## Net effect Admin SPA layout/CSS bugs are fixed in **one structural pass** (mirror the platform pattern) and **visually proven before the PR** — no more public commit thrash, no "deploy and see." 🤖 Generated with [Claude Code](https://claude.com/claude-code)
… (VCST-5276) The "Select data to export" picker stacked the Important! note and the search/filter searchrow inside the fixed-height (70px) blade-static. With restrictDataSelectivity=true the note made the searchrow overflow ~65px onto the ui-grid header (measured live). PR #101 removed the absolute-positioning hacks but deleted the height reservation, leaving the overflow. Relocate the note into blade-content above the grid so blade-static holds only the single-row searchrow (fits 70px). Matches the canonical pricelist-list sibling; no inline position/fixed-px/ng-style. Live geometry: overlap 65px -> 0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Updated fix — note relocated out of
|



Summary
The generic Export "Select data to export" blade toolbar overlapped the grid
<thead>. The toolbar was hand-rolled with inlineposition:absolute, which collapsed the.blade-statictoolbar height and let the absolutely-positioned controls render on top of the grid header row. This fix adopts the platformsearchrow/column-halfflex convention already used by the Pricing and Contract pricelist-select blades, so the toolbar occupies normal-flow height and the grid header sits below it. Fixes VCST-5276.Root cause
The data-selector toolbar markup used inline
position:absoluteinstead of the standard.searchrowflex layout, so it had zero layout height and overlapped the grid<thead>.Fix
Single file:

src/VirtoCommerce.ExportModule.Web/Scripts/blades/export-generic-viewer.tpl.html(11 insertions / 11 deletions). Replaced the bespoke absolute-positioned toolbar with the platformsearchrow+column-halfflex convention used by the Pricing/Contract pricelist-select blades. Minimal diff; no behavior, binding, or contract change — layout markup only.Test (red → green)
Module Admin UI has no in-repo JS test harness, so red→green was proven via an uncommitted Node scratch harness in
.fix-workspace/_scratch/: rendering the old template produced an overlapping toolbar (toolbar bottom edge below the grid<thead>top — red); the fixed template lays the toolbar above the grid header in normal flow (green). Evidence captured during the fix run.Verification
Links
DO NOT MERGE until human review. Opened by the QA auto-fix pipeline; human review + deploy/visual verification required before merge — do not auto-merge.
🤖 Generated with Claude Code
Artifact URL:
https://vc3prerelease.blob.core.windows.net/packages/VirtoCommerce.Export_3.1002.0-pr-101-416c.zip