module BootstrapHelper

Public Instance Methods

dropdown(text, icon = nil, &block) click to toggle source
dropdown_divider() click to toggle source
dropdown_item(text, link) click to toggle source
dropdown_model_item(model:, route:, pluralize: nil) click to toggle source
menu_item(name = nil, path = ' click to toggle source
model_menu_item(model:, route:, icon: nil, number: nil, pluralize: nil) click to toggle source
# File lib/trap/helpers/bootstrap_helper.rb, line 17
def model_menu_item(model:, route:, icon: nil, number: nil, pluralize: nil)
  title = model.is_a?(Class) ? (pluralize || model.model_name.human.pluralize(:ru)) : model
  if icon
    build_menu_item_with_icon route: route, icon: icon, number: number, title: title
  else
    menu_item title, route
  end
end

Private Instance Methods

active?(path, options = {}) click to toggle source
# File lib/trap/helpers/bootstrap_helper.rb, line 48
def active?(path, options = {})
  :active if uri_state(path, options).in? %i[active chosen]
end
active_uri_state(options:, uri:, request_uri:, root_url:, root:) click to toggle source
# File lib/trap/helpers/bootstrap_helper.rb, line 98
def active_uri_state(options:, uri:, request_uri:, root_url:, root:)
  if uri_state_is_inactive?(options: options)
    :inactive
  elsif uri_state_is_active?(request_uri: request_uri, options: options, root_url: root_url, uri: uri)
    :active
  else
    request_uri.start_with?(uri) && !root ? :chosen : :inactive
  end
end
build_a_tag_for_dropdown(text:, icon:) { |block| ... } click to toggle source
# File lib/trap/helpers/bootstrap_helper.rb, line 75
def build_a_tag_for_dropdown(text:, icon:, &block)
  concat(link_to('#', **dropdown_link_attributes(text)) do
    if icon
      concat content_tag :span, '', class: "glyphicon glyphicon-#{icon}"
      concat ' '
    end
    concat text
  end)
  concat(content_tag(:div, class: 'dropdown-menu', aria: { labelledby: text }) do
    yield(block)
  end)
end
build_menu_item_with_icon(route:, icon:, title:, number:) click to toggle source
# File lib/trap/helpers/bootstrap_helper.rb, line 63
def build_menu_item_with_icon(route:, icon:, title:, number:)
  menu_item route do
    concat icon_element icon
    concat ' '
    concat title
    if number && number != 0
      concat ' '
      concat(content_tag(:span, number.to_s, class: 'badge danger'))
    end
  end
end
uri_state(uri, options = {}) click to toggle source
# File lib/trap/helpers/bootstrap_helper.rb, line 52
def uri_state(uri, options = {})
  root_url = request.host_with_port + '/'
  root = uri == '/' || uri == root_url
  request_uri = if uri.start_with? root_url
                  request.url
                else
                  request.path
                end
  active_uri_state options: options, uri: uri, request_uri: request_uri, root_url: root_url, root: root
end
uri_state_is_active?(request_uri:, options:, root_url:, uri:) click to toggle source
# File lib/trap/helpers/bootstrap_helper.rb, line 112
def uri_state_is_active?(request_uri:, options:, root_url:, uri:)
  uri == request_uri || (options[:root] && (request_uri == '/') || (request_uri == root_url))
end
uri_state_is_inactive?(options:) click to toggle source
# File lib/trap/helpers/bootstrap_helper.rb, line 108
def uri_state_is_inactive?(options:)
  !options[:method].nil? || !options['data-method'].nil?
end