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
|
||||
- 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
|
||||
- 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.
|
||||
|
|
|
@ -9,11 +9,12 @@ class @MergeRequestWidget
|
|||
constructor: (@opts) ->
|
||||
$('#modal_merge_info').modal(show: false)
|
||||
@firstCICheck = true
|
||||
@readyForCICheck = true
|
||||
@readyForCICheck = false
|
||||
clearInterval @fetchBuildStatusInterval
|
||||
|
||||
@clearEventListeners()
|
||||
@addEventListeners()
|
||||
@getCIStatus(false)
|
||||
@pollCIStatus()
|
||||
notifyPermissions()
|
||||
|
||||
|
@ -71,7 +72,7 @@ class @MergeRequestWidget
|
|||
if data.status is ''
|
||||
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
|
||||
@showCIStatus data.status
|
||||
if data.coverage
|
||||
|
@ -79,7 +80,7 @@ class @MergeRequestWidget
|
|||
|
||||
# The first check should only update the UI, a notification
|
||||
# should only be displayed on status changes
|
||||
if showNotification and not @firstCiCheck
|
||||
if showNotification and not @firstCICheck
|
||||
status = @ciLabelForStatus(data.status)
|
||||
|
||||
if status is "preparing"
|
||||
|
@ -102,7 +103,7 @@ class @MergeRequestWidget
|
|||
@close()
|
||||
Turbolinks.visit _this.opts.builds_path
|
||||
)
|
||||
@firstCiCheck = false
|
||||
@firstCICheck = false
|
||||
|
||||
showCIStatus: (state) ->
|
||||
$('.ci_widget').hide()
|
||||
|
|
|
@ -42,8 +42,3 @@
|
|||
.ci_widget.ci-error{style: "display:none"}
|
||||
= icon("times-circle")
|
||||
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()
|
||||
@class.getCIStatus(false)
|
||||
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