def determine_wallclock_runtime jobs
timestamps = []
jobs.each do |j|
- insert_at = 0
- started_at = j[:started_at]
- finished_at = (if j[:finished_at] then j[:finished_at] else Time.now end)
+ started_at = (j.started_at if j.respond_to?(:started_at)) || (j[:started_at] if j.is_a?(Hash))
+ finished_at = (j.finished_at if j.respond_to?(:finished_at)) || (j[:finished_at] if j.is_a?(Hash)) || Time.now
if started_at
timestamps = merge_range timestamps, started_at, finished_at
end
else
s = ""
if days > 0
- s += "#{days}<span class='time-label-divider'>d</span> "
+ s += "#{days}<span class='time-label-divider'>d</span>"
end
if (hours > 0)
s += "#{minutes}<span class='time-label-divider'>m</span>"
- if not round_to_min
+ if not round_to_min or (days == 0 and hours == 0 and minutes == 0)
s += "#{seconds}<span class='time-label-divider'>s</span>"
end
end
raw(s)
end
- def render_runtime_compact duration
- if duration >= DAY
- "#{(duration / DAY.to_f).round(2)} days"
- elsif duration >= HOUR
- "#{(duration / HOUR.to_f).round(2)} hours"
- elsif duration >= MINUTE
- "#{(duration / MINUTE.to_f).round(2)} minutes"
- else
- seconds = duration.round(2)
- "#{seconds} second#{'s' if seconds != 1}"
- end
- end
-
def render_unreadable_inputs_present
if current_user and controller.class.name.eql?('PipelineInstancesController') and unreadable_inputs_present?
raw('<div class="alert alert-danger unreadable-inputs-present">' +