class ActiveAdmin::Views::IndexList
Renders a collection of index views available to the resource as a list with a separator
Public Instance Methods
Source
# File lib/active_admin/views/components/index_list.rb, line 25 def build(index_classes) unless current_filter_search_empty? index_classes.each do |index_class| build_index_list(index_class) end end end
Builds the links for presenting different index views to the user
@param [Array] index_classes The class constants that represent index page presenters
Source
# File lib/active_admin/views/components/index_list.rb, line 14 def default_class_name "indexes table_tools_segmented_control" end
Source
# File lib/active_admin/views/components/index_list.rb, line 18 def tag_name "ul" end
Protected Instance Methods
Source
# File lib/active_admin/views/components/index_list.rb, line 38 def build_index_list(index_class) li class: classes_for_index(index_class) do params = request.query_parameters.except :page, :commit, :format url_with_params = url_for(**params.merge(as: index_class.index_name.to_sym).symbolize_keys) a href: url_with_params, 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
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
Source
# File lib/active_admin/views/components/index_list.rb, line 50 def classes_for_index(index_class) classes = ["index"] classes << "selected" if current_index?(index_class) classes.join(" ") end
Source
# File lib/active_admin/views/components/index_list.rb, line 64 def current_filter_search_empty? params.include?(:q) && collection_is_empty? end
Source
# File lib/active_admin/views/components/index_list.rb, line 56 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