Sha256: c95380ec45ecdbfe2cc675484f56df83dfa2fd7539bfce5ddcf7988f74a9ba26
Contents?: true
Size: 1.84 KB
Versions: 12
Compression:
Stored size: 1.84 KB
Contents
require 'active_admin/helpers/collection' module ActiveAdmin module Views # Renders a collection of index views available to the resource # as a list with a separator class IndexList < ActiveAdmin::Component builder_method :index_list_renderer include ::ActiveAdmin::Helpers::Collection def default_class_name "indexes table_tools_segmented_control" end def tag_name 'ul' end # Builds the links for presenting different index views to the user # # @param [Array] index_classes The class constants that represent index page presenters def build(index_classes) unless current_filter_search_empty? index_classes.each do |index_class| build_index_list(index_class) end end end protected # Builds the individual link and HTML classes for each index page presenter # # @param [Class] index_class The class on which to build the link and html classes def build_index_list(index_class) li :class => classes_for_index(index_class) do a :href => url_for(params.merge(:as => index_class.index_name.to_sym)), :class => "table_tools_button" do name = index_class.index_name I18n.t("active_admin.index_list.#{name}", :default => name.to_s.titleize) end end end def classes_for_index(index_class) classes = ["index"] classes << "selected" if current_index?(index_class) classes.join(" ") end def current_index?(index_class) if params[:as] params[:as] == index_class.index_name else active_admin_config.default_index_class == index_class end end def current_filter_search_empty? params.include?(:q) && collection_is_empty? end end end end
Version data entries
12 entries across 12 versions & 3 rubygems