Restore horizontal scrolling for the dashboard job table (regression of JENKINS-73695) - #27200
Draft
Anexus5919 wants to merge 1 commit into
Draft
Restore horizontal scrolling for the dashboard job table (regression of JENKINS-73695)#27200Anexus5919 wants to merge 1 commit into
Anexus5919 wants to merge 1 commit into
Conversation
Contributor
Author
|
This pull request is complete and tested. It is opened as a draft only because of the GitHub limit on open pull requests for contributors without write access. I will mark it "Ready for review" as soon as a slot frees. Reviews and feedback are very welcome in the meantime. 🙏🙏 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #27198
#26863 removed the
.app-project-status-table { width: 100%; overflow-x: auto; }rule (added by JENKINS-73695 / #9667) whilelib/hudson/projectView.jellystill wrapstable#projectstatusin that class, so the dashboard job table lost its horizontal scroll container. On current master a table wider than the page is simply clipped at the page frame with no way to reach the hidden columns.Investigating the fix showed that reinstating the deleted rule alone is NOT sufficient under the new layout, because there are two cooperating causes:
.pane-frame/.pane),.app-page-bodytakes itsoverflow-y: autobranch and.app-page-body__contentshas no overflow of its own. As a grid item it then keeps its defaultmin-width: auto, so a wide table inflates the1frgrid track itself past the viewport before any wrapper can act; the wrapper is laid out at the blown-out width andoverflow-x: autohas nothing to scroll. With the rule re-added and nothing else, the geometry is unchanged and the table is still clipped.This PR therefore makes two CSS-only additions in
src/main/scss/base/_layout-commons.scss:The
min-width: 0guard lets the contents track shrink to the available space so scroll containers inside it work; the reinstated rule restores the table's scroll container. No Jelly changes are needed, so every consumer oft:projectView(classic dashboard, experimental dashboard, the Computer and Label pages, folder views, and dashboard-view plugin portlets) inherits the fix.Notes for reviewers:
min-width: 0guard applies to all widget-bearing pages (job pages match the same:hasbranch through the Build History card). This is strictly no-worse: previously over-wide content inflated the track and was clipped unreachably; with the guard it either fits or scrolls inside its own container.Functions.breakableString(job names get a break opportunity before every punctuation character and inside every run over 20 characters), so a stock instance with default columns never overflows. The bug needs plugin-contributed list-view columns with unbreakable content (version strings, hashes, URLs), which is exactly the scenario of the original JENKINS-73695 reports, or narrow windows combined with extra columns..jenkins-table-wrapperclass that Prevent nodes table from overflowing the page in the new Manage Jenkins UI #27197 introduces.Testing done
stylelintandprettierpass on the changed file; the webpack production build compiles and the generated bundle contains both rules.mvn -am -pl war,bom -Pquick-build clean install,mvn -pl war jetty:run) with a reproduction matching the original JENKINS-73695 scenario: the extra-columns plugin's Description column added to the default view, and jobs whose description contains a 200-character unbreakable token:min-width: 0guard via their Build History sidebar) render normally.Video Reference of the fix (UI changes only)
Screen.Recording.2026-08-06.092142.mp4
Proposed changelog entries
Proposed changelog category
/label skip-changelog,web-ui
Proposed upgrade guidelines
N/A
Submitter checklist
@Restrictedor have@since TODOJavadocs, as appropriate.@Deprecated(since = "TODO")or@Deprecated(forRemoval = true, since = "TODO"), if applicable.evalto ease future introduction of Content Security Policy (CSP) directives (see documentation).Desired reviewers
@janfaracik
Before the changes are marked as
ready-for-merge:Maintainer checklist
upgrade-guide-neededlabel is set and there is a Proposed upgrade guidelines section in the pull request title (see example).lts-candidateto be considered.