Skip to content

Add experimental Manage Jenkins layout#11222

Merged
timja merged 56 commits intojenkinsci:masterfrom
janfaracik:experimental-manage-jenkins-layout
Nov 17, 2025
Merged

Add experimental Manage Jenkins layout#11222
timja merged 56 commits intojenkinsci:masterfrom
janfaracik:experimental-manage-jenkins-layout

Conversation

@janfaracik
Copy link
Member

@janfaracik janfaracik commented Oct 21, 2025

Requires jenkinsci/maven-hpi-plugin#803 - Released

This PR adds an experimental Manage Jenkins redesign - the idea is to standardise and modernise each page, improving the design, consistency, and performance.

image Screenshot 2025-10-21 at 16 19 53 image

What's changed?

  • New sidebar and design for easy switching between settings
  • Alerts now show on the 'System' page
  • Added settings-subpage - reusable frame for Manage Jenkins pages
  • Page contents are deferred, meaning that swapping from page to page is near instant

What needs doing in future PRs?

  • Plugins should be integrated into this new design
  • Script Console should be integrated into this new design

Testing done

  • Should be no regressions when the flag isn't enabled
  • When the flag is enabled, 90% of Manage Jenkins swaps to the new design, the last 10% will be done in followups

Proposed changelog entries

  • Add experimental Manage Jenkins layout

Proposed changelog category

/label web-ui,rfe

Proposed upgrade guidelines

N/A

Submitter checklist

  • The Jira issue, if it exists, is well-described.
  • The changelog entries and upgrade guidelines are appropriate for the audience affected by the change (users or developers, depending on the change) and are in the imperative mood (see examples). Fill in the Proposed upgrade guidelines section only if there are breaking changes or changes that may require extra steps from users during upgrade.
  • There is automated testing or an explanation as to why this change has no tests.
  • New public classes, fields, and methods are annotated with @Restricted or have @since TODO Javadocs, as appropriate.
  • New deprecations are annotated with @Deprecated(since = "TODO") or @Deprecated(forRemoval = true, since = "TODO"), if applicable.
  • New or substantially changed JavaScript is not defined inline and does not call eval to ease future introduction of Content Security Policy (CSP) directives (see documentation).
  • For dependency updates, there are links to external changelogs and, if possible, full differentials.
  • For new APIs and extension points, there is a link to at least one consumer.

Desired reviewers

@jenkinsci/sig-ux

Before the changes are marked as ready-for-merge:

Maintainer checklist

  • There are at least two (2) approvals for the pull request and no outstanding requests for change.
  • Conversations in the pull request are over, or it is explicit that a reviewer is not blocking the change.
  • Changelog entries in the pull request title and/or Proposed changelog entries are accurate, human-readable, and in the imperative mood.
  • Proper changelog labels are set so that the changelog can be generated automatically.
  • If the change needs additional upgrade steps from users, the upgrade-guide-needed label is set and there is a Proposed upgrade guidelines section in the pull request title (see example).
  • If it would make sense to backport the change to LTS, a Jira issue must exist, be a Bug or Improvement, and be labeled as lts-candidate to be considered (see query).

@comment-ops-bot comment-ops-bot bot added web-ui The PR includes WebUI changes which may need special expertise rfe For changelog: Minor enhancement. use `major-rfe` for changes to be highlighted labels Oct 21, 2025
@janfaracik janfaracik added squash-merge-me Unclean or useless commit history, should be merged only with squash-merge and removed web-ui The PR includes WebUI changes which may need special expertise rfe For changelog: Minor enhancement. use `major-rfe` for changes to be highlighted labels Oct 21, 2025
@comment-ops-bot comment-ops-bot bot added the web-ui The PR includes WebUI changes which may need special expertise label Oct 21, 2025
@janfaracik janfaracik added pct-successful This PR has successfully passed the full plugin-compatibility-test suite ath-successful This PR has successfully passed the full acceptance-test-harness suite and removed needs-ath-build Needs to run through the full acceptance-test-harness suite labels Nov 9, 2025
@janfaracik
Copy link
Member Author

ATH passed - jenkinsci/acceptance-test-harness#2240

@janfaracik janfaracik marked this pull request as ready for review November 10, 2025 11:53
@janfaracik
Copy link
Member Author

Copy link
Member

@timja timja left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great, few minor issues here and I've noted most of my feedback in jenkinsci/sig-ux#10 (comment) for later improvements before this is enabled

<div class="jenkins-app-bar">
<j:set var="header">
<l:view>
<div class="jenkins-app-bar jenkins-!-margin-top-2 jenkins-!-margin-bottom-4">
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why not using l:app-bar?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It doesn't have a slot for the version number.


<p class="app-about-paragraph">${%blurb}</p>
<l:settings-subpage header="${header}"
placeholder="${null}"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

passing a null placeholder seems wrong why is this needed?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Otherwise a default app bar appears whilst its loading, its a little jarring seeing it switch to a completely different one.

<l:app-bar title="${manageJenkinsAction.displayName}" />

<l:tasks>
<l:search-bar placeholder="${%Search}" id="settings-search-bar" />
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't seem to be working for me I get no results

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good spot, will fix.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rather gross fix - but working now.

Copy link
Member

@timja timja left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@timja timja requested a review from a team November 11, 2025 22:09
@daniel-beck
Copy link
Member

Requires #11222

That's this PR. Wrong link?

@timja
Copy link
Member

timja commented Nov 15, 2025

Requires #11222

That's this PR. Wrong link?

Fixed the link

@timja
Copy link
Member

timja commented Nov 16, 2025

/label ready-for-merge


This PR is now ready for merge, after ~24 hours, we will merge it if there's no negative feedback.

Thanks!

@comment-ops-bot comment-ops-bot bot added the ready-for-merge The PR is ready to go, and it will be merged soon if there is no negative feedback label Nov 16, 2025
@daniel-beck
Copy link
Member

"Reload configuration from disk" has broken text when the experiment is live.

Screenshot 2025-11-17 at 09 54 45 Screenshot 2025-11-17 at 09 56 04

Forms looked cramped, with tons of whitespace to the left and right for no real reason.

Screenshot 2025-11-17 at 09 53 31

Help icons for dropdowns reveals JENKINS-76266 more than usual.
Screenshot 2025-11-17 at 09 53 23
Screenshot 2025-11-17 at 09 55 00

Navigating between sections that haven't been adapted, even in core, is jarring. In particular, it's unclear how the plugin manager would be adapted to work with this UI.

None of this is blocking, I think, and probably fine for an experiment.

@timja
Copy link
Member

timja commented Nov 17, 2025

Navigating between sections that haven't been adapted, even in core, is jarring. In particular, it's unclear how the plugin manager would be adapted to work with this UI.

There's a follow up ready for this, sub-menus under the Plugins link in the side-panel but Jan didn't want to add too much in this PR as that needs more machinery to add to make it work.

@Override
public String getUrlName() {
return "administrativeMonitor/OldData/";
return "administrativeMonitor/OldData/manage";
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we know why manage.jelly isn't just index.jelly? Seems unnecessary.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree - happy to experiment with renaming it to index.jelly in a follow up.

manage.jelly was added in 07f0405#diff-83d7a9405bfbe87e69167b2e0bc36db7070c3de282390b72f90eac9db2adc0f8R19-R238 not clear why they didn't just use index.

@timja timja merged commit 23ff4bc into jenkinsci:master Nov 17, 2025
19 checks passed
@daniel-beck
Copy link
Member

Caused #23856.

@timja
Copy link
Member

timja commented Nov 25, 2025

Caused #23856.

#23858

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ath-successful This PR has successfully passed the full acceptance-test-harness suite pct-successful This PR has successfully passed the full plugin-compatibility-test suite ready-for-merge The PR is ready to go, and it will be merged soon if there is no negative feedback rfe For changelog: Minor enhancement. use `major-rfe` for changes to be highlighted squash-merge-me Unclean or useless commit history, should be merged only with squash-merge web-ui The PR includes WebUI changes which may need special expertise

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants