app/helpers/application_helper.rb
# frozen_string_literal: true
module ApplicationHelper
def federal_subjects_controller?
controller_path == 'federal_subjects'
end
def staff_controller?
controller_path.start_with?('staff')
end
def timezones_collection
[*negative_timezones_collection, *positive_timezones_collection].freeze
end
def locales_collection
Account.locales.keys.map(&:to_sym).map do |item|
[
translate_enum(:locale, item).freeze,
item,
].freeze
end.freeze
end
def positive_timezones_collection
0.upto(11).flat_map do |n|
s = n.to_s.rjust(2, '0')
[
"#{s}:00:00",
"#{s}:15:00",
"#{s}:30:00",
"#{s}:45:00",
]
end
end
def negative_timezones_collection
12.downto(1).flat_map do |n|
s1 = n.to_s.rjust(2, '0')
s2 = (n - 1).to_s.rjust(2, '0')
[
"-#{s1}:00:00",
"-#{s2}:45:00",
"-#{s2}:30:00",
"-#{s2}:15:00",
]
end
end
def there_is
tag.i class: 'text-muted' do
translate :there_is
end
end
def none
tag.i class: 'text-muted' do
translate :none
end
end
def maybe_or_none(cond)
cond ? yield : none
end
def bool_badge(value)
if value
tag.span class: 'badge badge-pill badge-success' do
translate :yes
end
else
tag.span class: 'badge badge-pill badge-secondary' do
translate :no
end
end
end
def translate_enum(type, value)
translate value, scope: [:enums, type]
end
def pagination(collection)
tag.div do
concat tag.div(class: 'd-flex justify-content-center') {
paginate collection
}
concat tag.div(class: 'd-flex justify-content-center') {
tag.span { page_entries_info collection }
}
end
end
def open_action(url)
link_to url, role: :button, class: 'btn btn-light btn-sm' do
concat tag.i class: 'far fa-eye'
concat ' '.html_safe
concat translate :open_action
end
end
def bootstrap_class_for_flash(flash_type)
case flash_type
when 'success'
'alert-success'
when 'error', 'recaptcha_error'
'alert-danger'
when 'alert'
'alert-warning'
else
'alert-info'
end
end
end