mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-09 04:36:11 +10:00
Merge branch 'fix-multiple-ci-status-poll' into 'master'
Fixed potential issue with 2 ci status polling events happening Possible cause for double notifications was if the request was slow & then you changed page whilst this request was happening it would finish on another page & then launch another interval - this stops that issue. Also passed in the CI status as an option value rather than waiting for the first ajax request to finish See merge request !3869
This commit is contained in:
@@ -10,6 +10,7 @@ class @MergeRequestWidget
|
||||
$('#modal_merge_info').modal(show: false)
|
||||
@firstCICheck = true
|
||||
@readyForCICheck = false
|
||||
@cancel = false
|
||||
clearInterval @fetchBuildStatusInterval
|
||||
|
||||
@clearEventListeners()
|
||||
@@ -21,10 +22,16 @@ class @MergeRequestWidget
|
||||
clearEventListeners: ->
|
||||
$(document).off 'page:change.merge_request'
|
||||
|
||||
cancelPolling: ->
|
||||
@cancel = true
|
||||
|
||||
addEventListeners: ->
|
||||
allowedPages = ['show', 'commits', 'builds', 'changes']
|
||||
$(document).on 'page:change.merge_request', =>
|
||||
if $('body').data('page') isnt 'projects:merge_requests:show'
|
||||
page = $('body').data('page').split(':').last()
|
||||
if allowedPages.indexOf(page) < 0
|
||||
clearInterval @fetchBuildStatusInterval
|
||||
@cancelPolling()
|
||||
@clearEventListeners()
|
||||
|
||||
mergeInProgress: (deleteSourceBranch = false)->
|
||||
@@ -67,6 +74,7 @@ class @MergeRequestWidget
|
||||
$('.ci-widget-fetching').show()
|
||||
|
||||
$.getJSON @opts.ci_status_url, (data) =>
|
||||
return if @cancel
|
||||
@readyForCICheck = true
|
||||
|
||||
if data.status is ''
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
check_enable: #{@merge_request.unchecked? ? "true" : "false"},
|
||||
ci_status_url: "#{ci_status_namespace_project_merge_request_path(@project.namespace, @project, @merge_request)}",
|
||||
gitlab_icon: "#{asset_path 'gitlab_logo.png'}",
|
||||
ci_status: "",
|
||||
ci_status: "#{@merge_request.ci_commit ? @merge_request.ci_commit.status : ''}",
|
||||
ci_message: {
|
||||
normal: "Build {{status}} for \"{{title}}\"",
|
||||
preparing: "{{status}} build for \"{{title}}\""
|
||||
@@ -26,4 +26,10 @@
|
||||
builds_path: "#{builds_namespace_project_merge_request_path(@project.namespace, @project, @merge_request)}"
|
||||
};
|
||||
|
||||
if (typeof merge_request_widget !== 'undefined') {
|
||||
clearInterval(merge_request_widget.fetchBuildStatusInterval);
|
||||
merge_request_widget.cancelPolling();
|
||||
merge_request_widget.clearEventListeners();
|
||||
}
|
||||
|
||||
merge_request_widget = new MergeRequestWidget(opts);
|
||||
|
||||
Reference in New Issue
Block a user