Class: Sis::Core::MenusController

Inherits:
ApplicationController show all
Defined in:
app/controllers/sis/core/menus_controller.rb

Instance Attribute Summary

Attributes inherited from ApplicationController

#current_user

Instance Method Summary collapse

Instance Method Details



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'app/controllers/sis/core/menus_controller.rb', line 5

def menu
  app_module_id = ApplicationModule.find_by_code(params[:app_module]).id
  user_roles = User.find(params[:user_id]).user_roles.where(application_module_id: app_module_id)
  menus = []
  user_roles.each do |role|
    user_menus = role.menus.where(parent_id: nil, application_module_id: app_module_id)
    user_menus.each do |user_menu|
      children = user_menu.children.where(parent_id: user_menu.id, application_module_id: app_module_id)
      children = children.map { |c| { label: c.text, icon: c.icon_cls, routerLink: [c.location] } }
      menus.push({ id: user_menu.id, label: user_menu.text, icon: user_menu.icon_cls,
                   location: user_menu.location, items: children, expanded: true })
    end
  end
  render json: { success: true, data: menus }
end