Merge branch 'fix-build-notification-on-merge-page-change' into 'master'
Fix build notification on merge request page change even if the build status didn't change ## What does this MR do? This MR contains a bugfix for #17357 which was introduced by !3998. The notification are now only shown on status changes, and not when switching between different merge requests. ## Are there points in the code the reviewer needs to double check? Check implementation ## Why was this MR needed? Because auf a bug introduced in !3998. ## What are the relevant issue numbers? #17357 Closes #17357 See merge request !4086
This commit is contained in:
commit
4a47470feb
|
@ -32,6 +32,9 @@ v 8.8.0 (unreleased)
|
||||||
- Expire repository exists? and has_visible_content? caches after a push if necessary
|
- Expire repository exists? and has_visible_content? caches after a push if necessary
|
||||||
- Fix unintentional filtering bug in issues sorted by milestone due (Takuya Noguchi)
|
- Fix unintentional filtering bug in issues sorted by milestone due (Takuya Noguchi)
|
||||||
|
|
||||||
|
v 8.7.4
|
||||||
|
- Fix always showing build notification message when switching between merge requests
|
||||||
|
|
||||||
v 8.7.3
|
v 8.7.3
|
||||||
- Emails, Gitlab::Email::Message, Gitlab::Diff, and Premailer::Adapter::Nokogiri are now instrumented
|
- Emails, Gitlab::Email::Message, Gitlab::Diff, and Premailer::Adapter::Nokogiri are now instrumented
|
||||||
- Merge request widget displays TeamCity build state and code coverage correctly again.
|
- Merge request widget displays TeamCity build state and code coverage correctly again.
|
||||||
|
|
|
@ -9,11 +9,12 @@ class @MergeRequestWidget
|
||||||
constructor: (@opts) ->
|
constructor: (@opts) ->
|
||||||
$('#modal_merge_info').modal(show: false)
|
$('#modal_merge_info').modal(show: false)
|
||||||
@firstCICheck = true
|
@firstCICheck = true
|
||||||
@readyForCICheck = true
|
@readyForCICheck = false
|
||||||
clearInterval @fetchBuildStatusInterval
|
clearInterval @fetchBuildStatusInterval
|
||||||
|
|
||||||
@clearEventListeners()
|
@clearEventListeners()
|
||||||
@addEventListeners()
|
@addEventListeners()
|
||||||
|
@getCIStatus(false)
|
||||||
@pollCIStatus()
|
@pollCIStatus()
|
||||||
notifyPermissions()
|
notifyPermissions()
|
||||||
|
|
||||||
|
@ -71,7 +72,7 @@ class @MergeRequestWidget
|
||||||
if data.status is ''
|
if data.status is ''
|
||||||
return
|
return
|
||||||
|
|
||||||
if @firstCiCheck || data.status isnt @opts.ci_status and data.status?
|
if @firstCICheck || data.status isnt @opts.ci_status and data.status?
|
||||||
@opts.ci_status = data.status
|
@opts.ci_status = data.status
|
||||||
@showCIStatus data.status
|
@showCIStatus data.status
|
||||||
if data.coverage
|
if data.coverage
|
||||||
|
@ -79,7 +80,7 @@ class @MergeRequestWidget
|
||||||
|
|
||||||
# The first check should only update the UI, a notification
|
# The first check should only update the UI, a notification
|
||||||
# should only be displayed on status changes
|
# should only be displayed on status changes
|
||||||
if showNotification and not @firstCiCheck
|
if showNotification and not @firstCICheck
|
||||||
status = @ciLabelForStatus(data.status)
|
status = @ciLabelForStatus(data.status)
|
||||||
|
|
||||||
if status is "preparing"
|
if status is "preparing"
|
||||||
|
@ -102,7 +103,7 @@ class @MergeRequestWidget
|
||||||
@close()
|
@close()
|
||||||
Turbolinks.visit _this.opts.builds_path
|
Turbolinks.visit _this.opts.builds_path
|
||||||
)
|
)
|
||||||
@firstCiCheck = false
|
@firstCICheck = false
|
||||||
|
|
||||||
showCIStatus: (state) ->
|
showCIStatus: (state) ->
|
||||||
$('.ci_widget').hide()
|
$('.ci_widget').hide()
|
||||||
|
|
|
@ -41,9 +41,4 @@
|
||||||
|
|
||||||
.ci_widget.ci-error{style: "display:none"}
|
.ci_widget.ci-error{style: "display:none"}
|
||||||
= icon("times-circle")
|
= icon("times-circle")
|
||||||
Could not connect to the CI server. Please check your settings and try again.
|
Could not connect to the CI server. Please check your settings and try again.
|
||||||
|
|
||||||
:javascript
|
|
||||||
$(function() {
|
|
||||||
merge_request_widget.getCIStatus(false);
|
|
||||||
});
|
|
|
@ -47,3 +47,9 @@ describe 'MergeRequestWidget', ->
|
||||||
spy = spyOn(@class, 'showCICoverage').and.stub()
|
spy = spyOn(@class, 'showCICoverage').and.stub()
|
||||||
@class.getCIStatus(false)
|
@class.getCIStatus(false)
|
||||||
expect(spy).not.toHaveBeenCalled()
|
expect(spy).not.toHaveBeenCalled()
|
||||||
|
|
||||||
|
it 'should not display a notification on the first check after the widget has been created', ->
|
||||||
|
spy = spyOn(window, 'notify')
|
||||||
|
@class = new MergeRequestWidget(@opts)
|
||||||
|
@class.getCIStatus(true)
|
||||||
|
expect(spy).not.toHaveBeenCalled()
|
||||||
|
|
Loading…
Reference in New Issue