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

Better config page navigation - phase 1

    XMLWordPrintable

    Details

    • Similar Issues:

      Description

      We've been talking about what we can do wrt config page cleanups for Jenkins 2.x. One approach we were looking at was to change the config page structure (change the actual DOM). Doing this is not trivial for a few reasons ...

      1. Breaking the UI for plugins that rely on the current structure. Imo, this can not be fixed easily and should not be hand-waved away.
      2. Breaking form submission, as it is hardwired for a specific page structure This can be fixed within Jenkins core, but I'd fear there's be ripple effects for a time after.

      Target features for "phase 1"

      (All features build on #1)

      1. Version 1 of a JavaScript API for config forms that can be used as a foundation on which to build all other config page UX improvements. This will hopefully help compensate for the fact that there is no structure within the markup/DOM. See config/table-metadata.js.
      2. Tabbed sections. Uses the above config forms API. See config/tabbar.js. Yes, can try other things (accordions etc) in a future iteration.
      3. Config finder. Find text across the different sections, only showing the user those sections that contain the text.
      4. Remember last active section. Remember the last section the user was on when last configuring the Job e.g. if they were on Build Triggers, bring them back there immediately on next configure of that Job.
      5. Toggle classic config view on/off. Allow people to opt-out and revert back to the "classic" configuration view.

        Attachments

          Issue Links

            Activity

            tfennelly Tom FENNELLY created issue -
            tfennelly Tom FENNELLY made changes -
            Field Original Value New Value
            Epic Link JENKINS-31156 [ 165812 ]
            tfennelly Tom FENNELLY made changes -
            Issue Type Improvement [ 4 ] Story [ 10002 ]
            tfennelly Tom FENNELLY made changes -
            Summary Better config page navigation Better config page navigation - phase 1
            tfennelly Tom FENNELLY made changes -
            Issue Type Story [ 10002 ] Epic [ 10001 ]
            tfennelly Tom FENNELLY made changes -
            Epic Link JENKINS-31156 [ 165812 ]
            tfennelly Tom FENNELLY made changes -
            Issue Type Epic [ 10001 ] Story [ 10002 ]
            tfennelly Tom FENNELLY made changes -
            Description We've been talking about what we can do wrt config page cleanups for Jenkins 2.x. One approach we were looking at was to change the config page structure (change the actual DOM). Doing this is not trivial for a few reasons ...

            # Breaking the UI for plugins that rely on the current structure. Imo, this can not be fixed easily and should not be hand-waved away.
            # Breaking form submission, as it is hardwired for a specific page structure :( This can be fixed within Jenkins core, but I'd fear there's be ripple effects for a time after.

            When doing the ACE Editor some time ago, I also played with another approach to this problem that did not involve changes to the page structure and so, in theory, should not have the above negative side effects.

            Here's a short video: https://youtu.be/Kup043PhN38

            NOTE: This is a quick hack and would still require work ... I really only addressed the issue of adding section tabs that make navigating the config a bit/lot easier.

            Code (if you want to take it for a spin):
            * https://github.com/tfennelly/jenkins-js-widgets (you must build this locally first)
            * https://github.com/tfennelly/workflow-plugin/tree/with-config-tabbar (workflow plugin branch that applies the tabs to the workflow config page - yes, it would be done globally)
            We've been talking about what we can do wrt config page cleanups for Jenkins 2.x. One approach we were looking at was to change the config page structure (change the actual DOM). Doing this is not trivial for a few reasons ...

            # Breaking the UI for plugins that rely on the current structure. Imo, this can not be fixed easily and should not be hand-waved away.
            # Breaking form submission, as it is hardwired for a specific page structure :( This can be fixed within Jenkins core, but I'd fear there's be ripple effects for a time after.

            When doing the ACE Editor some time ago, I also played with another approach to this problem that did not involve changes to the page structure and so, in theory, should not have the above negative side effects.

            Here's a short video: https://youtu.be/Kup043PhN38

            NOTE: This is a quick hack and would still require work ... I really only addressed the issue of adding section tabs that make navigating the config a bit/lot easier.

            Code (if you want to take it for a spin):
            * https://github.com/tfennelly/jenkins-js-widgets (you must build this locally first)
            * https://github.com/tfennelly/workflow-plugin/tree/with-config-tabbar (workflow plugin branch that applies the tabs to the workflow config page - yes, it would be done globally)

            tfennelly Tom FENNELLY made changes -
            Description We've been talking about what we can do wrt config page cleanups for Jenkins 2.x. One approach we were looking at was to change the config page structure (change the actual DOM). Doing this is not trivial for a few reasons ...

            # Breaking the UI for plugins that rely on the current structure. Imo, this can not be fixed easily and should not be hand-waved away.
            # Breaking form submission, as it is hardwired for a specific page structure :( This can be fixed within Jenkins core, but I'd fear there's be ripple effects for a time after.

            When doing the ACE Editor some time ago, I also played with another approach to this problem that did not involve changes to the page structure and so, in theory, should not have the above negative side effects.

            Here's a short video: https://youtu.be/Kup043PhN38

            NOTE: This is a quick hack and would still require work ... I really only addressed the issue of adding section tabs that make navigating the config a bit/lot easier.

            Code (if you want to take it for a spin):
            * https://github.com/tfennelly/jenkins-js-widgets (you must build this locally first)
            * https://github.com/tfennelly/workflow-plugin/tree/with-config-tabbar (workflow plugin branch that applies the tabs to the workflow config page - yes, it would be done globally)

            We've been talking about what we can do wrt config page cleanups for Jenkins 2.x. One approach we were looking at was to change the config page structure (change the actual DOM). Doing this is not trivial for a few reasons ...

            # Breaking the UI for plugins that rely on the current structure. Imo, this can not be fixed easily and should not be hand-waved away.
            # Breaking form submission, as it is hardwired for a specific page structure :( This can be fixed within Jenkins core, but I'd fear there's be ripple effects for a time after.

            See comments.
            tfennelly Tom FENNELLY made changes -
            Description We've been talking about what we can do wrt config page cleanups for Jenkins 2.x. One approach we were looking at was to change the config page structure (change the actual DOM). Doing this is not trivial for a few reasons ...

            # Breaking the UI for plugins that rely on the current structure. Imo, this can not be fixed easily and should not be hand-waved away.
            # Breaking form submission, as it is hardwired for a specific page structure :( This can be fixed within Jenkins core, but I'd fear there's be ripple effects for a time after.

            See comments.
            We've been talking about what we can do wrt config page cleanups for Jenkins 2.x. One approach we were looking at was to change the config page structure (change the actual DOM). Doing this is not trivial for a few reasons ...

            # Breaking the UI for plugins that rely on the current structure. Imo, this can not be fixed easily and should not be hand-waved away.
            # Breaking form submission, as it is hardwired for a specific page structure :( This can be fixed within Jenkins core, but I'd fear there's be ripple effects for a time after.
            tfennelly Tom FENNELLY made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            tfennelly Tom FENNELLY made changes -
            Link This issue is blocking JENKINS-32578 [ JENKINS-32578 ]
            tfennelly Tom FENNELLY made changes -
            Description We've been talking about what we can do wrt config page cleanups for Jenkins 2.x. One approach we were looking at was to change the config page structure (change the actual DOM). Doing this is not trivial for a few reasons ...

            # Breaking the UI for plugins that rely on the current structure. Imo, this can not be fixed easily and should not be hand-waved away.
            # Breaking form submission, as it is hardwired for a specific page structure :( This can be fixed within Jenkins core, but I'd fear there's be ripple effects for a time after.
            We've been talking about what we can do wrt config page cleanups for Jenkins 2.x. One approach we were looking at was to change the config page structure (change the actual DOM). Doing this is not trivial for a few reasons ...

            # Breaking the UI for plugins that rely on the current structure. Imo, this can not be fixed easily and should not be hand-waved away.
            # Breaking form submission, as it is hardwired for a specific page structure :( This can be fixed within Jenkins core, but I'd fear there's be ripple effects for a time after.

            h2. Target features for "phase 1"
            # *Version 1 of a JavaScript API* for config forms that can be used as a foundation on which to build config page UX improvements. This will hopefully help compensate for the fact that there is no structure within the markup/DOM. [See config/table-metadata.js|https://github.com/tfennelly/jenkins/blob/2.0-with-config-tabs/war/src/main/js/widgets/config/table-metadata.js].
            # *Tabbed sections*. Uses the above config forms API. [See config/tabbar.js|https://github.com/tfennelly/jenkins/blob/2.0-with-config-tabs/war/src/main/js/widgets/config/tabbar.js]. Yes, can try other things (accordions etc) in a future iteration.
            # *Config finder*. Find text across the different sections, only showing the user those sections that contain the text.
            # *Remember last active section*. Remember the last section the user was on when last configuring the Job e.g. if they were on Build Triggers, bring them back there immediately on next configure of that Job.
            # *Toggle classic config view on/off*. Allow people to opt-out and revert back to the "classic" configuration view.
            tfennelly Tom FENNELLY made changes -
            Description We've been talking about what we can do wrt config page cleanups for Jenkins 2.x. One approach we were looking at was to change the config page structure (change the actual DOM). Doing this is not trivial for a few reasons ...

            # Breaking the UI for plugins that rely on the current structure. Imo, this can not be fixed easily and should not be hand-waved away.
            # Breaking form submission, as it is hardwired for a specific page structure :( This can be fixed within Jenkins core, but I'd fear there's be ripple effects for a time after.

            h2. Target features for "phase 1"
            # *Version 1 of a JavaScript API* for config forms that can be used as a foundation on which to build config page UX improvements. This will hopefully help compensate for the fact that there is no structure within the markup/DOM. [See config/table-metadata.js|https://github.com/tfennelly/jenkins/blob/2.0-with-config-tabs/war/src/main/js/widgets/config/table-metadata.js].
            # *Tabbed sections*. Uses the above config forms API. [See config/tabbar.js|https://github.com/tfennelly/jenkins/blob/2.0-with-config-tabs/war/src/main/js/widgets/config/tabbar.js]. Yes, can try other things (accordions etc) in a future iteration.
            # *Config finder*. Find text across the different sections, only showing the user those sections that contain the text.
            # *Remember last active section*. Remember the last section the user was on when last configuring the Job e.g. if they were on Build Triggers, bring them back there immediately on next configure of that Job.
            # *Toggle classic config view on/off*. Allow people to opt-out and revert back to the "classic" configuration view.
            We've been talking about what we can do wrt config page cleanups for Jenkins 2.x. One approach we were looking at was to change the config page structure (change the actual DOM). Doing this is not trivial for a few reasons ...

            # Breaking the UI for plugins that rely on the current structure. Imo, this can not be fixed easily and should not be hand-waved away.
            # Breaking form submission, as it is hardwired for a specific page structure :( This can be fixed within Jenkins core, but I'd fear there's be ripple effects for a time after.

            h2. Target features for "phase 1"

            *(All features build on #1)*

            # # *Version 1 of a JavaScript API* for config forms that can be used as a foundation on which to build config page UX improvements. This will hopefully help compensate for the fact that there is no structure within the markup/DOM. [See config/table-metadata.js|https://github.com/tfennelly/jenkins/blob/2.0-with-config-tabs/war/src/main/js/widgets/config/table-metadata.js].
            # *Tabbed sections*. Uses the above config forms API. [See config/tabbar.js|https://github.com/tfennelly/jenkins/blob/2.0-with-config-tabs/war/src/main/js/widgets/config/tabbar.js]. Yes, can try other things (accordions etc) in a future iteration.
            # *Config finder*. Find text across the different sections, only showing the user those sections that contain the text.
            # *Remember last active section*. Remember the last section the user was on when last configuring the Job e.g. if they were on Build Triggers, bring them back there immediately on next configure of that Job.
            # *Toggle classic config view on/off*. Allow people to opt-out and revert back to the "classic" configuration view.
            tfennelly Tom FENNELLY made changes -
            Description We've been talking about what we can do wrt config page cleanups for Jenkins 2.x. One approach we were looking at was to change the config page structure (change the actual DOM). Doing this is not trivial for a few reasons ...

            # Breaking the UI for plugins that rely on the current structure. Imo, this can not be fixed easily and should not be hand-waved away.
            # Breaking form submission, as it is hardwired for a specific page structure :( This can be fixed within Jenkins core, but I'd fear there's be ripple effects for a time after.

            h2. Target features for "phase 1"

            *(All features build on #1)*

            # # *Version 1 of a JavaScript API* for config forms that can be used as a foundation on which to build config page UX improvements. This will hopefully help compensate for the fact that there is no structure within the markup/DOM. [See config/table-metadata.js|https://github.com/tfennelly/jenkins/blob/2.0-with-config-tabs/war/src/main/js/widgets/config/table-metadata.js].
            # *Tabbed sections*. Uses the above config forms API. [See config/tabbar.js|https://github.com/tfennelly/jenkins/blob/2.0-with-config-tabs/war/src/main/js/widgets/config/tabbar.js]. Yes, can try other things (accordions etc) in a future iteration.
            # *Config finder*. Find text across the different sections, only showing the user those sections that contain the text.
            # *Remember last active section*. Remember the last section the user was on when last configuring the Job e.g. if they were on Build Triggers, bring them back there immediately on next configure of that Job.
            # *Toggle classic config view on/off*. Allow people to opt-out and revert back to the "classic" configuration view.
            We've been talking about what we can do wrt config page cleanups for Jenkins 2.x. One approach we were looking at was to change the config page structure (change the actual DOM). Doing this is not trivial for a few reasons ...

            # Breaking the UI for plugins that rely on the current structure. Imo, this can not be fixed easily and should not be hand-waved away.
            # Breaking form submission, as it is hardwired for a specific page structure :( This can be fixed within Jenkins core, but I'd fear there's be ripple effects for a time after.

            h2. Target features for "phase 1"

            *(All features build on #1)*

            # *Version 1 of a JavaScript API* for config forms that can be used as a foundation on which to build config page UX improvements. This will hopefully help compensate for the fact that there is no structure within the markup/DOM. [See config/table-metadata.js|https://github.com/tfennelly/jenkins/blob/2.0-with-config-tabs/war/src/main/js/widgets/config/table-metadata.js].
            # *Tabbed sections*. Uses the above config forms API. [See config/tabbar.js|https://github.com/tfennelly/jenkins/blob/2.0-with-config-tabs/war/src/main/js/widgets/config/tabbar.js]. Yes, can try other things (accordions etc) in a future iteration.
            # *Config finder*. Find text across the different sections, only showing the user those sections that contain the text.
            # *Remember last active section*. Remember the last section the user was on when last configuring the Job e.g. if they were on Build Triggers, bring them back there immediately on next configure of that Job.
            # *Toggle classic config view on/off*. Allow people to opt-out and revert back to the "classic" configuration view.
            tfennelly Tom FENNELLY made changes -
            Description We've been talking about what we can do wrt config page cleanups for Jenkins 2.x. One approach we were looking at was to change the config page structure (change the actual DOM). Doing this is not trivial for a few reasons ...

            # Breaking the UI for plugins that rely on the current structure. Imo, this can not be fixed easily and should not be hand-waved away.
            # Breaking form submission, as it is hardwired for a specific page structure :( This can be fixed within Jenkins core, but I'd fear there's be ripple effects for a time after.

            h2. Target features for "phase 1"

            *(All features build on #1)*

            # *Version 1 of a JavaScript API* for config forms that can be used as a foundation on which to build config page UX improvements. This will hopefully help compensate for the fact that there is no structure within the markup/DOM. [See config/table-metadata.js|https://github.com/tfennelly/jenkins/blob/2.0-with-config-tabs/war/src/main/js/widgets/config/table-metadata.js].
            # *Tabbed sections*. Uses the above config forms API. [See config/tabbar.js|https://github.com/tfennelly/jenkins/blob/2.0-with-config-tabs/war/src/main/js/widgets/config/tabbar.js]. Yes, can try other things (accordions etc) in a future iteration.
            # *Config finder*. Find text across the different sections, only showing the user those sections that contain the text.
            # *Remember last active section*. Remember the last section the user was on when last configuring the Job e.g. if they were on Build Triggers, bring them back there immediately on next configure of that Job.
            # *Toggle classic config view on/off*. Allow people to opt-out and revert back to the "classic" configuration view.
            We've been talking about what we can do wrt config page cleanups for Jenkins 2.x. One approach we were looking at was to change the config page structure (change the actual DOM). Doing this is not trivial for a few reasons ...

            # Breaking the UI for plugins that rely on the current structure. Imo, this can not be fixed easily and should not be hand-waved away.
            # Breaking form submission, as it is hardwired for a specific page structure :( This can be fixed within Jenkins core, but I'd fear there's be ripple effects for a time after.

            h2. Target features for "phase 1"

            *(All features build on #1)*

            # *Version 1 of a JavaScript API* for config forms that can be used as a foundation on which to build all other config page UX improvements. This will hopefully help compensate for the fact that there is no structure within the markup/DOM. [See config/table-metadata.js|https://github.com/tfennelly/jenkins/blob/2.0-with-config-tabs/war/src/main/js/widgets/config/table-metadata.js].
            # *Tabbed sections*. Uses the above config forms API. [See config/tabbar.js|https://github.com/tfennelly/jenkins/blob/2.0-with-config-tabs/war/src/main/js/widgets/config/tabbar.js]. Yes, can try other things (accordions etc) in a future iteration.
            # *Config finder*. Find text across the different sections, only showing the user those sections that contain the text.
            # *Remember last active section*. Remember the last section the user was on when last configuring the Job e.g. if they were on Build Triggers, bring them back there immediately on next configure of that Job.
            # *Toggle classic config view on/off*. Allow people to opt-out and revert back to the "classic" configuration view.
            tfennelly Tom FENNELLY made changes -
            Labels user-experience
            tfennelly Tom FENNELLY made changes -
            tfennelly Tom FENNELLY made changes -
            Status In Progress [ 3 ] Resolved [ 5 ]
            Resolution Fixed [ 1 ]
            rtyler R. Tyler Croy made changes -
            Workflow JNJira [ 167969 ] JNJira + In-Review [ 198319 ]

              People

              • Assignee:
                tfennelly Tom FENNELLY
                Reporter:
                tfennelly Tom FENNELLY
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: