Commit 90fc9237 authored by Filipa Lacerda's avatar Filipa Lacerda Committed by Kamil Trzcinski

Updates polling function to guarantee we won't make a request while polling

parent 6f9fdebc
...@@ -49,6 +49,7 @@ export default { ...@@ -49,6 +49,7 @@ export default {
pagenum: 1, pagenum: 1,
isLoading: false, isLoading: false,
hasError: false, hasError: false,
isMakingRequest: false,
}; };
}, },
...@@ -136,6 +137,7 @@ export default { ...@@ -136,6 +137,7 @@ export default {
data: { page: pageNumber, scope }, data: { page: pageNumber, scope },
successCallback: this.successCallback, successCallback: this.successCallback,
errorCallback: this.errorCallback, errorCallback: this.errorCallback,
notificationCallback: this.setIsMakingRequest,
}); });
if (!Visibility.hidden()) { if (!Visibility.hidden()) {
...@@ -143,8 +145,8 @@ export default { ...@@ -143,8 +145,8 @@ export default {
poll.makeRequest(); poll.makeRequest();
} }
Visibility.change((e, state) => { Visibility.change(() => {
if (state === 'visible') { if (!Visibility.hidden()) {
poll.restart(); poll.restart();
} else { } else {
poll.stop(); poll.stop();
...@@ -155,7 +157,7 @@ export default { ...@@ -155,7 +157,7 @@ export default {
}, },
beforeUpdate() { beforeUpdate() {
if (this.state.pipelines.length && this.$children) { if (this.state.pipelines.length && this.$children && !this.isMakingRequest) {
this.store.startTimeAgoLoops.call(this, Vue); this.store.startTimeAgoLoops.call(this, Vue);
} }
}, },
...@@ -181,10 +183,13 @@ export default { ...@@ -181,10 +183,13 @@ export default {
const pageNumber = gl.utils.getParameterByName('page') || this.pagenum; const pageNumber = gl.utils.getParameterByName('page') || this.pagenum;
const scope = gl.utils.getParameterByName('scope') || this.apiScope; const scope = gl.utils.getParameterByName('scope') || this.apiScope;
this.isLoading = true; if (!this.isMakingRequest) {
return this.service.getPipelines({ scope, page: pageNumber }) this.isLoading = true;
.then(response => this.successCallback(response))
.catch(() => this.errorCallback()); this.service.getPipelines({ scope, page: pageNumber })
.then(response => this.successCallback(response))
.catch(() => this.errorCallback());
}
}, },
successCallback(resp) { successCallback(resp) {
...@@ -204,6 +209,10 @@ export default { ...@@ -204,6 +209,10 @@ export default {
this.hasError = true; this.hasError = true;
this.isLoading = false; this.isLoading = false;
}, },
setIsMakingRequest(isMakingRequest) {
this.isMakingRequest = isMakingRequest;
},
}, },
template: ` template: `
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment