summaryrefslogtreecommitdiff
path: root/app/helpers/ci/application_helper.rb
blob: 9fe6282bb81782cebee9685a7e4a3c8363635b3f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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

    def duration_in_words(finished_at, started_at)
      if finished_at && started_at
        interval_in_seconds = finished_at.to_i - started_at.to_i
      elsif started_at
        interval_in_seconds = Time.now.to_i - started_at.to_i
      end

      time_interval_in_words(interval_in_seconds)
    end

    def time_interval_in_words(interval_in_seconds)
      minutes = interval_in_seconds / 60
      seconds = interval_in_seconds - minutes * 60

      if minutes >= 1
        "#{pluralize(minutes, "minute")} #{pluralize(seconds, "second")}"
      else
        "#{pluralize(seconds, "second")}"
      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) + ' '.html_safe + status
      end
    end
  end
end