From c1c786fe65be89da63db7d9e5e6523ba549f2f8a Mon Sep 17 00:00:00 2001
From: Jacob Schatz <jacobschatz@Jacobs-MBP.fios-router.home>
Date: Fri, 4 Mar 2016 18:22:39 -0500
Subject: [PATCH] Using status from ajax call.

Removing icon changes because refresh.
---
 .../merge_request_widget.js.coffee            | 33 +++++++------------
 .../merge_requests/widget/_show.html.haml     |  5 ++-
 2 files changed, 13 insertions(+), 25 deletions(-)

diff --git a/app/assets/javascripts/merge_request_widget.js.coffee b/app/assets/javascripts/merge_request_widget.js.coffee
index 27537d72661..168de57288b 100644
--- a/app/assets/javascripts/merge_request_widget.js.coffee
+++ b/app/assets/javascripts/merge_request_widget.js.coffee
@@ -3,12 +3,14 @@ class @MergeRequestWidget
   #
   #   check_enable           - Boolean, whether to check automerge status
   #   url_to_automerge_check - String, URL to use to check automerge status
-  #   current_status         - String, current automerge status
   #   url_to_ci_check        - String, URL to use to check CI status
   #
+
   constructor: (@opts) ->
+    @first = true
     modal = $('#modal_merge_info').modal(show: false)
     @getBuildStatus()
+    @readyForCICheck = true
     # clear the build poller
 
   mergeInProgress: (deleteSourceBranch = false)->
@@ -31,19 +33,6 @@ class @MergeRequestWidget
     $.get @opts.url_to_automerge_check, (data) ->
       $('.mr-state-widget').replaceWith(data)
 
-  ciIconForStatus: (status) ->
-    icon = undefined
-    switch status
-      when 'success'
-        icon = 'check'
-      when 'failed'
-        icon = 'close'
-      when 'running' or 'pending'
-        icon = 'clock-o'
-      else
-        icon = 'circle'
-    'fa fa-' + icon + ' fa-fw'
-
   ciLabelForStatus: (status) ->
     if status == 'success'
       'passed'
@@ -54,7 +43,13 @@ class @MergeRequestWidget
     urlToCiCheck = @opts.url_to_ci_check
     _this = @
     @fetchBuildStatusInterval = setInterval (->
+      if not _this.readyForCICheck
+        return;
       $.getJSON urlToCiCheck, (data) ->
+        _this.readyForCICheck = true
+        if _this.first
+          _this.first = false
+          _this.opts.current_status = data.status
         if data.status isnt _this.opts.current_status
           notify("Build #{_this.ciLabelForStatus(data.status)}",
             _this.opts.ci_message.replace('{{status}}',
@@ -65,16 +60,10 @@ class @MergeRequestWidget
             return
           ), 2000
           _this.opts.current_status = data.status
-          $('.mr-widget-heading i')
-            .removeClass()
-            .addClass(_this.ciIconForStatus(data.status));
-          $('.mr-widget-heading .ci_widget')
-            .removeClass()
-            .addClass("ci_widget ci-#{data.status}");
-          $('.mr-widget-heading span.ci-status-label')
-            .text(_this.ciLabelForStatus(data.status))
         return
+      _this.readyForCICheck = false
       return
+
     ), 5000
 
   getCiStatus: ->
diff --git a/app/views/projects/merge_requests/widget/_show.html.haml b/app/views/projects/merge_requests/widget/_show.html.haml
index 9537eda5aa5..b5591416a31 100644
--- a/app/views/projects/merge_requests/widget/_show.html.haml
+++ b/app/views/projects/merge_requests/widget/_show.html.haml
@@ -13,16 +13,15 @@
     url_to_automerge_check: "#{merge_check_namespace_project_merge_request_path(@project.namespace, @project, @merge_request)}",
     check_enable: #{@merge_request.unchecked? ? "true" : "false"},
     url_to_ci_check: "#{ci_status_namespace_project_merge_request_path(@project.namespace, @project, @merge_request)}",
-    gitlab_icon: "#{asset_path 'gitlab_logo.png'}"
+    gitlab_icon: "#{asset_path 'gitlab_logo.png'}",
+    current_status: ""
   };
 
 - if @merge_request.ci_commit
   :javascript
-    opts.current_status = "#{@merge_request.ci_commit.try(:status)}";
     opts.ci_message = "Build {{status}} for #{@merge_request.ci_commit.sha}";
 - else
   :javascript
-    opts.current_status = "#{@merge_request.source_project.ci_service.commit_status(@merge_request.last_commit.sha, merge_request.source_branch) if @merge_request.source_project.ci_service}";
     opts.ci_message = "Build {{status}} for #{@merge_request.last_commit.sha}";
 
 :javascript
-- 
GitLab