Module: StandardView::NavigationHelper
- Defined in:
- app/helpers/standard_view/navigation_helper.rb
Instance Method Summary collapse
- #nav_item(link_target:, icon:, title:, count:, active_class:) ⇒ Object
- #nav_item_nested_model_for_record(record, model, count_method = nil) ⇒ Object
- #nav_item_overview_for_material(material) ⇒ Object
- #nav_item_related_model_for_record(record, model, count_method = nil, nested: false) ⇒ Object
Instance Method Details
#nav_item(link_target:, icon:, title:, count:, active_class:) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'app/helpers/standard_view/navigation_helper.rb', line 38 def nav_item(link_target:, icon:, title:, count:, active_class:) content_tag(:li, class: "nav-item") do link_to(link_target, class: "nav-link #{active_class}") do content_tag(:span) do concat icon_for(icon) concat " ".html_safe concat title concat count_badge(count) end end end end |
#nav_item_nested_model_for_record(record, model, count_method = nil) ⇒ Object
12 13 14 |
# File 'app/helpers/standard_view/navigation_helper.rb', line 12 def nav_item_nested_model_for_record(record, model, count_method = nil) (record, model, count_method, nested: true) end |
#nav_item_overview_for_material(material) ⇒ Object
5 6 7 8 9 10 |
# File 'app/helpers/standard_view/navigation_helper.rb', line 5 def nav_item_overview_for_material(material) active_link_class = active_for(controller: material.route_key, action: :show) content_tag(:li, class: "nav-item") do link_to(t("common.overview"), material, class: "nav-link #{active_link_class}") end end |
#nav_item_related_model_for_record(record, model, count_method = nil, nested: false) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'app/helpers/standard_view/navigation_helper.rb', line 16 def (record, model, count_method = nil, nested: false) collection = model.model_name.collection count_method ||= begin default_count_method_name = "#{collection}_count".to_sym record.respond_to?(default_count_method_name) ? default_count_method_name : collection end link_target = [ collection, record ] link_target.reverse! if nested active_link_arguments = { controller: (nested ? model : record).model_name.collection } active_link_arguments[:action] = collection unless nested nav_item( link_target: link_target, icon: model.model_name.singular.to_sym, title: title_for_model(model), count: record.public_send(count_method.to_sym), active_class: active_for(**active_link_arguments), ) end |