jenkins icon indicating copy to clipboard operation
jenkins copied to clipboard

draft: Use a sidebar for Manage Jenkins

Open janfaracik opened this issue 1 year ago • 3 comments

Draft PR for the time being.

This PR overhauls Manage Jenkins to use a sidebar for links, rather than the current grid view. This was discussed on https://community.jenkins.io/t/new-settings-view-feedback-wanted/ and I've opened a draft PR to get further thoughts on implementation and to highlight things that I've missed.

The advantages to this design:

  • One less click to get to ‘General’ settings
  • Easy to switch between sections (no more having to go back to the Settings page)
  • Consistent with other views in Jenkins (e.g. Configure projects, Plugins)
  • Better use of screen real estate (currently inputs needlessly use the full page width)

Screenshots image

image image

This will require updates to plugins to implement the ManagementLink side panel.

Testing done

Todo

Proposed changelog entries

  • Use a sidebar for Manage Jenkins

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](https://github.com/jenkins-infra/jenkins.io/blob/master/content/_data/changelogs/weekly.yml)). 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](https://www.jenkins.io/doc/developer/security/csp/)).
- [ ] 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](https://github.com/jenkinsci/jenkins/pull/4387)).
- [ ] 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](https://issues.jenkins.io/issues/?filter=12146)).

janfaracik avatar Aug 16 '23 08:08 janfaracik

Are what you listed the only benefits of this? They seem fairly minor in comparison to the drawbacks: This

  1. drops the ability to have descriptions (including some that include important status information, like Script Security's)
  2. loses the ability to adapt the sidebar of actual configuration forms (System, Security, possibly Tools) to job configuration forms, making the differences in how similar things work between different parts of Jenkins worse
  3. does not scale as well to more items since it loses the horizontal dimension
  4. requires adaptation in tons of plugins to not have a very broken experience (see e.g. "Load Statistics" in the current PR state)
  5. Makes admin monitors awkward since they'll clutter up the global configuration now
  6. Admin monitors need to be adapted if they refer to configuration options in System, potentially needing different wordings between the popup and this one (see e.g. the one if no root URL is defined).

In particular, I don't see how

Consistent with other views in Jenkins (e.g. Configure projects, Plugins)

applies other than at the most superficial level. Job configurations navigate inside the same form, while here, everything navigates elsewhere, dropping unsaved changes.

This mirrors a similar change in Mac OS System Preferences to make it more iPhone-like, which I've only seen overwhelmingly negative feedback for. Replicating phone UI when you have giant screens makes no sense.

Beyond the above, I'm curious what your plans for the sidepanel of the plugin manager are. Given we've moved items from elsewhere to there less than a year ago, with further related changes in a PR (#8376, open when I commented and now merged), that seems to clash with this proposal quite significantly.

daniel-beck avatar Aug 16 '23 10:08 daniel-beck

Please take a moment and address the merge conflicts of your pull request. Thanks!

github-actions[bot] avatar Aug 23 '23 06:08 github-actions[bot]

Please take a moment and address the merge conflicts of your pull request. Thanks!

github-actions[bot] avatar Jan 03 '24 00:01 github-actions[bot]

Please take a moment and address the merge conflicts of your pull request. Thanks!

github-actions[bot] avatar Jun 11 '24 01:06 github-actions[bot]

Will write a proposal for this and come back to it - thanks all.

janfaracik avatar Jun 24 '24 19:06 janfaracik