summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/lib
diff options
context:
space:
mode:
authorFilipa Lacerda <filipa@gitlab.com>2019-02-25 09:39:18 +0000
committerFilipa Lacerda <filipa@gitlab.com>2019-02-25 09:39:18 +0000
commit1c30b12b868ffc3d73589d42a811bc47f8f631c9 (patch)
tree546ceced176dee8c607d32b680e64b0dc8c8f791 /app/assets/javascripts/lib
parent1ad18199ce15071bd5b28a1c4fb008f78cfbe384 (diff)
parentec5bbd27f5b334a6e338574ebafe6b0cd39461bc (diff)
downloadgitlab-ce-1c30b12b868ffc3d73589d42a811bc47f8f631c9.tar.gz
Merge branch 'sh-fix-double-xhr-pipelines' into 'master'
Remove duplicate XHR request when requesting new pipeline page Closes #58095 See merge request gitlab-org/gitlab-ce!25506
Diffstat (limited to 'app/assets/javascripts/lib')
-rw-r--r--app/assets/javascripts/lib/utils/poll.js20
1 files changed, 17 insertions, 3 deletions
diff --git a/app/assets/javascripts/lib/utils/poll.js b/app/assets/javascripts/lib/utils/poll.js
index 198711cf427..a900ff34bf5 100644
--- a/app/assets/javascripts/lib/utils/poll.js
+++ b/app/assets/javascripts/lib/utils/poll.js
@@ -63,6 +63,10 @@ export default class Poll {
const headers = normalizeHeaders(response.headers);
const pollInterval = parseInt(headers[this.intervalHeader], 10);
if (pollInterval > 0 && successCodes.indexOf(response.status) !== -1 && this.canPoll) {
+ if (this.timeoutID) {
+ clearTimeout(this.timeoutID);
+ }
+
this.timeoutID = setTimeout(() => {
this.makeRequest();
}, pollInterval);
@@ -101,15 +105,25 @@ export default class Poll {
}
/**
- * Restarts polling after it has been stoped
+ * Enables polling after it has been stopped
*/
- restart(options) {
- // update data
+ enable(options) {
if (options && options.data) {
this.options.data = options.data;
}
this.canPoll = true;
+
+ if (options && options.response) {
+ this.checkConditions(options.response);
+ }
+ }
+
+ /**
+ * Restarts polling after it has been stopped and makes a request
+ */
+ restart(options) {
+ this.enable(options);
this.makeRequest();
}
}