class ActiveAdmin::Views::StatusTag

Build a StatusTag

Public Instance Methods

build(*args) click to toggle source

@overload status_tag(status, type = nil, options = {})

@param [String] status the status to display. One of the span classes will be an underscored version of the status.
@param [Symbol] type type of status. Will become a class of the span. ActiveAdmin provide style for :ok, :warning and :error.
@param [Hash] options
@option options [String] :class to override the default class
@option options [String] :id to override the default id
@option options [String] :label to override the default label
@return [ActiveAdmin::Views::StatusTag]

@example

status_tag('In Progress')
# => <span class='status_tag in_progress'>In Progress</span>

@example

status_tag('active', :ok)
# => <span class='status_tag active ok'>Active</span>

@example

status_tag('active', :ok, class: 'important', id: 'status_123', label: 'on')
# => <span class='status_tag active ok important' id='status_123'>on</span>
Calls superclass method
# File lib/active_admin/views/components/status_tag.rb, line 36
def build(*args)
  options = args.extract_options!
  status = args[0]
  type = args[1]
  label = options.delete(:label)
  classes = options.delete(:class)
  status = convert_to_boolean_status(status)

  if status
    content = label || if s = status.to_s and s.present?
      I18n.t "active_admin.status_tag.#{s.downcase}", default: s.titleize
    end
  end

  super(content, options)

  add_class(status_to_class(status)) if status
  add_class(type.to_s) if type
  add_class(classes) if classes
end
default_class_name() click to toggle source
# File lib/active_admin/views/components/status_tag.rb, line 11
def default_class_name
  'status_tag'
end
tag_name() click to toggle source
# File lib/active_admin/views/components/status_tag.rb, line 7
def tag_name
  'span'
end

Protected Instance Methods

convert_to_boolean_status(status) click to toggle source
# File lib/active_admin/views/components/status_tag.rb, line 59
def convert_to_boolean_status(status)
  case status
  when true, 'true'
    'Yes'
  when false, 'false', nil
    'No'
  else
    status
  end
end
status_to_class(status) click to toggle source
# File lib/active_admin/views/components/status_tag.rb, line 70
def status_to_class(status)
  case status
  when String, Symbol
    status.to_s.titleize.gsub(/\s/, '').underscore
  else
    ''
  end
end