Module: ActiveAdmin::BreadcrumbHelper
- Defined in:
- app/helpers/active_admin/breadcrumb_helper.rb
Constant Summary collapse
- ID_FORMAT_REGEXP =
/\A(\d+|[a-f0-9]{24}|(?:[a-f0-9]{8}-(?:[a-f0-9]{4}-){3}[a-f0-9]{12}))\z/.freeze
Instance Method Summary collapse
-
#build_breadcrumb_links(path = request.path, html_options = {}) ⇒ Object
Returns an array of links to use in a breadcrumb.
- #default_breadcrumb_links(path, html_options = {}) ⇒ Object
Instance Method Details
#build_breadcrumb_links(path = request.path, html_options = {}) ⇒ Object
Returns an array of links to use in a breadcrumb
7 8 9 10 11 12 13 14 |
# File 'app/helpers/active_admin/breadcrumb_helper.rb', line 7 def (path = request.path, = {}) config = active_admin_config. if config.is_a?(Proc) instance_exec(controller, &config) elsif config.present? (path, ) end end |
#default_breadcrumb_links(path, html_options = {}) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'app/helpers/active_admin/breadcrumb_helper.rb', line 16 def (path, = {}) # remove leading "/" and split up the URL # and remove last since it's used as the page title parts = path.split("/").select(&:present?)[0..-2] parts.each_with_index.map do |part, index| # 1. try using `display_name` if we can locate a DB object # 2. try using the model name translation # 3. default to calling `titlecase` on the URL fragment if ID_FORMAT_REGEXP.match?(part) && parts[index - 1] parent = active_admin_config.belongs_to_config.try :target config = parent && parent.resource_name.route_key == parts[index - 1] ? parent : active_admin_config name = display_name config.find_resource part end name ||= I18n.t "activerecord.models.#{part.singularize}", count: 2.1, default: part.titlecase # Don't create a link if the resource's show action is disabled if !config || config.defined_actions.include?(:show) link_to name, "/" + parts[0..index].join("/"), else name end end end |