Ensure a vue.js component to confirm the re-deployment/rollback of an
environment pops up when rollback/re-deploy has been clicked so the user
must confirm their actions before accidentally rolling back or
re-deploying an environment.
Only on the `environment-table` view.
This commit fixes two problems:
1. When a user clicked on another page, the app would fetch the new page
data but never update because the request and response parameters failed
to match the isEqual check. This was happening because the JSON response
omitted the `nested` attribute, so there was a comparison with a `null`
value. We fix this by scrubbing undefined values before doing the
comparison.
2. There were duplicate requests made for the environments page because
the success handler of fetchPipelines() would cause the polling
component to make another XHR request.
Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/58191
To support environment folders in the UI on the Environments List
page, the environments index route previously returned one environment
per folder, excluding those other than the latest deploy. However, the
environtments dropdown on the metrics dashboard requires that any
environment be selectable.
To accommodate both use cases, support an optional 'nested' parameter
in the index route to return either a flat, complete response or a
nested response based on the use case in question. The new default
response structure is the flat response.