Better config page navigation - phase 1

Details

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.

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.

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.