Sha256: 1aba1ab33fa5325d8ec0f0ff8a02e30e08939df405b6ddfccd2d78beb322ff36

Contents?: true

Size: 1.08 KB

Versions: 17

Compression:

Stored size: 1.08 KB

Contents

# frozen_string_literal: true
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, fragmentize(title))

        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: fragmentize(title))
        div(options, &block)
      end

      private

      def fragmentize(string)
        result = string.parameterize
        result = CGI.escape(string) if result.blank?
        result
      end
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
activeadmin-3.2.5 lib/active_admin/views/components/tabs.rb
activeadmin-3.2.4 lib/active_admin/views/components/tabs.rb
activeadmin-3.2.3 lib/active_admin/views/components/tabs.rb
activeadmin-3.2.2 lib/active_admin/views/components/tabs.rb
activeadmin-3.2.1 lib/active_admin/views/components/tabs.rb
activeadmin-3.2.0 lib/active_admin/views/components/tabs.rb
activeadmin-3.1.0 lib/active_admin/views/components/tabs.rb
activeadmin-3.0.0 lib/active_admin/views/components/tabs.rb
activeadmin-2.14.0 lib/active_admin/views/components/tabs.rb
activeadmin-2.13.1 lib/active_admin/views/components/tabs.rb
activeadmin-2.13.0 lib/active_admin/views/components/tabs.rb
activeadmin-2.12.0 lib/active_admin/views/components/tabs.rb
activeadmin-2.11.2 lib/active_admin/views/components/tabs.rb
activeadmin-2.11.1 lib/active_admin/views/components/tabs.rb
activeadmin-2.11.0 lib/active_admin/views/components/tabs.rb
activeadmin-2.10.1 lib/active_admin/views/components/tabs.rb
activeadmin-2.10.0 lib/active_admin/views/components/tabs.rb