Use link_list to render admin login items
This way it's easier to customize this menu.
This commit is contained in:
@@ -1,41 +1,4 @@
|
|||||||
<li class="has-submenu">
|
<li class="has-submenu">
|
||||||
<%= link_to t("layouts.header.administration_menu"), "#", rel: "nofollow", class: "hide-for-small-only" %>
|
<%= link_to t("layouts.header.administration_menu"), "#", rel: "nofollow", class: "hide-for-small-only" %>
|
||||||
<ul class="submenu menu" data-submenu>
|
<%= link_list(*admin_links, class: "submenu menu", data: { submenu: true }) %>
|
||||||
<% 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>
|
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
class Layout::AdminLoginItemsComponent < ApplicationComponent
|
class Layout::AdminLoginItemsComponent < ApplicationComponent
|
||||||
attr_reader :user
|
attr_reader :user
|
||||||
delegate :show_admin_menu?, to: :helpers
|
delegate :link_list, :show_admin_menu?, to: :helpers
|
||||||
|
|
||||||
def initialize(user)
|
def initialize(user)
|
||||||
@user = user
|
@user = user
|
||||||
@@ -9,4 +9,41 @@ class Layout::AdminLoginItemsComponent < ApplicationComponent
|
|||||||
def render?
|
def render?
|
||||||
show_admin_menu?(user)
|
show_admin_menu?(user)
|
||||||
end
|
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
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user