rosa-build/app/helpers/application_helper.rb

121 lines
3.3 KiB
Ruby
Raw Normal View History

2011-03-09 13:13:36 +00:00
module ApplicationHelper
def submit_button_tag(icon_class: 'fa-check', text: nil)
text ||= I18n.t('layout.save')
button_tag type: :submit,
data: {'disable-with' => I18n.t('layout.processing')},
class: 'btn btn-primary' do
content_tag(:i, nil, class: ['fa', icon_class]) << ' '<< text
end
end
def layout_class
case
when controller_name == 'issues' && action_name == 'new'
'right nopadding'
when controller_name == 'build_lists' && ['new', 'create'].include?(action_name)
nil
when controller_name == 'platforms' && ['build_all', 'mass_builds'].include?(action_name)
2012-05-28 11:28:19 +01:00
'right slim'
when controller_name == 'platforms' && action_name == 'show'
'right bigpadding'
when controller_name == 'platforms' && action_name == 'clone'
'right middlepadding'
when controller_name == 'contacts' && action_name == 'sended'
'all feedback_sended'
else
content_for?(:sidebar) ? 'right' : 'all'
end
end
2012-03-29 19:34:45 +01:00
def top_menu_class(base)
(controller_name.include?('build_lists') ? controller_name : params[:controller]).include?(base.to_s) ? 'active' : nil
end
2015-02-07 00:37:52 +00:00
# Public: Get icon css class.
#
# base - the tab (Symbol).
#
# Returns String css class.
def top_menu_icon(base)
case base
when :platforms
'fa-linux'
when :projects
'fa-cube'
when :build_lists
'fa-cogs'
2016-06-15 19:22:50 +01:00
when :product_build_lists
'fa-product-hunt'
2015-02-07 00:37:52 +00:00
when :groups
'fa-users'
when :statistics
'fa-area-chart'
end
end
def title_object(object)
2012-03-30 13:30:39 +01:00
name = object.class == Group ? object.uname : object.name
object_name = t "activerecord.models.#{object.class.name.downcase}"
case object.class.name
2015-02-26 02:01:47 +00:00
when 'Project'
2012-03-30 13:30:39 +01:00
"#{object_name} #{object.owner.uname}/#{object.name}"
2015-02-26 02:01:47 +00:00
when 'Platform'
if object.main?
"#{object_name} #{object.name}"
else
"#{object_name} #{object.owner.uname}/#{object.name}"
end
2012-03-30 13:30:39 +01:00
when 'Repository', 'Product'
"#{object_name} #{object.name} - #{title_object object.platform}"
when 'Group'
"#{object_name} #{object.uname}"
else object.class.name
end
end
2012-08-29 15:58:58 +01:00
2012-09-24 18:34:14 +01:00
def local_alert(text, type = 'error')
html = "<div class='flash'><div class='alert #{type}'> #{text}"
2014-01-21 04:51:49 +00:00
html << link_to('×', '#', class: 'close close-alert', 'data-dismiss' => 'alert')
2012-09-24 18:34:14 +01:00
html << '</div></div>'
end
2013-08-22 14:55:44 +01:00
# Why 42? Because it is the Answer!
def short_message(message, length = 42)
2014-01-21 04:51:49 +00:00
truncate(message, length: length, omission: '…')
2013-08-22 14:55:44 +01:00
end
2013-09-01 13:06:42 +01:00
def datetime_moment(date, options = {})
tag = options[:tag] || :div
klass = "datetime_moment #{options[:class]}"
content_tag(tag, nil, class: klass, origin_datetime: date)
2013-09-01 13:06:42 +01:00
end
2014-07-09 12:56:21 +01:00
def alert_class(type)
2015-03-04 23:09:50 +00:00
case type
when 'error', 'alert'
2014-07-09 17:21:03 +01:00
'alert-danger'
when 'notice'
'alert-success'
else
"alert-#{type}"
end
2014-07-09 12:56:21 +01:00
end
2020-01-22 11:50:51 +00:00
def bytes_to_size(bytes)
sizes = [0, 1024, 1024*1024, 1024*1024*1024]
names = ['B', 'KiB', 'MiB', 'GiB']
sizes.each_with_index do |l, i|
low, high = sizes[i], sizes[i+1]
if bytes >= low && (!high || bytes < high)
if low == 0
sz = bytes
else
sz = (bytes.to_f / low).round(2)
end
return "#{sz}#{names[i]}"
end
end
end
2011-03-09 13:13:36 +00:00
end