5 changed files with 50 additions and 24 deletions
@ -0,0 +1,41 @@
|
||||
module NavigationItemsHelper |
||||
NavigationItem = Struct.new(:text, :href, :current, :classes) |
||||
|
||||
def primary_items(current_user) |
||||
if current_user.support? |
||||
[ |
||||
NavigationItem.new("Organisations", organisations_path, organisation_current?), |
||||
NavigationItem.new("Users", users_path, users_current?), |
||||
NavigationItem.new("Logs", case_logs_path, logs_current?), |
||||
] |
||||
else |
||||
[ |
||||
NavigationItem.new("Logs", case_logs_path, logs_current?), |
||||
NavigationItem.new("Users", users_organisation_path(current_user.organisation), users_current?), |
||||
NavigationItem.new("About your organisation", "/organisations/#{current_user.organisation.id}", organisation_current?), |
||||
] |
||||
end |
||||
end |
||||
|
||||
private |
||||
|
||||
def current?(current_controller, controllers) |
||||
current_controller.controller_name.in?(Array.wrap(controllers)) |
||||
end |
||||
|
||||
def current_action?(current_controller, action) |
||||
current_controller.action_name == action |
||||
end |
||||
|
||||
def logs_current? |
||||
current?(controller, %w[case_logs form]) |
||||
end |
||||
|
||||
def users_current? |
||||
current?(controller, %w[users]) || current_action?(controller, "users") |
||||
end |
||||
|
||||
def organisation_current? |
||||
current?(controller, %w[organisations]) && !current_action?(controller, "users") |
||||
end |
||||
end |
Loading…
Reference in new issue