ci_status_helper.rb 1.14 KB
Newer Older
1 2
module CiStatusHelper
  def ci_status_path(ci_commit)
3
    project = ci_commit.gl_project
Kamil Trzcinski's avatar
Kamil Trzcinski committed
4
    builds_namespace_project_commit_path(project.namespace, project, ci_commit.sha)
5 6 7
  end

  def ci_status_icon(ci_commit)
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
8
    ci_icon_for_status(ci_commit.status)
9 10 11 12 13 14 15 16 17 18 19 20 21 22
  end

  def ci_status_color(ci_commit)
    case ci_commit.status
    when 'success'
      'green'
    when 'failed'
      'red'
    when 'running', 'pending'
      'yellow'
    else
      'gray'
    end
  end
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44

  def ci_status_with_icon(status)
    content_tag :span, class: "ci-status ci-#{status}" do
      ci_icon_for_status(status) + ' '.html_safe + status
    end
  end

  def ci_icon_for_status(status)
    icon_name =
      case status
      when 'success'
        'check'
      when 'failed'
        'close'
      when 'running', 'pending'
        'clock-o'
      else
        'circle'
      end

    icon(icon_name)
  end
45 46

  def render_ci_status(ci_commit)
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
47 48 49 50
    link_to ci_status_path(ci_commit),
      class: "c#{ci_status_color(ci_commit)}",
      title: "Build status: #{ci_commit.status}",
      data: { toggle: 'tooltip', placement: 'left' } do
51 52 53
      ci_status_icon(ci_commit)
    end
  end
54
end