Sha256: 4372b65cf352bb89da76f0f6fff43795997e2ab814234fed056f79db671bf14d

Contents?: true

Size: 911 Bytes

Versions: 9

Compression:

Stored size: 911 Bytes

Contents

module ActiveAdmin
  module Views
    class Tabs < ActiveAdmin::Component
      builder_method :tabs

      def tab(title, options = {}, &block)
        title = title.to_s.titleize if title.is_a? Symbol
        @menu << build_menu_item(title, options, &block)
        @tabs_content << build_content_item(title, options, &block)
      end

      def build(&block)
        @menu = ul(class: 'nav nav-tabs', role: "tablist")
        @tabs_content = div(class: 'tab-content')
      end

      def build_menu_item(title, options, &block)
        fragment = options.fetch(:id, title.parameterize)
        html_options = options.fetch(:html_options, {})
        li html_options do
          link_to title, "##{fragment}"
        end
      end

      def build_content_item(title, options, &block)
        options = options.reverse_merge(id: title.parameterize)
        div(options, &block)
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 2 rubygems

Version Path
activeadmin-rb-1.6.0 lib/active_admin/views/components/tabs.rb
activeadmin-rb-1.5.2 lib/active_admin/views/components/tabs.rb
activeadmin-rb-1.5.1 lib/active_admin/views/components/tabs.rb
activeadmin-rb-1.5.0 lib/active_admin/views/components/tabs.rb
activeadmin-rb-1.4.0 lib/active_admin/views/components/tabs.rb
activeadmin-1.4.3 lib/active_admin/views/components/tabs.rb
activeadmin-1.4.2 lib/active_admin/views/components/tabs.rb
activeadmin-1.4.1 lib/active_admin/views/components/tabs.rb
activeadmin-1.4.0 lib/active_admin/views/components/tabs.rb