Sha256: 58eb577af3027207d68c55e6c86fb862208f33584297fd8ab6a10449eabbb5a7

Contents?: true

Size: 1.66 KB

Versions: 50

Compression:

Stored size: 1.66 KB

Contents

module ActiveAdmin
  module Views
    # Build a StatusTag
    class StatusTag < ActiveAdmin::Component
      builder_method :status_tag

      def tag_name
        'span'
      end

      def default_class_name
        'status_tag'
      end

      # @method 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 such as :class, :id and :label to override the default label
      #
      # @return [ActiveAdmin::Views::StatusTag]
      #
      # Examples:
      #   status_tag('In Progress')
      #   # => <span class='status_tag in_progress'>In Progress</span>
      #
      #   status_tag('active', :ok)
      #   # => <span class='status_tag active ok'>Active</span>
      #
      #   status_tag('active', :ok, :class => 'important', :id => 'status_123', :label => 'on')
      #   # => <span class='status_tag active ok important' id='status_123'>on</span>
      # 
      def build(*args)
        options = args.extract_options!
        status = args[0]
        type = args[1]
        label = options.delete(:label)
        classes = options.delete(:class)

        content = label || status.titleize if status

        super(content, options)

        add_class(status_to_class(status)) if status
        add_class(type.to_s) if type
        add_class(classes) if classes
      end

      protected

      def status_to_class(status)
        status.titleize.gsub(/\s/, '').underscore
      end
    end
  end
end

Version data entries

50 entries across 50 versions & 2 rubygems

Version Path
lalala-4.0.0.dev.141 vendor/deps/active_admin/lib/active_admin/views/components/status_tag.rb
lalala-4.0.0.dev.136 vendor/deps/active_admin/lib/active_admin/views/components/status_tag.rb
lalala-4.0.0.dev.135 vendor/deps/active_admin/lib/active_admin/views/components/status_tag.rb
lalala-4.0.0.dev.134 vendor/deps/active_admin/lib/active_admin/views/components/status_tag.rb
lalala-4.0.0.dev.133 vendor/deps/active_admin/lib/active_admin/views/components/status_tag.rb
lalala-4.0.0.dev.132 vendor/deps/active_admin/lib/active_admin/views/components/status_tag.rb
lalala-4.0.0.dev.131 vendor/deps/active_admin/lib/active_admin/views/components/status_tag.rb
lalala-4.0.0.dev.129 vendor/deps/active_admin/lib/active_admin/views/components/status_tag.rb
lalala-4.0.0.dev.128 vendor/deps/active_admin/lib/active_admin/views/components/status_tag.rb
lalala-4.0.0.dev.126 vendor/deps/active_admin/lib/active_admin/views/components/status_tag.rb
lalala-4.0.0.dev.125 vendor/deps/active_admin/lib/active_admin/views/components/status_tag.rb
lalala-4.0.0.dev.124 vendor/deps/active_admin/lib/active_admin/views/components/status_tag.rb
lalala-4.0.0.dev.123 vendor/deps/active_admin/lib/active_admin/views/components/status_tag.rb
lalala-4.0.0.dev.118 vendor/deps/active_admin/lib/active_admin/views/components/status_tag.rb
lalala-4.0.0.dev.116 vendor/deps/active_admin/lib/active_admin/views/components/status_tag.rb
lalala-4.0.0.dev.114 vendor/deps/active_admin/lib/active_admin/views/components/status_tag.rb
lalala-4.0.0.dev.113 vendor/deps/active_admin/lib/active_admin/views/components/status_tag.rb
lalala-4.0.0.dev.111 vendor/deps/active_admin/lib/active_admin/views/components/status_tag.rb
lalala-4.0.0.dev.109 vendor/deps/active_admin/lib/active_admin/views/components/status_tag.rb
lalala-4.0.0.dev.107 vendor/deps/active_admin/lib/active_admin/views/components/status_tag.rb