Skip to content

Fix Impersonate Roles dialog rendering with a hugely oversized column - #7901

Open
labkey-tchad wants to merge 1 commit into
developfrom
fb_impersonate_roles_grid_width
Open

Fix Impersonate Roles dialog rendering with a hugely oversized column#7901
labkey-tchad wants to merge 1 commit into
developfrom
fb_impersonate_roles_grid_width

Conversation

@labkey-tchad

@labkey-tchad labkey-tchad commented Jul 31, 2026

Copy link
Copy Markdown
Member

Rationale

The "Impersonate Roles" dialog intermittently rendered with its role grid massively oversized (column width in the tens of thousands of pixels), spilling the dialog content far outside its window frame. This was traced to a race in ExtJS 4's box layout: the grid's single flex: 1 column can be laid out before the containing Ext.window.Window has a final, resolved width, leaving the column stuck at ExtJS's internal 20000px measurement placeholder (Ext.layout.container.Box.beginLayoutCycle) instead of being corrected to the real width. This is more likely to reproduce under CI timing than in normal local use.

image

Related Pull Requests

None

Changes

  • core/webapp/Impersonate.js: added a show listener on the ImpersonateRoles window that forces the role grid to relayout once the window is fully shown, so the flex column recalculates against the window's actual final width.

The role grid's single flex column could be laid out before the containing window had a final, on-screen width, leaving the column (and its header) stuck at ExtJS's internal 20000px box-layout measurement placeholder instead of the real rendered width, which pushed the dialog's contents far outside the window frame.
Force the grid to relayout once the window's `show` event fires, guaranteeing the flex column recalculates against the window's actual, final size.
@labkey-tchad labkey-tchad self-assigned this Jul 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant