Class: ActiveAdmin::Views::StatusTag

Inherits:
Component
  • Object
show all
Defined in:
lib/active_admin/views/components/status_tag.rb

Overview

Build a StatusTag

Instance Method Summary collapse

Instance Method Details

#status_tag(status, options = {}) ⇒ ActiveAdmin::Views::StatusTag

Examples:

status_tag('In Progress')
# => <span class='status_tag in_progress'>In Progress</span>
status_tag('active', class: 'important', id: 'status_123', label: 'on')
# => <span class='status_tag active important' id='status_123'>on</span>

Options Hash (options):

  • :class (String)

    to override the default class

  • :id (String)

    to override the default id

  • :label (String)

    to override the default label



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/active_admin/views/components/status_tag.rb', line 31

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

  if type
    Deprecation.warn "      The `type` parameter has been deprecated. Provide the \"\#{type}\" type as\n      a class instead. For example, `status_tag(status, :\#{type}, class: \"abc\")`\n      would change to `status_tag(status, class: \"\#{type} abc\")`. Also note that\n      the \"\#{type}\" CSS rule will be removed too, so you'll have to provide\n      the styles yourself. See https://github.com/activeadmin/activeadmin/blob/master/CHANGELOG.md#110-\n      for more information.\n    MSG\n    add_class(type.to_s)\n  end\n\n  add_class(classes) if classes\nend\n".strip_heredoc

#convert_to_boolean_status(status) ⇒ Object (protected)



67
68
69
70
71
72
73
74
75
76
# File 'lib/active_admin/views/components/status_tag.rb', line 67

def convert_to_boolean_status(status)
  case status
  when true, 'true'
    'Yes'
  when false, 'false', nil
    'No'
  else
    status
  end
end

#default_class_nameObject



11
12
13
# File 'lib/active_admin/views/components/status_tag.rb', line 11

def default_class_name
  'status_tag'
end

#status_to_class(status) ⇒ Object (protected)



78
79
80
81
82
83
84
85
# File 'lib/active_admin/views/components/status_tag.rb', line 78

def status_to_class(status)
  case status
  when String, Symbol
    status.to_s.titleize.gsub(/\s/, '').underscore
  else
    ''
  end
end

#tag_nameObject



7
8
9
# File 'lib/active_admin/views/components/status_tag.rb', line 7

def tag_name
  'span'
end