Skip to content
Snippets Groups Projects
Commit 7765e6ec authored by Stan Hu's avatar Stan Hu
Browse files

Fix pagination and duplicate requests in environments page

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
parent 3b05d481
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -43,7 +43,11 @@ export default {
saveData(resp) {
this.isLoading = false;
 
if (_.isEqual(resp.config.params, this.requestData)) {
// Prevent the absence of the nested flag from causing mismatches
const response = _.omit(resp.config.params, _.isUndefined);
const request = _.omit(this.requestData, _.isUndefined);
if (_.isEqual(response, request)) {
this.store.storeAvailableCount(resp.data.available_count);
this.store.storeStoppedCount(resp.data.stopped_count);
this.store.storeEnvironments(resp.data.environments);
Loading
Loading
@@ -64,10 +68,9 @@ export default {
// fetch new data
return this.service
.fetchEnvironments(this.requestData)
.then(response => this.successCallback(response))
.then(() => {
// restart polling
this.poll.restart({ data: this.requestData });
.then(response => {
this.successCallback(response);
this.poll.enable({ data: this.requestData, response });
})
.catch(() => {
this.errorCallback();
Loading
Loading
---
title: Fix pagination and duplicate requests in environments page
merge_request: 25582
author:
type: fixed
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment