Backport of [ui] "Clone and Edit" functionality for versions into release/1.9.x #24568
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Backport
This PR is auto-generated from #24168 to be assessed for backporting due to the inclusion of the label backport/1.9.x.
The below text is copied from the body of the original PR.
Adds "Clone and Edit" alongside "Revert Version" on the Versions page:
There are two functional paths here:
In each of these cases, we also have a split on "fetchRawDefinition" (fetches the submitted HCL or JSON jobspec) or "fetchRawSpecification" (the pre-1.5 Nomad way of getting job details, which the UI falls back to if submission/definition is not available). A lot of the duplicate-looking code in this PR is to address both paths.
Similarly, there are some safeguards included in this PR for things like ensuring users who clone to a new job change the job's name, lest it adds it as a new version unintentionally.
Because we're passing template strings via query params, this means you can use
?sourceString=
on the jobs run page to send someone a readily-editable job spec, using a URL like this.This also adds a few UX conveniences like prompting a user to "run as a new job instead" if they try updating a job definition and changing its name (which fails a plan request), and reminding them to change the job name in the event they try to clone as a new one
Resolves #24156
Overview of commits