From feaf01802c092be8f55994c910f2975376cbd20f Mon Sep 17 00:00:00 2001
From: Kamil Trzcinski <ayufan@ayufan.eu>
Date: Thu, 8 Dec 2016 11:03:01 +0100
Subject: [PATCH] Remove ci_status_with_icon helper and replace it with partial
 [ci skip]

---
 app/helpers/ci_status_helper.rb               | 20 +------------------
 app/views/admin/runners/show.html.haml        |  2 +-
 .../ci/status/_icon_with_label.html.haml      | 10 ++++++++++
 app/views/projects/builds/_header.html.haml   |  2 +-
 app/views/projects/ci/builds/_build.html.haml |  5 +----
 .../projects/ci/pipelines/_pipeline.html.haml |  5 +----
 .../_generic_commit_status.html.haml          |  5 +----
 app/views/projects/pipelines/_info.html.haml  |  2 +-
 8 files changed, 17 insertions(+), 34 deletions(-)
 create mode 100644 app/views/ci/status/_icon_with_label.html.haml

diff --git a/app/helpers/ci_status_helper.rb b/app/helpers/ci_status_helper.rb
index 8e19752a8a1..d9f5e01f0dc 100644
--- a/app/helpers/ci_status_helper.rb
+++ b/app/helpers/ci_status_helper.rb
@@ -4,25 +4,7 @@ module CiStatusHelper
     builds_namespace_project_commit_path(project.namespace, project, pipeline.sha)
   end
 
-  def ci_status_with_icon(status, target = nil)
-    content = ci_icon_for_status(status) + ci_text_for_status(status)
-    klass = "ci-status ci-#{status}"
-
-    if target
-      link_to content, target, class: klass
-    else
-      content_tag :span, content, class: klass
-    end
-  end
-
-  def ci_text_for_status(status)
-    if detailed_status?(status)
-      status.text
-    else
-      status
-    end
-  end
-
+  # Is used by Commit and Merge Request Widget
   def ci_label_for_status(status)
     if detailed_status?(status)
       return status.label
diff --git a/app/views/admin/runners/show.html.haml b/app/views/admin/runners/show.html.haml
index 73038164056..fa8be25ffa8 100644
--- a/app/views/admin/runners/show.html.haml
+++ b/app/views/admin/runners/show.html.haml
@@ -91,7 +91,7 @@
               %strong ##{build.id}
 
           %td.status
-            = ci_status_with_icon(build.status)
+            = render "ci/status/icon_with_label", subject: build
 
           %td.status
             - if project
diff --git a/app/views/ci/status/_icon_with_label.html.haml b/app/views/ci/status/_icon_with_label.html.haml
new file mode 100644
index 00000000000..65a74e88444
--- /dev/null
+++ b/app/views/ci/status/_icon_with_label.html.haml
@@ -0,0 +1,10 @@
+- details_path = subject.details_path if subject.has_details?(current_user)
+- klass = "ci-status ci-#{subject.status}"
+- if details_path
+  = link_to details_path, class: klass do
+    = custom_icon(status.icon)
+    = status.text
+- else
+  %span{ class: klass }
+    = custom_icon(status.icon)
+    = status.text
diff --git a/app/views/projects/builds/_header.html.haml b/app/views/projects/builds/_header.html.haml
index f6aa20c4579..5e4e30f08d5 100644
--- a/app/views/projects/builds/_header.html.haml
+++ b/app/views/projects/builds/_header.html.haml
@@ -1,6 +1,6 @@
 .content-block.build-header
   .header-content
-    = ci_status_with_icon(@build.status)
+    = render "ci/status/icon_with_label", subject: build
     Build
     %strong ##{@build.id}
     in pipeline
diff --git a/app/views/projects/ci/builds/_build.html.haml b/app/views/projects/ci/builds/_build.html.haml
index 18b3b04154f..6b0cd3e49a0 100644
--- a/app/views/projects/ci/builds/_build.html.haml
+++ b/app/views/projects/ci/builds/_build.html.haml
@@ -9,10 +9,7 @@
 
 %tr.build.commit{class: ('retried' if retried)}
   %td.status
-    - if can?(current_user, :read_build, build)
-      = ci_status_with_icon(build.status, namespace_project_build_url(build.project.namespace, build.project, build))
-    - else
-      = ci_status_with_icon(build.status)
+    = render "ci/status/icon_with_label", subject: build
 
   %td.branch-commit
     - if can?(current_user, :read_build, build)
diff --git a/app/views/projects/ci/pipelines/_pipeline.html.haml b/app/views/projects/ci/pipelines/_pipeline.html.haml
index b58dceb58c9..84243e4306d 100644
--- a/app/views/projects/ci/pipelines/_pipeline.html.haml
+++ b/app/views/projects/ci/pipelines/_pipeline.html.haml
@@ -1,13 +1,10 @@
 - status = pipeline.status
-- detailed_status = pipeline.detailed_status
 - show_commit = local_assigns.fetch(:show_commit, true)
 - show_branch = local_assigns.fetch(:show_branch, true)
 
 %tr.commit
   %td.commit-link
-    = link_to namespace_project_pipeline_path(pipeline.project.namespace, pipeline.project, pipeline.id), class: "ci-status ci-#{detailed_status}" do
-      = ci_icon_for_status(detailed_status)
-      = ci_text_for_status(detailed_status)
+    = render "ci/status/icon_with_label", subject: pipeline
 
   %td
     = link_to namespace_project_pipeline_path(pipeline.project.namespace, pipeline.project, pipeline.id) do
diff --git a/app/views/projects/generic_commit_statuses/_generic_commit_status.html.haml b/app/views/projects/generic_commit_statuses/_generic_commit_status.html.haml
index 7f751d9ae2e..69cb1631ee8 100644
--- a/app/views/projects/generic_commit_statuses/_generic_commit_status.html.haml
+++ b/app/views/projects/generic_commit_statuses/_generic_commit_status.html.haml
@@ -8,10 +8,7 @@
 
 %tr.generic_commit_status{class: ('retried' if retried)}
   %td.status
-    - if can?(current_user, :read_commit_status, generic_commit_status) && generic_commit_status.target_url
-      = ci_status_with_icon(generic_commit_status.status, generic_commit_status.target_url)
-    - else
-      = ci_status_with_icon(generic_commit_status.status)
+    = render "ci/status/icon_with_label", subject: generic_commit_status
 
   %td.generic_commit_status-link
     - if can?(current_user, :read_commit_status, generic_commit_status) && generic_commit_status.target_url
diff --git a/app/views/projects/pipelines/_info.html.haml b/app/views/projects/pipelines/_info.html.haml
index 229bdfb0e8d..f7385184a2b 100644
--- a/app/views/projects/pipelines/_info.html.haml
+++ b/app/views/projects/pipelines/_info.html.haml
@@ -1,6 +1,6 @@
 .page-content-header
   .header-main-content
-    = ci_status_with_icon(@pipeline.detailed_status)
+    = render "ci/status/icon_with_label", subject: @pipeline
     %strong Pipeline ##{@commit.pipelines.last.id}
     triggered #{time_ago_with_tooltip(@commit.authored_date)} by
     = author_avatar(@commit, size: 24)
-- 
GitLab