Module: Tramway::Admin::Navbar

Included in:
Tramway::Admin
Defined in:
lib/tramway/admin/navbar.rb

Instance Method Summary collapse

Instance Method Details



9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/tramway/admin/navbar.rb', line 9

def navbar_items_for(project, role:)
  project = project.underscore.to_sym unless project.is_a? Symbol
  @navbar_structure[project]&.map do |item|
    if item.is_a?(Class) || item.is_a?(String)
      should_be_in_navbar_as item, project, role
    elsif item.is_a? Hash
      sub_items = item.values.first.map do |sub_item|
        should_be_in_navbar_as sub_item, project, role
      end.compact
      { item.keys.first => sub_items } if sub_items.any?
    end
  end&.compact || []
end


4
5
6
7
# File 'lib/tramway/admin/navbar.rb', line 4

def navbar_structure(*links, project:)
  @navbar_structure ||= {}
  @navbar_structure.merge! project => links
end