Hi

There’s been work going on for over a year now which converts the Jenkins
form layout from using a table based design to using div’s. It’s now
getting very close to landing (hopefully in the next weekly release or so,
pending any feedback), and I wanted to announce it as it will have impacts
on the UI and will likely cause some issues in plugins.

For some more background take a look at JENKINS-56109
<https://issues.jenkins-ci.org/browse/JENKINS-56109>

For screenshots see:

jenkinsci/jenkins#3895 <https://github.com/jenkinsci/jenkins/pull/3895>

Main changes you will notice:

   -

   Labels moved above inputs (except checkboxes)
   -

   Checkbox labels moved to the right of checkboxes
   -

   Bar that helps associate nested fields to their parent at each level


Other changes:

   -

   Checkbox accessibility improved by associating the labels to the
   checkboxes allowing a larger hit area as the label can be clicked on
   -

   Changes to many plugins to make this as safe as possible, i.e.
   jenkins#3922 <https://github.com/jenkinsci/jenkins/pull/3922>, allowing
   pipeline to be seamlessly switched over


Changes we would like to do that have been made out of scope of this PR:

   -

   Reduce form width as it feels too wide
   -

      Out of scope due to some complexity with controls like the converting
      an input to multiline, and the slider that is used for expanding text
      areas, it shouldn’t be too hard but it was complex enough not to
risk this
      PR with it
      -

   Move help icons closer to the label
   -

      There was feedback that the help icons were now too far away, we
      tried moving them next to the label but it looked a bit odd when all the
      icons were in different positions


Change for plugin authors

In most cases plugins won’t need any changes at all, some places that may
cause issues are:

   -

   adding the td / tr elements directly instead of using the `f:entry` tag,
   e.g. config-rotator-plugin#2
   <https://github.com/jenkinsci/config-rotator-plugin/pull/2>
   -

   Custom javascript that is brittle to the Jenkins form UI layout, we’ve
   done our best to introduce shims, to not cause breakage here
   -

   Forking jelly taglibs from core and extending them, i.e.
   multiple-scms-plugin#25
   <https://github.com/jenkinsci/multiple-scms-plugin/pull/25>, would be
   good to contribute fixes or enhancements to core rather than doing this
   where possible.
   -

   Using tables in the plugin for layout,
   jfrog/jenkins-artifactory-plugin#266
   <https://github.com/jfrog/jenkins-artifactory-plugin/pull/266>


How to make my plugin work on old and new core

There’s a jelly property divBasedFormLayout that you can use to check
whether this rework is in the core version, see
jfrog/jenkins-artifactory-plugin#266
<https://github.com/jfrog/jenkins-artifactory-plugin/pull/266>,
traits.jelly#0c272
<https://github.com/jenkinsci/scm-api-plugin/pull/82/commits/0c2723bb5029805565ffe128b98bfca6574d418b>
More help

You can message us in the ux-sig gitter <https://gitter.im/jenkinsci/ux-sig>
channel,
FeedbackEither here or in the pull request
<https://github.com/jenkinsci/jenkins/pull/3895>, reviews most welcomed,
instructions for testing it are in the top level PR comment.

Thanks

Tim

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/CAH-3BieisA6rjzws%2BqNjBt5E18_ZVVMAnVw3nPdkzzNCw7dtpA%40mail.gmail.com.

Reply via email to