BigW Consortium Gitlab

Refactor CI helpers

parent 87240e98
module Ci
module BuildsHelper
module BuildsHelper
def build_ref_link build
gitlab_ref_link build.project, build.ref
end
......@@ -15,5 +14,4 @@ module Ci
def build_url(build)
ci_project_build_url(build.project, build)
end
end
end
module Ci
module IconsHelper
def boolean_to_icon(value)
if value.to_s == "true"
content_tag :i, nil, class: 'fa fa-circle cgreen'
else
content_tag :i, nil, class: 'fa fa-power-off clgray'
end
end
end
end
module Ci
module UserHelper
def user_avatar_url(user = nil, size = nil, default = 'identicon')
size = 40 if size.nil? || size <= 0
if user.blank? || user.avatar_url.blank?
'ci/no_avatar.png'
elsif /^(http(s?):\/\/(www|secure)\.gravatar\.com\/avatar\/(\w*))/ =~ user.avatar_url
Regexp.last_match[0] + "?s=#{size}&d=#{default}"
else
user.avatar_url
end
end
end
end
......@@ -4,31 +4,41 @@ module CiStatusHelper
end
def ci_status_icon(ci_commit)
icon_name =
ci_icon_for_status(ci_commit.status)
end
def ci_status_color(ci_commit)
case ci_commit.status
when 'success'
'check'
'green'
when 'failed'
'close'
'red'
when 'running', 'pending'
'clock-o'
'yellow'
else
'circle'
'gray'
end
end
icon(icon_name)
def ci_status_with_icon(status)
content_tag :span, class: "ci-status ci-#{status}" do
ci_icon_for_status(status) + '&nbsp;'.html_safe + status
end
end
def ci_status_color(ci_commit)
case ci_commit.status
def ci_icon_for_status(status)
icon_name =
case status
when 'success'
'green'
'check'
when 'failed'
'red'
'close'
when 'running', 'pending'
'yellow'
'clock-o'
else
'gray'
'circle'
end
icon(icon_name)
end
end
module Ci
module RunnersHelper
module RunnersHelper
def runner_status_icon(runner)
unless runner.contacted_at
return content_tag :i, nil,
......@@ -18,5 +17,4 @@ module Ci
class: "fa fa-circle runner-status-#{status}",
title: "Runner is #{status}, last contact was #{time_ago_in_words(runner.contacted_at)} ago"
end
end
end
module Ci
module ApplicationHelper
def loader_html
image_tag 'ci/loader.gif', alt: 'Loading'
end
def date_from_to(from, to)
"#{from.to_s(:short)} - #{to.to_s(:short)}"
end
module TimeHelper
def duration_in_words(finished_at, started_at)
if finished_at && started_at
interval_in_seconds = finished_at.to_i - started_at.to_i
......@@ -29,26 +20,8 @@ module Ci
end
end
def ci_icon_for_status(status)
icon_name =
case status
when 'success'
'check-square'
when 'failed'
'close'
when 'running', 'pending'
'clock-o'
else
'circle'
end
icon(icon_name)
end
def ci_status_with_icon(status)
content_tag :span, class: "ci-status ci-#{status}" do
ci_icon_for_status(status) + '&nbsp;'.html_safe + status
end
end
def date_from_to(from, to)
"#{from.to_s(:short)} - #{to.to_s(:short)}"
end
end
module Ci
module TriggersHelper
module TriggersHelper
def ci_build_trigger_url(project_id, ref_name)
"#{Settings.gitlab_ci.url}/ci/api/v1/projects/#{project_id}/refs/#{ref_name}/trigger"
end
end
end
require 'spec_helper'
describe Ci::RunnersHelper do
describe RunnersHelper do
it "returns - not contacted yet" do
runner = FactoryGirl.build :ci_runner
expect(runner_status_icon(runner)).to include("not connected yet")
......
require 'spec_helper'
describe Ci::ApplicationHelper do
describe TimeHelper do
describe "#duration_in_words" do
it "returns minutes and seconds" do
intervals_in_words = {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment