Extract methods to render user links in management menu

So this is similar to what we're doing in the `Admin::MenuComponent`
class.
This commit is contained in:
Javi Martín
2024-04-11 23:00:55 +02:00
parent 445b01c280
commit 37bc39e1c6
2 changed files with 71 additions and 45 deletions

View File

@@ -1,50 +1,6 @@
<ul id="admin_menu" data-accordion-menu>
<li class="section-title">
<a href="#" class="users-link"><%= t("management.menu.users") %></a>
<%= link_list(
[
t("management.menu.select_user"),
management_document_verifications_path,
users?
],
(
[
t("management.account.menu.reset_password_email"),
edit_password_email_management_account_path,
edit_password_email?
] if managed_user.email
),
[
t("management.account.menu.reset_password_manually"),
edit_password_manually_management_account_path,
edit_password_manually?
],
[
t("management.menu.create_proposal"),
new_management_proposal_path,
create_proposal?
],
[
t("management.menu.support_proposals"),
management_proposals_path,
support_proposal?
],
(
[
t("management.menu.create_budget_investment"),
create_investments_management_budgets_path,
create_investments?
] if Setting["process.budgets"]
),
(
[
t("management.menu.support_budget_investments"),
support_investments_management_budgets_path,
support_investments?
] if Setting["process.budgets"]
),
class: "is-active"
) %>
<%= user_links %>
</li>
<% if Setting["process.budgets"] %>

View File

@@ -3,6 +3,76 @@ class Management::MenuComponent < ApplicationComponent
private
def user_links
link_to(t("management.menu.users"), "#", class: "users-link") +
link_list(
select_user_link,
(reset_password_email_link if managed_user.email),
reset_password_manually_link,
create_proposal_link,
support_proposals_link,
(create_budget_investment_link if Setting["process.budgets"]),
(support_budget_investments_link if Setting["process.budgets"]),
class: "is-active"
)
end
def select_user_link
[
t("management.menu.select_user"),
management_document_verifications_path,
users?
]
end
def reset_password_email_link
[
t("management.account.menu.reset_password_email"),
edit_password_email_management_account_path,
edit_password_email?
]
end
def reset_password_manually_link
[
t("management.account.menu.reset_password_manually"),
edit_password_manually_management_account_path,
edit_password_manually?
]
end
def create_proposal_link
[
t("management.menu.create_proposal"),
new_management_proposal_path,
create_proposal?
]
end
def support_proposals_link
[
t("management.menu.support_proposals"),
management_proposals_path,
support_proposal?
]
end
def create_budget_investment_link
[
t("management.menu.create_budget_investment"),
create_investments_management_budgets_path,
create_investments?
]
end
def support_budget_investments_link
[
t("management.menu.support_budget_investments"),
support_investments_management_budgets_path,
support_investments?
]
end
def users?
["users", "email_verifications", "document_verifications"].include?(controller_name)
end