Class: NavigationGroup

Inherits:
ApplicationRecord show all
Includes:
NavigationPermissions
Defined in:
app/models/navigation_group.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from NavigationPermissions

#allow!, #allowed_to, #allows?, #disallow!

Methods inherited from ApplicationRecord

define_decrypted_attribute, define_decrypted_attributes, #errors_in_bullet_points, primary_connection, special_connection

Class Method Details



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'app/models/navigation_group.rb', line 18

def self.global_navigation_data
  groups = NavigationGroup.order(:order)
                          .includes(navigation_headers: :navigation_items)

  groups.map do |group|
    group_data = group.attributes
    group_data['label'] = I18n.t("navigation.group.#{group.name}")
    group_data['navigation_headers'] = group.navigation_headers.map do |header|
      header_data = header.attributes
      header_data['label'] = I18n.t("navigation.header.#{header.name}")
      header_data['navigation_items'] = header.navigation_items.map(&:attributes)
      header_data['navigation_items'].each do |item|
        item['label'] = I18n.t("navigation.item.#{item['name']}")
      end
      header_data
    end
    group_data
  end
end

Instance Method Details

#headers_for_configuration(configuration) ⇒ Object



13
14
15
16
# File 'app/models/navigation_group.rb', line 13

def headers_for_configuration(configuration)
  configuration_navigation_headers_ids = configuration.navigation_headers.pluck(:id)
  navigation_headers.where(id: configuration_navigation_headers_ids).order(:order)
end