ci_status_helper.rb 1.12 KB
Newer Older
1 2
module CiStatusHelper
  def ci_status_path(ci_commit)
3 4
    project = ci_commit.gl_project
    ci_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 47 48 49 50 51

  def render_ci_status(ci_commit)
    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
      ci_status_icon(ci_commit)
    end
  end
52
end