Skip to content

Commit

Permalink
Use link_list to render admin login items
Browse files Browse the repository at this point in the history
This way it's easier to customize this menu.
  • Loading branch information
javierm committed Jan 16, 2023
1 parent e973044 commit 6fbaccb
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 39 deletions.
39 changes: 1 addition & 38 deletions app/components/layout/admin_login_items_component.html.erb
Original file line number Diff line number Diff line change
@@ -1,41 +1,4 @@
<li class="has-submenu">
<%= link_to t("layouts.header.administration_menu"), "#", rel: "nofollow", class: "hide-for-small-only" %>
<ul class="submenu menu" data-submenu>
<% if user.administrator? %>
<li>
<%= link_to t("layouts.header.administration"), admin_root_path %>
</li>
<% end %>
<% if user.administrator? || user.moderator? %>
<li>
<%= link_to t("layouts.header.moderation"), moderation_root_path %>
</li>
<% end %>
<% if feature?(:budgets) &&
(user.administrator? || user.valuator?) %>
<li>
<%= link_to t("layouts.header.valuation"), valuation_root_path %>
</li>
<% end %>
<% if user.administrator? || user.manager? %>
<li>
<%= link_to t("layouts.header.management"), management_sign_in_path %>
</li>
<% end %>
<% if user.poll_officer? && Poll.current.any? %>
<li>
<%= link_to t("layouts.header.officing"), officing_root_path %>
</li>
<% end %>
<% if feature?(:sdg) && (user.administrator? || user.sdg_manager?) %>
<li>
<%= link_to t("sdg_management.header.title"), sdg_management_root_path %>
</li>
<% end %>
</ul>
<%= link_list(*admin_links, class: "submenu menu", data: { submenu: true }) %>
</li>
39 changes: 38 additions & 1 deletion app/components/layout/admin_login_items_component.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
class Layout::AdminLoginItemsComponent < ApplicationComponent
attr_reader :user
delegate :show_admin_menu?, to: :helpers
delegate :link_list, :show_admin_menu?, to: :helpers

def initialize(user)
@user = user
Expand All @@ -9,4 +9,41 @@ def initialize(user)
def render?
show_admin_menu?(user)
end

private

def admin_links
[
(admin_link if user.administrator?),
(moderation_link if user.administrator? || user.moderator?),
(valuation_link if feature?(:budgets) && (user.administrator? || user.valuator?)),
(management_link if user.administrator? || user.manager?),
(officing_link if user.poll_officer? && Poll.current.any?),
(sdg_management_link if feature?(:sdg) && (user.administrator? || user.sdg_manager?))
]
end

def admin_link
[t("layouts.header.administration"), admin_root_path]
end

def moderation_link
[t("layouts.header.moderation"), moderation_root_path]
end

def valuation_link
[t("layouts.header.valuation"), valuation_root_path]
end

def management_link
[t("layouts.header.management"), management_sign_in_path]
end

def officing_link
[t("layouts.header.officing"), officing_root_path]
end

def sdg_management_link
[t("sdg_management.header.title"), sdg_management_root_path]
end
end

0 comments on commit 6fbaccb

Please sign in to comment.