Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-56109

Jenkins Core: Change Jenkins configuration UI from tables to divs

    Details

    • Similar Issues:

      Description

      Currently jenkins's jelly framework generates lots of tables. These tables are very mobile hostile. The ui it generates is also not in line with modern UIs.

       

      Here's one example from Windows 10's settings:

      Note that the label for a field is above the field – not to the left of the field.

      Here's a much older UI from Windows:

      Note that the labels for checkboxes/radios are to the right of the buttons, not to their left (* with RTL layouts, this changes, but that's due to mirroring and applies to almost everything).

       

      Even so, labels for other things are above, not to their left (see this example for invitation duration – which is also pre Windows 10):

       

      I can provide examples from macOS, Maemo/MeeGo, and pretty much every system (including Chrome/Firefox/Android). I happen to be using a Windows 10 laptop today (snow day), but normally I use macOS / Android.

        Attachments

          Issue Links

            Activity

            Hide
            fqueiruga Félix Queiruga Balado added a comment - - edited

            I'm gonna go ahead and put the checklist of TODO items here:

            • Style for hierarchies of nested elements. This includes hetero lists and repeatable elements.
            • Indentation problems caused by the .container class and the 15px padding it sets. Maybe we should create a new class for forms instead of reusing .container. This would also work to remove the width changes on this class.
            • Checkbox fixes for the Git plugin & similar (I have a JS based solution for this but it needs a bit more work).
            • <f:entry> refactor: move the helper text to inside the form entry element.
            • <f:entry> refactor: move the validation errors to inside the form entry element - not the easiest due to the javascript.
            • Verify that form submission (buildFormTree) still works properly.
            • Too much spacing on the API key list on the user configuration (easy).
            • Broken scroll-aware headers on the job configuration (this one is medium at best, difficult if we need to do lots of fixing for the JS tests).
            • ⚠️ Broken drag & drop of repetable elements
            • Tune styling of nesting indicator
            • Provide backwards compatibility for findFollowingTR(e, "validation-error-area"). Used directly in many plugins (https://github.com/search?q=org%3Ajenkinsci+validation-error-area&type=Code)

            Pending:

            • Forms are IMO too wide. I'd suggest adding a max-width for inputs but maybe it is out of scope for this.
              *
            Show
            fqueiruga Félix Queiruga Balado added a comment - - edited I'm gonna go ahead and put the checklist of TODO items here: Style for hierarchies of nested elements. This includes hetero lists and repeatable elements. Indentation problems caused by the .container class and the 15px padding it sets. Maybe we should create a new class for forms instead of reusing .container . This would also work to remove the width changes on this class. Checkbox fixes for the Git plugin & similar (I have a JS based solution for this but it needs a bit more work). <f:entry> refactor: move the helper text to inside the form entry element. <f:entry> refactor: move the validation errors to inside the form entry element - not the easiest due to the javascript. Verify that form submission ( buildFormTree ) still works properly. Too much spacing on the API key list on the user configuration (easy). Broken scroll-aware headers on the job configuration (this one is medium at best, difficult if we need to do lots of fixing for the JS tests). ⚠️ Broken drag & drop of repetable elements Tune styling of nesting indicator Provide backwards compatibility for findFollowingTR(e, "validation-error-area") . Used directly in many plugins ( https://github.com/search?q=org%3Ajenkinsci+validation-error-area&type=Code ) Pending: Forms are IMO too wide. I'd suggest adding a max-width for inputs but maybe it is out of scope for this. *
            Hide
            oleg_nenashev Oleg Nenashev added a comment -

            Should we convert it to EPIC and start adding tasks to it? CC Josh Soref Tim Jacomb.

            As discussed at the yesterday's UX SIG meeting, we would like to add it to the UI/UX hackfest on May 25029: https://www.jenkins.io/events/online-hackfest/2020-uiux/ . We will be either doing crowd-testing or crowd-fixing there, depending on when the PR lands.

             

             

            Show
            oleg_nenashev Oleg Nenashev added a comment - Should we convert it to EPIC and start adding tasks to it? CC Josh Soref Tim Jacomb . As discussed at the yesterday's UX SIG meeting, we would like to add it to the UI/UX hackfest on May 25029:  https://www.jenkins.io/events/online-hackfest/2020-uiux/  . We will be either doing crowd-testing or crowd-fixing there, depending on when the PR lands.    
            Hide
            fqueiruga Félix Queiruga Balado added a comment -

            There can be an epic with a ticket for each plugins that fail. For example, https://github.com/jenkinsci/dockerhub-notification-plugin uses forks of normal UI widgets and break (on freestyle jobs).

            Show
            fqueiruga Félix Queiruga Balado added a comment - There can be an epic with a ticket for each plugins that fail. For example,  https://github.com/jenkinsci/dockerhub-notification-plugin  uses forks of normal UI widgets and break (on freestyle jobs).
            Hide
            fqueiruga Félix Queiruga Balado added a comment -

            Tim Jacomb this rule can work to make just config forms narrower. Not sure how it would break with the auth matrix though.

            form[name=config],
            .config-form {
              max-width: 44rem;  // ~700px
            }
            Show
            fqueiruga Félix Queiruga Balado added a comment - Tim Jacomb this rule can work to make just config forms narrower. Not sure how it would break with the auth matrix though. form[name=config], .config-form { max-width: 44rem; // ~700px }
            Hide
            oleg_nenashev Oleg Nenashev added a comment -

            Created an EPIC for follow-up stories in plugins and other components

            Show
            oleg_nenashev Oleg Nenashev added a comment - Created an EPIC for follow-up stories in plugins and other components

              People

              • Assignee:
                jsoref Josh Soref
                Reporter:
                jsoref Josh Soref
              • Votes:
                0 Vote for this issue
                Watchers:
                7 Start watching this issue

                Dates

                • Created:
                  Updated: